- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《算法与数据结构课程设计》
综合设计报告
课程设计报告
设计项目编号 3 名称 图书借阅管理系统 实验课时 5 主要仪器设备 PC机 附属设备 优盘 主要使用软件 WIN-TC 实验时间 2009年3月-5月 1问题的描述和分析
图书借阅管理系统
主要功能包括:
a.图书管理(增加图书、查询图书、删除图书、图书借阅、还书);
b.会员管理(增加会员、查询会员、删除会员、借书信息);
程序设计要求:
1)建立数据文件,系统对数据文件进行自动排序(用冒泡法,以编号和学号为关键字)
2)查询菜单,按图书的编号、名字、作者或者会员的学号、姓名进行查询(因为已经按编号和学号进行了排序,则可使用二分查找法;而因为名字、作者、姓名都有可能不唯一,则只能使用顺序查找法进行查找。)
2算法的设计
1)建立原始数据文件
记录形式如下:
图书信息(编号,名字,作者,借阅状态)
会员信息(学号,姓名,所借图书编号)
其中编号和学号分别为主关键字。
输入文件算法描述同教材:
{提示用户输入数据文件名;
获取数据文件名filename;
fp=fileopen(filename,a+)
if(fp==NULL)
输出出错信息
else
{while(输入没有结束)
{让用户输入一条记录;
写入文件中;
设置输入状态;
}
return(数据文件名)
}
2)数据文件按关键字进行排序
使用冒泡法,算法同教材,描述如下:
void BkSort(Books *Bk)
/*code待排序记录的关键字即书籍编号,sum待排序记录的个数即书目总数*/
{int i,j,n;
Books *temp;
i=1;n=Bk-sum;
for(i=0;in-1;i++)
{for(j=n-1;ji;j--)
if(strcmp(Bk-books[j].code,Bk-books[j-1].code)0)
{用字符串复制函数strcpy()以及临时中介temp,
把Bk-books[j]和Bk-books[j-1]的内容进行交换
}/*共进行sum次冒泡,如果没有发生交换则结束*/
}
}
3)用到的函数
BkPrint(Books Bk,int n) /*输出书目信息表格*/
MbPrint(Members Mb,int n) /*输出会员信息表格*/
void Init(Books Bk,Members Mb) /*记录初始化*/
BkSort(Books Bk) /*用冒泡法,系统自动给书籍按编号排序*/
MbSort(Members Mb) /*用冒泡法,系统自动对会员按学号排序*/
BSeqSearch(Books Bk,char name[]) /*按书名,对书籍进行顺序查找*/
MSeqSearch(Members Mb,char name[]) /*按姓名,对会员进行顺序查找*/
int BkSearch(Books Bk,char code[]) /*按编号,对书籍进行二分查找*/
int MbSearch(Members Mb,char no[]) /*按学号,对会员进行二分查找*/
void BkAdd(Books Bk) /*添加书目信息*/
void MbAdd(Members Mb) /*添加会员信息*/
void BkDelete(Books Bk) /*删除书籍*/
void MbDelete(Books Bk) /*删除会员*/
Borrow(Books Bk,Members Mb) /*借书*/
Return(Books Bk,Members Mb) /*还书*/
4)查询功能
图书查询
a.按编号查询
b.按书名查询
会员查询
a.按学号查询
b.按姓名查询
数据结构的设计
图书信息(编号,书名,作者,借阅状态)
typedef struct{
char code[10];/*编号*/
char name[20];/*名字*/
char writer[10];/*作者*/
int flag;/*借阅状态,flag=0则为可借状态,flag=1则为借出状态*/
}Book_info;
会员信息(学号,姓名,借书信息)
typedef struct{
char no[10];/*学号*/
char name[20];/*姓名*/
Book_info bbk[5];/*所借书籍的编号,每个会员最多可借5本书*/
int count;/*借书数目,0=count=5*/
}Member_info;
数据定义类型为:
#define
文档评论(0)