中国石油大学(华东)
操作系统课程设计报告
姓名: 学号: 成绩:
螺旋矩阵 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
操作系统课程设计报告模板



