操作系统课程设计报告模板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中国石油大学(华东)操作系统课程设计报告
姓名:
学号:
成绩:
目录
实验一、螺旋矩阵 (3)
实验二、用Shell程序实现文件的批量管理 (4)
实验三、驱动下的螺旋矩阵程序 (7)
实验四、哲学家进餐问题 (10)
实验五、NCURSE程序框架 (14)
实验一、螺旋矩阵
一、实验任务
用C语言编写一个螺旋矩阵程序,实现输入行数和列数即可形成A~Z的螺旋矩阵,并用Makefile完成编译。
二、实验环境和工具
VMware Workstation红帽子 Linux-2.4.20-8
三、关键代码
1、螺旋矩阵实现代码(SpiralMatrix.c)
#include
#define N 10
int main()
{
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("%d %d",&row,&col);
for (i=0;i for(j=0;j Matrix[i][j]=-1; } startNum=0;x=0;y=0;j=0; for (i=0;startNum if (x>=0&&x Matrix[x][y]=startNum++; else{ x-=dx[j]; y-=dy[j]; j=(j+1)%4; } x+=dx[j]; y+=dy[j];} printf("螺旋矩阵为:\n"); for (i=0;i for(j=0;j printf("%4c",Matrix[i][j]%26+'A'); printf("\n");} return 0; } 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 三、关键代码 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 [ $(($i%30)) -eq 0 ] then k=$(($k+1)) fi j=$((($i)%30)) 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)%30)) -eq 0 ] then k=$(($k+1)) fi j=$(($i%30)) j=$(($j+1)) if [ $j -le 9 ] then USERNAME=class${k}stu0${j} else USERNAME=class${k}stu${j} fi userdel $USERNAME rm -rf /home/$USERNAME i=$(($i+1)) done i=1 while [ $i -le 4 ] do GROUPNAME=class${i} groupdel $GROUPNAME i=$(($i+1)) done 四、实验结果 1、编辑addUsers和delUsers 2、添加用户