数据结构课程设计报告.doc
- 文档编号:238752
- 上传时间:2022-10-07
- 格式:DOC
- 页数:22
- 大小:400.50KB
数据结构课程设计报告.doc
《数据结构课程设计报告.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计报告.doc(22页珍藏版)》请在冰豆网上搜索。
湖南科技大学计算机学院数据结构课程设计报告
湖南科技大学
课程设计报告
题目:
《图书馆管理基本业务模拟》
院系:
计算机学院
专业年纪:
0
学号:
学生姓名:
指导老师:
2010年12月30日
目录
1.设计任务书………………………………………………………………3
1.1题目与要求…………………………………………………………3
1.2涉及知识点…………………………………………………………3
1.3输入输出分析………………………………………………………3
1.4测试数据分析………………………………………………………3
2.概要设计…………………………………………………………………4
2.1结构体类型定义及函数声明………………………………………4
2.2主程序流程…………………………………………………………5
3.详细设计…………………………………………………………………7
3.1数据类型实现………………………………………………………7
3.2程序伪码……………………………………………………………
3.3程序主要流程图……………………………………………………
4.调试分析…………………………………………………………………
4.1问题分析及回顾……………………………………………………
4.2算法时空分析………………………………………………………
4.3设想改进……………………………………………………………
4.4经验和体会…………………………………………………………
5.用户使用说明……………………………………………………………
5.1操作说明及详细步骤………………………………………………
6.测试结果…………………………………………………………………
6.1测试数据及结果……………………………………………………
7.参考文献…………………………………………………………………
8.致谢………………………………………………………………………
1、设计任务书
1.1题目与要求
题目:
编写程序实现图书馆管理业务的模拟。
要求:
书的登记内容包括书号、书名、著作者、出版社、现存量和库存量。
并且按书号建立索引表以提高索引效率。
程序要能够实现一下功能:
a.采编入库:
新购一本书,确定书号后,则登记到图书账目中,如果表中以有,则只将库存增加。
b.借阅:
如果书的库存量大于0,则借出一本书,登记借阅者的借书证号和归还日期,改变现存量。
C.归还:
注销对借阅者的登记,改变书的现存量。
1.2设计知识点
系统时间函数、系统调用库函数、索引表建立、、文件、结构体、指针、链表、数组、循环语句、选择语句、输入输出控制、宏定义、自定义类型等。
1.3输入输出分析
普通输入:
对于书籍内容登记及读者信息宜采用结构体进行存储,其中的具体单项信息则采用字符数组或整形变量直接存续,考虑到书籍及读者信息的具体内容,字符数组长度为20较为合适。
对话式输入:
为便于转换及比较,对话式输入采用字符数组进行存储.为保障程序的健壮性,同时限制对话式输入的格式,对于非法的会话式输入则提示用户操作失败的原因;此外为保障用户在任意一步回话操作中都能任意退出,在程序中设计一“特殊按键”,当输入时,则程序返回上一层。
程序输出:
对于书籍信息及读者借阅信息的显示,考虑到美观及直观的因素,则采用表格的形式进行显示;此外对于借书及还书过程中,为保障操作无误,则在用户选择后,对用户的操作进行输出,并请用户进行确认;在对话式输入中,对于非法输入,程序显示的提示信息采用下划线进行强调,以引起用户的注意。
1.4测试数据分析
书籍登记入库操作中如果书籍登录号超过六位则应提示”格式错误”;如果书号或书名已存在,则应提示”书籍已存在”。
如果操作正确,则提示“书籍已登记入库”。
在书刊检索中,如果书刊存在则应显示书籍信息,如果不存在则应提示“书籍不存在”。
在读者信息登记操作中,如果读者以存在,则应提示”读者已存在”.否则,提示“成功添加读者”。
在读者登录过程中,如果读者信息错误,则提示“用户名或密码错误”,否则登录操作。
借书还书中的输出类似于检索中的提示。
2、概要设计
2.1结构体类型及函数声明
结构体:
图书信息结构体类型 BOOK 读者信息结构体类型 READER
日期结构体类型 DATE 索引项结构体类型 IDXTYPE
索引表结构体类型 ISXLIST
函数声明:
intInfo_show(BOOK*p,intn)//书籍信息显示函数
intBSave(BOOK*L)//书籍信息导出函数
intBLoad(BOOK*L)//书籍信息导入函数
intBOOK_SORT(BOOK*B,BOOK*P)//按照书号排序函数
intStore_in_lib(BOOK*B)//书籍登记入库函数
intRSave(READER*R)//读者信息导出函数
intRLoad(READER*R)//读者信息导入函数
READER*Search_r(READER*R,READERT)//查找读者函数
BOOK*Search_writer(BOOK*B)//按作者查找函数
BOOK*Search_name(BOOK*B,intn)//按书名查找函数
IDX_LIST*IDX_FORM(BOOK*B)//索引表生成函数
BOOK*Search_num(BOOK*B,intn)//按书号查找函数
intSearch_menu(BOOK*B)//书籍检索菜单
intIf_stop(DATE*time)//判断时间循环是否停止函数
DATE*RTIME()//还书日期函数
intLend(READER*tp,BOOK*B)//借书函数
intReturn(READER*tp,BOOK*B)//还书模块
intLog_menu(READER*R,READER*tp,BOOK*B)//读者登录函数
intLog_in(READER*R,BOOK*B)//读者登录模块
READER*REA_SORT(READER*R,READER*p)//读者排序函数
intTEACHER_LOG()//管理员登录函数
intREA_INSERT(READER*R)//读者信息插入函数
intTeacher(READER*R)//管理员登录主调函数
intLibrary_menu(void)//管理函数主菜单
intWELCOME()//系统欢迎菜单
intShow_all(BOOK*B)//藏书一览函数
intCHOICE(BOOK*B,READER*R)//函数主调菜单
2.2主程序流程
2.2.1主程序利用switch()语句实现各个模块的调用,主函数调用如下图所示。
主程序根据不同值主调函数
1
调
用登记入库函数
3
调用书刊检索模块
4
调用教师登录模块
5
调用书籍显示模块
6
退出系统
2
调用
读者登录模块
2.3各模块的层次关系
主函数对各主要模块进行调用,各个主要模块又分别调用其他子模块。
下面用各主要模块简要流程图表示说明。
询问读者是否继续此操作
用户确认后调用BOOK_SORT()函数
调用Info_show()函数
由键盘读取书籍信息
登记入库主模块
登记入库主模块
用户登录主模块
录入借书号及密码,并保存在读者指针中
用户登录主模块
调用Search_r()函数,如存在则返回读者指针
验证用户后调用Log_menu()函数,再根据用户操作,调用Lend(),Rturn(),及Search_num()等函数
真
书刊检索主模块
录入读者的检索方式,并返回选项
书刊检索主函数
根据读者的选择,分别调用Search_num(),Search_name(),Search()等书刊检索函数,如找到则返回指针,否则返回空指针;在每个函数中分别调用Info_show()函数
教师登录模块
调用REA_INSERT()函数,进行添加读者操作
调用TEACHER_LOG(),确认用户权限,如果认证通过,则返回1,否则返回0
管理员登录模块
真
3、详细设计
3.1数据类型实现
-16-
图书信息结构体读者信息结构体
typedefstructBOOK_INFO{typedefstructREADER{
charB_num[20];charRea_name[20];
charB_name[20];charRea_code[20];
charB_writer[20];charRea_num[20];
charB_publer[20];BOOKlenb[5];
charB_ptime[20];DATERtime[5];
intNow_store;structREADER*next;
intTotal_store;}READER;
structBOOK_INFO*next;
}BOOK;
还书日期结构体索引表结构体
typedefstruct{typedefstruct{
intyear;IDXTYPEidxterm[100];
intmonth;intlen;
intday;}IDX_LIST;
}DATE;
索引项结构体
typedefstructIDX_TERM{
charnum[8];
intlen;
BOOK*P;
}IDXTYPE;
3.2程序伪码
intY_N()
//根据读取的字符给flag赋不同值,并返回flag的值
{
scanf(ch);
if(ch[0]=='Y'||ch[0]=='y')flag=1; if(ch[0]!
='y'&&ch[0]!
='Y'&&ch[0]!
='n'&&ch[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 报告