图书管理系统C语言实训报告.docx
- 文档编号:13233805
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:15
- 大小:98.75KB
图书管理系统C语言实训报告.docx
《图书管理系统C语言实训报告.docx》由会员分享,可在线阅读,更多相关《图书管理系统C语言实训报告.docx(15页珍藏版)》请在冰点文库上搜索。
图书管理系统C语言实训报告
基础编程能力实训报告
题目:
图书管理系统
专业年级:
计算机科学与技术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数据结构
在程序中,定义了如下结构体:
typedefstruct{
intnum;
charBname[50];
charWname[50];
floatscore;
}Book;
其中Book.num是存储书本序号信息,Book.Bname存储书本名字信息,Book.Wname是存储书本作者名信息,Book.score存储书本价格信息。
2.3算法设计
图2主函数流程图
主函数的作用主要是调用main函数显示主界面,使用printf函数将菜单选项输出在屏幕上,供用户读取选择。
通过读取用户的输入,调用switch函数对用户的输入进行处理,使用while函数实现用户的选择性的重复操作。
图3输入函数流程图
输入函数的主要作用是完成书籍信息的输入功能,用户先输入书本的实际数量,再输入书本序号、书名、作者名和书本价格并保存到数组中。
图4查询函数流程图
查询函数的作用主要是为完成查找某书籍信息的功能,用户在使用时先输入要查找的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则显示该项;否则,显示无此书。
图5删除函数流程图
删除函数的主要作用是完成删除某本书籍信息的功能,用户先输入一个要删除的书本序号,然后在保存有书籍信息的数组中查找该项,若找到,则删除该项;否则,显示找不到要删除的书本信息。
2.4程序代码设计
⑴主函数需要读取用户所输入的选项来调用其他功能的函数,从而实现程序的各个功能;
voidmain()
{
…
}
使用while来循环j值,供用户输入选项,程序判断后进入对应模块,并调用相应的功能函数进行运算,并且使用break在调用完函数后退出switch语句。
⑵voidinput(Book*a,int*n)
{
…
}
输入函数,定义结构体类型指针p,printf语句提示用户输入信息,添加for循环,将用户输入的信息保存入数组中。
voidfind(Book*a,intn)
{
…
}
查找函数定义结构体指针p,printf语句提示用户输入信息,输入num后,for循环嵌套if语句按照书本序号查找对应的书本信息,break跳出循环。
voiddel(Book*a,int*n)
{
…
}
删除函数定义结构体指针p,printf语句提示用户输入信息,输入要删除的书本序号,对应结构体中已存有的num,for循环中嵌套if语句查找并删除对应的书本信息,break跳出循环。
voidsort(Book*a,intn)
{
…
}
排序函数,采用冒泡法按照书本序号对书籍进行排序。
voiddisplay(Book*a,intn)
{
…
}
输出函数定义结构体p,for循环输出书本信息。
voidwenjian(Book*a,intn)
{
…
}
定义指针变量fp,判断所指向的文件是否存在,定义结构体指针p,使用fprintf函数将数据输入文件中。
voidxiugai(Book*a,intn)
{
…
}
修改函数定义结构体指针p,printf语句提示用户输入信息,输入要修改的书本序号,对应结构体中已存有的num,for循环中嵌套if语句查找并修改对应的书本信息。
voidmenu()
{
…
}
几个printf语句在界面显示出供用户选择的操作框。
2.5测试与调试
测试数据类型
测试数据
预期结果
实际结果
合法数据
在主菜单中输入1
进入输入菜单
进入输入菜单
在主菜单中输入2
进入查询菜单
进入查询菜单
非法数据
在主菜单中输入9
没有该项内容
没有该项内容
在主菜单中输入a
没有该项内容
没有该项内容
3实训总结
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。
即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。
只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
实训期间,学习到很多东西,不仅使我在理论上c语言有了全新的认识,在实践能力上也得到了提高,将课本上的死知识应用于实践中,程序编写是以后工作和学习的基础,第一次尝试编写较复杂的程序,发现以前一直忙于理论知识的学习,这次实训是抽象的理论知识很好的应用,编写过程中,在不断地错误改正中,发现了自己很多知识的理解及联系性的不足,因此,在以后的学习中,我会更加的有的放矢,弥补自己知识面的不足,使自己能更好的牢固掌握本专业知识,完善自我。
附录
#include"stdio.h"
#include"stdlib.h"
#include"conio.h"
#defineSIZE80
typedefstruct{
intnum;
charBname[50];
charWname[50];
floatscore;
}Book;
voidinput(Book*a,int*n)
{
Book*p;
inti=1;
system("cls");
printf("\n请输入书的序号(1-80)");
scanf("%d",n);
printf("\n请输入书本信息(书本序号/书名/作者/单价):
");
for(p=a;p { printf("\n%d: ",i++); scanf("%d%s%s%f",&p->num,p->Bname,p->Wname,&p->score); } printf("按回车键返回: "); getch(); } voidfind(Book*a,intn) { intk=0; intnum; Book*p; system("cls"); printf("\n请输入要查询的书的序号"); scanf("%d",&num); for(p=a;p if(num==p->num) { k=1; printf("已找到,是: %d\t%s\t%s\t%.lf\n",p->num,p->Bname,p->Wname,p->score); break; } if(! k) printf("无此书! \n"); printf("按回车键返回: "); getch(); } voiddel(Book*a,int*n) { inti,j,k=0; Book*p; intnum; system("cls"); printf("\n请输入要删除的书的序号: "); scanf("%d",&num); for(i=0,p=a;p if(num==(p+i)->num) { k=1; for(j=i;j<*n-1;j++) *(p+j)=*(p+j+1); (*n)--; break; } if(! k) printf("找不到要删除的书本信息! \n"); printf("按回车键返回: "); getch(); } voidsort(Book*a,intn) { inti,j; Bookt; for(i=0;i for(j=0;j if((a[j].num)>(a[j+1].num)) {t=a[j];a[j]=a[j+1];a[j+1]=t;} printf("\n输出排序结果: \n"); for(i=0;i printf("%d\t%s\t%s\t%.lf\n",a[i].num,a[i].Bname,a[i].Wname,a[i].score); printf("\n"); printf("按回车键返回: "); getch(); } voiddisplay(Book*a,intn) { Book*p;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书管理系统 C语言实训报告 图书 管理 系统 语言 报告