版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品一、设计任务书3二、本组课题及本人任务 3三、程序功能简介4四、主体内容41 .设计分析42 .程序结构53 .各模块的功能及程序说明 54 .源程序65 .操作方法.176 .试验结果187 .设计体会22五、附录231 .流程图 232 .过程列表 26一、设计任务书1. 目的1 )复习、巩固 c 语言的基础知识,进一步加深对c 语言的理解和掌握。2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。3 )培养学生在项目开发中团队合作精神、创新意识及能力。2. 要求:1) 对
2、系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理。2)系统设计要实用,编程简练,可用,功能全面。3 )说明书、流程图要清楚。4 )记录设计情况(备查,也为编写设计说明书作好准备) 。5 ) 要求采用模块化程序设计方法, 及锯齿型书写格式, 要求上机调试通过和按设计报告格式。可编辑6 )设计上交内容:设计报告一份(按格式书写) ;源程序一份,能编译成可执行文件并能正常运行。二、本组课题及本人任务课题:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功
3、能:1. 系统以菜单方式工作。2. 图书信息录入功能(图书信息用文件保存) 输入。3. 图书信息浏览功能输出。4. 查询和排序功能:(至少一种查询方式)算法。a. 按书名查。b.按作者名查询。本人任务:负责设计和编写图书信息管理系统的修改图书信息部分。三、程序功能简介本系统是以 visual c+ 6.0 环境下用 c 语言开发的一个图书管理系统。本系统具有图书信息录入、浏览、删除、修改、查找(包括按书名、 作者查找) 功能。 其中图书信息包括登录号、 书名、 作者名、分类号、出版单位、出版时间、价格,并且对信息以文件形式储存。另外本系统具备实用性的同时代码逻辑谨慎清晰易懂,且界面美观。四、主
4、体内容1 设计分析本系统共分为一个主页面模块(主函数部分) ,五个功能模块(功能函数)分别为图书信息录入、图书信息浏览、图书信息查询、 图书信息删除、图书信息修改。设计时应该先写好主函数、定义 好全局变量和功能函数,再对五个功能函数进行设计。在每个功 能函数和主函数应中加入控制条件使用户可以随时退出系统,并 在用户输入指令错误的时候给予提醒和退出选项。小组中的五个 人分别承担一个功能模块进行设计。并在每个人设计完成后通过 主函数进行链接调试正确后方为完成。2 程序结构(流程图)4信息删除输出信息是输入书名输入作者按作者查找按书名查找输入删出信息代号输出删除后的信息返回主菜返回主菜单3 .各模块
5、的功能及程序说明a、录入模块:本模块主要执行信息录入功能。b、浏览模块:本模块主要是执行把已有信息输出浏览功能。c、查询模块:本模块主要是执行按书名和按作者名查找图书信 息的功能。d 、删除模块:本模块主要执行删除图书信息的功能。e、修改模块(本人设计模块):本模块主要执行图书信息修改功能。在用户选择该功能后。首先,系统会弹出已存在信息列表并让用户选择所要修改的信息项目。 然后, 当用户选定要修改的信息后会弹出信息目录,用户需按顺序依次修改信息内容。最好当所有信息项目都修改完成之后, 按回车键会在窗口上输出修改后的内容。4 . 源程序#include#include#include#inclu
6、de#define max 100struct studentint num;/* 登录号 */char name100;/* 书名 */char author100;/* 作者名 */char fn100;/* 分类号 */char place100;/* 出版单位 */char day100;/* 出版时间 */float money;/* 价格 */ stumax;main()/* 主函数 */void input();/* 输入 */void display();/* 输出*/void find();/* 查找 */void modify();/*删除*/void change();/
7、* 修改 */ int n;for(;)printf(n);printf( 肝);printf(肝);printf( 欢 迎 来 到 图 书 信 息 管 理 系 统肝);printf(肝);printf(n);n);printf(n);printf(n);printf(n);printf(n);printf(n);printf(n);printf(n);printf(n);printf(printf(n);主菜单1.图书信息录入 2. 图 书 信 息 浏 览 3. 图 书 信 息 查 询 4. 图 书 信 息 删 除 printf( 5. 图 书 信 息 修 改 n);printf(n);pr
8、intf( 6. 退 出 系 统n);printf(n);printf( nn);printf( 请输入选择项(1-6):);scanf(%d,&n);printf(nnnn);if(n0&n7)switch(n)case 1:input();break;case 2:display();break;case 3:find();break;case 4:modify();break;case 5:change();break;case 6:printf(n);printf(n);printf( 谢 谢 使 用 !n);printf( 再 见 !n);printf(n);printf( n);e
9、xit(0);elseprintf( n);printf(n);printf( 输 入 错 误 !n);printf( 请 退 出 !肝);printf(肝);printf( n);break;void find()/* 查找 */file *fp;int i;int choose,t;char ans100;doprintf(1. 按书名查找n);printf(2. 按作者名查找n);printf( 返回主菜单(其他数字)n);scanf(%d,&choose);if(choose=1)printf( 输入所查书名: n);scanf(%s,ans);t=-1;if(choose=1)for
10、(i=0;imax;i+) if(strcmp(ans,)=0)t=i;fp=fopen(student,rb);for(i=0;fread(&stui,sizeof(structstudent),1,fp)=1;i+)printf(%d %s %s %s %s %s %fn,stut.num,,stut.au thor,stut.fn,stut.place,stut.day,stut.money);if(t=-1) printf( 不存在该信息 n);else if(choose=2)printf( 输入所查作者名: n);scanf(%s,ans);t=
11、-1;if(choose=2)for(i=0;imax;i+)if(strcmp(ans,stui.author)=0) t=i;fp=fopen(student,rb);for(i=0;fread(&stui,sizeof(structstudent),1,fp)=1;i+)printf(%d %s %s %s %s %s %fn,stut.num,,stut.autho r,stut.fn,stut.place,stut.day,stut.money);if(t=-1) printf( 不存在该信息 n);else return;while(1);void display
12、()/* 输出 */file *fp;int i;fp=fopen(student,rb);printf( n);printf( 图书列表 n);printf(n);printf( 登录号书名 作者名 分类号 出版单位 出版时间价格 n);printf(n);for(i=0;fread(&stui,sizeof(struct student),1,fp)=1;i+)printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);fclose(
13、fp);void input()/* 输入 */file *fp;int n;fp=fopen(student,ab+);for(n=0;nmax;n+)printf(n=%d 输入序号 n( 当输入 n=-1 时,返回 ),n=,n+);scanf(%d,&n);if(n=-1)fclose(fp);return;elseprintf( 请输入登录号书名 作者名 分类号 出版单位 出版时间 价格 n);scanf(%d%s%s%s%s%s%f,&stun.num,,stun.author,stun.fn,stun.place,stun.day,&stun.money);fw
14、rite(&stun,sizeof(struct student),1,fp);fclose(fp);void modify()/* 删除 */file *fp;int i,flag,n,s,j;fp=fopen(student,rb+);rewind(fp);printf( 图书列表 n);printf(n);printf( 登录号书名 作者名 分类号 出版单位 出版时间价格 n);printf(n);for(i=0;fread(&stui,sizeof(struct student),1,fp)=1;i+)printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui
15、.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);printf(n);n=i;printf( 输入待删除图书号:n);scanf(%d,&s);for(i=0,flag=1;flag∈i+)if(s=stui.num)for(j=i;jn-1;j+)stuj.num=stuj+1.num;strcpy(,stuj+1.name);strcpy(stuj.author,stuj+1.author);strcpy(stuj.fn,stuj+1.fn);strcpy(stuj.place,st
16、uj+1.place);strcpy(stuj.day,stuj+1.day);stuj.money=stuj+1.money;flag=0;if(!flag)n=n-1;elseprintf( 没有此号 n);fp=fopen(student,wb);for(i=0;in;i+)fwrite(&stui,sizeof(struct student),1,fp);fclose(fp);fp=fopen(student,r);printf( 图书列表 n);printf(n);printf( 登录号书名 作者名 分类号 出版单位 出版时间价格 n);printf(n);for(i=0;in;i+
17、)fread(&stui,sizeof(struct student),1,fp);printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);printf(n);fclose(fp);void change()/* 修改 */file *fp;int i,num,n;int flag=0;fp=fopen(student,rb);printf( n);printf( 图书列表 n);printf(n);printf( 登录号书名 作者名
18、 分类号 出版单位 出版时间价格 n);printf(n);for(i=0;fread(&stui,sizeof(struct student),1,fp)=1;i+)printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);fclose(fp);printf( 请输入要修改的图书号:);scanf(%d,&num);for(i=0;i=max;i+)if(stui.num=num)printf( 图书列表 n);printf(n);p
19、rintf( 登录号书名 作者名 分类号 出版单位 出版时间价格 n);n);printf( printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);nn);printf(n=i;flag=1;break;if(flag=0)printf( n);printf(输入错误 !n);printf(请返回 !n);printf( n);return;printf(nnn);fp=fopen(student,rb+);fseek(fp,n*s
20、izeof(struct student),0);printf( 登录号书名 作者名 分类号 出版单位 出版时间价格 n);scanf(%d%s%s%s%s%s%f,&stun.num,,stun.author,st un.fn,stun.place,stun.day,&stun.money);fwrite(&stui,sizeof(struct student),1,fp);fclose(fp);fp=fopen(student,rb);printf( 图书列表 n);printf(n);printf( 登录号书名 作者名 分类号 出版单位 出版时间价格 n);printf
21、(n);for(i=0;fread(&stui,sizeof(struct student),1,fp)=1;i+)printf(%6d %8s %8s %8s %8s %8s %8.2fn,stui.num,,stui.author,stui.fn,stui.place,stui.day,stui.money);printf(nn);fclose(fp);5 操作方法( 流程 )第一步:双击打包好的.exe程序,打开程序。第二步:根据窗口提示内容作出选择。第三步:根据弹出的二级菜单作出选择。第四步:根据所选内容进行相应的操作。第五步:操作完毕,根据提示返回主菜单会直接退出该
22、系统6 .试验结果a、图书信息录入:数据输入:青输入选择项cl-gdh-0输入序号后(当顼)空t时.返回3nn青输大登录号书老能者名分类号出版单位出版时间价格p.cyutuan rao 1innet 19921162班入序号9当电=-1时返回,n=2青输入登录号 书包松者名分类号出版单位出版时间价格zxit iji tan2he iji ing2000222蹩霭嗔黔s瞑瑞鹭味单位出版时间价格plionyyuan 2斗3cliong2008333卜=4输入序号nt当输入n=t时.返回rn=t数据输出:移移处派 图书列表党外中书名作者名分类号出版单位出版时间价格1曰nli-ao1inner1992
23、11q.0o2 _* 1 1tan2be 1j ins20bqi 222 .前3hongguanwy32088333.0sb、图书信息浏览输入数据:青输入选择项数据输出:钏 米米米普q 奈米 沙米米 图书列表翅f 口 宣示f书名作者名j:二月冲四空上睡日!!l或格1cyu当anhao1innet11992110.002xit i j itan2be i jing2900222,003honuanay3chong2008333.00c、图书信息查询输入数据:睛输入选择项6) =3数字)1输入所查书名:ciiy3n输出数据:1 cpuyanhao1innep1972110.00ss01 cynyi
24、antiao1inner1992lit) .0000001 cyuyanhao1inne1992110.q0b00q慰i蠹蜷字,d、图书信息删除:输入数据:睛输入选择项uy x4图书列表沿*=1 f=1 .小.一书名作者名分类号出版单日出版时间佻格1cyuyznhaniinnei*1?2110.b02x it i j itan2be ij in sr2300222.002liongguan3clhong-aaas333.00蒯人待删除图书号:输出数据:图三列表曾系百一一本m-一互一飞美京一句而国山一无m而鬲林格1 ct/uvnhaa1inner1992110.003 honyg-unay3ch
25、onff2009333 w目e、图书信息修改输入数据:请输入选择项=5行移移您亲咫兴米移 图书列表登录号书名吃手fe_分类号出版誓出版时间_芈格1gyuyanhao1inner1992110.003honcf9nan2y3333.00请输入要修改的图书号门图书列表登录号作者名分手亨出版单位出版时日价格3_lionsrunnsy3g linns20的33*,0口登帚耳书名作者名分类号出版单位出版时间价格2hgsy2clionj j 3 cq 1990333=4输入序号巾当输入.71时.返回.nt信息浏览:请输入选择项1-6x2阳 图书列表7t_ =1 口 隹手弓书名作者名分类号出版单位出版时间价
26、格3we iuan3be ij iny18s8333.8017yyy1*1990ill.09信息查询:请输八选择项613谶i蠹心的bjbj信息删除:3 weisfuan ui3 he 1jing1s8s 333.061 cyy刃1bj 1”阴 111,00输入待删除图书号二 图书列表日夏屋一率三一一相看三一不奖耳s而营区一血扇瓦一 3格1“99y1bj 1990111 ,00信息修改:诙克冰央冰诙竣诙蛟必收诙海夫 请榆人选择项s-6t5双统将双没送? 图书列表登录号书名作者名分类号出版里位出版时间价格工3寸少y1请输入要修改的图书号壮 图书列表1990111,00_书名作者名分类号出版单4出版
27、时间价格亘%风,1cyyyy11?0111.00且求f 1书名 cy作者名分类号v1图书冽表_出版单位出版时间价格 1999111登录号书名_不需三分类号一赢舜一出版时间价格1y11999111.98系统退出:情输入选择项区谢谢使用t再见,区米米兴兴米米press ahu leu to cent inue2 .主要过程列表a、程序开头定义:#include : #include 是编译预处理指令,就是在编译前 将stdio.h这个文件里的函数都添加到你写的cpp文件中。#include :在编译前c语言里面关于字符数组的函数定 义的头文件,就是在编译前将stdio.h这个文件里的函数都添加到你
28、 写的cpp文件中。#include:在编译前将stdlib.h 这个文件里的函数都添加到你写的cpp文件中。#include:在编译前将conio.h这个文件里的函数都添加到你写的cpp文件中。#define max 100: #define 就是在编译器编译之前对代码进行字符串替换,即是把max换成100.b、struct student结构体,定义的结构体是整个程序的共用体,即是该结构体可在每个模块中不从新定义就使用。c、main()主函数模块主要变量、函数:void input():自定义输入函数。void display。:自定义输出函数。void find():自定义查找函数。vo
29、id modify():自定义删除函数。void change():自定义修改函数。for():循环函数。switch():选择函数,判断用户输入的数字进行功能选择exit():退出循环函数。d、void input()输入模块主要变量、函数:file *fp :声明fp是指针用来指向file类型的对象。fopen () : fopen函数用来打开一个文件。printf():输出函数,以程序员规定数据类型把数据输出到窗口上。scanf():输入函数,以程序员规定的的数据类型输入数据。if() else:条件判断函数。fclose():关闭文件的函数,功能为关闭打开的文件,以防止数据 丢失。fwrite():向文件写入一个数据块。sizeof():以字节形式给出了其操作数的存储大小。for():循环函数。e、void display。输出函数主要变量、函数:file *fp :声明fp是指针,用来指向file类型的对象。fread ():在文件中读出一个数据块赋值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 招标投标流程优化问题解析
- 跨境出租车租赁服务协议
- 在线票务网站管理办法
- 乙供物资库存周转率优化策略
- 广州市电信服务代建制管理法则
- 学校园区道路改造合同模板
- 家政服务博雅聘用合同
- 婚礼策划现场制片服务合同
- 制服破损更换政策
- 城市燃气管道铺设定向钻施工合同
- 《中国电力之发展》课件
- 《白兰地酿造工艺》课件
- 《特种设备重大事故隐患判定标准》培训
- 岗位股合同范例
- 《建设工程施工合同(示范文本)》(GF-2017-0201)
- 网络与信息安全管理员(高级技师)资格理论考试题及答案
- 公共关系服务合同
- 期中(试题)-2024-2025学年人教PEP版(2024)英语三年级上册
- 电镀工艺-电镀镍
- 幼小衔接中幼儿园与小学合作的国内外研究现状分析
- 工厂常用英语
评论
0/150
提交评论