




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、高级语言程序设计(1)课程设计专业 班级 学号 姓名 完成日期 指导教师(签名)1、程序设计说明书【设计题目】 图书管理系统 【问题描述】 图书馆有未知数本书,每个书的情况用该软件通过键盘敲入并以文本文件方式存放在磁盘,内容为六列:书本名称、图书编号、作者、所属类别、出版社、价格。编写程序,可以进行录入、浏览、查询、修改、删除等操作。【基本要求】 (1)通过此软件可以将图书的各种情况录入,并且会将各个情况自动保存到磁盘上。 (2)通过此软件可以一一浏览图书信息。 (3)通过此软件可以对图书进行查询,有两种查询方式,分别为按书名查询和按作者名查询。 (4)通过此软件可以对已录入的每本书情况进行修
2、改、删除,并且修改完成后会将更改后的图书情况自动保存到原磁盘文件中。【算法思想】(1)构造一个结构体类型,成员包括六项。五个字符型数组:书本名称、图书编号、作者、所属类别、出版社,一个浮点型变量:价格。(2)录入每本书的情况时,通过循环语句将每本书情况输入到结构体中,并将其写入文本文件中,并存入磁盘。(3)查询某书本情况时,先将文件读出到结构体中,可以通过输入函数,用书名或作者名进行查询。若没有其相关信息,则输出警告语句;若有,通过条件语句输出结果,并将结果显示在屏幕上。(4)修改每本图书情况时,先将文件读出到结构体中,通过字符的比较查找所修改的图书所在处,如果没有找到则输出警告语句,找到后则
3、通过输入输出函数进行修改,并将修改过后的图书情况写入文本文件中,并存入磁盘。【模块化分及调用关系】main函数 input函数list函数exit函数append函数revise函数search函数 main函数分别调用: input( ); /图书信息录入list( ); /图书浏览信息 search( ); /图书查询信息 revise( ); /图书修改信息 append( ); /图书增添信息 【模块流程图】 main函数 输入a1=a 2=a 3=a 4=a 5=a 0=aelseinput list search revise append exit input函数 创建文件“图书
4、信息”文件创建成功文件创建失败输入 书本名称(name)图书编号(number)作者(writer) 所属类别(category)出版社(publisher)价格(price) 直到输入完N个物品的信息 通过循环,将所输入的内容写入文件中,保存在磁盘里 list函数 读取文件 读取文件成功 读取文件失败通过循环语句,将各个物品的信息情况进行输出 关闭文件 search函数 读取文件读取文件成功 读取文件失败 通过switch语句选择查询方式 在文件中找到 在文件中未找到 输出查询到的图书信息:书本名称(name)图书编号(number)作者(writer)所属类别(category)出版社(p
5、ublisher)价格(price) 关闭文件 revise函数读取文件读取文件成功 读取文件失败 输入要修改的图书名称 在文件中找到 在文件中未找到 输入要修改的图书信息:书本名称(name)图书编号(number)作者(writer)所属类别(category)出版社(publisher)价格(price) 再将修改后的内容写入文件 关闭文件 append函数读取文件读取文件成功 读取文件失败 输入追加图书的数目 在文件中找到 在文件中未找到输入要追加的图书信息:书本名称(name)图书编号(number)作者(writer)所属类别(category)出版社(publisher)价格(p
6、rice) 再将增添的内容写入文件 关闭文件 【程序使用方法】 (1)执行程序,按照界面提示进行选择。输入 “1”,进入图书录入。(2)按照程序提示,分别输入书本名称、图书编号、作者、所属类别、出版社、价格。(注:这里默认为有两本图书,可以通过宏定义进行修改。)(3)输入成功后,按任意键返回主界面。输入“2”,进入图书信息浏览,程序自动将各书本信息情况输出到屏幕上。(4)浏览成功后,按任意键返回主界面。输入“3”,进入图书信息查询,按照提示选择一种查询方式,将所查询的本书信息输出到屏幕上。(5)查询成功后,按任意键返回主界面。输入“4”,进入图书信息修改,程序将要修改的物品信息情况输出到屏幕上
7、。(6)修改成功后,按任意键返回主界面。输入“5”,进入图书信息追加,程序将要追加的图书信息情况输出到屏幕上。(7)追击成功后,按任意键返回主界面。输入“0”,退出程序。2、程序上机调试报告【语法错误及其排除】 (1)宏定义时在末尾处加上了分号,应该不加分号。 (2)scanf中输入地址符号时忘了输入,应该输入地址符号。【算法错误及其排除】 (1)定义图书全程变量时直接赋值为0,导致在第二次读取文件时图书数值多出一倍,应该在取消对全程变量的赋值。(2)在查询图书信息时,if语句的子语句缺少了括号,程序没有提示错误,但实际上程序按if紧接的语句执行,应该加上括号。 3、程序测试错误【测试数据】
8、挪威的森林 村上春树 文学 上海译文出版社围城 钱学森 文学 上海晨光出版公司【输出结果】【收获与体会】 4、源程序代码 #includestdio.h#includestdlib.h#includestring.h#includeconio.h#define N 2typedef struct system char name20; /书本名称 char number20; /书本编号 char writer10; /书本作者 char category10; /所属类别 char publisher20; /出版社 double price; /书本价格BOOK;BOOK a;/定义一个全
9、局变量 void input() /*定义录入函数*/ int i; FILE *fp; system(cls); if(fp=fopen(e:file,w)=NULL) printf(error!n);exit(1); for(i=1;i=N;i+) printf(t请输入书名:); scanf(%s,&); printf(t请输入图书编号:); scanf(%s,&a.number); printf(t请输入作者名:); scanf(%s,&a.writer); printf(t请输入图书的所属类别:); scanf(%s,&a.category); printf(t请输入出版
10、社:); scanf(%s,&a.publisher); printf(t请输入该书的价格:); scanf(%lf,&a.price); fwrite(&a,sizeof(BOOK),1,fp); fclose(fp);void list() /*定义浏览函数*/ FILE *fp; system(cls); if(fp=fopen(e:file,r)=NULL) printf(error!n);exit(1); printf(nnnnnntbooknametnumbertwritertcategorytpublishertpricenn); while(fread(&a,sizeof(BO
11、OK),1,fp)!=0) printf(t%st%st%st%st%st%fn,,a.number,a.writer,a.category,a.publisher,a.price); fclose(fp); printf(nt press any key to continue.); getch();void search_by_name() /*定义按书名查询*/ FILE *fp; int i; int flag=0; BOOK bN; char s220; fp=fopen(e:file,r); if(fp=NULL) printf(file open error!n);e
12、xit(1); for(i=0;iN;i+) fread(&bi,sizeof(BOOK),1,fp); printf(请输入要查询的书名: ); scanf(%s,s2); for(i=0;iN;i+ ) if(strcmp(s2,)=0) flag=1; printf(书名 编号 作者 类别 出版社 价格 n); printf(%st%st%st%st%st%lftnn,,bi.number,bi.writer,bi.category,bi.publisher,bi.price); getch(); break; if(flag=0) printf(cannot
13、 found!); getch(); fclose(fp);void search_by_writer() /*定义按作者名查询*/ int i; int flag1=0; FILE *fp; BOOK bN; char s320; fp=fopen(e:file,r); if(fp=NULL) printf(file open error!n);exit(1); for(i=0;iN;i+) fread(&bi,sizeof(BOOK),1,fp); printf(请输入要查询的书的作者: ); scanf(%s,&s3); for(i=0;iN;i+ ) if(strcmp(s3,bi.w
14、riter)=0) flag1=1; printf(书名 编号 作者 类别 出版社 价格 n); printf(%st%st%st%st%st%lftnn,,bi.number,bi.writer,bi.category,bi.publisher,bi.price); getch(); break; if(flag1=0) printf(cannot found!); getch(); fclose(fp); void search() /*定义查询函数*/ int chax; system(cls); /*进行清屏*/ printf(tt*n); printf(开始查询n);
15、printf(ttt1-search_by_namen); printf(ttt2-search_by_writern); printf(ttt0-exitn); printf(tt*n) ; printf(tt请选择你想要的查询方式:); scanf(%d,&chax); switch(chax) case 1:search_by_name();break; case 2:search_by_writer();break; case 0:return; void revise() /*定义修改函数*/ int i,k; char s120; BOOK bN; FILE *fp; system
16、(cls); if(fp=fopen(e:file,w+)=NULL) printf(error!); exit(1); for(i=0;iN;i+) fread(&bi,sizeof(BOOK),1,fp); printf(tt欢迎进入修改界面n); printf(nnntt请输入所要修改的图书名:n); getchar(); gets(s1); for(i=0;iN) printf(未找到!); exit(0); else printf(tt请输入 书名 编号 作者 类别 出版社 价格 n); scanf(ttttttt%20st%20st%10st%10st%20st%lfn,bi.na
17、me,bi.number,bi.writer,bi.category,bi.publisher,bi.price); for(i=0;iN;i+) fwrite(&bi,sizeof(BOOK),1,fp); fclose(fp); printf(修改成功!); void append() /*定义追加函数*/ int i,n; BOOK a; FILE *fp; system(cls); if(fp=fopen(e:file,a)=NULL) printf(error!n);exit(1); printf(nnt请输入追加图书的个数:); scanf(%d,&n); for(i=0;in;i
18、+) printf(t请输入追加图书书名:); scanf(%s,&); printf(t请输入追加图书的编号:); scanf(%s,&a.number); printf(t请输入追加图书的作者名:); scanf(%s,&a.writer); printf(t请输入追加图书的所属类别:); scanf(%s,&a.category); printf(t请输入追加图书出版社:); scanf(%s,&a.publisher); printf(t请输入追加图书的价格:); scanf(%lf,&a.price); fwrite(&a,sizeof(BOOK),1,fp); fclose(fp); int main() int a; do system(cls); printf(nnnnnt图书信息管理系统ttttn); printf(ttt*n); printf(ttt1 -图书信息录入n); printf(ttt2 -图书信息浏览n); printf(ttt3 -图书信息查询n); prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生态修复工程测绘与地质环境治理合同
- 水务工程项目建设合同范本参考
- 科技园区厂房买卖合同范本
- 旅游景区场地租赁安全管理及保障协议
- 高端西餐厅股权买卖与品牌合作运营合同
- 社交电商与裂变式增长的新型零售模式-洞察阐释
- 车辆质押典当与绿色出行解决方案合同
- 茶园种植与茶叶加工一体化承包合同
- 个人车辆抵押权登记与抵押权质押合同样本
- 餐饮店消防安全管理及应急预案协议
- 最简单装修合同协议书
- DB32/T 4622.4-2023采供血过程风险管理第4部分:血液成分制备和供应风险控制规范
- 2025年供应链管理专业考试试题及答案
- 消防监护人考试题及答案
- GB 35181-2025重大火灾隐患判定规则
- 2025山东能源集团营销贸易限公司招聘机关部分业务人员31人易考易错模拟试题(共500题)试卷后附参考答案
- 2024年漳州市招聘中小学幼儿园教师真题
- 汉代文化课件图片高清
- 2025河南中考:政治必背知识点
- 互联网公司网络安全工程师入职培训
- 【四川卷】【高二】四川省成都市蓉城名校联盟2023-2024学年高二下学期期末联考数学试题
评论
0/150
提交评论