家庭图书管理系统.docx
《家庭图书管理系统.docx》由会员分享,可在线阅读,更多相关《家庭图书管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
家庭图书管理系统
CHANGZHOUINSTITUTEOFTECHNOLOGY
C语言大作业
设计说明书
题目:
家庭图书管理系统
二级学院(直属学部):
计算机信息工程学院
专业:
软件工程(中英合作)
班级:
12软件二
姓名:
臧坤
学号:
12030527
姓名:
张祥
学号:
12030528
2013年7月
1概述…………………………………………………………………1
1.1小组构成及分工……………………………………………………1
1.2设计内容……………………………………………………………1
1.3开发工具……………………………………………………………1
1.4应用平台……………………………………………………………1
2系统设计……………………………………………………………1
2.1功能模块设计………………………………………………………1
2.2数据结构设计………………………………………………………4
2.3函数功能描述………………………………………………………4
3实现与测试………………………………………………………6
3.1关键技术实现………………………………………………………6
3.2测试运行结果………………………………………………………6
5总结…………………………………………………………………12
6参考文献……………………………………………………………12
1概述
1.1小组构成及分工
臧坤:
,整合程序并调试,读者信息管理,图书信息管理。
张祥:
借阅,归还程序的编码与调试,设计主菜单程序说明书。
1.2设计内容
(1)输入:
将书的序号,书名,作者,类型,单价储存到书本文件里。
(2)删除:
将没有意义或破损的书在文件里删除。
(3)修改:
可输入书号或书名进行查询,找到以后对图书错误的信息进行修改
(4)查询:
若按书号查询,输入书号以后,屏幕上会出现书的详细信息,包括书的序号,书名,作者,出版日期,单价。
若按书名查询,输入后,屏幕上的显示结果也是书的详细信息。
(5)统计:
对书本进行统计。
1.3开发工具
VisualC++6.0和Win32。
1.4应用平台
WindowsXP32位
2系统设计
2.1功能模块设计
1.系统模块图:
本系统包括5个模块,分别是输入模块、删除模块、修改模块、查询模块和统计模块,如图2.1所示。
各个模块的功能描述如下:
(1)输入模块:
该模块是实现对图书按照编号、书名、作者、类型、单价的录入并保存到文件中。
(2)删除模块:
该模块实现按图书编号对图书信息的删除。
(3)修改模块:
该模块实现按图编号或书名对图书信息的修改。
(4)查询模块:
实现按图书编号和书名查询每种图书的信息。
(5)功能控制模块:
统计图书馆现有的图书的数量。
图2.1系统模块图
2.任务执行流程图
图2.2任务执行流程图
2.2数据结构设计
程序定义了一个结构体变量emp[100],结构体成员包括图书序号no、书名mz、作者zuozhe、出版日期nl、单价salar。
structbook
{charno[5];
charmz[10];
charzuozhe[10];
intnl;
intsalar;
}emp[NUM],newemp;
2.3函数功能描述
(1)主函数
用printf函数输出相关信息,然后用while
(1)语句执行循环体,用scanf函数获取命令,用if判断操作是否正确,用switch语句执行函数的调用。
(2)图书信息输入
由input()函数实现,用fopen语句打开文件通过if来判断文件是否存在,用for语句执行循环体,用scanf函数获取图书各项信息,定义一个整形变量n,用来记录输入图书的本数,当这些图书信息输入完毕后,接受到命令0跳出循环体。
利用fwrite函数将录入的数据逐一写到文件emp中,再用fclose函数关闭文件emp。
(3)删除模块
函数先定义了整形变量x,然后用while
(1)语句执行循环体,用scanf函数获取命令,用if判断操作是否正确,用switch语句执行函数的调用。
用fopen函数按照rb的方式打开已经保存好的文件“emp”,然后用printf语句输出删除前的图书记录,再用for语句和fread函数逐条读出文件中的数据,然后用scanf语句输入要删除的书的书号,并用字符串比较函数strcmp判断是否有此图书信息,若找到此图书信息,删除后,再用fclose函数关闭文件emp.txt再一次打开emp文件用fwrite函数和for循环将删除后的图书记录emp[i].no,emp[i].mz,emp[i].zuozhe,emp[i].lx,emp[i].salar;重新写入文件emp中。
然后关闭文件。
(4)修改模块
函数先定义了整形变量x,然后用while
(1)语句执行循环体,用scanf函数获取命令,用if判断操作是否正确,用switch语句执行函数的调用。
在调用modi_no()函数中定义文件指针*fp和整形变量i,然后按照rb+的方式打开已经保存好的文件“emp”,然后用for语句和fread函数逐条读出文件中的数据,然后用scanf语句输入要修改的图书序号,并用字符串比较函数strcmp判断是否有此图书信息,若找到此商品信息并用scanf函数输入此商品修改后的信息。
修改成功后再用fwrite函数将商品信息再次保存到文件“emp”中。
最后用fclose函数关闭文件“emp”。
(5)查询模块
函数先定义了整形变量x,然后用while
(1)语句执行循环体,用scanf函数获取命令,用if判断操作是否正确,用switch语句执行函数的调用。
在调用search_num()函数中定义文件指针*fp和整形变量i,然后按照rb的方式打开已经保存好的文件“emp”,然后用for语句和fread函数逐条读出“emp”文件中的信息,然后用scanf语句输入要查询的书的序号,并用字符串比较函数strcmp判断是否有此图书信息,若找到此商品信息则通过printf语句输出图书信息。
然后关闭文件。
调用search_mz(),原理同上。
(6)统计模块
用fopen函数按照rb方式打开文件“emp”,然后用fread函数读出文件中的信息,再用for语句输出读出图书各项信息,并用i控制循环,对要统计的图书总数量进行求累计和,再用printf函数输出图书的总数量,fclose函数关闭文件“emp”。
3实现与测试
在安装有MicrosoftVisualC++6.0的环境下,双击打开桌面上名为图书管理系统的文件夹,然后双击图书管理系统.c,点击上方按钮
编译程序,接着点击按钮
运行程序即可进入系统主界面,如图3.1所示。
图3.1系统主界面
1、输入功能
在图3.1界面下选择数字1可进入输入功能界面,屏幕显示提示信息,使用者逐渐输入“输入图书数:
”“输入格式:
书号书名作者出版日期单价”后,系统会自动将输入的图书信息保存到文件中,如图3.2所示。
图3.2输入图书信息运行界面
2、删除功能
在图3.2界面下选择数字2可进入删除功能界面,这时出现删除子菜单,要求
作者输入要删除的书号,输入书号后,程序开始执行删除功能,如图3.3所示。
图3.3删除图书信息记录运行界面
3、修改功能
在图3.2界面下选择数字3可进入修改功能界面,此程序模块主要于方便使用人员进行录入的图书记录的错误的修改,使用人员选择修改的方式,直接输入图书号,按照提示就可以成功修改图书记录,选择“0”,则程序返回主菜单,如图3.4、3.5所示。
图3.4进入修改模式
若选择1
图3.5-1修改图书信息运行界面
若选择2
图3.5-2修改图书信息运行界面
4、查询功能
在图3.2界面下选择数字4可进入查询功能界面,此程序模块主要于方便使用人员进行查询图书,使用人员选择查询的方式,直接输入书号或书名,按照提示就可以成功查询图书,选择“0”,则程序返回主菜单,如图3.6、3.7所示。
按书号查询
图3.6查询图书信息运行界面
按书名查询
图3.7查询图书信息运行界面
5、统计功能
在图3.2界面下选择数字5可进入统计功能界面,该功能方便图书管理者整理图书馆里的藏书,如图3.8所示。
图3.8统计图书信息运行界面
4开发日志
第一天:
确定题目,成立设计小组,确定成员分工;
第二天:
查阅资料,进行问题分析,制定方案;
第三天:
根据方案编写程序并进行调试,系统联调与综合测试、系统改进;
第四天:
撰写设计说明书,完成设计;
第五天:
提交设计内容,答辩。
5总结
五天的时间过的真快,在这个过程中我们学会的不仅仅是书本的东西,更多的是解决事情的能力以及团队协作,共同进步的精神。
我们选择了《家庭图书管理系统》。
无论从内容上还是工作量上都是比较符合我们的目前水平。
确定了目标就比较容易了,我们安下心来,进行了详细的分工,如果对内容不是很了解,就去图书馆借相应的书籍,并且通过电脑询问对程序比较熟悉的人,我们感觉到这是一个提高自己的很好的机会。
一、编写完源代码,调试之后出现了很多错误。
1)、丢失分号,大括号等初级错误,在个人和小组的帮助下,逐个解决。
2)、是在编译的概念上出现了问题,经过小组讨论研究,并查阅书籍案例,多次调试,问题得以解决。
二、调试的过程中,出现了一下几类问题:
1)拼写错误。
字母之间的颠倒;2)程序连接上的错误。
3)界面不美观4)进一步改进措施拼写方面小组逐个检查各自编写的程序,其中也包括分号、括号方面的丢失;程序连接上,增加了必要的头文件和语句;界面上,我们做了细节上的改进,争取美观,一目了然,符合老师所说的标准。
一切进行的还是比较顺利的,但是在运行的时候出现了很多的错误,这让我们有一些灰心,但是我们已经走到最后一步,就不能够放弃,我们一遍又一遍的查询程序,但是还有错误出现,我们请同学帮忙,终于解决了,虽然花费了很多的时间,但是能够完成任务也非常的高兴!
这次亲手操作与我的团队一起为一个目标努力是一个很值得回忆的事情,也给我们大学生活留下了另一抹靓丽的颜色。
6参考文献
[1]谭浩强.C程序设计(第四版)[M].北京:
清华大学出版社,2010。
[2]C语言程序设计案例精粹。
[3]网上查找资料。