




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、中北大学数据结构课 程 设 计 说 明 书 学生姓名:周西财 学 号:0706054236 学 院:电子与计算机科学技术学院专 业:软件工程 题 目:图书借阅管理系统成绩 指导教师周海英 2009 年 6 月 24 日1 设计目的通过设计掌握数据结构课程 中学到的基本理论和算法并综合运用于理论实际问题中,它是理论与实践结合的重要过程.设计要求学会对实际问题定义相关数据结构,并采用恰当的设计方法和算法解决问题,同时训练学生进行复杂程序设计的技能和培养良好的程序设计习惯.人工管理图书的手续繁索、效率低下
2、给具有强烈时间观念的管理人员带来了诸多不便,学校图书馆缺少一套完善的图书管理软件,为了对图书的管理方便,因此必须开发图书管理系统。2. 设计内容和要求内容:1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2)会员管理(增加会员、查询会员、删除会员、借书信息);要求:根据设计内容建立相关数据的动态链表存储结构3本设计所采用的数据结构采用两条单链表,其头结点分别为head、mhead的全局变量来存储图书信息和会员信息。其定义数据结构如下:/*图书信息结构体*/typedef struct elemchar bookid5;char bookname50;char bookauthor
3、20;char bookmark2;char memberid4;elemtype;/*图书链表结点结构体*/typedef struct nodeelemtype data;struct node *next;lnode,*linknode;/*会员信息结构体*/typedef struct memberelemchar memberid4;char membername20;memberelemtype;/*会员链表结点结构体*/typedef struct membernodememberelemtype data;struct membernode *next;mlnode,*mlin
4、knode;4功能模块详细设计图书借阅管理系统图书管理模块会员管理模块增加图书查询图书删除图书图书借阅还书增加会员查询会员借书信息删除会员4.1 详细设计思想系统启动时,通过读取文件完成对以head、mhead为表头的单链表完成初始化。初始化后系统进入系统菜单,其运行界面如下: 当选择功能1时,进入图书管理模块,其运行界面如下:当选择功能2时,进入会员管理模块,其运行界面如下: 为了实现上述功能,特定义以下函数原型,具体代码参见源代码部分:void main() /*入口*/void initallinfo() /*初始化图书和会员链表*/void welform() /*系统总菜单*/voi
5、d printbookinfo(linknode head) /*输出图书信息函数*/void addbook() /*增加图书模块*/void select() /*按编号查询图书*/void delete() /*按编号删除图书*/void borrow() /*借阅图书*/void returnbook() /*还书*/void bookmanagetitle() /*图书管理二级菜单*/void bookmanage() /*二级图书管理功能选择函数*/void printmemberinfo(mlinknode head) /*输出会员信息函数*/void addmember() /
6、*增加会员模块*/void selectmember() /*按编号查询会员*/void deletemember() /*按编号删除会员*/void membermanagetitle() /*会员管理二级菜单*/void membermanage() /*二级会员管理功能选择函数*/程序调试运用数据如下:图书初始数据表bookidbooknamebookauthorbookmarkmemberid0001sanguoyanyiluoguanzhongN00002hongloumengcaoxueqinN00003xiyoujiwuchengenY0010004shuihuzhuanshin
7、aianN00005javascriptJoinN00006cprogromtanghaoqiangN00007liaozhaizhiyipusonglingY0070008jiabajinN00009richucaoyuY0030010nahanluxunN0会员信息表memberidmembername001zhouxicai002longqidong003lipengfei004gaopeng005chenwentang006yangminghao4.2 源代码main.c文件:#include<conio.h>#include"type.c"#inclu
8、de"init.c"#include"book.c"#include"member.c"/*系统总菜单*/void welform() clrscr(); printf(" SYSTEM MAIN MENU n"); printf("*n"); printf("* 1: book manage *n"); printf("*-*n"); printf("* 2: member manage *n"); printf("*-*n
9、"); printf("* 0: quit *n"); printf("*n"); printf("nnPlease input order:n");void main() int ch; initallinfo(); /*初始化链表*/ while(1) welform(); scanf("%d",&ch); switch(ch) case 1:bookmanage();break; case 2:membermanage();break; case 0:exit(0); default: pr
10、intf("nYou hava input the wrong order!n"); printf("Press anykey return."); getchar(); getchar(); BOOK.C文件:/*输出图书信息函数*/void printbookinfo(linknode head) linknode p=head->next; clrscr(); printf("The book informations are:nn"); printf("%-7s%-20s%-15s%-6s%sn",&
11、quot;id","title","author","mark","borower");printf("*nn"); for(;p!=NULL;p=p->next)printf("%-7s%-20s%-15s%-6s%sn",p->data.bookid,p->data.bookname,p->data.bookauthor,p->data.bookmark,p->data.memberid); printf("nPre
12、ss anykey retrun."); getchar();getchar();/*增加图书模块*/void addbook() linknode p=(lnode *)malloc(sizeof(lnode); clrscr(); printf("Add books.n"); printf("please input bookinfo:nn"); printf("%-7s%-20s%-15sn","id(4)","title","author"); printf
13、("*n"); scanf("%s%s%s",p->data.bookid,p->data.bookname,p->data.bookauthor); p->data.bookmark0='N' p->data.bookmark1='0' p->data.memberid0='0' p->data.memberid1='0' p->next=head->next; head->next=p; printf("nnAdd s
14、uccess!n"); printf("nPress anykey retrun."); getchar(); getchar();/*按编号查询图书*/void select() char id5; linknode p; clrscr(); p=head->next; printf("select book by id.nn"); printf("Please input book id:n"); scanf("%s",id); while(p!=NULL) if(strcmp(p->da
15、ta.bookid,id)=0) break; else p=p->next; if(p=NULL) printf("nThe book not exit!n"); else printf("n%-7s%-20s%-15s%-3s%sn","id","title","author","borowed","borower"); printf("*n"); printf("n%-7s%-20s%-15s%-3s%sn&quo
16、t;,p->data.bookid,p->data.bookname,p->data.bookauthor,p->data.bookmark,p->data.memberid); printf("nPress anykey retrun."); getchar();getchar(); /*按编号删除图书*/void delete() char id5; linknode p,q; clrscr(); p=head->next;q=head; printf("delete book by id.nn"); printf
17、("Please input book id:n"); scanf("%s",id); while(p!=NULL) if(strcmp(p->data.bookid,id)=0) break; else q=p;p=p->next; if(p=NULL) printf("nThe book you want to delete are not exit!n"); else q->next=p->next; free(p); printf("nDelete success!n"); prin
18、tf("nPress anykey retrun."); getchar(); getchar();/*借阅图书*/void borrow() char id5; char mid4; linknode p; mlinknode q; clrscr(); printf("borrow book.nn"); do p=head->next; printf("Please input book id:n"); scanf("%s",id); while(p!=NULL) if(strcmp(p->data.
19、bookid,id)=0) break; else p=p->next; if(p=NULL) printf("nThe book doesn't exit! please input it again!nn"); while(p=NULL); if(p!=NULL) do q=mhead->next; printf("nPlease input member id:n"); scanf("%s",mid); while(q!=NULL) if(strcmp(q->data.memberid,mid)=0)
20、break; else q=q->next; if(q=NULL) printf("nYou are not member! input againn"); while(q=NULL); if(q!=NULL&&(strcmp(p->data.bookmark,"Y")!=0) strcpy(p->data.bookmark,"Y"); strcpy(p->data.memberid,q->data.memberid); printf("nsuccessed!n");g
21、etchar(); else printf("nnThe book have borrowed, please wait a few days."); getchar(); printf("nnPress anykey retrun."); getchar();/*还书*/void returnbook() char id5; linknode p; clrscr(); p=head->next; printf("return book.nn"); printf("Please input book id:n"
22、;); scanf("%s",id); while(p!=NULL) if(strcmp(p->data.bookid,id)=0) break; else p=p->next; if(p=NULL) printf("nThe book you want to return are not exit!n"); else strcpy(p->data.bookmark,"N");strcpy(p->data.memberid,"0"); printf("nsuccessed!n&qu
23、ot;); printf("nPress anykey retrun."); getchar();getchar();/*图书管理二级菜单*/void bookmanagetitle() clrscr(); printf(" BOOK MANAGE MENU n"); printf("*n"); printf("* 1: Look all books *n"); printf("*-*n"); printf("* 2: Add book *n"); printf("
24、*-*n"); printf("* 3: Select book by id *n"); printf("*-*n"); printf("* 4: Delete book by id *n"); printf("*-*n"); printf("* 5: Borrow book *n"); printf("*-*n"); printf("* 6: Return book *n"); printf("*-*n"); printf(
25、"* 0: Return to main form *n"); printf("*n"); printf("nPlease input order:n");void bookmanage() int ch; while(1) bookmanagetitle(); scanf("%d",&ch); if(ch=0) break; switch(ch) case 1: printbookinfo(head);break; case 2: addbook();break; case 3: select();bre
26、ak; case 4: delete();break; case 5: borrow();break; case 6: returnbook();break; case 0:break; default: printf("nnYou hava input the wrong order!n");printf("Press anykey return.");getchar();getchar(); MEMBER.C文件:/*输出会员信息函数*/void printmemberinfo(mlinknode head) mlinknode mp=head-&g
27、t;next; clrscr(); printf("The member infomations are.nn"); printf("%-7s%sn","id","name"); printf("*nn"); for(;mp!=NULL;mp=mp->next)printf("%-7s%sn",mp->data.memberid,mp->data.membername); printf("nPress anykey retrun.");
28、getchar();getchar();/*增加会员模块*/void addmember() mlinknode p=(mlnode *)malloc(sizeof(mlnode); clrscr(); printf("Add member.n"); printf("please input memberinfo:nn"); printf("%-7s%sn","id","name"); printf("*n"); scanf("%s%s",p->da
29、ta.memberid,p->data.membername); p->next=mhead->next; mhead->next=p; printf("nnAdd success!"); printf("nPress anykey retrun."); getchar(); getchar();/*按编号查询会员*/void selectmember() char id4; mlinknode p; clrscr(); printf("select member by id.nn"); p=mhead->
30、;next; printf("Please input member id:n"); scanf("%s",id); while(p!=NULL) if(strcmp(p->data.memberid,id)=0) break; else p=p->next; if(p=NULL) printf("nThe member not exit!n"); else printf("n%-7s%sn","id","name"); printf("*nn"
31、;); printf("%-7s%sn",p->data.memberid,p->data.membername); printf("nnPress anykey retrun."); getchar(); getchar();/*按编号删除会员*/void deletemember() char id4; mlinknode p,q; clrscr(); printf("delete member.nn"); p=mhead->next;q=mhead; printf("Please input memb
32、er id:n"); scanf("%s",id); while(p!=NULL) if(strcmp(p->data.memberid,id)=0) break; else q=p;p=p->next; if(p=NULL) printf("nThe member you want to delete are not exit!n"); else q->next=p->next; free(p); printf("nDelete success!n"); printf("nPress an
33、ykey retrun."); getchar(); getchar();/*会员管理二级菜单*/void membermanagetitle() clrscr(); printf(" MEMBER MANAGE MENU n"); printf("*n"); printf("* 1: Look all memberinfo *n"); printf("*-*n"); printf("* 2: Add member *n"); printf("*-*n"); pri
34、ntf("* 3: Select member by id *n"); printf("*-*n"); printf("* 4: Delete member by id *n"); printf("*-*n"); printf("* 0: Return to main form *n"); printf("*n"); printf("nPlease input order:n");void membermanage() int ch; while(1) membermanagetitle(); scanf("%d",&ch); if(ch=0) break; switch(ch) case 1: printmemberinfo(mhead);break; case 2: addmember();break; case 3: selectmember();break; case 4: deletemember();break; case 0:break; def
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年烟草、盐加工机械合作协议书
- 能源行业高级管理在职证明(5篇)
- 2025年度市政学考试指导试题及答案
- 2025房地产转让合同模板
- 2024-2025学年高中政治综合训练二含解析新人教版必修4
- 行政管理与伦理学的结合探索试题及答案
- 2025 海盐县 芦荟 购销合同
- 行政管理学问答释疑试题及答案
- 2025合作加工协议合同样本
- 自考行政管理本科职业道德试题及答案总结
- 米往返接力跑教案
- 银行评估明细表
- 水稻脱粒机毕业设计毕业设计
- 《光学原理与应用》之双折射原理及应用
- 完整版电力工程设计资质分级标准
- 硬笔书法练习用纸A4打印模板
- U8ERP实施方案
- 配电间及机柜室方案
- 中国民用航空通信导航监视系统运行、维护规程
- 5000吨干货船设计总体方案及第三部分
- fx-991cnx计算器说明书
评论
0/150
提交评论