中国石油大学(华东)
操作系统课程设计报告
姓名: 学号: 成绩:
螺旋矩阵 Makefile 批量用户管理 驱动程序 线程实现 进程实现 NCURSE 程序框架 附加题
评语:
目录
1
实验一、螺旋矩阵 .................................................................................... 3 实验二、用Shell程序实现文件的批量管理 .......................................... 4 实验三、驱动下的螺旋矩阵程序 ............................................................ 7 实验四、哲学家进餐问题……….…………………………………….10 实验五、NCURSE程序框架 .......................................................... 14
2
实验一、螺旋矩阵
一、实验任务
用C语言编写一个螺旋矩阵程序,实现输入行数和列数即可形成A~Z的螺旋矩阵,并用Makefile完成编译。 二、实验环境和工具
VMware Workstation 红帽子 Linux-2.4.20-8 三、关键代码
1、螺旋矩阵实现代码(SpiralMatrix.c) #include
int row,col,i,j,x,y,startNum; int dx[4]={0,1,0,-1};//方向 int dy[4]={1,0,-1,0}; int Matrix[N][N];
printf(\请输入行数和列数:\ scanf(\
for (i=0;i
startNum=0;x=0;y=0;j=0;
for (i=0;startNum
if (x>=0&&x
x-=dx[j]; y-=dy[j]; j=(j+1)%4; }
x+=dx[j]; y+=dy[j];}
printf(\螺旋矩阵为:\\n\ for (i=0;i
printf(\ printf(\ return 0; } 3
2、Makefile CC=gcc
EXEC=SpiralMatrix OBJS=SpiralMatrix.o all:$(EXEC) $(EXEC):$(OBJS)
$(CC) -o $@ $(OBJS) clean:
rm -rf $(EXEC) $(OBJS) 四、实验结果
实验二、用Shell程序实现文件的批量管理
一、实验任务
设计两个Shell程序,一个Shell程序实现给系统添加四个新组,每个组代表一个班级,每一个班级中添加30个用户,每个用户代表一个学生。另一个Shell程序实现删除上一个Shell程序添加的用户和组。 二、实验环境和工具
Linux-2.4.20-8 VMware Workstation 4
三、关键代码
1、创建用户addUsers #!/bin/sh i=1
while [ $i -le 4 ] do
GROUPNAME=class${i} groupadd $GROUPNAME i=$(($i+1)) done i=0 k=0
while [ $i -lt 120 ] do
if [ $(($i0)) -eq 0 ] then
k=$(($k+1)) fi
j=$((($i)0)) j=$(($j+1)) if [ $j -le 9 ] then
USERNAME=class${k}stu0${j} else
USERNAME=class${k}stu${j}# fi
GROUPNAME=class${k} useradd $USERNAME
chown -R $USERNAME /home/$USERNAME chgrp -R $GROUPNAME /home/$USERNAME i=$(($i+1)) Done
2、删除用户delUsers #!/bin/sh i=0 k=0
while [ $i -lt 120 ] do
if [ $((($i)0)) -eq 0 ] then
k=$(($k+1)) fi
j=$(($i0)) 5