




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上苏州科技大学二一六 二一七学年第一学期电子与信息工程系课程设计报告书课程名称: 图书信息系统 班 级: _ 电子1612班_ 学 号: _ 姓 名: 张立进_ 指导教师: 任建平_ 二一七年三月1. 题目:图书信息系统的设计与实现2.功能:(1)每一条记录包括一个图书编号,图书名,作者名,出版社等。(2)图书信息浏览功能:完成全部图书信息记录的显示和浏览,包括排序后、修改后、插入后、删除后信息改变的浏览。(3)图书信息录入功能:完成对“图书编号,图书名,作者名,出版社”信息的录入。(4)图书信息修改功能:对图书信息进行修改并保存。(5)图书信息查询功能:通过输入图书编
2、号查找该图书,并显示该图书所有信息。(6)图书信息插入功能:通过输入某本图书编号进行图书信息的插入并保存。(7)图书信息删除功能:完成删除图书的信息的功能。(8)图书信息排序功能:按图书编号对图书进行从小到大重新排序。 (9)图书信息帮助功能:能够给用户提供所有函数的帮助功能,并作相应得介绍。 3.要求:(1)整个系统均用C语言实现;(2)利用指针、链表来实现图书信息的数据结构设计;(3)系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;(4)系统的各个功能模块都用函数的形式来实现;(5)可以将图书信息保存在文件中。(6)可以将图书信息从文件中读取出来。4.设计内容:整个系统除了
3、主函数外,另外还有13个函数,包括主函数在内,以实现9大功能:图书信息浏览功能,图书信息录入功能,图书信息修改功能,图书信息查询功能, 图书信息插入功能,图书信息删除功能,图书信息排序功能,图书信息帮助功能,退出系统功能。其功能流程图如下所示:stuct book结构体void help()帮助void allinformation()图书信息浏 览主函数mainmainmenuvoidinput()图书信息录入void editbook()图书信息修改void querybook()图书信息查询void deletebook()图书信息删除void insertbook() 图书信息插入vo
4、id sortbook() 图书信息排序 图1 主菜单选择功能流程图各个函数的详细设计说明分别如下:4.1创建主函数void main()该函数通过选择各选项,完成相应的功能,当选择退出选项时,退出循环,具体的选择项有:【1】图书信息浏览功能,【2】图书信息录入功能,【3】图书信息修改功能,【4】图书信息查询功能, 【5】图书信息插入功能,【6】图书信息删除功能,【7】图书信息排序功能,【8】图书信息帮助功能,【9】退出系统功能。4.2结构体struct定义了一个图书信息的结构体,包括 char author20;char bookname20;char publisher20;int num
5、;等。操作流程: 1进入主界面选择图书信息浏览 2输出所有已存储的所有图书信息 3退回主界面 4.3编写浏览数据记录函数 void allinformation()该函数可以通过选择相应的功能对已经输入并保存的所有的图书信息进行浏览,并且退出后还能保存记录,以备下次浏览时信息没有丢失。操作流程: 1进入主界面选择图书信息浏览 2输出所有已存储的所有图书信息 4.4编写录入数据记录函数inputbook()该函数可以添加新的图书信息,并且在退出后可以自动保存,当重新浏览所有图书信息时,新添加的图书信息也在其中,且通过if (y!=1)来判别是1录入,0不录入,来实现是否继续录入的功能。操作流程:
6、 1进入录入界面 2输入相关信息(图书编号、名字、作者名、出版单位)保存退出。 4.5编写修改数据记录函数editbook()该函数可以完成对已有的图书信息“图书编号,图书名,作者名,出版社”进行重新修改并加以保存,实现图书信息的修改,为以后的保存函数,浏览函数,查询函数,排序函数,删除函数,修改函数等功能的实现提供了基础。操作流程: 1进入修改界面 2修改所要修改的图书的编号、作者名等相关信息。 4.6编写查询数据记录函数querybook()该函数运用for语句实现对图书编号信息的查找输出,并显示到屏幕上,实现图书信息的查找功能。操作流程: 1进入查询界面 2通过输入图书编号输出显示指定图
7、书匹配信息 4.7编写插入数据记录函数insertbook()通过void insertbook()插入函数来实现插入,先清屏system(cls);然后通过输入插入前图书编号后进行新图书信息的输入最终图书信息插入功能,退出后自动保存可以再次浏览。操作流程: 1进入删除界面 2输入所要删除的图书编号后自动删除。 4.8编写删除数据记录函数deletebook() 该函数通过void deletebook()删除函数来实现图书信息的删除,通过输入图书编号查找到该图书之后删除。退出后再次浏览所有图书信息时便看不到已删除的图书信息。操作流程: 1进入插入界面 2输入所要插入位置的图书编号,然后插入新
8、图书的相关信息。 4.9编写数据记录排序函数 void sortbook()该函数定义了i,j运用冒泡法对图书信息进行排序,对图书的编号按照从小到大的顺序来排序的。最好显示已排序好的的图书信息。操作流程: 1进入插入界面 2输入所要插入位置的图书编号,然后插入新图书的相关信息。 3退回主界面4.10编写帮助函数void help()该函数是简单的帮助功能,介绍了各个模块的功能,使用户快速了解该系统的功能作用。具体代码如下:void help()printf(t|帮助|n); printf( 下方显示的是您所需的帮助信息:n);printf( n); printf( 如果选择1,则进入第一个选项
9、(1).图 书 信 息 浏 览:完成全部图书信息记录的显示和浏览,包括排序后、修改后、插入后、删除后信息改变的浏览。n);printf( 如果选择2,则进入第二个选项(2).图 书 信 息 录 入:完成对图书号,图书名,作者名,出版社信息的录入。n);printf( 如果选择3,则进入第三个选项(3).图 书 信 息 修 改:对图书信息进行修改并保存。n); printf( 如果选择4,则进入第四个选项(4).图 书 信 息 查 询:通过输入图书编号查找该图书,并显示该图书所有信息。n);printf( 如果选择5,则进入第五个选项(5).图 书 信 息 插 入:通过输入某本图书编号进行图书信
10、息的插入并保存。n);printf( 如果选择6,则进入第六个选项(6).图 书 信 息 删 除:完成删除图书的信息的功能n); printf( 如果选择7,则进入第八个选项(7).图 书 文 件 排 序:按图书编号对图书进行从小到大重新排序。n);printf( 如果选择9,则进入第九个选项(8).帮 助 功 能:提供一些帮助给用户使用,以备更好的使用。n);printf( 如果选择0,则进入第零个选项(9).退 出 系 统:用来退出系统,以备下次再使用。n);printf(nn 请按任何键返回,谢谢!n);fflush(stdin); getchar();5. 调试分析 在此次的C语言程序
11、设计中,我的程序开始有很多的错误,例如error C2440: = : cannot convert from int to int 10,是我忽略不能把整型转换成数组。插入功能出现插入信息后却浏览不到,后来在插入后面加了一段保存文件的代码后,插入功能才得以实现,还有因为我的粗心把写文件写成了读文件导致删除功能无法实现。经过我和其他同学反复的检查反复的修改,最终完成了。6. 源程序#include #include #include#include #define NULL 0#define a 100int now=0;struct book char author20; /*作者名*/ c
12、har bookname20; /*图书名*/ char publisher20; /*出版单位*/char day100;/*出版时间*/float money;/*价格*/ int num; /*图书编号*/;struct book ba; /*系统主菜单*/void mainmenu() FILE *fp1,*fp2; int i; system(cls); printf (n温馨提示:为保证您的操作得到保存,请按正常顺序退出系统_n); printf(nn); printf(tt +n); printf(tt | | 欢迎使用图书信息管理系统 | | n); printf(tt | |
13、 n); printf(tt | | n); printf(tt | 1图书信息浏览 | n); printf(tt | | n); printf(tt | 2图书信息录入 | n); printf(tt | | n); printf(tt | 3图书信息修改 | n); printf(tt | | n); printf(tt | 4图书信息查询 | n); printf(tt | | n); printf(tt | 5图书信息插入 | n); printf(tt | | n); printf(tt | 6图书信息删除 | n); printf(tt | | n); printf(tt | 7
14、图书信息排序 | n); printf(tt | | n); printf(tt | 8帮助 | n); printf(tt | | n); printf(tt | 9退出系统 | n); printf(tt | | n); printf(tt +n); printf (请输入您的选择:);/*library.txt里面读出now的值*/ if(fp2=fopen(D:library.txt,rb)!=NULL) fscanf(fp2,%d,&now); fclose(fp2); /*b.txt里面读出一组数据的值*/ if(fp1=fopen(D:b.txt,rb)!=NULL) for(i
15、=0;inow;i+) fread(&bi,sizeof(struct book),1,fp1); fclose(fp1); /*图书信息浏览*/void allinformation() int i; char turn;printf(t|图书信息浏览|n); printf(浏览所有图书信息n); printf(图书编号t图书名tt作者名tt出版单位tt出版时间tt价格nn); for(i=0;inow;i+) printf(%d tt%s tt%s tt%s tt%s tt%s nn,bi.num,bi.bookname,bi.author,bi.publisher bi.day bi.m
16、oney); printf(t按任意键返回主菜单.); /*返回主菜单*/ turn=getch(); mainmenu();/*图书信息录入*/void inputbook() printf(t|图书信息录入|n);int i=now; FILE *fp1,*fp2; char turn,judge;doprintf(请输入添加第%d本图书的信息:n,i+1);printf (n请输入图书名:n); scanf(%s,bi.bookname); printf (n请输入图书编号:n); scanf(%d,&bi.num); printf (n请输入作者名:n); scanf(%s,bi.au
17、thor); printf (n请输入出版单位:n); scanf(%s,bi.publisher); printf (n请输入出版时间:n); scanf(%s,bi.day);printf (n请输入价格:n); scanf(%s,bi.money);i+; now=i;/*library.txt里面写入now的值*/ if(fp2=fopen(D:library.txt,wb)!=NULL) fprintf(fp2,%d,now); fclose(fp2); printf(是否继续添加?(y/n)n); judge=getch(); while(judge!=n);/*book.txt里
18、面写入一组数据的值*/ if(fp1=fopen(D:b.txt,wb)!=NULL) for(i=0;inow;i+) fwrite(&bi,sizeof(struct book),1,fp1); fclose(fp1); elseprintf(can not open the filen); printf(t请按任意键返回.); /*返回主菜单*/ turn=getch(); mainmenu();/*图书信息修改*/ void editbook() FILE *fp1; int i,e_num,j;char e_author10,e_publisher10,e_bookname10,ju
19、dge,turn;struct book ebook;printf(t|图书信息修改|n);doprintf(请输入需要修改的图书编号n); scanf(%d,&ebook.num); for(i=0;inow;i+) if(ebook.num=bi.num)/*如果编号相同,说明图书存在,可以进行修改*/ printf(n图书编号:n); scanf(%d,&e_num); printf(n图书名:n); scanf(%s,e_bookname); printf(n作者名:n); scanf(%s,e_author); printf(n出版单位:n); scanf(%s,e_publishe
20、r);printf(n出版时间:n); scanf(%s,e_day);printf(n价格:n); scanf(%s,e_money); bi.num=e_num; strcpy(bi.bookname,e_bookname); strcpy(bi.author,e_author); strcpy(bi.publisher,e_publisher);strcpy(bi.publisher,e_day);strcpy(bi.publisher,e_mony); printf(n 图书信息修改成功,请继续选择!n); printf(nn); break; if(i=now)printf(没有此图
21、书n);printf(是否继续修改下本图书?(y/n)n);judge=getch(); /*b.txt里面写入一组数据的值*/ if(fp1=fopen(D:b.txt,wb)!=NULL) for(j=0;jnow;j+) fwrite(&bj,sizeof(struct book),1,fp1); fclose(fp1); else printf(can not open the filen); while(judge!=n);printf(t按任意键返回主菜单.); turn=getch();mainmenu(); /*图书信息查询*/void querybook() int numb
22、er,flag=1,i;char judge,turn;printf(t|图书信息查询|n);printf(请输入要查询的图书编号: );scanf(%d,&number);for(i=0;inow;i+)if(number=bi.num) flag=0;printf(图书编号t图书名tt作者名tt出版单位tt出版时间tt价格nn);printf(%d tt%s tt%s tt%s tt%s t%s nn,bi.num,bi.bookname,bi.author,bi.publisher .bi.day .bi.money );break; if (flag!=0)printf(不能找到该图书
23、信息!);printf(t按任意键返回主菜单.); turn=getch();mainmenu();/*图书信息插入*/void insertbook() FILE *fp2,*fp1;int i,j,h;char turn,judge;struct book ib;printf(t|图书信息插入|n);do h=now;printf(请输入插入之前的图书编号n);scanf(%d,&ib.num);for(i=0;i=i;j-)bj+1=bj;printf (n请输入图书名:n); scanf(%s,bi.bookname); printf (n请输入图书编号:n); scanf(%d,&b
24、i.num); printf (n请输入作者名:n); scanf(%s,bi.author); printf (n请输入出版单位:n); scanf(%s,bi.publisher); printf (n请输入出版时间n); scanf(%s,bi.day); printf (n请输入价格:n); scanf(%s,bi.money); break;if(i=h) printf(没有本图书n); printf(是否继续插入?(y/n)n);judge=getch(); while(judge!=n);/*library.txt里面读出now的值*/ if(fp2=fopen(D:librar
25、y.txt,wb)!=NULL) fprintf(fp2,%d,now); fclose(fp2); /*b.txt里面读出一组数据的值*/ if(fp1=fopen(D:b.txt,wb)!=NULL) for(i=0;inow;i+) fwrite(&bi,sizeof(struct book),1,fp1); fclose(fp1); printf(t按任意键返回主菜单.); turn=getch(); mainmenu();/*图书信息删除*/ void deletebook() int number;char turn;int t=now;int i;FILE *fp2,*fp1;s
26、ystem(cls); /*清屏*/printf(t|图书信息删除|n);printf(n 请输入要删除的图书编号: );scanf(%d,&number);for (i=0;inow;i+)if(number=bi.num)for(;inow-1;i+)strcpy(bi.bookname,bi+1.bookname);bi.num=bi+1.num;strcpy(bi.publisher,bi+1.publisher);strcpy(bi.author,bi+1.author);printf(n 删除图书文件成功!n);now-;break;if(i=t)printf(n 对不起!文件不能
27、找到!n);/*library.txt里面读出now的值*/ if(fp2=fopen(D:library.txt,wb)!=NULL) fprintf(fp2,%d,now); fclose(fp2); /*b.txt里面读出一组数据的值*/ if(fp1=fopen(D:b.txt,wb)!=NULL) for(i=0;inow;i+) fwrite(&bi,sizeof(struct book),1,fp1); fclose(fp1); elseprintf(can not open the filen);printf(t按任意键返回主菜单.); turn=getch(); mainme
28、nu();/*图书信息排序*/void sortbook() int i,j; char turn; struct book cb;printf(t|图书信息排序|n); for(j=0;jnow-1;j+) for(i=0;ibi+1.num) cb=bi; bi=bi+1; bi+1=cb; printf(图书排序(按照图书编号从小到大排序)n); printf( 编号tt图书名称tt图书作者tt图书出版社tt出版时间tt价格n); for(i=0;inow;i+) printf( %dtt%sttt%sttt%sttt%sttt%snn,bi.num,bi.bookname,bi.aut
29、hor,bi.publisher,bi.day ,bi.money); printf(t按任意键返回主菜单.); turn=getch(); mainmenu();/*帮助*/void help()printf(t|帮助|n); printf( 下方显示的是您所需的帮助信息:n);printf( n); printf( 如果选择1,则进入第一个选项(1).图 书 信 息 浏 览:完成全部图书信息记录的显示和浏览,包括排序后、修改后、插入后、删除后信息改变的浏览。n);printf( 如果选择2,则进入第二个选项(2).图 书 信 息 录 入:完成对图书号,图书名,作者名,出版社信息的录入。n)
30、;printf( 如果选择3,则进入第三个选项(3).图 书 信 息 修 改:对图书信息进行修改并保存。n); printf( 如果选择4,则进入第四个选项(4).图 书 信 息 查 询:通过输入图书编号查找该图书,并显示该图书所有信息。n);printf( 如果选择5,则进入第五个选项(5).图 书 信 息 插 入:通过输入某本图书编号进行图书信息的插入并保存。n);printf( 如果选择6,则进入第六个选项(6).图 书 信 息 删 除:完成删除图书的信息的功能n); printf( 如果选择7,则进入第八个选项(7).图 书 文 件 排 序:按图书编号对图书进行从小到大重新排序。n);
31、printf( 如果选择9,则进入第九个选项(8).帮 助 功 能:提供一些帮助给用户使用,以备更好的使用。n);printf( 如果选择0,则进入第零个选项(9).退 出 系 统:用来退出系统,以备下次再使用。n);printf(nn 请按任何键返回主菜单,谢谢!n); getchar();/*结束*/*主程序*/void main() int n;mainmenu();scanf(%d,&n);while(n)switch(n)case 1:system(cls);allinformation();break;case 2:system(cls);inputbook();break;case 3:system(cls);editbook(); break;case 4:system(cls);querybook();break;case 5:system(cls);insertbook();break;case 6:system(cls);d
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 假山施工合同承包书
- 房屋建筑工程保修合同协议
- 影视制作与发行合作合同
- 三方消防施工合同
- 苗木种植土地承包合同
- 加气块砌筑合同协议书
- 劳务中介公司服务合同
- 温州浙江温州瑞安市人民医院招聘合同制工作人员笔试历年参考题库附带答案详解
- 法语独家商务代理合同
- 广州华商职业学院《典型企业云平台搭建》2023-2024学年第二学期期末试卷
- 家庭急救知识(异物卡喉的急救)共45张课件
- 机台异常处理规定
- 2021年苏州市职业大学职业适应性测试试题及答案解析
- DBJ∕T 13-253-2016 福建省耐腐蚀混凝土应用技术规程
- 电镀废水中各种重金属废水处理反应原理及控制条件
- 数据结构英文教学课件:chapter3 Linked Lists
- 《汽车文化》全套教案
- 会计英语专业词汇全
- 拆除工程检验批质量检验记录
- 怎样把握文章线索
- LED与金卤灯对比(共4页)
评论
0/150
提交评论