操作系统文件操作实验Word文件下载.docx
- 文档编号:15801747
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:11
- 大小:81.38KB
操作系统文件操作实验Word文件下载.docx
《操作系统文件操作实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《操作系统文件操作实验Word文件下载.docx(11页珍藏版)》请在冰豆网上搜索。
内容:
创建一个新文件,文件内容为本班所有同学的学号、姓名、操作系统课程成绩,要求采用有格式的存储格式;
文件建立之后,能够对文件进行插入、删除、查找等操作。
二、实验相关知识简介
文件系统提供给用户程序的一组系统调用,如文件的建立、打开、关闭、撤消、读、写和控制等,通过这些系统调用用户能获得文件系统的各种服务。
不同的系统提供给用户不同的对文件的操作手段,但所有系统一般都提供以下关于文件的基本操作:
1.对整体文件而言
(1)打开(open)文件,以准备对该文件进行访问。
(2)关闭(close)文件,结束对该文件的使用。
(3)建立(create)文件,构造一个新文件。
(4)撤消(destroy)文件,删去一个文件。
(5)复制(copy)文件,产生一个文件副本。
2.对文件中的数据项而言
(1)读(read)操作,把文件中的一个数据项输入给进程。
(2)写(write)操作,进程输出一个数据项到文件中去。
(3)修改(update)操作,修改一个已经存在的数据项。
(4)插入(insert)操作,添加一个新数据项。
(5)删除(delete)操作,从文件中移走一个数据项。
三、设计思路及关键程序代码分析
#include<
stdio.h>
string.h>
stdlib.h>
intNUM=0;
structstudent
{
charnum[20];
//学号
charnam[20];
//姓名
intscore;
//成绩
structstudent*next;
};
typedefstructstudentStu;
typedefStu*STU;
voidSaveConf(STUhead);
voidMenu(STUhead);
voidChoose(STUhead);
voidLoadConf(STUhead);
voidCreate(STUhead);
voidInit(STU*head)//头节点初始化
(*head)=(STU)malloc(sizeof(Stu));
(*head)->
next=NULL;
}
voidLoadConf(STUhead)//从文件加载信息至链表
inti=1;
FILE*fp;
STUnewstu;
STUp=head;
fp=fopen("
text.txt"
"
r+"
);
if(fp==NULL)
{
printf("
文件不存在!
已为您创建新文件!
\n"
a+"
}
while(i>
0)
newstu=(STU)malloc(sizeof(Stu));
i=fscanf(fp,"
%s%s%d\n"
newstu->
num,newstu->
nam,&
newstu->
score);
if(i==-1)
free(newstu);
newstu=NULL;
break;
p=head;
while(p->
next!
=NULL)
p=p->
next;
p->
next=newstu;
newstu->
p=NULL;
fclose(fp);
voidCreate(STUhead)//插入信息
STUp=head;
请输入学号:
"
scanf("
%s"
num);
请输入姓名:
nam);
请输入成绩:
%d"
&
charflag;
getchar();
是否继续插入信息(yorn):
%c"
flag);
if(flag=='
y'
)
Create(head);
else
Choose(head);
voidSaveConf(STUhead)//保存信息到文件
STUp=head->
w"
打开文件失败!
return;
while(p!
fprintf(fp,"
p->
num,p->
nam,p->
//写入数据到文件中
STUsearch(STUhead,char*s)//删除
STUp;
p=head->
if(strcmp(s,p->
num)==0)
returnp;
voidDelete(STUhead)
STUq=head;
charn[20];
请输入需要删除学生的学号:
"
n);
p=search(head,n);
if(p==NULL)
您输入的学号不存在,请重新输入:
Delete(head);
q=head;
while(q->
=p)
q=q->
}
q->
next=p->
free(p);
deletesuccess!
voidConstant(STUhead)//查找
charnumber[20];
intfind=0;
请输入需要查找学生的学号:
number);
if(strcmp(number,p->
查找结果如下:
find=1;
if(find==0)
printf("
您输入的学号不存在!
voidMenu(STUhead)
\t********文件管理******\t\n"
\t******1.插入信息******\t\n"
\t******2.删除信息******\t\n"
\t******3.查找信息******\t\n"
\t******0.退出**********\t\n"
}
voidChoose(STUhead)
{
intchoice=0;
\npleaseinputyourchoice:
choice);
switch(choice)
case1:
Create(head);
break;
case2:
Delete(head);
case3:
Constant(head);
case0:
SaveConf(head);
default:
{
输入有误,请重新输入!
}
intmain()
STUhead;
Init(&
head);
LoadConf(head);
Menu(head);
return0;
四、运行结果
创建新文件后的文本内容:
执行插入信息操作:
执行删除操作:
五、体会与提高
通过本次的实验设计,把教材中的理论知识转化为实践,在一定程度上加深了我对读者-写者这类经典的同步问题的理解,同时也提高了我的动手编程和独立思考的能力。
虽然在分析问题的过程中,遇到了很多的疑惑与不解,但同时掌握了很多进程同步的知识
教师评语:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 文件 操作 实验