图书管理系统C语言实训报告_第1页
图书管理系统C语言实训报告_第2页
图书管理系统C语言实训报告_第3页
图书管理系统C语言实训报告_第4页
图书管理系统C语言实训报告_第5页
已阅读5页,还剩9页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基础编程能力实训报告题 目: 图书管理系统 专业年级: 计算机科学与技术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,可查询已输

2、入的图书信息;在主菜单中选择3,可通过查找书本的序号,来选择所要删除的图书信息;在主菜单中选择4,对已输入的图书信息,按照图书序号进行排序;在主菜单中选择5,显示图书信息;在主菜单中选择6,可通过查找书本的序号,来选择所要修改的图书,并对图书进行修改;在主菜单中选择7,建立一个名为asd.txt的文件,并将图书信息录入;在主菜单中选择8,退出图书管理系统。2 图书管理系统的设计与功能实现图书管理系统2.1 总体设计 退出系统录入图书信息修改书籍信息显示书籍信息排序书籍信息删除书本信息查询书籍信息输入图书信息 图1 系统模块图输入模块完成用户从界面输入图书的信息的功能;查询书籍信息模块完成用户从

3、界面输入查询条件,在系统查询符合条件的图书信息,并在界面上显示的功能;删除书本信息模块完成用户从界面输入需要的图书序号,并将其从系统中删除的功能;书本信息排序模块完成对书本信息的排序的功能;显示书籍信息模块完成显示书本信息的功能;修改书籍信息模块完成用户从界面输入,在系统中查询定位,并将修改过的信息数据保存入系统的功能;录入图书信息模块完成用户从界面输入需要导入的文件路径名称,将信息输入系统的功能;2.2 数据结构在程序中,定义了如下结构体:typedef structint num;char bname50;char wname50;float score;book;其中book.num是存

4、储书本序号信息,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函数实现用户的选择性的重复操作。开始输入的

5、书的序号输入成功返回主菜单输入书本信息图3 输入函数流程图输入函数的主要作用是完成书籍信息的输入功能,用户先输入书本的实际数量,再输入书本序号、书名、作者名和书本价格并保存到数组中。开始输入要查询的书的序号是否存在此书输出无此书显示已找到并输出图书信息返回主菜单yn图4 查询函数流程图查询函数的作用主要是为完成查找某书籍信息的功能,用户在使用时先输入要查找的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则显示该项;否则,显示无此书。开始输入要查询的书的序号是否存在此书书删除此书信息输出找不到要删除的书本信息返回主菜单yn图5 删除函数流程图删除函数的主要作用是完成删除某本书籍信息的功

6、能,用户先输入一个要删除的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则删除该项;否则,显示找不到要删除的书本信息。2.4 程序代码设计主函数需要读取用户所输入的选项来调用其他功能的函数,从而实现程序的各个功能;void main() 使用while来循环j值,供用户输入选项,程序判断后进入对应模块,并调用相应的功能函数进行运算,并且使用break在调用完函数后退出switch语句。void input(book*a,int*n)输入函数,定义结构体类型指针p,printf语句提示用户输入信息,添加for循环,将用户输入的信息保存入数组中。void find(book*a,int

7、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(b

8、ook*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没有该项内容没有该项内容

9、在主菜单中输入a没有该项内容没有该项内容3 实训总结学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。实训期间,学习到很多东西,不仅使我在理论上c语言有了全新的认识,在实践能力上也得到了提高,将课本上的死知识应用于实践中,程序编写是以后工作和学习的基础,第一次尝试编写较复杂的程序,发现以前一直忙于理论知识的学习,这次实训是抽象的理论知识很好的应用,编写过程中,在不断地错误改正中,发现了自己很多知识的理解及联系性的不足,因

10、此,在以后的学习中,我会更加的有的放矢,弥补自己知识面的不足,使自己能更好的牢固掌握本专业知识,完善自我。附录#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请输入书本信息(书本序号/书名/作者/单价):);

11、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();voi

12、d 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(aj

13、+1.num) t=aj;aj=aj+1;aj+1=t; printf(n输出排序结果:n); for(i=0;in;i+) printf(%dt%st%st%.lfn,ai.num,ai.bname,ai.wname,ai.score);printf(n);printf(按回车键返回:);getch();void display(book*a,int n) book*p; for(p=a;pnum,p-bname,p-wname,p-score); printf(n); printf(按回车键返回:); getch();void wenjian(book*a,int n)file *fp;book*p;int i;system(cls);fp=fopen(asd.txt,w+);if(fp=null)printf(打开失败n);else for(i=0,p=a;inum,p-bname,p-wname,p-score);printf(写入成功n);printf(n);printf(按回车键返回:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论