操作系统课程设计报告模板

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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=0&&y

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、添加用户

相关文档
最新文档