图书管理系统软件设计报告doc.docx
《图书管理系统软件设计报告doc.docx》由会员分享,可在线阅读,更多相关《图书管理系统软件设计报告doc.docx(14页珍藏版)》请在冰豆网上搜索。
图书管理系统软件设计报告doc
Xxxx
----软件设计报告
题目:
图书管理系统
院系名称
:
计算机学院
专业名称
:
计算机科学与技术
班级
:
Xxx
班内序号
:
12
学生姓名
:
Xxx
指导教师
:
Xxx
时间
:
2010年9月13日至2010年9月21日
一、课程设计目的
1.通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法;
2.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力;
3.为后续各门计算机课程的学习打下坚实基础;为毕业设计和以后工作打下必要基础。
二、课程设计内容
—————————————图书管理系统—————————————
要求:
通过该程序可以完成以下几点要求:
1.可以进行密码设置登陆,然后进行操作。
2.系统可以完成图书信息的各种操作,包括录入、保存、读取、删除、修改、打印等
3.从main函数引入一系列相关函数,对其进行操作管理,完成所需功能。
三、需求分析
通过此系统我们不同的用户可以进行登录设置,然后进入系统,根据需要可以完成以下操作:
图书信息录入、存储、读写、修改、删除、查询、统计、排序、报表、界面显示以及密保。
此系统的界面非常友好,显示清楚,操作简单。
报表以表格形式显示,增加了其美观性能,通过它我们能看到一般管理系统的简单构造以及提列内容,符合现代操作系统的基本要求,也适应时代的发展。
四、概要设计
(1)系统结构图(功能模块图)
(2)功能模块说明
1.设置登录名及密码:
随意设置自己的登录名以及密码。
2.登录系统:
根据设置的登陆名和密码进行登录,登录名与密码正确菜单显示。
3.图书信息录入:
选择界面上的1录入图书的基本信息,然后选择y继续录入下一本书信息,或选择n录入完成,进行文件保存。
选择y的界面显示以及录入:
选择n的界面显示以及录入:
4.图书信息统计:
选择2输入你要统计的科目类别,比如理科(like)、文学(wenxue)等。
界面会显示属于你输入的类别的全部书目,并告诉你此类书的总数。
5.图书信息查询:
选择3进行图书信息查询,输入你要找的书名,系统会显示此书的其他信息,然后返回主菜单。
若此书不存在直接返回主菜单。
6.图书信息修改:
选择4进行图书信息修改,输入图书名,若此书存在,直接修改,若不存在,显示没有图书记录,返回主菜单。
7.图书信息删除:
选择5进行图书信息删除,输入你要删除的书名,若存在直接删除成功;若不存在,会提醒您书目不存在,请您确认后在输入。
书存在:
书不存在时:
8.图书信息读取:
选择6进行图书信息读取,输入文件名若存在,则读取成功,等待打印;若不存在则读文件出错。
文件存在:
文件不存在:
9.打印图书信息:
文件读取成功后,选择7打印文件中图书信息。
10.图书信息排序与显示:
选择8按登录号对图书进行排序,然后选择9显示出排好序的信息。
11,退出系统:
信息处理完后可按0退出系统。
五、详细设计及运行结果
流程图:
主函数调用程序为:
intmain(void)
{
structbooks_list*head;
charchoice;
inti,j;
chara[10];
charb[10],c[10],d[10];
printf("登录号:
");
gets(c);
printf("请设置密码(六位):
");
for(i=0;i<6;i++)
scanf("%c",&a[i]);
a[i]='\0';
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
printf("请输入登录号:
\n");
scanf("%s",d);
printf("请输入密码:
");
for(j=6;j>0;j--)
{
for(i=0;i<6;i++)
{
b[i]=getch();
printf("*");
}
b[i]='\0';
if(strcmp(a,b)==0)
break;
}
head=NULL;
for(;;)/*实现反复输入选择*/
{
printf("图书管理系统\n");
printf("●[1]图书信息录入\n");
printf("\n");
printf("●[2]图书信息统计\n");
printf("\n");
printf("●[3]图书信息查询\n");
printf("\n");
printf("●[4]图书信息修改\n");
printf("\n");
printf("●[5]图书信息删除\n");
printf("\n");
printf("●[6]图书信息读取\n");
printf("\n");
printf("●[7]图书信息打印\n");
printf("\n");
printf("●[8]图书信息排序\n");
printf("\n");
printf("●[9]图书信息显示\n");
printf("\n");
printf("●[0]退出系统\n");
printf("请选择:
");
flushall();
scanf("%c",&choice);
if(choice=='1')
{
if(head==NULL)
{
head=create();
}
其他函数均由主函数调用,每执行一步操作都会返回主函数重新选择序号进行下一步操作或退出系统,除保存信息文件其他函数之间没有相互调用。
六、调试情况,设计技巧及体会
1.在设计程序过程中,因为开始对链表不是很熟练,导致一系列程序无法得出预计的结果,通过对各个程序段的分析,加深了对链表的理解,也解决了结果与预计不符的问题。
2此程序在设计过程中,特别注意界面的显示,使人感觉清晰友好,耐用实用,且各个分支非常明显,容易理解。
3.程序在运行过程中,主菜单自动循环,信息提示清楚,使人容易选择,避免界面不清晰而导致的一系列错误。
4.程序中的删除、查询等模块快捷,干净利索。
输出以表格形式清晰明了,美观整洁。
5.当然程序中仍有不足,例如主函数过于繁琐,不简洁。
6.此程序以模块形式编写,在思考过程中,可以让人思路很清晰的针对某一模块去编写检验。
适合大型程序的思想。
让人思维也随着扩展,并且编写程序的思想方法得到提高。
七、参考文献
《C语言程序设计》王曙燕曹锰科学出版社2005年2月
《C语言程序设计》谭浩强清华大学出版社1999年12月
《C语言程序设计教程》张毅坤曹锰张亚玲西安交通大学出版社