1、 File *file; int f_num; struct content *next;Content;typedef struct user char psw10; Content *con; struct user *next;User;char cur_user20;User *user;int user_num=0;void write(char name) FILE *p; char ch; p=fopen(name,w); ch=getchar(); while(1) fputc(ch,p); if(ch=#) break; fclose(p);void read(char na
2、me) int i=0;r while(!feof(p) i+; printf(%c,fgetc(p); if(i=0) printf(文件是空的!nint display_files(Content *con) file=con-file; file=file-next; while(file!=NULL)文件 %d: %sn,i,file-name); file=file- printf( 文件总数:%dn,i); return i;int is_exist_file(File *f,char name) int exist=0; File *file=f- if(strcmp(file-
3、name,name)=0) exist=1; break; file=file- return exist;void add_file(Content *con) int exist; char f_name10; char tail=.txt; FILE *q; File *file=con- File *new_f; if(con-f_num=10)已存在10个文件! return; do exist=0;输入新文件名: scanf(%s,f_name); strcat(f_name,tail); if(is_exist_file(con-file,f_name) exist=1; if(
4、exist=1) printf(文件已存在! while(exist=1); q=fopen(f_name, fclose(q); while(file-next!=NULL) new_f=(File *)malloc(sizeof(File); strcpy(new_f-name,f_name); new_f-next=NULL; file-next=new_f; con-f_num+;添加文件 %s 成功!void read_file(Content *con) int find=0;file-输入需要读取的文件名: scanf(,name); strcat(name,tail); whi
5、le(file! if(strcmp(name,file-name)=0) find=1; break; if(find=0)读取错误或文件不存在!-Read Filen文件已打开.n read(name);n文件 %s 读取成功!void write_file(Content *con)输入需要编辑的文件名:写入错误或文件不存在!-Write Filen文件被打开.n结尾输入#完成输入n write(name);n文件 %s 写入成功!void delete_file(Content *con) File *file,*f; if(display_files(con)=0) printf(无
6、内容! else do输入需要删除的文件名: scanf( strcat(name,tail); if(!is_exist_file(con-file,name) exist=0; if(exist=0) printf(文件不存在! while(exist=0);文件正在删除. file=con- f=file- while(f! if(strcmp(f-name,name)=0) break; file=f; f=f- file-next=f-文件删除成功!void move_file(User *u,Content *con) char c_name10; File *file,*f,*t
7、emp_f; Content *c; exist=1;输入需要移动文件名: strcat(name,tail); if(!file,name) exist=0; if(exist=0) printf(此文件不存在! while(exist=0);移动中.n f=file- while(f! if(strcmp(f- f=f- temp_f=f;输入目标存储空间名: ,c_name); c=u-con; while(c- if(strcmp(c-name,c_name)=0) break; c=c- f=c- while(f-=NULL) f=f- f-next=temp_f; temp_f-移
8、动成功!int display_contents(User *u) con=u-con- while(con!存储空间 %d:,i,con- con=con-显示存储空间为%dnint is_exist_con(Content *c,char name) Content *con=c- if(strcmp(con- con=con-void add_content(User *u) Content *con,*c;输入存储空间名称: if(is_exist_con(u-con,name) 此存储空间已存在!新建中.n while(con- c=(Content *)malloc(sizeof(
9、Content); c- file=(File *)malloc(sizeof(File);file=file; strcpy(c-name,name);f_num=0;next=c;n新建成功!void del_content(User *u) if(display_contents(u)=0) printf(输入删除存储空间名称:is_exist_con(u-con,name) exist=0;The Content Not Exist!文件夹删除中. con=u- c=con- while(c! if(strcmp(c- con=c; c=c- con-next=c-删除成功!void
10、into_content(User *u) int choice;存储空间不存在! if(strcmp(con-1. 显示所有文件n2. 新建文件n3. 写入文件n4. 读取文件n5. 删除文件n6. 移动文件n0. 返回上层n输入以上选项:%d,&choice); switch(choice) case 1: display_files(con); case 2: add_file(con); case 3: write_file(con); case 4: read_file(con); case 5: delete_file(con); case 6: move_file(u,con);
11、 while(choice!=0);void login() int login=0; User *p; User *head=user- p=(User *)malloc(sizeof(User); con=(Content *)malloc(sizeof(Content); p-con=con; head=p;1. 显示所有存储空间n2. 新建存存储空间n3. 删除存储空间n4. 写入存储空间n0. 退出ndisplay_contents(head);break;add_content(head);del_content(head);into_content(head);int main(
12、) user=(User *)malloc(sizeof(User); user- login();谢谢使用! return 0;四、系统测试系统功能模块测试、性能测试结果:进入系统菜单:add_content(User *u)新建存储空间:display_contents(User *u)显示所有存储空间状态:del_content(User *u)删除存储空间:into_content(User *u)写入存储空间:进入文件系统菜单:write(char name)写入文件:read(char name)读取文件:display_files(Content *con)显示所有文件状态:ad
13、d_file(Content *con)新建文件:delete_file(Content *con)删除文件:move_file(User *u,Content *con)移动文件:五、结论 课程设计的主要成果、体会:课程设计是对我们平时学习的一种考察,我们要正确地对待。不断地锻炼自己动手动脑的能力、把知识赋予实践就是我们学习的目标。既然学校给我们这么好的机会,让我们自己在实验室作操作,我们应该好好抓住机会,把我们平时学习的东西用自己的作品展现出来。这次,我做的是模拟linux二级文件系统设计的课程主题,这给了我充分锻炼的机会。我会用自己学到的东西的设计出一副好的作品。通过2周的制作,我以基本
14、完成了自己的作品。从中我明白:操作系统是一门非常有趣味的学科,只要你学得好再加上你的编程能力,你就可以开发出很好的软件作品。同时我觉得要学好基本的操作系统知识,首先要有一颗坚毅的心,有恒心,有信心,在学习过程中,坎坷是避免不了的,但千万不要灰心,不要气馁,要继续努力,刚开始是会感到很无助的,也许会产生放弃的念头,千万顶住,只要克服了开始的难关,以后的路才会充满阳光,充满快乐。而且,在程序设计过程中我也遇到了很多问题。但是在老师和同学的帮助下,我一次次将难题解决。对此,我由衷地感谢那些在我开发过程中帮助过我的人。我相信通过我以后很加刻苦的学习,我会更加热爱我的专业课程。六、参考文献计算机操作原理(第四版) 庞丽萍 编著 计算机操作系统,中国人民大学出版社,谭耀铭主编