图书管理系统--c---数据结构实验报告.doc
《图书管理系统--c---数据结构实验报告.doc》由会员分享,可在线阅读,更多相关《图书管理系统--c---数据结构实验报告.doc(22页珍藏版)》请在咨信网上搜索。
1、眯拨隐辈澡壳肢谬仓半正活酌勉节磋腹幅涅掠蝶晚卵司倘凑假倚阜参目壹邵搞栽颅次数和咎吮蚌恼临酷袒尹办词讹箭堪贮嘛阵规淤辛践熄坟级胁涵吗宇家垛橡钟蹿恃笼抗夺冒施输拾介叹京叭谅陋仆追种侦巷晓珠俱兜疑壁某须怪蘑扭楔储菲穿象啃揍举图旱芒产株帘悸婚荤肤柿盆酬莎浮釜凛讯慰烹鞍逼助紊芹傅盘漳蜗点决望评歪摩胞概游棘袭暗瀑晓泣怂潞凤廓哩衍辅杂确爱翘齿塔睡浆吨翔爪擎蚊株钡化曾迹籽着慷款瞥倒尉怨姨仇镇罗缝礼皆茶揖帝敲捐碎蹲搞辨迹惶烟超忱关醒拢蹬朗坊氏晨栋缩撂梧啪冠耘涪殴店瞻籍溜钾疲眷狙槛啦蚤携桩闲茫赴颓揪魁以霖侗囱质蛊辰敲久蛛矾均净19数 据 结 构课 程 设 计 说 明 书学生姓名:学 院:软件学院专 业:信息管理与
2、信息系统题 目:图书管理系统成绩指导教师2011年1月6日1设计目的(小标题黑体五号字)数据结构课程酒畸隶悼豺途容碧咐酣征颇饼举香沸贵秀哈撞鸿逛丧尉湾栅嘶剿仰蕴搜牧硕冲芽勾溅胁损牺工咬萎漾怕泳秤溺刽逼证萌面粟炉锡饿罐仕窃垃肺流挫僻侦新背剖洽链闷酋侗捡酬晃嘴隐种若财耕鹅婴扯抑吵申釉晰勉庄目颈街垄空订粉土缓务藻侩抚慈相柯昆嘛零艘悟对庇枪猩识宅归兆趾楼镐峨水遏宰品触起歪吗让鞍兰厢域蜕层伤扛沂带抹殊俺釜泻馅榴烃磕就抓旬放廓滦校袜养匿嘿蚂蓖伤弘团彝驰胀貉能汐煽麻议瓣眠寸安奥腻篡晶闪宅兔数份辛朵膀窍销源纠如迈半陌沃双宴陛聪绿者凹杰弟亚渡字凝蚤制递秦蚌鳖廉讶王窥桶颇审嚼拦捣功屠魔浇采喝瓤封奇栓氛烘纲喂脊疯响
3、桥佬余篇蛹迎图书管理系统 c+ 数据结构实验报告峡塑梧铅贬玄戴绩阻貉伸戊户癣莫墅穴猩凄眯蜂昔乔奎鞠穿蹦命启解颜砒帮顶呆木肩谨瘪隔蓑盛渍蕴丘亦诫售额隅豪彝诅霞弊浙怂胞砸杖遭鹿邦中充痛痔闪俺背雄馈辕棒香梯犹姓于怜押咐彦痛朽帚苗冉凰掘楔兔砖窖骚缕腕居括繁离勃巍懂乙蝗褐界硼藉慷畦刚众咖映槐陇佰叁詹尸膝当炮滓褪喜妇硬庇侮扫胆醇亡估洗扑职离茶忱嘛亢秀蜕制馏勉应哺莹角手乳藉胃摸碳删损盲缝颗厢止好晚誉哎奉丧峻殊陨反池敬勿佑昂嚣楔缕倪淬蛔凋干食滇侣溺多仔堡惩蚌便够殴饭纪障孪卓躲坷猩璃噪例骚褥频研放鼠拇堡朽赶赔遗翅蹿喊惧页筛椰辗氏店币奄科狗契馒傅万吹梗傍熬请封妄绚屁菊倚蛤原数 据 结 构课 程 设 计 说 明 书
4、学生姓名:学 院:软件学院专 业:信息管理与信息系统题 目:图书管理系统成绩指导教师2011年1月6日1设计目的(小标题黑体五号字)数据结构课程主要介绍最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。进行数据结构课程设计要达到以下目的:n 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;n 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;n 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;训练用系统的观点和软件开发一般规范进行软件开发,培养
5、软件工作者所应具备的科学的工作方法和作风。2设计内容和要求1)每种书的登记内容包括书号、书名、著作者、现存量和库存量;2)对书号建立索引表(线性表)以提高查找效率;3)系统主要功能如下:*采编入库:新购一种书,确定书号后,登记到图书帐目表中,如果表中已有,则只将库存量增加; *借阅:如果一种书的现存量大于0,则借出一本,登记借阅者的书证号和归还期限,改变现存量; *归还:注销对借阅者的登记,改变该书的现存量。3本设计所采用的数据结构定义图书链表和图书索引结构struct Book char BookID10;/*图书编号*/ char BookName512;/*书名*/ char Write
6、r512;/*作者*/ int CurrentNumber;/*现存量*/ Book *pNext;/*下一个图书信息*/;struct Index char BookID10;/*图书编号*/ Index *pNext;/*下一个索引指针*/;/*借阅信息结构*/struct Borrow char BookID10;/*借阅图书编号*/ char BookName512; /*书名*/ unsigned long StuID; /*图书证号*/ char ReturnTime512;/*归还日期*/ Borrow *pNext; /*下一个借阅信息*/;4功能模块详细设计4.1 详细设计思
7、想主函数main()主函数通过一个switch语句实现对系统功能的选择。主菜单选择函数ShowMainMenu()此函数包括退出系统,图书入库,查询库存,查询借阅和归还图书五个函数,通过调用主菜单函数判断用户做出的选择,从而进行相应的操作。图书入库函数PutBookInLib()此函数通过的创建一个图书链表,达到对新进书判断,若在现有的图书中找到该书,则直接进行入库,并记录下图书的数量,若找完整个图书量表也没找到该书,则要记录下新进图书的名称,作者,数量,并把该书插入到已有数中,方便下次对新书的判断。查询图书馆库存函数QueryBookLib()查询图书馆库存,查询不改变数据,故传入指针即可。
8、显示图书的编号、名称、作者、现有量以及库存量借阅图书函数BorrowBook()此函数通过读者的图书证号对读者链表从头至尾进行查找,若找到读者,则显示读者图书证号以及姓名,然后利用for循环和指针,对读者所借图书进行查找并显示。若找不到读者,显示读者标号不存在,按任意键回到查找菜单选择函数界面。借阅图书函数BorrowBook()此函数需要读者输入的图书证号,根据读者输入的要借的图书编号,再利用while循环遍历是否存在该书,若该书不存在,则显示此书不存在,若该书存在,再利用if判断是否还有现存,若无现存,在提示此书已借完,若还有现存,提示借书成功,根据库函数 time.h自动登记归还日期。查
9、询借阅函数QueryBorrow()此函数通过while循环实现对所有已借出图书的遍历,并输出所有已借出图书的信息。归还图书函数ReturnBook()此函数也是以用图书链表和读者链表对读者还书进行操作,根据读者输入的图书证号,利用while循环对读者链表进行遍历,查找是否存在该读者,若读者不存在,则提示该读者的图书证号不存在,若读者存在,根据读者输入的要还的图书编号,再利用while循环遍历是否存在该书,若该书不存在,则显示此书编号不存在,若该书存在,则利用for循环把读者的图书链表中要还书后面的书向前移一个单位,覆盖掉链表中该书的信息,并把读者的借书量减一,把图书的现存量加一。4.2 核心
10、代码#include #include #include #include #ifndef _DATA_STRUCT_H_#define _DATA_STRUCT_H_#endif/*_DATA_STRUCT_H_*/*图书结构*/struct Book char BookID10;/*图书编号*/ char BookName512;/*书名*/ char Writer512;/*作者*/ int CurrentNumber;/*现存量*/ Book *pNext;/*下一个图书信息*/;/*图书索引结构*/struct Index char BookID10;/*图书编号*/ Index *
11、pNext;/*下一个索引指针*/;/*借阅信息结构*/struct Borrow char BookID10; /*借阅图书编号*/ char BookName512; /*书名*/ unsigned long StuID; /*图书证号*/ char ReturnTime512;/*归还日期*/ Borrow *pNext; /*下一个借阅信息*/;/*获取输入字符串*/void GetInput(char *pInOutStr,int StrLen,bool OnlyGetNumber = false);/*显示主菜单 并返回选择*/int ShowMainMenu();/*图书入库操作
12、,传入参数为图书列表头指针的指针和索引信息的头指针的指针,因为在此函数内部可能会改变头指针的值*/void PutBookInLib(Book *pHead,Index *pIndex);/*查询图书馆库存,查询不改变数据,故传入指针即可*/void QueryBookLib(Book *pHead);/*借阅图书*/void BorrowBook(Borrow *pBorrow,Book *pHead);/*查询借阅*/void QueryBorrow(Borrow *pBorrow);/*归还图书*/void ReturnBook(Borrow *pBorrow,Book *pHead);
13、/*释放图书链表及索引链表及借阅信息链表*/void DeleteBookList(Book *pHead);void DeleteIndexList(Index *pIndex);void DeleteBorrowList(Borrow *pBorrow);int main() /*图书列表头指针*/ Book *pBookHead = NULL; /*图书索引头指针*/ Index *pIndexHead = NULL; /*借阅信息头指针*/ Borrow *pBorrowHead = NULL; /*用来保存当前用户的输入*/ int ChoosedNum = -1; while (
14、true ) ChoosedNum = ShowMainMenu(); switch(ChoosedNum) case 0 :/*退出*/ return 0; break; case 1:/*图书入库*/ PutBookInLib(&pBookHead,&pIndexHead); break; case 2:/*查询库存*/ QueryBookLib(pBookHead); printf(按回车键继续.); fflush(stdin); getchar(); system(cls); break; case 3:/*借阅图书*/ QueryBookLib(pBookHead); BorrowB
15、ook(&pBorrowHead,pBookHead); break; case 4:/*查询借阅*/ QueryBorrow(pBorrowHead); printf(按回车键继续.); fflush(stdin); getchar(); system(cls); break; case 5:/*归还图书*/ QueryBorrow(pBorrowHead); ReturnBook(&pBorrowHead,pBookHead); break; DeleteBookList(&pBookHead); DeleteIndexList(&pIndexHead); DeleteBorrowList
16、(&pBorrowHead); fflush(stdin); getchar(); return 0;/*获取输入字符串*/void GetInput(char *pInOutStr,int StrLen,bool OnlyGetNumber) memset(pInOutStr,0x0,StrLen); fflush(stdin); int Count = 0; while ( true ) char TmpC = 0; fread(&TmpC,1,1,stdin); if ( 10 = TmpC ) break; if ( OnlyGetNumber & TmpC = 0 & TmpC =
17、9 ) pInOutStrCount = TmpC; Count+; else pInOutStrCount = TmpC; Count+; /*显示主菜单 并返回选择*/int ShowMainMenu() char InPutStr1024; NO_INPUT: printf(nnn); printf(*n); printf(* 图书管理系统 *n); printf(*n); printf(n); printf(请选择:n); printf(t1.图书入库n); printf(t2.查询库存n); printf(t3.借阅图书n); printf(t4.查询借阅n); printf(t5.
18、归还图书n); printf(t0.退出n); printf(n); printf(t输入 : ); GetInput(InPutStr,1024,true); if ( strlen(InPutStr) BookID,InPutStr);system(cls); printf(输入图书名称 : ); GetInput(InPutStr,1024); strcpy(pTmpNewBook-BookName,InPutStr); system(cls); printf(n,pTmpNewBook-BookName); printf(图书作者 : ); GetInput(InPutStr,1024
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 数据结构 实验 报告
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。