数据结构课程设计说明Word格式文档下载.docx
- 文档编号:18786446
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:17
- 大小:18.58KB
数据结构课程设计说明Word格式文档下载.docx
《数据结构课程设计说明Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构课程设计说明Word格式文档下载.docx(17页珍藏版)》请在冰豆网上搜索。
charb_Name[20];
/////名称
intb_Total;
/////总数
intb_Out;
///借出数
BookInfo*nextbook;
//////下一类图书
}BookInfo;
typedefstructMemberInfo{///会员结构
longm_Code;
/////会员编号
charm_Name[20];
////会员名字
intl_Codes[6];
/////以借书的编号,最多5
MemberInfo*nextmember;
////下一会员
}MemberInfo;
typedefstructSystem{///管理系统结构
BookInfo*BI;
MemberInfo*MI;
intBookTotal;
////图书类库存量
intMemberTota;
/////会员数量
}System;
System*InitSystem();
/////
voidAddBook(System*);
////增加图书
BookInfo*SearchBook(System*,int);
////查询图书信息
voidDelBook(System*);
/////删除图书
voidBrrowBook(System*);
///////借书处理
voidTurnBackBook(System*);
////还书处理
voidAddMember(System*);
/////添加会员
voidDelMember(System*);
////删除会员
MemberInfo*SearchMember(System*,int);
/////查询会员信息
voidStoreData(System*);
voidLoadData(System*);
voidExitSystem();
voidmain()
{
System*S=InitSystem();
intsel;
do{
cout<
<
"
\n\t\t\t\t图书管理系统"
endl;
\t\t\t******************************"
\t\t\t1.增加图书.\t2.查询图书.\n\t\t\t3.删除图书.\t4.借书处理.\n\t\t\t5.还书处理.\n\t\t\t6.添加会员.\t7.删除会员.\n\t\t\t8.查询会员.\t9.载入数据.\n\t\t\t10.保存数据.\t11.退出程序.\n"
;
请选择:
cin>
>
sel;
if(sel>
=1&
&
sel<
=11)break;
选择错误!
\n重新输入:
}while
(1);
switch(sel){
case1:
AddBook(S);
break;
case2:
SearchBook(S,-1);
case3:
DelBook(S);
case4:
BrrowBook(S);
case5:
TurnBackBook(S);
case6:
AddMember(S);
case7:
DelMember(S);
case8:
SearchMember(S,-1);
case9:
LoadData(S);
case10:
StoreData(S);
default:
ExitSystem();
}
}
System*InitSystem()
System*S=(System*)malloc(sizeof(System));
S->
BI=(BookInfo*)malloc(sizeof(BookInfo));
BookTotal=0;
BI->
nextbook=NULL;
MI=(MemberInfo*)malloc(sizeof(MemberInfo));
MemberTota=0;
MI->
nextmember=NULL;
returnS;
voidAddBook(System*S)
intTempcode;
charsel;
BookInfo*p=S->
BI;
BookInfo*t;
BookInfo*m;
intnum;
输入图书编号:
Tempcode;
if(m=SearchBook(S,Tempcode)){
这类书以有库存.\n输入图书的入库量:
num;
m->
b_Total+=num;
else{
t=(BookInfo*)malloc(sizeof(BookInfo));
t->
b_Code=Tempcode;
输入图书的名称:
t->
b_Name;
输入图书的入库量:
b_Total;
b_Out=0;
nextbook=p->
nextbook;
p->
nextbook=t;
BookTotal++;
添加完毕!
还要添加吗?
(Y/N)"
if(sel=='
n'
||sel=='
N'
){
结束添加"
return;
BookInfo*SearchBook(System*S,intcode){
BookInfo*bi=S->
intbookcode;
if(code==-1){
请输入要查询的图书编号:
bookcode;
elsebookcode=code;
while(bi&
bi->
b_Code!
=bookcode)bi=bi->
if(!
bi)cout<
没找到你所要的图书."
else{
图书编号为:
b_Code<
图书名称为:
b_Name<
图书库存量为:
b_Total<
图书借出量为:
b_Out<
returnbi;
voidDelBook(System*S){
BookInfo*bi;
BookInfo*pl=S->
MemberInfo*memi;
inttempcode;
inti;
pl=S->
bi=pl->
memi=S->
nextmember;
请输入要删除的图书的编号:
tempcode;
while(bi){
if(bi->
b_Code==tempcode)break;
pl=bi;
bi=bi->
if(bi==0)cout<
没有找到要删除的图书"
pl->
nextbook=bi->
BookTotal--;
while(memi){
for(i=1;
i<
=memi->
l_Codes[0];
i++){
if(memi->
l_Codes[i]==tempcode)break;
if(i<
l_Codes[0]){
for(;
memi->
i++)memi->
l_Codes[i]=memi->
l_Codes[i+1];
memi->
l_Codes[0]--;
memi=memi->
free(bi);
还有图书要删除吗?
删除图书结束"
voidBrrowBook(System*S)
BookInfo*p;
intmemcode;
MemberInfo*mp;
输入要借出的书号:
p=SearchBook(S,tempcode);
p){
没有找到要借出的图书."
此书的现存量为"
(p->
b_Total-p->
b_Out)<
b_Out))cout<
没有足够的书了,外借失败."
请输入会员编号:
memcode;
mp=SearchMember(S,memcode);
mp)cout<
会员编号输入错误,外借失败"
if(mp->
l_Codes[0]==5)cout<
借书量不能超过5本"
b_Out++;
mp->
l_Codes[++mp->
l_Codes[0]]=tempcode;
外借成功."
\n还有图书要借出吗?
外借操作结束."
voidTurnBackBook(System*S)
intmembercode;
输入归还书号:
书号输入错误."
membercode;
(mp=SearchMember(S,membercode)))cout<
会员编号输入错误,归还失败"
b_Out--;
=mp->
while(i<
mp->
l_Codes[i]=mp->
i++;
归还成功."
还有要归还的图书吗?
归还结束."
voidAddMember(System*S)
MemberInfo*p=S->
MI;
MemberInfo*t;
输入会员编号:
t=(MemberInfo*)malloc(sizeof(MemberInfo));
m_Code=Tempcode;
输入会员姓名:
m_Name;
l_Codes[0]=0;
nextmember=p->
nextmember=t;
MemberTota++;
MemberInfo*SearchMember(System*S,intcode)
MemberInfo*bi=S->
请输入要查询的会员编号:
elsemembercode=code;
m_Code!
=membercode)bi=bi->
没找到指定会员."
会员编号为:
m_Code<
名称为:
m_Name<
已借的图书有:
l_Codes[0]<
本."
=bi->
i++)
l_Codes[i]<
'
'
voidDelMember(System*S)
MemberInfo*bi;
MemberInfo*pl;
BookInfo*book;
bi=S->
请输入要删除的会员的编号:
m_Code==tempcode)break;
没有找到要删除的会员编号."
nextmember=bi->
MemberTota--;
(book=SearchBook(S,bi->
l_Codes[i]))){
删除会员出错!
book->
b_Total--;
还有会员要删除吗?
删除会员结束"
voidStoreData(System*S){
FILE*fp;
(fp=fopen("
BookSys"
"
wb"
))){
打开文件BookSys失败!
exit(0);
fwrite(&
(S->
BookTotal),sizeof(int),1,fp);
fwrite(bi,sizeof(BookInfo),1,fp);
MemberInfo*mi=S->
MemberTota),sizeof(int),1,fp);
while(mi){
fwrite(mi,sizeof(MemberInfo),1,fp);
mi=mi->
fclose(fp);
voidLoadData(System*S){
rb"
打开文件BookSys失败"
BookInfo*tempbi;
fread(&
for(inti=1;
=S->
BookTotal;
tempbi=(BookInfo*)malloc(sizeof(BookInfo));
fread(tempbi,sizeof(BookInfo),1,fp);
bi->
nextbook=tempbi;
bi=tempbi;
MemberInfo*tempmi;
MemberTota;
tempmi=(MemberInfo*)malloc(sizeof(MemberInfo));
fread(tempmi,sizeof(MemberInfo),1,fp);
mi->
nextmember=tempmi;
mi=tempmi;
voidExitSystem(){
charselect;
警告:
程序结束后未存储的数据将消失."
确定要退出吗?
select;
if(select=='
y'
||select=='
Y'
)exit(0);
)return;
四.心得体会
历经大半个学期的努力,我的图书管理系统终于如期完成了。
此次做系统给我最大的感触有两个。
第一个就是有了一个利用本专业所学到的知识,来练习,实践的机会。
第二个就是增强了自己的自信心。
通过进行图书借阅管理系统的设计,进一步明确了研制一个管理信息系统的方法和思路,将系统开发的各阶段的基本活动贯穿起来,使我更加形象、具体的了解了管理信息系统。
系统开发的过程是一个巩固以前所学的计算机知识,掌握新技能的过程。
我从这一阶段工作中收益非浅,通过前段时间的课程设计,我能够融会贯通所学的专业基础知识和专业理论知识,培养我们综合运用专业知识分析问题、解决问题的能力及运用工具软件的能力。
不仅弄清了以前对系统开发的一些模糊的认识,而且提高了写代码的水平,培养了严谨的工作作风,为今后在工作岗位上用好管好计算机打下了坚实的基础。
在做系统的过程中,我遇到的最大的困难是调程序方面的。
在运行程序的过程中经常会出现程序自行中断,需要进行调试的信息。
这些信息使得我不得不反复看书,琢磨程序。
在一遍一遍的调试之下,程序终于被调通了。
那时,我终于可以上上的舒一口气了。
我的系统规模比较小同时由于我的时间和能力等多方面的因素影响,我们的系统也存在一定的缺陷。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 说明