计算机设计项目实践实验报告1.docx
- 文档编号:10034742
- 上传时间:2023-02-08
- 格式:DOCX
- 页数:32
- 大小:608.46KB
计算机设计项目实践实验报告1.docx
《计算机设计项目实践实验报告1.docx》由会员分享,可在线阅读,更多相关《计算机设计项目实践实验报告1.docx(32页珍藏版)》请在冰豆网上搜索。
计算机设计项目实践实验报告1
实验报告
课程名称_计算机设计项目实践________
实验项目__文件系统设计与实现_______
实验仪器_______PC机_______________
系别__计算机科学与技术_____
专业__计算机科学与技术_____
班级
学生姓名/学号
实验日期
成绩_______________________
指导教师_________________
项目1-文件系统设计与实现
一:
功能描述
—文件系统的功能
1.创建文件系统
2.创建文件
3.删除文件
4.文件列表
5.文件写入操作
6.文件读出操作
7.帮助功能(无)
8.退出系统
二:
界面与运行环境说明
—文件系统的主界面设计
1.将用户可选文件操作以选项的形式提供
2.用户可输入选项。
3.系统执行,返回结果。
4.回到1。
—运行条件
MicrosoftStudio2008
三:
程序主要流程处理
—程序模块结构图
—程序主要流程图
四:
程序模块的定义与实现
—函数定义及其处理步骤
1.创建文件系统
(1).模块及其接口定义
a.函数名:
voidcreatFile(fstream&creat)
b.形参:
fstream&creat
c.返回值:
无
(2).模块内部流程说明
voidcreatFile(fstream&creat)
{intfileNumber=getNumber("Enternewrecord");
creat.seekg((fileNumber-1)*sizeof(memberData));
memberDatamember;
creat.read(reinterpret_cast
if(member.getNumber()==0)
{intnumber;
charname[10];
cout<<"Entername"< cin>>name; member.setName(name); member.setNumber(fileNumber); creat.seekp((member.getNumber()-1)*sizeof(memberData)); creat.write(reinterpret_cast } } 2.删除文件 (1).模块及其接口定义 a.函数名: voiddeleteFile(fstream&deletes) b.形参: fstream&deletes c.返回值: 无 (2).模块内部流程说明 voiddeleteFile(fstream&deletes) {intfileNumber=getNumber("Enteryournumber"); deletes.seekg((fileNumber-1)*sizeof(memberData)); memberDatamember; deletes.read(reinterpret_cast if(member.getNumber()! =0) {memberDataemptyMember; deletes.seekp((fileNumber-1)*sizeof(memberData)); deletes.write(reinterpret_cast cout<<"deleted"< }else { cout<<"Error"< } } 3.列表文件 (1).模块及其接口定义 a.函数名: voidlistFile(fstream&list) b.形参: fstream&list c.返回值: 无 (2).模块内部流程说明 voidlistFile(fstream&list) {if(! list) {cerr<<"Filecouldnobecreated."< list.seekg(0); memberDatamember; list.read(reinterpret_cast while(! list.eof()) {outPut(cout,member); list.read(reinterpret_cast } } 4.写文件 (1).模块及其接口定义 a.函数名: voidwriteFile(fstream&write) b.形参: fstream&write c.返回值: 无 (2).模块内部流程说明 voidwriteFile(fstream&write) {intfileNumber=getNumber("Enteryourrecord"); write.seekg((fileNumber-1)*sizeof(memberData)); memberDatamember; write.read(reinterpret_cast if(member.getNumber()! =0) {outPut(cout,member); cout<<"Enteranewname\n"; stringnewName; cin>>newName;member.setName(newName); write.seekp((fileNumber-1)*sizeof(memberData)); write.write(reinterpret_cast outPut(cout,member);} else {cerr<<"Error"< } } 5.读文件 (1).模块及其接口定义 a.函数名: voidreadFile(fstream&reads) b.形参: fstream&reads c.返回值: 无 (2).模块内部流程说明 voidreadFile(fstream&reads)//toocomplex...two& {intfileNumber=getNumber("Enteryournumber"); reads.seekg((fileNumber-1)*sizeof(memberData)); memberDatamember; reads.read(reinterpret_cast if(member.getNumber()! =0) {outPut(cout,member); }else {cout<<"Error";}} 五.调试与排错及其问题 程序中的清屏函数在MicrosoftStudio2008 不能运行,则把其注销。 六.结果 #include usingstd: : cout; usingstd: : cin; usingstd: : ios; usingstd: : cerr; usingstd: : endl; #include usingstd: : exit; #include usingstd: : setw; #include usingstd: : ifstream; usingstd: : ofstream; usingstd: : fstream; usingstd: : ostream; #include"memberData.h" enumfileType{CREAT=1,WRITE,READ,DELETE,LIST,EXIT}; voidcreatFileSys(); voidcreatFile(fstream&creat); voidwriteFile(fstream&write);// voidreadFile(fstream&reads);//read&&list voiddeleteFile(fstream&deletes); voidlistFile(fstream&list);//problem voidoutPut(ostream&output,memberData&data); voidhelp(); intrequest(); intgetNumber(constchar*const); intmain() { //creatFileSys(); fstreammyFile("fileSys.dat",ios: : in|ios: : out); if(! myFile) { cerr<<"Filecouldnotbeopen"< exit (1); } intchoice; while((choice=request())! =6) { switch(choice) { caseCREAT: creatFile(myFile); break; caseWRITE: writeFile(myFile); break; caseREAD: readFile(myFile); break; caseDELETE: deleteFile(myFile); break; caseLIST: listFile(myFile); break; caseEXIT: break; } } } intrequest() { intselect; cout<<"Enteryourchoice\n" <<"1tocreat\n" <<"2towritefile\n" <<"3toreadfile\n" <<"4todeletefile\n" <<"5tolist\n" <<"6toexit."< cin>>select; returnselect; } voidcreatFile(fstream&creat) { intfileNumber=getNumber("Enternewrecord"); creat.seekg((fileNumber-1)*sizeof(memberData)); memberDatamember; creat.read(reinterpret_cast if(member.getNumber()==0) { intnumber; charname[10]; cout<<"Entername"< cin>>name; member.setName(name); member.setNumber(fileNumber); creat.seekp((member.getNumber()-1)*sizeof(memberData)); creat.write(reinterpret_cast } } voidwriteFile(fstream&write) { intfileNumber=getNumber("Enteryourrecord"); write.seekg((fileNumber-1)*sizeof(memberData)); memberDatamember; write.read(reinterpret_cast if(member.getNumber()! =0) { outPut(cout,member); cout<<"Enteranewname\n"; stringnewName; cin>>newName; member.setName(newName); write.seekp((fileNumber-1)*sizeof(memberData)); write.write(reinterpret_cast outPut(cout,member); } else { cerr<<"Error"< } } voidreadFile(fstream&reads)//toocomplex...two& { intfileNumber=getNumber("Enteryournumber"); reads.seekg((fileNumber-1)*sizeof(memberData)); memberDatamember; reads.read(reinterpret_cast if(member.getNumber()! =0) { outPut(cout,member); } else { cout<<"Error"; } } voiddeleteFile(fstream&deletes) { intfileNumber=getNumber("Enteryournumber"); deletes.seekg((fileNumber-1)*sizeof(memberData)); memberDatamember; deletes.read(reinterpret_cast if(member.getNumber()! =0) { memberDataemptyMember; deletes.seekp((fileNumber-1)*sizeof(memberData)); deletes.write(reinterpret_cast cout<<"deleted"< } else { cout<<"Error"< } } voidlistFile(fstream&list) { if(! list) { cerr<<"Filecouldnobecreated."< } list.seekg(0); memberDatamember; list.read(reinterpret_cast while(! list.eof()) { outPut(cout,member); list.read(reinterpret_cast } } intgetNumber(constchar*constprompt) { intnumber; do { cout< cin>>number; }while(number<0||number>10); returnnumber; } voidoutPut(ostream&output,memberData&data) { output< } 七.实验体会 此程序很大,需要多次调试。 且不易理解。 项目2-聪明的基督徒 一: 功能描述 接近现实生活中的数学问题。 二: 界面与运行环境说明 —文件系统的主界面设计 1.数据结构说明 2.构建环形链表 3.显示环形链表 4.确定人选 5.打印结果 —运行条件 MicrosoftVisualC++ 三: 程序主要处理流程 —程序模块结构图 —程序主要流程图 四: 程序模块的定义与实现 —函数定义及其处理步骤 1.数据结构说明 (1).模块及其接口定义 a.函数名: 无 b.形参: 无 c.返回值: 无 (2).模块内部流程说明 #include #include #defineNULL0 #defineLENsizeof(structperson) main() {structperson {intflag; structperson*next; }; inti,go,count; structperson*head,*p,*p1; 2.构建环形链表 (1).模块及其接口定义 a.函数名: 无 b.形参: 无 c.返回值: 无 (2).模块内部流程说明 head=p1=(structperson*)malloc(LEN); /*thefirstperson*/ head->flag=1; head->next=NULL; for(i=1;i<=29;i++)/*2nd-->30thperson*/ {p=(structperson*)malloc(LEN); p1->next=p; p->flag=1; p1=p; } p->next=head;/*makearound*/ 3.显示环形链表 (1).模块及其接口定义 a.函数名: 无 b.形参: 无 c.返回值: 无 (2).模块内部流程说明 p=head->next;/*fromthebegining*/ while(p! =head) {printf("%d",p->flag);p=p->next;} 4.确定人选 (1).模块及其接口定义 a.函数名: 无 b.形参: 无 c.返回值: 无 (2).模块内部流程说明 go=0;/*numberofleave*/ count=0;/*findthemanwhoshouldgo*/ while(go<15) {if(p->flag) {count++;/*counting*/ if(count==9)/*shouldgo*/ {p->flag=0; go++; count=0; } } p=p->next;/*nextperson*/ } p=head; 5.打印结果 (1).模块及其接口定义 a.函数名: 无 b.形参: 无 c.返回值: 0 (2).模块内部流程说明 printf("\n\n\"+\": \tpagandom\n\"@\": \tchristian\n" "\nTheoriginalroundasfollowing: \n\n"); for(i=1;i<=30;i++,p=p->next) {printf("%c",p->flag? '@': '+'); } printf("\n\n"); getchar(); return0; } 五.调试与排错及其问题 该文件没有头文件! 所以无法运行. 六.实验结果 #include #include #defineNULL0 #defineLENsizeof(structperson) main() {structperson {intflag; structperson*next; }; inti,go,count; structperson*head,*p,*p1; head=p1=(structperson*)malloc(LEN); /*thefirstperson*/ head->flag=1; head->next=NULL; for(i=1;i<=29;i++)/*2nd-->30thperson*/ {p=(structperson*)malloc(LEN); p1->next=p; p->flag=1; p1=p; } p->next=head;/*makearound*/ //clrscr(); p=head->next;/*fromthebegining*/ while(p! =head) {printf("%d",p->flag);p=p->next;} go=0;/*numberofleave*/ count=0;/*findthemanwhoshouldgo*/ while(go<15) {if(p->flag) {count++;/*counting*/ if(count==9)/*shouldgo*/ {p->flag=0; go++; count=0; } } p=p->next;/*nextperson*/ } p=head; printf("\n\n\"+\": \tpagandom\n\"@\": \tchristian\n" "\nTheoriginalroundasfollowing: \n\n"); for(i=1;i<=30;i++,p=p->next) {printf("%c",
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 设计 项目 实践 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)