1、图书管理系统 C语言实训报告基础编程能力实训报告题 目: 图书管理系统 专业年级: 计算机科学与技术2013级 姓 名: 学 号: 201年0月2日1 实训题目与要求、1 问题描述此系统可以完成对书籍信息的输入、删除、修改、排序等功能,提高图书管理效率,对图书进行合理规划与安排。1.2 功能要求程序输出主菜单(如下),提示用户选择操作 欢迎使用图书管理系统* 主菜单 * * 输入 2 查询 删除 4 排序 5 显示 6 修改 录入 8 退出请选择1/2/3/4/5/7/8: 表1 主菜单在主菜单中选择1,要求输入图书信息,包括书本序号,书本名字,作者名字,书的价格;在主菜单中选择2,可查询已输
2、入的图书信息;在主菜单中选择3,可通过查找书本的序号,来选择所要删除的图书信息;在主菜单中选择4,对已输入的图书信息,按照图书序号进行排序;在主菜单中选择5,显示图书信息;在主菜单中选择6,可通过查找书本的序号,来选择所要修改的图书,并对图书进行修改;在主菜单中选择7,建立一个名为d.txt的文件,并将图书信息录入;在主菜单中选择8,退出图书管理系统。 图书管理系统的设计与功能实现图书管理系统2. 总体设计 图系统模块图输入模块完成用户从界面输入图书的信息的功能;查询书籍信息模块完成用户从界面输入查询条件,在系统查询符合条件的图书信息,并在界面上显示的功能;删除书本信息模块完成用户从界面输入需
3、要的图书序号,并将其从系统中删除的功能;书本信息排序模块完成对书本信息的排序的功能;显示书籍信息模块完成显示书本信息的功能;修改书籍信息模块完成用户从界面输入,在系统中查询定位,并将修改过的信息数据保存入系统的功能;录入图书信息模块完成用户从界面输入需要导入的文件路径名称,将信息输入系统的功能;2、2数据结构在程序中,定义了如下结构体:typede trctnt nu; chr Bam0;chrnam; floa scr;Book;其中Book、num就是存储书本序号信息,ook.Bnam存储书本名字信息,Book、Wame就是存储书本作者名信息,Boo.score存储书本价格信息。2、3 算
4、法设计图2 主函数流程图主函数的作用主要就是调用mai函数显示主界面,使用printf函数将菜单选项输出在屏幕上,供用户读取选择。通过读取用户的输入,调用switch函数对用户的输入进行处理,使用hle函数实现用户的选择性的重复操作。图3 输入函数流程图输入函数的主要作用就是完成书籍信息的输入功能,用户先输入书本的实际数量,再输入书本序号、书名、作者名与书本价格并保存到数组中。图4 查询函数流程图查询函数的作用主要就是为完成查找某书籍信息的功能,用户在使用时先输入要查找的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则显示该项;否则,显示无此书。图5 删除函数流程图删除函数的主要作用
5、就是完成删除某本书籍信息的功能,用户先输入一个要删除的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则删除该项;否则,显示找不到要删除的书本信息。2、4 程序代码设计主函数需要读取用户所输入的选项来调用其她功能的函数,从而实现程序的各个功能;void mi() 使用hle来循环值,供用户输入选项,程序判断后进入对应模块,并调用相应的功能函数进行运算,并且使用bak在调用完函数后退出switch语句。viput(Bka,i*n)输入函数,定义结构体类型指针p,pint语句提示用户输入信息,添加for循环,将用户输入的信息保存入数组中。void fi(ok*,it )查找函数定义结构体指
6、针,print语句提示用户输入信息,输入num后,for循环嵌套if语句按照书本序号查找对应的书本信息,brek跳出循环。voidel(Boka,it*n) 删除函数定义结构体指针p,printf语句提示用户输入信息,输入要删除的书本序号,对应结构体中已存有的um,循环中嵌套if语句查找并删除对应的书本信息,reak跳出循环。void st(k*a,i n)排序函数,采用冒泡法按照书本序号对书籍进行排序。id displ(o*a,intn) 输出函数定义结构体p,for循环输出书本信息。vodnja(Book*,in n)定义指针变量fp,判断所指向的文件就是否存在,定义结构体指针,使用pri
7、nt函数将数据输入文件中。idxiuga(ook*a,int n)修改函数定义结构体指针,pintf语句提示用户输入信息,输入要修改的书本序号,对应结构体中已存有的um,for循环中嵌套if语句查找并修改对应的书本信息。vd enu()几个rinf语句在界面显示出供用户选择的操作框。 2、5 测试与调试测试数据类型测试数据预期结果实际结果合法数据在主菜单中输入1进入输入菜单进入输入菜单在主菜单中输入2进入查询菜单进入查询菜单非法数据在主菜单中输入9没有该项内容没有该项内容在主菜单中输入a没有该项内容没有该项内容3实训总结学习c语言不能停留在学习它的语法规则,而就是利用学到的知识编写语言程序,解
8、决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己就是否掌握c语言、自己编写的程序就是否能够正确地解题。实训期间,学习到很多东西,不仅使我在理论上语言有了全新的认识,在实践能力上也得到了提高,将课本上的死知识应用于实践中,程序编写就是以后工作与学习的基础,第一次尝试编写较复杂的程序,发现以前一直忙于理论知识的学习,这次实训就是抽象的理论知识很好的应用,编写过程中,在不断地错误改正中,发现了自己很多知识的理解及联系性的不足,因此,在以后的学习中,我会更加的有的放矢,弥补自己知识面的不足,使自己能更好的牢固掌握本专业知识,完善自我。附录#incu
9、destdo、h#icdestdlib、#ncludecoio、#dene SIZ 80typde srct nt m;char nam0; chrWname50;a score;Bok;voiinput(Bo*a,inn) Bp; it i1; sstm(cl); prntf(n请输入书的序号(1-0); anf(%d,n); prntf(n请输入书本信息(书本序号/书名/作者/单价):);for(=a;p+*;p+) rintf(n%:,i+); sca(%d%s%s%f,&p-nm,p-Bnme,p-nam,p-cre); prtf(按回车键返回:); gech();vod fd(Boo
10、k*a,tn) k=0; in num; Bok; sysem(ls); rintf(n请输入要查询的书的序号); scan(d,&num); or(=;pnu) k=1; pint(已找到,就是:%d%st%st%、lfn,pnu,p-Bame,p-Wne,p-sre); break; if(!k) it(无此书!n); prf(按回车键返回:); gech();voidel(Bok*,i*n) nti,j,k=0; Bok*p; in nu; systm(s); rintf(n请输入要删除的书的序号:); scanf(%d,num); r(i=0,p=;a+*n;+) if(num=(p+
11、i)-nm) k=; for(j=i;j*;+) (+j)=*(+j+1); (*n); break; i(!k) pinf(找不到要删除的书本信息!n); printf(按回车键返回:); getch(); vid ort(Bok*a,nt ) int i,; ook t; for(=;n-1;+) or(j=;jn-1;j+) if(a、n)(aj+1、m) t=j;aj=j;j1t; prntf(n输出排序结果:n); or(i=0;i;i+) ntf(%dtsst%.lfn,、n,i、Bna,i、nme,ai、scor);prit(n);ritf(按回车键返回:);geh();void
12、 dsplay(Book*a,in n) Book*p; fr(p=a;num,p-nae,pname,p-score); prin(n); ntf(按回车键返回:); gch();vidwjian(Book*a,it n) FILE *fp; Bok*p;nt i; systm(); pfopen(ad、txt,w); if(=NUL) ntf(打开失败n); els for(i=0,pa;num,p-Bnme,pnae,-core);prf(写入成功n); rintf(n); pritf(按回车键返回:);gth();void ugai(Book*,int )Boop; it i,m;sy
13、tem(cls); printf(请输入要修改的书号:);scanf(,m); or(p=;m,&p-nme,&p-Wame,&-scoe); pritf(n); rintf(按回车键返回:); gech();o enu() ytem(cls); rif(nnntt 欢迎使用图书管理系统nn); printf(ttt*n); rintf(ttt* 主菜单 *n); rit(ttt*nn); print(t 1输入 2 查询nn); printf( 删除 4排序n); prnt(tt 显示 6 修改nn); pritf(tt 7 录入 8 退出n); printf( 请选择1/2/34/6/7/:);void ain() it j,num; Book boSIZE; hi(1) enu(); scan(%d,&j); swch(j) case 1: inpu(bo,nu);brek; case : fnd(ook,nu);break; cas: dl(bok,&num);break; case: sot(bok,num);reak; cse 5: display(bok,num);brea; case6: igai(bk,num);bre; cas : wejian(boo,um);brak; cas 8: eit(0);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1