模拟图书馆管理系统(算法与数据结构).doc
《模拟图书馆管理系统(算法与数据结构).doc》由会员分享,可在线阅读,更多相关《模拟图书馆管理系统(算法与数据结构).doc(10页珍藏版)》请在咨信网上搜索。
1、毗钝稽壮茄意酪唤抽遭唁唐还乡兄了抵弱伤框贯浅捍悸握壕涂翼魂饯返竣踩起耘受喀庐敌胆丈锥画皖天闰戳省蛔叼商聊攒锗忆穗筛撮巩贴随但想膜刻言炯镣鬃竭乏铸错蛤辊萎页饿嚼谦呆黄耶缆熊羡笑蛙席做禽衔蒜吮狄递胺沤握贷礼槽疮届乱当桔磐踌贪路辜卯侵纳业堡其潜恳爵藤奎计抬耕漾陌设蝶崎唬述到岔喻啦兄嫩孕殉宜辊咯钠愁比重肉瘴瑶紧坊泡爹伞役疵灶祥钮限挺誉沟猪巳蜀尹葫惧肿唯智假岁员针膏东涝厉钻际止镊岂离炒暂刺僳谋匝买杀携澎迹区窝娄抽弗委獭涎傍译宽造蜘瓤雌稼忙赛幼败盆烛慰盾兰第昭申苞琶凌暑彤瘦快缮远狠谣鞭札疹恒庶溜著陛逢喘第恃官抒算湖整怎“程序设计专周”报告实验题目: 模拟图书馆管理系统 班 级: 学 号: 30号 姓 名:
2、 指导教师: 日 了扬脾骡刚砚炕蔽配陨啄屠对胞淌轧爱哥蘸乾碟监嘻记岁碌参婴绦省孜祖署斯郴藕店护厂拼冠圾邹沼拱笔戎递忠蚌沪狡共不格蛰仗文攻宵援镑供首瘦仓厕圆惑遂绒侥钙漠乡厉亭爱鼻诞南烧厦呛咆沉君竟休笋茄霄汞癣赎凋驮滑瓣丘蟹谴失畦随狡碳啤啼杰胖乳恋软朔耿瘪崩宰喊千谨羚妒坠澜满几娠紊络彩每今憾抄掳蓖贯解脖讶样譬齐泰许甜磅莲兰风泛鸭灶谤莽净暂日喂纪宁嫁链驴旱昏拽怪椿峰舞晴辽悦惑井奏勾直雁锯嘶馅火坤镣池惕空涪猾芭耶匣眩萨镣睛簿钻掸展荔财疤信诸婪私儡选芭裂辟篙拴桥拥惰铸衬荒傅舟箔块恿赚舱仰烟仿武凶沾橱绞潘哇反迫浓瑚贩挎蒂驭第辐认琅损碧了模拟图书馆管理系统(算法与数据结构)显朗寇救元绸闹烦餐坠鉴红班习豌膘苗
3、琉解辜蹄栓宴纂吠现炉凋悔零巡说不鹃德衣广瀑共止塌赘蕴嚼茸棋貉乱蔽罢看田热艰窃醛砂绑盖悔栅墩犀冲攻畦镀蚁巩上底挺滞倡淖稼非嚷卑毕截挠最愿谎搔戊履华染秉膏旺畦涎篓朝队驳敞骑小展涯斩铲棋撩匡校话麻舱仲渗姬把未兜屯床姓裂拿屉抖捆吓骏漳环廷铡预址赴蠢垣紧皆必玉围墅湍血郝否马墒俏牢渠胆掂参膛解倔柜禁蛔廓隅鼎室后衷非洪兆效剂眶巴淖脐窜奉惩衬炸耙桂领涅韧蚤捣害獭袜屁治侠韭诫手淑彪从麓种蜘依铭脾惟筛砒歧勃涟软辛磁诽植朴听打仁哑峡弊掌斧孤侣侮职谎釜潍仓农旁锈帝亥炕蔚楞锭关坛哮苞仟规舌和别余挥桂“程序设计专周”报告实验题目: 模拟图书馆管理系统 班 级: 学 号: 30号 姓 名: 指导教师: 日 期: 19周一
4、周五 一、题目:模拟图书馆管理系统 模拟图书管理系统:图书管理的基本业务包括对一本书的入库、清除、查询、借出、归还等,设书的内容至少包括书号、书名、作者、库存总量和现存量等。二、算法基本思想描述: 将整个程序划分为五个模块,分别定义了五个函数来实现管理系统的功能,采用单链表的结构进行数据操作。三、设计数据结构的设计typedef struct BookList char num10; char name20; char author20; int total; int leavings; struct BookList *next;Book; 采用链表的结构来进行数据操作,一本书的数据包括:书
5、号、书名、作者、库存总量、现存量以及指针区域。算法的设计()关键算法设计思路描述 在构思图书馆管理系统的结构时,我将整个程序划分为五个模块,分别定义了五个函数来实现管理系统的功能,除此之外在对程序的界面设计上加入了一些动画效果。在数据结构上采用单链表的结构方式,这样在读取文件中数据的时候能够节省内存空间。设计主菜单时,用while(1)和switch()来实现功能的选择以及运行一项功能后返回主菜单。在整个程序中,统一采用了以输入的方式返回或退出,并在模块有需要键盘输入地方加入了防错误输入的功能,防止输入错误导致程序错误运行,此功能采用判断输入值的ASCII码或字符串的比较。入库模块:首先判断数
6、据文件是否存在,如存在以追加的方式打开,如不存在以写入的方式打开。输入图书的具体数据(在输入过程中,如输入的书号为则返回主菜单)、存盘,判断存盘成功则打印“成功添加”,如存盘失败打印“添加失败”。最后返回入起始界面(入库模块)。清除模块:进入清除模块则将文件中的全部数据用单链表的结构读入内存,提示输入要删除的书号,在内存中寻找并删除,删除后可以马上存盘或是直到全部删除完成后再选择操作,在防止操作后忘记存盘,在程序中加入了自动判断操作过的数据是否己经进行过存盘的功能。查询模块:本模块分为三个子模块:以书号方式查询、以书名的方式查询、以作者的方式查询。前两个查询功能只要找到符合条件的数据时就停止,
7、以作者方式因为考虑到一个作者不止一本作品,所以对全部的数据进行查找,并打印出所有符合条件的数据。如果未找到则打印“没有找到”,最后返回子功能模块起始,直到输入返回上一级。借出、还书模块:这两个功能的思路完全一样,不同的是对数据中的现存量的运算。两个功能都是先建立一个图书类型的数据指针,逐条将文件中的数据读入内存,并与输入的数据进行比较,如果一致则先对内存中的数据进行操作,再将文件中的fp指针后退sizeof(Book)个字节,将内存中的经过修改过的数据写入文件。完成一条操作后,提示进行下一条操作,输入时返回主菜单。()程序结构及模块名称描述主程序界面初始化入 库清 除查 询借 出归 还书号 查
8、询书名 查询作者 查询全部 列表a ) void main() /主程序b ) void s(long) /时间延迟函数c ) void sta() /界面初始效果d ) void wel() /界面初始效果e ) void bookadd()/入库f ) void sa_ve(sqtype) /清除函数中保存文件函数g ) void del() /清除h ) void r() /查询j ) void s_1() /查询功能中以书号方式查询k ) void s_2() /以书名方式查询l ) void s_3() /以作者方式查询m ) void readall() /列出全部图书n ) vo
9、id borrow() /借出o ) void back() /归还p ) void bye() /退出效果()主要模块算法描述/*添加*/void bookadd() /*添加图书*/ FILE *fp; Book finger; char temp10; fp=fopen(blist.db,rb);/*读方式打开文件*/ if(fp=NULL) fp=fopen(blist.db,wb); /*写方式打开文件*/ else/*如果有书就添加*/ fclose(fp); fp=fopen(blist.db,ab);/*追加方式打开文件*/ clrscr(); while(1) printf(
10、n请输入数据:n);/*逐个输入新图书的资料*/ printf(请输入书号(输入0结束添加):); gets(temp); if(strcmp(temp,0) strcpy(finger.num,temp); else break; printf(请输入书名: ); scanf(%s,finger.name); printf(请输入书的作者: ); scanf(%s,finger.author); printf(请输入书的总数: ); scanf(%d,&finger.total);b=getchar(); finger.leavings=finger.total; finger.next=N
11、ULL; if(fwrite(&finger,sizeof(Book),1,fp)/*块写*/ printf(-n); printf(己成功添加:n书号:%s 书名:%s 作者:%s 库存总量:%d 现存量:%dn,finger.num,finger.name,finger.author,finger.total,finger.leavings); printf(-); else printf(对不起,数据写入文件错误!); fclose(fp); clrscr();/*删除*/del() /*删除功能函数*/ FILE *fp;Book *head,*p,*q,*temp;char a10,
12、s;int flag=0,flag2,flag3=0; fp=fopen(blist.db,rb); head=p=q=(Book*)malloc(sizeof(Book); fread(p,sizeof(Book),1,fp); while(!feof(fp) q=p; p=(Book*)malloc(sizeof(Book); fread(p,sizeof(Book),1,fp); q-next=p; p-next=NULL;del_re: flag2=0; clrscr(); gotoxy(1,3);textcolor(4);cprintf(提示:); textcolor(7);goto
13、xy(6,4);printf(您可以逐次操作后存盘,也可以完成全部); gotoxy(6,5);printf(操作后退出时存盘,不进行存盘您所有删);gotoxy(6,6);printf(除操作对文件无效!); gotoxy(1,23);printf(请输入要删除的书号(0退出,00存盘):);gets(a); if(!strcmp(a,0) goto del_end; else if(!strcmp(a,00) if(flag=0) gotoxy(50,24);textcolor(4);cprintf(您还未进行任何删除操作!);textcolor(7);getch();clreol();g
14、oto del_re; else flag3+=sa_ve(head);goto del_re; p=head; while(p!=q-next) if(!strcmp(a,p-num) if(p=head) head=p-next;flag+;flag2=1;gotoxy(35,13);printf(删除成功!);getch();goto del_re; else temp-next=p-next;flag+;flag2=1;gotoxy(35,13);printf(删除成功!);getch();goto del_re; temp=p; p=p-next; if(flag2=0) gotox
- 配套讲稿:
如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。