




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实践教学%1k1 xl kjkj xl 2 k1 xl kjkj xlrt rjw <t rl% <1%r7% <1% ryw >t% <1%r7% <1%<1%兰州理工大学计算机与通信学院2011年春季学期数据结构课程设计题专姓学指成摘要2前言3正文41. 采用类c语言定义相关的数据类型42. 各模块的伪码算法53. 函数的调用关系图74. 调试分析95. 测试结果106. 源程序(带注释)11总结13参考文献14致谢15附件i部分源程序代码16摘要图书借阅管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者 和读者来说都至关重要,直接关系到图
2、书的借用率,所以开发图书管理系统能够为 管理员和读者提供充足的信息和快捷的查询手段。编写程序系统主要实现图书馆的增加图书、查询图书、删除图书、借阅图书、 还书;增加会员、杳询会员、删除会员、借书信息、到期书催还等智能化管理过 程。图书的结构体包拾的数据项有:图书编号、书名、书的价格、借阅人、判断 书是否存在或者已经借出的数据项(i存在,0借出)等;会员的结构包括的数据 项有:会员的姓名、会员的性别、会员的年龄、等。图书管理者只需略懂电脑知 识就可以简易的操作该图书借阅管理系统。关键字:图书信息管理;查询;修改;读者;借阅随着计算机技术的不断发展,计算机作为知识经济时代的产物,已被广泛 应用于社
3、会各个行业和领域。口前,我国的科技水平高速发展,计算机作为今天使用最 广的现代化工具已深入到各个领域,并h正在成为未来社会一一信息社会的重要支柱。在这 样的人背呆下,现代图书馆的管理方式,资源建设等方而都发生了重大变化,这种变化表现 在图书馆工作,管理利服务平台发生的变化图书馆不再是传统的手工操作,人工管理,而是 全而实行计算机管理。图书馆的正常运营屮总是面对人量的读者信息,图书信息以及两者相互作用产生的借书信 息,因此要对读者资源,图书资源,借书信息进行管理。本系统的开发就是在于提高图书管 理的工作效率,加强图书馆的管理,全面实行计算机管理/图书单价/借书人编号/图书名/图书编号/作者姓名s
4、truct book *next;/结点指针1采用类c语言定义相关的数据类型存储结构的定义1.1书的结构体typedef struct bookfloat price; int membernum;char name80;long num;char writername20;char publish30;/ 出版社名称int yes; 判断书是否存在或者已经借出,1存在,0借出book,*booklist;12借书时间结构体typedef struct timeint year;int month;int day;data;1.3会员借的书的结构体typedef struct borrowbo
5、oklong num; 借的书的编号struct time time; 借书时间struct time borrowtime; 借书期限bbook;1.4会员的结构体typedef struct memberchar name20; /会员姓名char sex; /会员性别,男m,女flong num; 会员编号int style; /会员类型,1:本科牛;2:研究生;3:教0帀;4:管理员; int max; 会员借书数目,初始为0 int yes; /会员是否借书,1是,0否bbook tmax; 会员借的书的数组struct member *next; 结点指针member,*membe
6、rlist;2.各模块的伪码算法2.1图书查询输入耍杳询的方法,选择相应的查询函数,如果选择的是按书名查询则显示所有书名相 同的图书信息;如果选择的是按编号进行查询,则一次只显示一本书,因为图书是以编号作 为主键的,一个编号对应唯一的一本恢如果选择的是按作者名进行查询,则显示所有作者 名相同的图书;如果选择的是按出版社查询,则显示出所冇出版社相同的图书;如果选择查 询所有图书,则显示出所有图书的信息;如果没有相应的图书,则显示相关信息。(如图-3)开始选择查询方法名查询结束图32.2图书借阅先输入会员编号,判断是否为会员。如果是会员,就输入要借的图书编号,在图书链 表当中查找这木书,如果找到,
7、再判断这本书是否被借出;如果没冇借出,则判断这个会 员借的书是否超出了他(她)的最大借阅量,如果没有超出,则在会员借的书的链表中查 找适当位置,将借的这本书的书名、编号等信息保存在链表中,完成图书借阅操作。如果 不是会员,或者这本书不存在,或者这本书已经被借出,或者会员超出了他(她)的最人 借阅量,则借阅都不成功。(如图-4)2.3还书输入要归述的图书编号。在图书链表当中查找这本书。如过在链表中找到这木书,并且 它被借出,则找到借这木书的会员编号,然后再在会员链表当中查找该会员;找到会员后,则再在该会员借了的书的链表当中查找这本书的信息,将这本 书从借了的书的链表当屮删除,并且将这个会员借的书
8、的数冃减1,完成还书。如果这本书 不存在或者没借出,则还书不成功。(如图-5)2. 4借书信息输入会员编号,在会员链表中查找相应 的会员,如果该会员借了书,则继续查找该 会员借的书的链表,在链表中查找该会员借 的书的详细信息,如借了的本数、编号、借 书时间和到期时间;如果借的书的链表屮没 有记录,则说明他没有借书,则显示“无借书 记录”。(如图6)2. 5到期书催还在图书链表中逐个查询,如果书被借出, 则进一步判断;获取当前系统的时间,用来与 借出的书的到期时间作比佼;因为到期时间保 存在会员借的书的链表当中,因此,只有找到 借这本书的会员编号,然后根据编号再在会员 链表屮找到改会员,再在他借
9、的书的链表屮查 找他的书,获取到期时间,那它与当前的系统 时间作比较,如果系统的时间超过了到期时间, 则显示出催还信息。(如图-7)图6图73.函数的调用关系图3.1总体功能实现图-1 总体功能实现框图人员不定借书卡表借还信息表书信息表图书编号卡号,借书日期 还书请求通过需求分析,设计出本程序的总体功能设计框图。分为七个方ffn: k选择 检查类型;2、编辑图书的信息;3、查询图书的信息;4、编辑读者的信息;5、 查询读者的信息;6、借阅书刊;7、还书。连线z间说明了他们z间的相互联系 以及设计时的要求3. 2图书借阅管理简略功能框图借阅者借阅者別除借阅者修改借阅者査找借阅者添加图书保存-书图
10、书删除图书査找国书添加按书名删除号删除按编号査找按作者査找按书名査找4调试分析a.调试中遇到的问题及对问题的解决方法int search booknum(booklist &h) /按编号查询 "book *p;p=h->next;int n;int flagro;上述函数中,对变量的定义出现了错误,导致数据无法正常显示计算,应将“int n”改为"long int”,使数据的输入合法化。b、算法的时间复杂度和空间复杂度单链表来存放图书涪息存储:空间复杂度为0(n)时间复杂度都为0(n)。单链表来存放会员信息存储:空间复杂度为0(n)时间复杂度都为0(n)。图
11、书的管理及借阅、会员管理,时间复杂度都为0("。5.测试结果51增加图书和增加会员系统,力叭5本书和5个用八作为测试用八。详细内容如下表:出否否是否果否图图书淸单姓名ao bo co doeo般男男女男女ji师生生生生 型教科科究科 类本本硏本7f否借书共计5个会员。图9用户清单5.2图书借阅功能:(如图io)欢迎进入图书管理系纟充1增协图书图书借阅查询图书图书归还删除图书0退出f请在此输入您的选择:4输入会员编号:4揄入劳借阅的书的相关信息:编号:1成功借岀! 编号:2error?当前囱书袖借出,不能借阅!编号:4error?当前图书袖借出,不能借阅!5.3图书归还功能:(如图11
12、)欢迎进入图书管理系统;i增加图书图书借阅查询图书图书归还删除图书l0退 出>请在此输入您的选择:5o输入要归还的书的相关信息、:o编号:1丿还书成功!o编号.5<c这本手没有借出,还书失败! >o编号 9v沿有逑本书! >5.4会员借书信息显示:(如图.o当前会员名单:n 虧男男女男女师生生生生 型教科科丸科 a.本本册本果否借书共计5个会员。输入要查询的会蹩记录! >o输人要查询的p齋显田情况:本数编号借书时间到期时间1 42009-3-12009-6-12 22009-3-12009-6-1。输入要查询的会鬻辭爲情况:本数编号借书时间到期时间112009-7
13、-92009-10-95.5过期催还功能:(如图.13)增加会员借书信息查询会员到期书傕还删除会员0退出请在此输入您的选择:5欢迎进入会员管理系统i书号24借书人编号33到期信息这次基础强化训练的课程设计对于我们來说,有一定的难度。因为他要求 我们较完整的去实现一个比较可行的程序。将其应用到实际的生活中去。我被分 配到的题冃是图书借阅系统的实现与设计。这个题冃相对來说贴近生活,比较容 易理解。但是设计一个较为完整的程序却不是这么简单的。首先我分析了相关的题目内容,并由此而进行了相关资料和书籍的查询工 作然后才开始正式进行设计。一开始不知从何下手但后来分析了一下题目,并结 合这学期所学的知识,再
14、加上相关提示我决定用指针、链表和文件的内容来编写 程序。图书管理主要就是有一些操作来完成,这些操作包括:新进图卩基本信息 的输入、图书基本信息的查询、对撤消图卩信息的删除、为借书人办理注册、办 理借书手续(非注册会员不能借书)、办理还书手续等等。我想这正好用c+的 知识来实现函数:添加图书,图书查询,删除图巧,增加会员,会员查询,删除会员, 借阅图书,归还图书,借书信息,到期书催还。最后编写退出系统的函数。在具体编写程序时考虑到图书的相关操作与会员基本相同,所以实际上只 要编写前三个函数,后面的函数把相应变量改变就可以了。添加图书:考虑到图 书的信息较多,所以用结构体对其定义。又考虑到图书量人
15、,所以添加后要保存 到文件中去。图书查询:用所学过的顺序查找法来写。删除图帖:把保存到文件 中的内容写到链表中去,用链表删除结点的方法来删除图书。我们所学过的指针 这时正好用上。最后把各函数同主函数和连,用主函数调用它们,编写好好看的 界面就可以了。同时通过这几天的程序及报告编写,我也发现了自己的很多不足,自己知识的 很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还是比较 脆弱。尤其是编写人型的程序所要拥冇的知识和技能比较缺乏。程序编好了,还 耍经过调试和修改,这步也很关键,好的程序是经过了无数次的修改和调试才产 生的。我的程序基本上能够满足耍求,但还有一些地方需耍改进,在今后
16、我应该 在多看书的同时还要加强实践的练习。才能进一步提高自己的编程能力。最后,还耍感谢我们实验室指导老师的细心指导、热心帮助。路漫漫其修 远兮,虽然木学期数据结构课程结束了,但仍觉得口己还有很多东西要学,我会 在自己在以后的学习生活中不断努力、不断提高,争取更大的进步。参考文献闵联营,何克右.c+程序设计教程.武汉理工大学出版社;严蔚敏,吴伟民.数据结构(c语言版)清华大学出版社;张文祥,肖四友.c+实验与案例分析.科学出版社;谭浩强.c+程序设计清华大学出版社;朱战立.数据结构(c+语言描述)(第二版本).高等教冇出版社。在编写程序的过程中,我们得到了卢鹏丽老师的精心指导以及孜孜不倦 的教诲
17、,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨 的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢! 感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生 活和学习上帮我许多忙。在课设即将完成之际,我的心情无法平静,从开始 进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的 帮助,在这里请接受我诚挚的谢意.附件i部分源程序代码#include <iostream.h> #include <cstdlib> #include <stdio.h> #include <stdlib.h> #include
18、 <string.h> #include <iomanip.h> #include <time.h>#define max 100#define maxi 2本科生最大借阅量 #define max2 5 研究牛最大借阅暈#define max3 10教师最大借阅量#define max4 100/管理员瑕大借阅量 书的结构体typedef struct bookfloat price;int membemum; char name80j;long num;char writername 20;char publish30j; int yes;struct
19、book *next; book,*booklist; 借书时间结构体 typedef struct time图书单价借卩人编号图书名图书编号作者姓名 出版社名称判断书是否存在或者已经借出,1存在,0借出结点指针int year;int month;int day;data;会员借的帖的结构体 typedef struct borrowbooklong num;struct time time;struct time borrowtime; bbook;借的书的编号借书时间借书期限会员的结构体typedef struct memberchar name20; /会员姓名char sex; 会员
20、性别,男m,女flong num; 会员编号int style; /会员类型,1:本科生;2:研究生;3:教师;4:管理员;int max; 会员借书数目,初始为0int yes; /会员是否借书,1是,0否bbook tmax; /会员借的书的数组struct member *next; 结点指针 member,*memberlist;查询图书int search_bookname(booklist &h) /按书名查询book *p;p=h->ncxt;char n8oj;int flag=o;cout«',o输入要查询的廿名:“;cin»n;fo
21、r(;p !=null;p=p->next)if(strcmp(p->name5n)=0)if(flag=0)cout«endl«" |$名 编号 单价 作者 出版社 是否借出"vvendl;cout«""«p->name«"h«sctw( 10)«p->num«sctw(l 2)«p->pricc«sctw( 1 l)«p->writcrnamc«sctw( 13)«p->
22、publi sh;if(p->yes=l)cout«setw( 15)«ui!?"«endl;elsecout«setw( 15)« "是"«endl;flag=l;continue;cout«,!/z<<endl;if(p=null&&flag=o)cout«h没有相关信息!探,z<<endl; ”cout«,l< endl;)return 1;)增加图书book *lnit_b() 初试化图书链表book *h;h=(b
23、ook *)malloc(sizeof(book);if( !h) exit(l);h->ncxt=null;return h;)int bookadd(booklist &h) /建立一个带头结点的链农用来存储图书信息int i=0; /统计要增加的图书量book *p,*q;p=(book *)malloc(sizeof(book);if(!p) exit(l);if(h->ncxt=null)cout«mo输入图书编号:”;cin»p->num;if(p->num=0) /退出”增加图书”cout« ”共计u«i
24、171;h本图书入库!”vvendl;return 1;cout«mo输入书名:豎 cin»p->name;cout«no输入图书价格:”; cin»p->pricc;cout«no输入作者姓名:”;cin»p->writemame;cout«no输入出版社名称:”;cin»p->publish;p->yes=l;/l表示没有借出p->next=null;h->next=p;q=p;+i;cout«endl;)elseq=h;while(q->next !=
25、null)q=q->next;p->num=l; /iit入循环的条件p->ncxt=null;while(p->num!=o) /以图巧编号作为判断链表是杏结束p=(book *)malloc(sizeof(book);if(!p) exit(i);cout vv ” o输入图书编号:”;cin»p->num;if(p->num=0) /退出”增加图 vcout«°共计h«i« 本图书入库!n«endl;cout«<endl;break;cout«"o输入书名:
26、”;cin»p->namc;cout«n o输入图书价格:”;cin»p->price;cout«uo输入作者姓名:”;cin»p >writeniame;cout«no输入岀版社名称:”;cin»p->publish;p->yes=l;/l表示没有借出p->next=null;q->ncxt=p;q=p;+i;cout«cndl;return 1;/查询图书方式int search_booknum(booklist &h) /按编号查询book *p;p=h-&g
27、t;next;long n;int flag=0;cout«n o输入要查询的书的编号:”;cin»n;for(;p !=null;p=p->ncxt) if(n=p->num)if(flag=o)coutvvendlvv”书名编号单价作者出版社是否借出”vvendl;cout«hh«p->name«hm«set w( 10)«p->num«setw( 12)«p->price«set w( 11 )«p->writername«setw(
28、 13)«p->publi sh;if(p->ycs=l)cout«setw( 15)«h 否”v vendl;elsecout«setw( 15)«u 是"v vendl;flag=l;continue;cout«,l-,<<endl;i f(p=null& & n ag=0)cout«m没有相关信息! “vvendl;cout«,l end 1;return 1;)int search_bookwritername(booklist &h) /按作者名查
29、询book *p;p=h->next;int flag=o;char nf3o;cout«mo输入要查询的书的作者名:”;cin»n;for(;p !=null;p=p->ncxt)if(strcmp(p-> writername,n)=0)if(flag=o)cout«endl«h |5名编号单价作者出版社是否借出”vvendl;cout«mh«p->name«nh«setw( 10)«p->num«setw( 12)«p->pri ce«
30、;set w( 1 l)«p->writername«setw( 13)«p->publi sh;if(p->ycs=l)cout«setw( 15)«n 否 ”v vendl;elsecout«sctw(l 5)«u 是 h«cndl;flag=l;continue;cout«,lz<<end 1;if(p=null &&fl 迪=0)cout«m没有相关信息!探<endl;cout«flz<<endl;return 1
31、;int searchlpub=sh(booklis <&h)vebsl¥w亠book *>?puhvncxt 八 int flag=ch char 旦 50; cou爪0。»>艰咤壬至总3壬一箝些&葵”=;cinvvhforcpllnulnpupvnext) if(swcmp(pvpublish3n=0) 二(flaghho) cout<xendaa= -sikb <#芦 定诛 圧盍!thbee-aaendjt0ocxa- aapvnameaa- -aaseiw( 10)aapvnumaaserw(laapvpriceaase
32、rw- ll)pvwriternameaaseiw(l 3)pvpub= shiif(pvyeshhl)cou-aasc-w( 15aa=7iazacnd-八2-se coutccsetw( 15aaaaend 一;flaghl八continue-一一 、 coutca厂fendrifmhhnullrpkflagho)oosaaz 萍奋盂卅a.6j 弋endrccc7/z/allu 匸一returnrr一im searchla=b(booklislrph)=血宜玄氏囹吉a卽亠book 关 3puhvncxtiim iupflaghpforcpllnulrphpvnexi)(if(flagu=o
33、)cou 爪公 ndaq 一 国 s s sees津 淞珊離ee.a'aendrr8£aa= .aapvnamcaa- aasew( 10)aaponum<xsw( 12)aapvpriceaasetw(二)<xpvwrianlame«sew( 13)<xp,vpubli sh八spvycs=l)coutkasetw( -5aa骂-aaendrre-secoihaas2 w( 15aa-m-aaendrrflag”:i+一oosaaz 片竺aa.aq*。.tcendhcout l= en d 1 八sc 3 一八ini booksearch(boo
34、klisi <&hint m; while(m!=o)kz,<<endl;cout«n acout«n |欢迎进入图书查询系统|cout«" f < end 1;| n«endl;| m«cndl;| n«endl;cout«" |11 n«endl;cout«,t |按书名查询| 按出版社查询cout«" |11 ”vvendl;cout«'f i按编号查询i查询所有图帖信息cout«n 11 h
35、1;endl;cout«n |按作者名查询| 0.退出cout«" i11 ”<vendl;cout«n>请在此输入您的选择:”; cin»m;cout«'l< en dl;switch(m)case 1:scarch_booknamc(h); break; /按书名査询case 2:search_booknum(h); break; /按编号查询case 3:search_bookwritername(h); break; /按作者名查询case 4:scarch_publish(h); break; /按
36、出版社査询case 5:search_allb(h); break; /查询所有图书信息case o:break; 退出)return 1;)删除图书int bookdekbooklist &h) /以图书编号作为主键进行删除book *p;long n;int flag=o;p=h;cout«uo输入要删除的书的编号:”;cin»n;for(;p !=n u ll; p=p->next)if(p->next !=null &&p->next->num=n)if(p->next->yes=o)cout«&
37、quot;error!当前图书被借出,不能删除! “vvendl;cout«,l<endl;return 1;p->next=p->next->next; 删除语句cout«,v成功删除! “vvendl:il( ' on 01.fl昭二1;/成功删除标记break;if(p 二二null &&flag=0) cout«,'删除不成功!“«endl; /q经被删除或没有这本书cout«,l-z<<e ndl;)return 1;)图书借阅int member_y(memberl
38、ist &long num)/判断是否是会员,1是,0否。只有会员才有权限 借书member *p;p=l;for(;p !=null;p=p->ncxt)if(p->num=num)return 1;return 0;int bookborrow(booklist &h,memberlist &l) /借阅时以编号作为主键book *p,*s;member *q;long m=l,num;int t=0,flag=0,max;coutvv” 输入会员编号:";cin»num;if(member_y (l,num)= 1)q=l;for(
39、;q!=null;q=q->next)if(q->num=num) break;whilc(m)if(t=o)cout«" 输入要借阅的w的相关信息:“;t=l;cout«" 编号:cin»m;for(s=h->next;s!=null;s=s->next)if(s->num=m) break;if(s=null)cout«m error!没有这本书! "vvendl;cout«,ljz<<endi;continue;)for(p=h->ncxt;p!=null;p=
40、p->ncxt)if(p->num=m)if(p->yes=0)cout«n error!当前图书被借出,不能借阅! “vvendl;cout«,l/z< en dl;break;)if(q->style=l) max=maxl;else if(q->style=2) max=max2;else if(q->style=3) max=max3;else if(q->style=4) max=max4;q->max+;if(q->max>max) coutvvs你已经借的书隅过了最大借阅量,不能再借书! “vv
41、endl;cout«,l/z<<endl;q->max;return 1;p->yes=o;p->membernum=q->num;q->yes=l;for(inl i=l;i<=max;i+)if(q->ti num=0) break;q->t i .num=p->num;timc_t timer=time(o);/调用limc()函数获取当前时间struct tm *ptrtime=localtime(&timer);/调丿ij localtime()函数将获得的系统时间转化为指向 struct tm的招针
42、指向的结构体q->ti.time.year=1900+ptrtime->tm_year;q->tij.time.month=l+ptrtime->tm_mon;q->ti.time.day=ptrtime->tm_mday;if(q->ti.timc.month>=10)q->ti.borrowtime.year=l 900+ptrti me->t m_year+1;elseq->ti.borrowtime.year=1900+ptrtime->tm_year;q->tij.bon-owtime.month=( 1
43、+ptrtime->tm_mon+3)% 12;q->ti.borrowtime.day=ptrtime->tm_mday;cout«"成功借出! "«cndl;cout«,l彳e ndl;flag=l;成功借出标记break;if(p=null&&flag=o)coutvv"借书不成功!”«endl; /没有这本书cout«,l< endl;)elsecout«it对不起,您不是会员,借书失败!如果想进行些操作,请先申请! “vvendl;coutvv吒;,<
44、;<endl;)return 1;还卩int bookreturn(booklist &h,mcmbcrlisl &l) /还书时以编号作为主键book *p,*s;member *q;long m=l;int flag=0,max;cout«"o输入要归还的书的相关信息:”;while(m)cout«n o编号:”;cin»m;for(s=h->next;s!=null;s=s->next)if(s->num=m) break; if(s=null) cout«,f 没有这本书! ><end
45、l;cout«,l-z<<endl;continue;for(p=h->next;p!=null;p=p->next)if(p->num=m)if(p->yes= 1)cout«"这本书没有借出,还书失败! >z,«cndl;cout«,len d 1;break;for(q=l;q !=n ull;q=q->next) if(q->num=p->membernum) break;p->ycs=l;if(q->style=l) max=maxl;else if(q->
46、style=2) max=max2;else if(q->stylc=3) max=max3;else if(q->style=4) max=max4;for(int k=l;k<=max;k+) /从借的书的数组屮删除这木书if(q->tk.num=p->num)q->tk.num=0;q->max;break;)cout«,-v还书成功! "vvendl;cout«,l en d 1;if(q->max=0)q->ycs=0;flag=l; /成功还卩标记break;)if(p=null&&
47、flag 二二 0)cout«n还书不成功! "vvendl;/没有借这本书cout«,lj,< <endl;)return 1;)增加会员member *init_m() /初试化会员链表member *l;l=(member *)malloc(sizeof(member); if(!l)cxit(l);l->next=null;return l;int memberadd(memberlist &l) /建立一个带头结点的链农用來存储会员信息 int i=o,k=o,max; 统计要增加的会员人数member *p,*q,*s;p=(
48、member *)malloc(sizeof(member);if(!p) exit(l);if(l->ncxt=null)coutvv" o输入编号:";cin»p->num;if(p->num=0) /退出”增加会员”cout«n共计tvkvv”名会员入会! tvcndl;coutvv 吒j,<<e ndl;return i;)cout«no输入姓名:”;cin»p->name;for(s=l->next;s!=null;s=s->next) if(s->num=p->n
49、um) couivv”末同一会员不能重复注册! ”甘;cout«,l z<<e ndl;return i;)cout«mo输入性别:(男:m,女:f)"男m,女f cin»p->sex;cout«mo输入会员类型:(1:本科生;2:研究生;3:教师;4:管理员;)”; cin»p->style;if(p->style=l) max=maxl;else if(p->stylc=2) max=max2;else if(p->style=3) max=max3;else if(p->style
50、=4) max=max4;k)r(int i=0;i<=max;i+)p->tij. num=0;p->max=0; 借阅数i"!,初始为0p->ycs=o; /0表示没有借书 p->next=null;l->next=p;q=p;+k;cout«endl;elseq=l;while(q->next !=null)q=q->next;p->num=l; p->next=null;)while(p->num!=o)/以会员学号作为判断链表是否结束p=(member *)malloc(sizeof(member)
51、;if(!p)cxit(l);cout«h o输入编号:”;cin»p->num;if(p->num=0) /退出”增加会员n cout«h共计n«k«n名会员入会! n«endl;cout«,l/z< < endl;break;cout«no输入姓名:”;cin»p->namc;for(s=l->next;s!=null;s=s->next)if(s->num=p->num)cout«n <同一会员能重复注册!return 1;)co
52、ut«uo输入性别:(男:m,女:f) ”;男m,女f cin»p->sex;for(int i=o;i<max;i+)p->ti.num=o;cout«*'o输入会员类型:(1:木科生;2:研究生;3:教师;4:管理员;)”; cin»p->style;if(p->style=l) max=maxl;else if(p->style=2) max=max2;else if(p->stylc=3) max=max3;else if(p->style=4) max=max4;for(i=0;i<
53、=max;i+)p->ti.num=o;p->max=o; 借阅数h ,初始为0p->yes=o; /o表示没有借书p->ncxt=null;q->n ext=p;q=p;+k;cout«endl;)return 1;cout«,l/z<<endl;査询会员int search_membername(meniberlist &l) /按姓名查询member *p;p=l->next;char n20;int flag=o;cout«no输入耍查询的会员姓名:”;cin»n;for(:p !=null
54、;p=p->ncxt)if(strcmp(p->name,n)=o)if(flag=o)coutvvendlvv”姓名编号性别类型是否借书"vvendl; cout«p->name«m n«setw(l l)«p->num;if(p->sex=,m,)cout«setw(13)«u男”vv” ”;else if(p->scx='f)cout«setw( 13)«h女"vv" ”;if(p->style=l)cout«setw(
55、10)«"木科生"vv” ”;else if(p->style=2)cout«setw(10)«u研究生”vv”h;else if(p->style=3) cout«sctw( 10)«"教师"vv" ”;else if(p->style=4)cout«setw( 10)«h管理员"vv”if(p->ycs=l)cout«setw( 10)«h 是"v vendl;elsecout«setw( 10)&
56、#171;h 否"vvendl;flag=l;continue;) “ cout« en d 1;if(p=null&&nag=o) cout«°<没有相关信息! ><endl;”cout«,lz<<e ndl;return 1;)int search_membernum(memberlist &l) /按编号查询member *p;p=l->next;long n;int flag=o;cout«mo输入耍查询的会员编号:”;cin»n;for(;p!=null;
57、p=p->ncxt)if(p->num=n)cout«p->name«hif(flag=o)cout«endl«"姓名 编号 性别 类型 是否借书n«endl; n«sctw(l l)«p->num;if(p->sex=,m,)cout«setw( 13)«"男"«"else if(p->scx='f)cout«setw( 13)«h女"vv" ”;if(p->sty
58、le=l)cout«setw(10)«"a科生“vv” ”;else if(p->style=2)cout«setw(10)«h®f究牛“vv” ”;else if(p->stylc=3) cout«setw(10)«°教师”vv“else if(p->style=4)coutvvselw(10)vv"管理员"vv”if(p->yes=l)cout«setw( 10)«h 是"vvendl;elsecout«set w(
59、10)«h 否"vvendl;flag二 1;continue;) ” cout«,l endl;if(p 二二null &&flag=0)cout«n没有相关信息!探<endl;cout«,l-z< < endl;return i;)int search_membersex(memberlist &l) /按性别查询member *p;p=l->next;int flag=o;char n;cout«uo输入要查询的会员性别:(男:m,女:f) ”; cin»n;for(:p
60、 !=null;p=p->ncxt)if(p->sex=n)if(flag=0)coutvvendlvv”姓名编号性别类型是否借书u«endl; cout«p->namc«h n«sctw(l l)«p->num;if(p->sex=,m,)cout«setw(13)«u 男”vv“ ”;else if(p->scx='f)cout«setw( 13)«u女”vv” ”;if(p->style=l)cout«setw(10)«u本科生”vv” ”;else if(p->style=2)cout«setw(10)«u®f究牛”vv” ”;else if(p->stylc=3)cout«setw(10)«°教师”
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内科门诊病人护理常规
- 生命爱国教育
- 手术室输血安全的护理
- 滚针操作流程护理
- 临床护理带教老师
- 避孕药知识培训课件下载
- 物联网行业分析24
- 移动互联网技术产业进展与发展趋势讲义
- 湖北省孝感市汉川市第二中学2024-2025学年3月高三适应性考试(一)语文试题含解析
- 广西职业师范学院《数字移动通信原理》2023-2024学年第二学期期末试卷
- 第五届绵阳市职业技能大赛赛项技术文件-焊工技术文件
- 拉森钢板桩支护施工方案
- 2025年荆门市水务局事业单位公开招聘工作人员招聘历年高频重点模拟试卷提升(共500题附带答案详解)
- 六年级《盼》说课
- 云南省2025年七年级下学期语文月考试卷含答案
- 2025年中国冶金地质总局三局校园招聘48人笔试参考题库附带答案详解
- 娱乐行业艺人经纪部年度工作总结
- 第十八届“地球小博士”全国地理知识科普竞赛题库(附答案)
- 实验室管理团队建设与文化建设
- 2025年发展对象考试题库附含答案
- 创业思维-创造你喜爱的人生知到智慧树章节测试课后答案2024年秋浙江旅游职业学院
评论
0/150
提交评论