数据结构课程设计.doc_第1页
数据结构课程设计.doc_第2页
数据结构课程设计.doc_第3页
数据结构课程设计.doc_第4页
数据结构课程设计.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据结构课程设计计算机科学与技术2008级1班课程设计题目:图书借阅管理系统姓名:学号:一需求分析说明图书借阅处理过程简述处理过程主要包含:新增图书上架、办理图证、图书查询、借书、还书等。(1)新增图书上架新书上架时,需要登记新书的:书名、作者、出版社、总册数的信息。(2)办理图书借阅证读者办理借书证时,需要登记读者(学生)的学号、姓名。(3)图书查询读者按照图书编号查询图书基本信息,并可以得知现还有几册可以借阅。(4)借书每个学生读者最多借本书。读者借书时,应登记书号、借书日期(年月日)。2数据分析数据处理过程中涉及到两个实体:图书和会员;各实体应具有的属性如下:图书(书号、书名、作者,总册数)读者(学号、姓名、班级)由于同一种图书可以有多册上架,每个读者最多可以借阅本书,图书借阅的属性如下:借阅(书号、借书日期)3功能分析系统功能模块包括:图书增加、图书删除、图书查询、借书、还书;另外还包括图书信息修改和读者信息修改。二基本功能1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);2)会员管理(增加会员、查询会员、删除会员、借书信息);3)系统管理(初始化、载入数据、保存数据、退出程序);三程序设计#include#include#include#define NULL 0 typedef struct BookInfo /图书结构 int b_Code; /图书编号 char b_Name20; /名称 int b_Total; /总数 int b_Out; /借出数 BookInfo* nextbook; /下一类图书BookInfo; typedef struct MemberInfo /会员结构 long m_Code; /会员编号 char m_Name20; /会员名字 int l_Codes6; /以借书的编号,最多5 MemberInfo* nextmember; /下一会员MemberInfo; typedef struct System /管理系统结构 BookInfo* BI; MemberInfo* MI; int BookTotal; /图书类库存量 int MemberTota; /会员数量System; System* InitSystem();/void AddBook(System*);/增加图书BookInfo* SearchBook(System*,int);/查询图书信息 void DelBook(System*);/删除图书 void BrrowBook(System*);/借书处理void TurnBackBook(System*);/还书处理 void AddMember(System*);/添加会员void DelMember(System*);/删除会员MemberInfo* SearchMember(System*,int);/查询会员信息 void StoreData(System*); void LoadData(System*);void ExitSystem();void main() System* S=InitSystem(); int sel; do coutntttt图书管理系统endl; coutttt*endl; coutttt*endl; coutttt 1.增加图书.t 2.查询图书.nttt 3.删除图书.t 4.借书处理.nttt 5.还书处理.nttt 6.添加会员.t 7.删除会员.nttt 8.查询会员.t 9.载入数据.nttt10.保存数据.t11.退出程序.n; coutttt*endl; coutttt*endl; coutsel; if(sel=1&sel=11)break; cout选择错误!n重新输入:BI=(BookInfo*)malloc(sizeof(BookInfo); S-BookTotal=0; S-BI-nextbook=NULL; S-MI=(MemberInfo*)malloc(sizeof(MemberInfo); S-MemberTota=0; S-MI-nextmember=NULL; return S;void AddBook(System* S) int Tempcode; char sel; BookInfo* p=S-BI; BookInfo* t; BookInfo* m; int num; do coutTempcode; if(m=SearchBook(S,Tempcode) cout这类书以有库存.n输入图书的入库量:num; m-b_Total+=num; else t=(BookInfo*)malloc(sizeof(BookInfo); t-b_Code=Tempcode; coutt-b_Name; coutt-b_Total; t-b_Out=0; t-nextbook=p-nextbook; p-nextbook=t; S-BookTotal+; cout添加完毕!endl; coutsel; if(sel=n|sel=N) cout结束添加BI-nextbook; int bookcode; if(code=-1) coutbookcode; else bookcode=code; while(bi&bi-b_Code!=bookcode)bi=bi-nextbook; if(code=-1) if(!bi)cout没找到你所要的图书.endl; else cout图书编号为:b_Codeendl; cout图书名称为:b_Nameendl; cout图书库存量为:b_Totalendl; cout图书借出量为:b_OutBI; MemberInfo* memi; char sel; int tempcode; int i; do pl=S-BI; bi=pl-nextbook; memi=S-MI-nextmember; couttempcode; while(bi) if(bi-b_Code=tempcode)break; pl=bi; bi=bi-nextbook; if(bi=0)cout没有找到要删除的图书nextbook=bi-nextbook; S-BookTotal-; while(memi) for(i=1;il_Codes0;i+) if(memi-l_Codesi=tempcode)break; if(il_Codes0) for(;il_Codes0;i+)memi-l_Codesi=memi-l_Codesi+1; memi-l_Codes0-; memi=memi-nextmember; free(bi); coutsel; if(sel=N|sel=n) cout删除图书结束BI-nextbook; BookInfo* p; char sel; int memcode; MemberInfo* mp; int tempcode; do couttempcode; p=SearchBook(S,tempcode); if(!p) cout没有找到要借出的图书.endl; else cout此书的现存量为b_Total-p-b_Out)b_Total-p-b_Out)cout没有足够的书了,外借失败.endl; else coutmemcode; mp=SearchMember(S,memcode); if(!mp)cout会员编号输入错误,外借失败l_Codes0=5)coutb_Out+; mp-l_Codes+mp-l_Codes0=tempcode; cout外借成功.endl; coutsel; if(sel=N|sel=n) cout外借操作结束.BI-nextbook; BookInfo* p; MemberInfo* mp; int membercode; int tempcode; int i; char sel; do couttempcode; p=SearchBook(S,tempcode); if(!p) cout书号输入错误.endl; else cout此书的现存量为b_Total-p-b_Out)endl; coutmembercode; if(!(mp=SearchMember(S,membercode)cout会员编号输入错误,归还失败b_Out-; for(i=1;il_Codes0;i+) if(mp-l_Codesi=tempcode)break; while(il_Codes0) mp-l_Codesi=mp-l_Codesi+1; i+; mp-l_Codes0-; cout归还成功.endl; coutsel; if(sel=N|sel=n) cout归还结束.MI; MemberInfo* t; do coutTempcode; t=(MemberInfo*)malloc(sizeof(MemberInfo); t-m_Code=Tempcode; coutt-m_Name; t-l_Codes0=0; t-nextmember=p-nextmember; p-nextmember=t; S-MemberTota+; cout添加完毕!endl; coutsel; if(sel=n|sel=N) cout结束添加MI-nextmember; int membercode; int i; if(code=-1) coutmembercode; else membercode=code; while(bi&bi-m_Code!=membercode)bi=bi-nextmember; if(code=-1) if(!bi)cout没找到指定会员.endl; else cout会员编号为:m_Codeendl; cout名称为:m_Nameendl; cout已借的图书有:l_Codes0本.endl; for(i=1;il_Codes0;i+) coutl_Codesi ; coutMI-nextmember; pl=S-MI; couttempcode; while(bi) if(bi-m_Code=tempcode)break; pl=bi; bi=bi-nextmember; if(!bi)coutnextmember=bi-nextmember; S-MemberTota-; for(i=1;il_Codes0;i+) if(!(book=SearchBook(S,bi-l_Codesi) cout删除会员出错!b_Out-; book-b_Total-; free(bi); coutsel; if(sel=N|sel=n) cout删除会员结束BI-nextbook; if(!(fp=fopen(BookSys,wb) cout打开文件BookSys失败!BookTotal),sizeof(int),1,fp); while(bi) fwrite(bi,sizeof(BookInfo),1,fp); bi=bi-nextbook; MemberInfo* mi=S-MI-nextmember; fwrite(&(S-MemberTota),sizeof(int),1,fp); while(mi) fwrite(mi,sizeof(MemberInfo),1,fp); mi=mi-nextmember; fclose(fp); void LoadData(System* S) FILE* fp; if(!(fp=fopen(BookSys,rb) cout打开文件BookSys失败BI; BookInfo* tempbi; fread(&(S-BookTotal),sizeof(int),1,fp); for(int i=1;iBookTotal;i+) tempbi=(BookInfo*)malloc(sizeof(BookInfo); fread(tempbi,sizeof(BookInfo),1,fp); bi-nextbook=tempbi; bi=tempbi; bi-nextbook=NULL; MemberInfo* mi=S-MI; MemberInfo* tempmi; fread(&(S-MemberTota),sizeof(int),1,fp); for(i=1;iMemberTota;i+) tempmi=(MemberInfo*)malloc(sizeof(MemberInfo); fread(tempmi,sizeof(MemberInfo),1,fp); mi-nextmember=tempmi; mi=tempmi; mi-nextmember=NULL; fclose(fp);void ExitSystem() char select; cout警告: 程序结束后未存储的数据将消失.endl; coutselect; if(select=y|select=Y)exit(0); if(select=n|select=N)return;四心得体会历经大半个学期的努力,我的图书管理系统终于如期完成了。此次做系统给我最大的感触有两个。第一个就是有了一个利用本专业所学到的知识,来练习,实践的机会。 第二个就是增强了自己的自信心。 通过进行图书借阅管理系统的设计,进一步明确了研制一个管理信息系统的方法和思路,将系统开发的各阶段的基本活动贯穿起来,使我更加形象、具体的了解了管理信息系统。系统开发的过程是一个巩固以前所学的计算机知识,掌握新技能的过程。我从这一阶段工作中收益非浅,通过前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论