1、课程设计说明书设计名称: 操作系统课程设计 题 目: 文件访问接口设计 课程设计任务书一、 设计题目:文件访问接口设计二、 关键内容: 本设计目标是经过BIOS调用设计简单文件访问接口,使学生掌握程 序接口设计方法。 要求学生在熟悉比BIOS、DOS操作系统中止接口及程序接口基础上,利用C语言设计简单文件访问接口,最终经过程序验证接口正确性。 三、 具体要求利用C语言设计,具体包含:1、 基础文件内容输入2、 基础文件内容输出3、 创建文件4、 打开文件5、 关闭文件6、 文件缓冲区管理7、文件句柄管理8、读次序文件9、写次序文件10、读随机文件11、写随机文件12、文本文件操作验证程序 上述
2、功效由两部分程序验证,中止驻留程序和验证程序。首先运行中止驻留程序,然后运行验证程序得到预期结果。一、 进度安排1-2天:资料查找、系统分析,数据步骤分析,概要设计1-2天:系统具体设计、功效设计5-6天:模块设计、编程调试1天:资料整理、课程设计说明书编写。二、 完成后应上交材料1、课程设计说明书(程序步骤图、功效模块图、相关数据结构、关键算法等)2、相关源程序文件三、 总评成绩指导老师 署名日期 年 月 日系 主 任 审核日期 年 月 日目录一、程序步骤图5二、函数功效模块.6三、源代码6四、程序运行结果11五、心得体会15 一、程序步骤图程序结束命令是否正确是否继续随机写文件次序读文件随
3、机读文件显示工作目录命令创建文件打开文件次序读写文件随机读写文件次序写文件实施相关操作输入操作命令开始程序基于文件内容输入基于文件内容输出否否是是二、函数功效模块函数1:基于文件内容输入函数:int output_file();函数2:基于文件内容输出函数:int input_file();函数3:创建文件函数:bool create_file(char* name);函数4:打开文件函数:int open_file(char name);函数5:次序读写文件函数:int order_file(char name);函数6:随机读写文件函数:int random_file(char name)
4、;三、源代码#include#include#includechar d=f:VC+TITLE4.txt;class Tinterfacepublic:int output_file();void input_file();bool create_file(char name);int open_file(char name);int order_file(char name);int random_file(char name);/基于文件内容输入,以f:VC+TITLE4.txt为例int Tinterface:output_file()ofstream out;out.open(d,io
5、s:app);if(!out)coutCan not open;return 1;couta;outa;out.close();/基于文件内容输出,以f:VC+TITLE4.txt为例void Tinterface:input_file()ifstream input;char ch;input.open(d,ios:app);while(input.get(ch)coutch;coutendl;/创建文件bool Tinterface:create_file(char name)ifstream fs;if(!name)return false;fs.open(name,ios:nocrea
6、te);if(!fs)fs.clear();fs.close();fs.open(name,ios:out);if(!fs.is_open()cout创建失败!endl;fs.clear();fs.close();return 0;coutname 创建成功!endl;fs.close();return 1;cout文件已存在!endl;return 0;/打开文件int Tinterface:open_file(char name)ifstream fs;fs.open(name,ios:nocreate);if(!fs)cout文件不存在!endl;elsecout文件已打开!endl;r
7、eturn 0;/次序读写文件int Tinterface:order_file(char name)int choice;cout请选择读或写操作(1.次序读 2.次序写)choice;if(choice=1)ifstream in;in.open(name,ios:nocreate|ios:out);if(!in)cout文件不存在!endl;elsechar ch;while(in.get(ch)coutch;in.close();elseif(choice=2)ofstream fs;fs.open(name,ios:nocreate|ios:in);if(!fs)cout文件不存在!
8、endl;elsecouta;fsa;fs.close();elsecout输入错误!endl;return 0;/随机读写文件int Tinterface:random_file(char name)int choice;cout请选择读或写操作(1.随机读 2.随机写)choice;if(choice=1)ifstream in;in.open(name,ios:nocreate|ios:out);if(!in)cout文件不存在!endl;elseint i;cout请输入文件开始读位置i;in.seekg(i,ios:beg);char ch;while(in.get(ch)coutc
9、h;in.close();if(choice=2)ofstream out;out.open(name,ios:nocreate|ios:in);if(!out)cout文件不存在!endl;elseint i;cout请输入要输入文字:a;cout请输入文字插入位置:i;out.seekp(i,ios:beg);outa;out.close();return 0;int main()Tinterface file;int choice;cout*菜单*nn1、基于文件内容输入n2、基于文件内容输出n3、创建文件n4、打开文件n5、次序读写文件n6、随机读写文件n99、退出nn;while(t
10、rue)cout请选择功效choice;switch(choice)case 1:file.output_file();break;case 2:file.input_file();break;case 3:char name256;coutname;file.create_file(name);coutendl;break;case 4:char fname256;coutfname;file.open_file(fname);coutendl;break;case 5:char fsname256;cout请输入文件名:fsname;file.order_file(fsname);cout
11、endl;break;case 6:char finame256;cout请输入文件名:finame;file.random_file(finame);coutendl;break;case 99:return 0;四、程序运行结果1、主界面2、基于文件输入输入前TITLE4.txt 实施后TITLE4.txt 3、基于文件内容输出4、创建文件实施前F:VC+目录 实施后F:VC+目录 5、打开文件6、次序读写文件实施前FILE.txt内容为空实施后FILE.txt内容7、随机读写文件实施前FILE.txt内容 实施后FILE.txt内容 8、退出五、心得体会在这个课程设计中,我被分配到任务是
12、建立文件访问接口,刚好本学期我们学习了C+这门课程,里面就讲了相关文件操作文件流,所谓学以致用,所以这次课程设计我是用C+文件流来实现设计要求。利用了文件流基础知识实现了文件创建,输入,输出等等功效。从看到课程设计任务书以后,我就开始查找资料,从书本上还有网上,首先是将文件打开方法掌握了,明白了怎样对文件进行操作和进行怎样操作,准备了两三天以后才开始编写程序,编写程序中关键碰到困难在进行文件随机读写时候seekp() 和seekg()使用过程中碰到很多问题,刚开始对使用函数以后,文件目前指针位置了解不透彻,所以在随机输出和输入时候无法正确根据想位置开始进行读写,运行结果和自己想象中不一样,最终
13、经过咨询老师,了解其本质后才处理了这个问题。总体来说,因为我做这个程序实现功效很简单,程序相对来说也不是极难,所以我很快就完成了,只是这个程序还是存在着一定缺点,比如说,在进行次序写时候,假如文件本身存在内容话,所写内容会覆盖文件本身存在内容,随机写时候也会出现这个问题,可能会造成文件内容缺失。针对这个问题,我自己也在努力探索,相信自己很快就能够处理掉这个问题。经过这次课程设计,我基础掌握C+文件流操作,在自己手下敲出一行行代码直到完成整个课程设计,整个过程给了我很大鼓舞,看着写完代码,即使简陋,但内心还是充满了成就感,体会到了当你努力去完成一件事情,成功时候那种愉悦感。所以,在以后学习中,我全部会靠自己努力地去完成学习任务所要达成要求