《数据结构》课程设计.docx
《《数据结构》课程设计.docx》由会员分享,可在线阅读,更多相关《《数据结构》课程设计.docx(35页珍藏版)》请在冰豆网上搜索。
《数据结构》课程设计
福建农林大学计算机与信息学院
计算机类
课程设计报告
课程名称:
《数据结构》课程设计
课程设计题目:
图书管理系统
姓名:
黄猛杰
系:
软件工程
专业:
软件工程
年级:
09
学号:
091181018
指导教师:
黄思先
职称:
副教授
2011年7月1日
摘要
图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。
图书管理系统是通过将借阅信息以数据库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订等)。
以打破传统的人工选课模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用。
建立图书管理系统,使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。
前言
用函数实现如下算法:
(1)建立一个图书馆管理信息数据库文件,输入若干图书的记录,建立一个以书号为关键字的索引文件以及相关的索引链头文件。
实现1:
采编入库,新采购一种书,经分类和确定书号后登陆图书账目中去。
如果这种书已经存在,则在数目存量加入增加数量。
2:
清除入库。
某种书已无保留价值,将它将图书账目中删去。
(2)建立关于书号,书名,作者及出版社的图书馆查询。
(3)实现图书的借还子系统,包括建立书的读者文件,借还文件,读者管理及图书借还等相关出处理。
1:
借阅:
如果一种书的现存大于零,则借出一本书,登记借书的帐号和还书日期。
2:
归还:
注销对借还读者的登记,改变该书的现存量。
数据结构的设计:
structbook
{
chartitle[MAXTITLE];//最大输入题目长度
charauthor[MAXAUTL];//最大输入作者长度
charbooknum[MAXNUM];//最大输入书号
unsignedintcount;
floatvalue;
charpublisher[MAXPUB];//最大输入出版社长度
}s[N];
structstudent//学生系统
{
characcount[MAXCOUNT];//学生帐号
charname[10];//学生姓名
charborrow_book[MAXNUM];//所借书目(书号)
charlent_book[MAXNUM];//所还书目(书号)
charborrow_day[10];//借书日期
charlent_day[10];//还书日期
intborrownum;//借书数目
}z[w];
voidinput(structbook*p);//输入图书信息
voidprint(structbook*p);//输出图书信息
函数功能、参数说明及概要设计:
voidsave(structbook*p);//保存图书信息
voidread(structbook*p);//读取图书信息
voidsearch(structbook*p);//查找图书信息
voidxiugai(structbook*p);//修改图书信息
voiddelet(structbook*p);//删除图书信息,即清除库存
voidinsert(structbook*p);//插入图书信息,即采编入库
voidstu_system();//学生管理系统
voidload_stu();//学生登陆系统
voidinput_account(structstudent*b);//输入保存帐号信息
voidread_student(structstudent*b);//读取学生系统信息voidsave_student(structstudent*b);//保存学生系统信息具体程序的实现
具体的操作及功能见程序运行界面提示。
函数的调用关系图
调试分析
调试中遇到的问题及对问题的解决方法
1、输出的运行界面不整齐,例如“*”在编写程序的时候输入不整齐,运行出来的界面就不好看。
2、在使用解释符号时应该注意“//”,不适合于TC的环境,要用“/**/”。
3、函数的调用不正确。
解决方法:
当在一个函数中要调用另一个函数时,必须在调用函数的函数块中对被调用函数进行类型的声明
测试结果
主界面
1:
图书入库:
(下一页)
2:
浏览图书:
(下一页)
3:
修改图书信息:
(下一页)
4:
插入图书信息:
5:
删除图书信息:
6:
查找图书信息
7:
进入学生借书系统
(见下一页)
借后
总结
本图书馆管理系统主要实现了基础信息维护、读者管理、图书管理、图书流通管理等功能,建立了包含在图书管理系统主窗体下的六个功能子窗体,即借书、还书、图书信息维护、图书证信息维护、借阅人信息维护以及管理员信息维护,实现了一个图书管理系统的基本维护与实现。
就总体而言,这次课程设计的结果相当满意,但由于数据量比较小、实现功能都比较基础简单,我们的作品还有改进空间
对我个人所做的借阅人信息维护和管理员信息维护,我则找到了和其他组员的差距。
虽然要求的功能都能一一实现,但对于控件的使用,界面的设计与规划等都较为稚嫩,有待提高。
在这次课程设计中,我完成图书管理系统数据库的物理及逻辑结构的设计,同时也分工完成数据库的建立,用户界面设计以及相关功能的实现。
通过这次课程设计,并把所学与实际结合起来,为以后对项目的接手,处理打下基础。
总之,在这次数据库课程设计中,我受益匪浅。
参考文献
1.严蔚敏,吴伟民,《数据结构(C语言版)》,清华大学出版社。
2.严蔚敏,吴伟民,《数据结构题集(C语言版)》,清华大学出版社。
3.《DATASTRUCTUREWITHC++》,WilliamFord,WilliamTcpp,清华大学出版社(影印版)。
4.谭浩强,《C语言程序设计》,清华大学出版社。
源程序代码
#include
#include
#include
#defineMAXTITLE40
#defineMAXAUTL24
#defineMAXPUB24
#defineMAXNUM20
#defineMAXCOUNT10
#defineN100//书籍的最多本数
#definew100
structbook
{
chartitle[MAXTITLE];//最大输入题目长度
charauthor[MAXAUTL];//最大输入作者长度
charbooknum[MAXNUM];//最大输入书号
unsignedintcount;
floatvalue;
charpublisher[MAXPUB];//最大输入出版社长度
}s[N];
intm=0;//用于记录图书的数量
structstudent//学生系统
{
characcount[MAXCOUNT];//学生帐号
charname[10];//学生姓名
charborrow_book[MAXNUM];//所借书目(书号)
charlent_book[MAXNUM];//所还书目(书号)
charborrow_day[10];//借书日期
charlent_day[10];//还书日期
intborrownum;//借书数目
}z[w];
intu=0;//用于记录已注册的学生数目
#definePRINT"%-14s%-12s%-15s%-8d%-10.2f%-20s\n",p->title,p->booknum,p->author,p->count,p->value,p->publisher
voidinput(structbook*p);//输入图书信息
voidprint(structbook*p);//输出图书信息
voidsave(structbook*p);//保存图书信息
voidread(structbook*p);//读取图书信息
voidsearch(structbook*p);//查找图书信息
voidxiugai(structbook*p);//修改图书信息
voiddelet(structbook*p);//删除图书信息,即清除库存
voidinsert(structbook*p);//插入图书信息,即采编入库
voidstu_system();//学生管理系统
voidload_stu();//学生登陆系统
voidinput_account(structstudent*b);//输入保存帐号信息
voidread_student(structstudent*b);//读取学生系统信息
voidsave_student(structstudent*b);//保存学生系统信息
//////////////////////////////////////////////////////////////////////
voidmain()
{
intx;
do
{
printf("\t\t★---您好,欢迎进入图书查询系统!
---★\n");
printf("================================================================================\n");
printf("\t--------☆1.输入图书信息2.浏览图书信息☆--------\n\n");
printf("\t--------☆3.修改图书信息4.插入图书信息☆--------\n\n");
printf("\t--------☆5.删除图书信息6.查找图书信息☆--------\n\n");
printf("\t--------☆7.进入借书系统0.退出☆--------\n\n");
printf("================================================================================\n");
printf("请在0-6中选择,以回车键结束\n");
scanf("%d",&x);
switch(x)
{
case1:
input(&s[m]);
break;
case2:
print(&s[0]);
break;
case3:
xiugai(&s[0]);
break;
case4:
insert(&s[m]);
break;
case5:
delet(&s[0]);
break;
case6:
search(&s[0