资源预览内容
第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
第9页 / 共14页
第10页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
基础编程能力实训报告题 目: 图书管理系统 专业年级: 计算机科学与技术2013级 姓 名: 学 号: 2014年06月20日1 实训题目与要求1.1 问题描述此系统可以完成对书籍信息的输入、删除、修改、排序等功能,提高图书管理效率,对图书进行合理规划与安排。1.2 功能要求程序输出主菜单(如下),提示用户选择操作 欢迎使用图书管理系统* * 主菜单 * * 1 输入 2 查询 3 删除 4 排序 5 显示 6 修改 7 录入 8 退出请选择1/2/3/4/5/6/7/8: 表1 主菜单在主菜单中选择1,要求输入图书信息,包括书本序号,书本名字,作者名字,书的价格;在主菜单中选择2,可查询已输入的图书信息;在主菜单中选择3,可通过查找书本的序号,来选择所要删除的图书信息;在主菜单中选择4,对已输入的图书信息,按照图书序号进行排序;在主菜单中选择5,显示图书信息;在主菜单中选择6,可通过查找书本的序号,来选择所要修改的图书,并对图书进行修改;在主菜单中选择7,建立一个名为asd.txt的文件,并将图书信息录入;在主菜单中选择8,退出图书管理系统。2 图书管理系统的设计与功能实现图书管理系统2.1 总体设计 退出系统录入图书信息修改书籍信息显示书籍信息排序书籍信息删除书本信息查询书籍信息输入图书信息 图1 系统模块图输入模块完成用户从界面输入图书的信息的功能;查询书籍信息模块完成用户从界面输入查询条件,在系统查询符合条件的图书信息,并在界面上显示的功能;删除书本信息模块完成用户从界面输入需要的图书序号,并将其从系统中删除的功能;书本信息排序模块完成对书本信息的排序的功能;显示书籍信息模块完成显示书本信息的功能;修改书籍信息模块完成用户从界面输入,在系统中查询定位,并将修改过的信息数据保存入系统的功能;录入图书信息模块完成用户从界面输入需要导入的文件路径名称,将信息输入系统的功能;2.2 数据结构在程序中,定义了如下结构体:typedef structint num;char Bname50;char Wname50;float score;Book;其中Book.num是存储书本序号信息,Book.Bname存储书本名字信息,Book.Wname是存储书本作者名信息,Book.score存储书本价格信息。2.3 算法设计开始调用main函数输入j的值j=?调用input函数调用find函数调用del函数调用sort函数调用display函数调用xiugai函数调用wenjian函数非法选项输入jj是否为0结束21453678图2 主函数流程图主函数的作用主要是调用main函数显示主界面,使用printf函数将菜单选项输出在屏幕上,供用户读取选择。通过读取用户的输入,调用switch函数对用户的输入进行处理,使用while函数实现用户的选择性的重复操作。开始输入的书的序号输入成功返回主菜单输入书本信息图3 输入函数流程图输入函数的主要作用是完成书籍信息的输入功能,用户先输入书本的实际数量,再输入书本序号、书名、作者名和书本价格并保存到数组中。开始输入要查询的书的序号是否存在此书输出无此书显示已找到并输出图书信息返回主菜单YN图4 查询函数流程图查询函数的作用主要是为完成查找某书籍信息的功能,用户在使用时先输入要查找的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则显示该项;否则,显示无此书。开始输入要查询的书的序号是否存在此书书删除此书信息输出找不到要删除的书本信息返回主菜单YN图5 删除函数流程图删除函数的主要作用是完成删除某本书籍信息的功能,用户先输入一个要删除的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则删除该项;否则,显示找不到要删除的书本信息。2.4 程序代码设计主函数需要读取用户所输入的选项来调用其他功能的函数,从而实现程序的各个功能;void main() 使用while来循环j值,供用户输入选项,程序判断后进入对应模块,并调用相应的功能函数进行运算,并且使用break在调用完函数后退出switch语句。void input(Book*a,int*n)输入函数,定义结构体类型指针p,printf语句提示用户输入信息,添加for循环,将用户输入的信息保存入数组中。void find(Book*a,int n)查找函数定义结构体指针p,printf语句提示用户输入信息,输入num后,for循环嵌套if语句按照书本序号查找对应的书本信息,break跳出循环。void del(Book*a,int*n) 删除函数定义结构体指针p,printf语句提示用户输入信息,输入要删除的书本序号,对应结构体中已存有的num,for循环中嵌套if语句查找并删除对应的书本信息,break跳出循环。void sort(Book*a,int n)排序函数,采用冒泡法按照书本序号对书籍进行排序。void display(Book*a,int n) 输出函数定义结构体p,for循环输出书本信息。void wenjian(Book*a,int n)定义指针变量fp,判断所指向的文件是否存在,定义结构体指针p,使用fprintf函数将数据输入文件中。void xiugai(Book*a,int n)修改函数定义结构体指针p,printf语句提示用户输入信息,输入要修改的书本序号,对应结构体中已存有的num,for循环中嵌套if语句查找并修改对应的书本信息。void menu()几个printf语句在界面显示出供用户选择的操作框。2.5 测试与调试测试数据类型测试数据预期结果实际结果合法数据在主菜单中输入1进入输入菜单进入输入菜单在主菜单中输入2进入查询菜单进入查询菜单非法数据在主菜单中输入9没有该项内容没有该项内容在主菜单中输入a没有该项内容没有该项内容3 实训总结学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。实训期间,学习到很多东西,不仅使我在理论上c语言有了全新的认识,在实践能力上也得到了提高,将课本上的死知识应用于实践中,程序编写是以后工作和学习的基础,第一次尝试编写较复杂的程序,发现以前一直忙于理论知识的学习,这次实训是抽象的理论知识很好的应用,编写过程中,在不断地错误改正中,发现了自己很多知识的理解及联系性的不足,因此,在以后的学习中,我会更加的有的放矢,弥补自己知识面的不足,使自己能更好的牢固掌握本专业知识,完善自我。附录#includestdio.h#includestdlib.h#includeconio.h#define SIZE 80typedef structint num;char Bname50;char Wname50;float score;Book;void input(Book*a,int*n) Book*p;int i=1;system(cls);printf(n请输入书的序号(1-80);scanf(%d,n);printf(n请输入书本信息(书本序号/书名/作者/单价):);for(p=a;pnum,p-Bname,p-Wname,&p-score);printf(按回车键返回:);getch();void find(Book*a,int n) int k=0; int num; Book*p; system(cls); printf(n请输入要查询的书的序号); scanf(%d,&num); for(p=a;pnum) k=1; printf(已找到,是:%dt%st%st%.lfn,p-num,p-Bname,p-Wname,p-score); break; if(!k) printf(无此书!n); printf(按回车键返回:); getch();void del(Book*a,int*n) int i,j,k=0; Book*p; int num; system(cls); printf(n请输入要删除的书的序号:); scanf(%d,&num); for(i=0,p=a;pnum) k=1; for(j=i;j*n-1;j+) *(p+j)=*(p+j+1); (*n)-; break; if(!k) printf(找不到要删除的书本信息!n); printf(按回车键返回:); getch(); void sort(Book*a,int n) int i,j; Book t; for(i=0;in-1;i+) for(j=0;j(a
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号