C语言图书信息管理系统实验报告.docx
- 文档编号:3080029
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:15
- 大小:338.51KB
C语言图书信息管理系统实验报告.docx
《C语言图书信息管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《C语言图书信息管理系统实验报告.docx(15页珍藏版)》请在冰豆网上搜索。
C语言图书信息管理系统实验报告
课程报告
课程名称:
程序设计实践
专业班级:
学生姓名:
学号:
任课教师:
阎娟
学期:
2011-2012学年第二学期
课程报告任务书
题目
图书信息管理系统
主要
内容
开发一个图书信息管理系统,图书信息包括:
图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。
使之能提供以下基本功能:
(1)图书信息录入功能(图书信息用文件保存)--输入v
(2)图书信息浏览功能--输出
(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):
l①按书名查询②按作者名查询
按照价钱排序
按出版时间排序等等
(4)图书信息的删除与修改
扩展功能:
可以按照自己的程度进行扩展。
比如
(1)简单的权限处理
(2)报表打印功能(3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。
(4)模糊查询(5)综合查询(6)统计功能比如统计处某一类别的图书信息或筛选出小于指定数量库存的图书信息等等,总之,可以根据自己需求进行分析功能.
任务
要求
一、提交材料应包括:
(1)系统源代码
(2)课程报告
二、整个设计过程具体要求
(1)需求分析要求学生对案例系统进行分析,设计出需要完成的功能,完善各个模块的调用关系;
(2)设计过程要求学生进一步明确各模块调用关系,进一步完善模块函数细节(函数名、参数、返回值等)
(3)实现过程要求学生养成良好的编码习惯、完成各个模块并进行测试,最终完成系统整体测试;
(4)总结阶段按照要求完成系统设计和实现报告,并进行总结、答辩。
成绩
评定
报告撰写情况(30分)
系统完成情况(30分)
答辩情况(40分)
总分
内容
20分
规范程度
5分
程序测试
5分
基本功能20分
扩展功能10分
自述情况10分
答辩情况
30分
成绩评定教师:
1需求分析
随着当今社会发展,信息化水平逐步提高,对图书管理有了新的要求,因此,编写一个信息管理系统是十分必要的.
为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利.使用C语言编写图书管理系统。
本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。
实现了图书馆内管理的一般功能,包括查询、添加、删除、修改图书信息等。
所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况.图书信息包括编号、书名、作者、出版社、出版日期、价格、库存数量等。
图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、修改、删除等基本操作。
整个程序实现链表操作,对图书信息的操作逐个进行,一个图书信息的更改不应影响其他的图书记录。
2概要设计
1,设计表示:
(1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。
主要实现了图书的密码设置、录入、存储、查询、添加、删除、修改、排序等功能。
(2)voidMain_menu();这是一个指针函数,它主要实现了链表的创建,并且在创建过程中从文件读取信息到链表中,以用于后面其他函数的操作。
(3)voidmainFind()、voidDelete()、voidchange()、voidwrite()、structnode*read()、voidSorting_order()、#defineS123、#defineA123456这六个函数时整个图书管理系统的全部菜单函数.voidDelete()、voidchange()、voidwrite()、structnode*read()、在此可以选择删除、修改、保存,读取图书,排序等操作。
voidmainFind();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书.#defineS123、#defineA123456分别是学生登陆和管理员登陆的密码。
(4)voidPrint();这个函数为图书的遍历,浏览所有的图书。
(5)voidFind_booknumber()、voidFind_bookname()、voidFind_author()、voidFind_press();这三个函数为查询图书信息函数,voidFind_booknumber();按书号查询、;voidFind_bookname()按书名查询、voidFind_author();按作者查询、voidFind_press();按出版社查找。
(6)voidSorting_booknumber(),按书号排序。
voidSorting_price(),按价格排序。
voidSorting_publication_date(),按出版日期排序。
voidSorting_number(),按馆藏数量排序.
3.实现注释:
这个实用的小型图书管理程序程序以链表操作完成,并实现文件信息的录入和保存等功能。
实现了图书管理的基本功能,包括了图书的录入、存储、查询、添加、删除、修改、排序等功能。
查询时可按书名、编号、作者等方式查询,找到后输出这本书的所有信息。
在添加图书信息后,还增加了链表排序操作,并输出整个链表,方便用户检查信息.系统中主要的数据结构就是图书的信息,包含编号、书名、作者、出版社、出版时间、价格、馆藏数量等,在处理过程中各项可以作为一本图书的不同属性来进行处理。
3详细设计
1—1定义变量
structnode{
intbook_number;//书号
charbook_name[25];//书名
charpress[50];//出版社
charauthor[20];//作者
intprice;//价格
charpublication_date[20];//出版日期
intnumber;//馆藏数量
structnode*next;
};
structnode*head=NULL;//在此定义一个全局变量head,其它函数就不需要再返回head;但这样做,程序中的函数的可用性就不是太高
intTotal=0;//记录图书总数
1-2函数的定义
voidCreat();//录入图书信息
structnode*Insert(structnode*p,structnode*head0);//插入图书信息
voidDelete();//删除图书信息
voidchange();//修改图书信息
voidwrite();//保存图书信息
structnode*read();//读取图书信息
voidamend(structnode*p);//辅助修改选项
voidPrint();//遍历图书信息
voidPrint_by_one(structnode*p);//单项遍历
voidMain_menu();//登陆界面
voidAdministrator_menu0();//第一次进入系统的管理员菜单
voidAdministrator_menu1();//第n次进入系统的管理员菜单
voidStudent_menu();//学生菜单
voidmainFind();//查找菜单
voidFind();//精确查找图书
voidFind0();//模糊查找图书
intstr(chara[],charb[]);//模糊查找函数
voidFind_booknumber();//按书号查找
voidFind_booknumber0();//按书号模糊查找
voidFind_bookname();//按书名查找
voidFind_bookname0();//按书名模糊查找
voidFind_author();//按作者查找
voidFind_author0();//按作者模糊查找
voidFind_press();//按出版社查找
voidFind_press0();//按出版社模糊查找
char*transform(charstr[],intn);//将整数转化为字符存入字符数组返回
voidSorting_order();//排序
voidSorting_help(structnode*p1,structnode*p2);//辅助排序
voidSorting_booknumber();//按书号排序
voidSorting_price();//按价格排序
voidSorting_publication_date();//按出版日期排序
voidSorting_number();//按馆藏数量排序
#defineS123//学生密码
#defineA123456//管理员密码
intT=0;//选择菜单
1—3信息的录入
voidCreat()//录入图书信息
{
structnode*tail,*p;
intbook_number;//书号
charchoice;
printf(”该操作将清除书库中所有书目的信息!
\n”);
printf("\n\t\t\t你想继续操作吗?
(Y/N)\n”);
while
(1)
{
printf("请选择:
");
if(scanf("%c",&choice))
{
getchar();
if(choice==’Y'||choice==’y'){
system("cls");
break;
}
elseif(choice==’N'||choice=='n')
{
system("cls”);
return;
}
else{
printf("请按要求输入!
\n”);
continue;
}
}
else
{
printf("输入的不是字母,请按照要求重新输入!
\n”);
continue;
}
}
printf("\t\t\t提示:
请输入你要输入的数据,当书号为数字'0'时结束!
\n\n”);
printf(”请输入书号:
");
scanf("%d”,&book_number);
getchar();//吸收回车符,清空缓冲区,这样才能正常执行清屏操作
while(book_number!
=0)
{
p=(structnode*)malloc(sizeof(structnode));
printf("请输入书名:
");
scanf(”%s”,p—>book_name);getchar();
printf(”请输入作者:
");
scanf("%s",p—〉author);getchar();
printf(”请输入出版社:
");
scanf("%s”,p—>press);getchar();
printf(”请输入价格:
");
scanf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图书 信息管理 系统 实验 报告