数据结构实验图书管理系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子科技大学教务处制表

实验报告学生姓名:学号:指导教师:陈昆

实验地点:计算机学院楼307

实验时间:2010年6月9日

一、实验室名称:计算机学院楼307

二、实验项目名称:

三、实验学时:4学时

四、实验原理:

五、实验目的:

六、实验内容:

创建一个图书管理系统(包括每本书的编号、书名、作者、分类信息),程序采用交互式工作方式,流程如下:

书籍管理:完成增加新书籍和删除功能,并在完成操作之后按关键字(编号、书名、作者、种类)进行排序(插入、冒泡、快速、堆排序、归并排序等任选一种);现有如下书籍需要管理

①按编号查找

②按书名查找

③按作者查找

④按分类查找

七、实验器材(设备、元器件):

pc硬件要求:CPU PII 以上,64M 内存,1OOM 硬盘空间即可。

软件要求:DOS3.0以上/Windows98/Me/XP/NT/2000。

八、实验步骤:

九、实验数据及结果分析:

十、 实验结论:

十一、总结及心得体会:

十二、对本实验过程及方法、手段的改进建议:

报告评分:

指导教师签字:

实验源代码如下:

#include

#include

int BOOKNUM; //将书的数目定为全局变量,便于增加和删除时更改const int MAXNUM=500; //最大容纳书的数目

typedef struct BookInfo{ //定义书的结构体

char num[4];

char name[50];

char author[50];

char sort[4];

}BookInfo;

void InitBookList(BookInfo BookList[]) //初始化,本书,乱序

{

BOOKNUM=8;

strcpy(BookList[3].num,"001");strcpy(BookList[3].name,"Gao Deng Shu Xue");

strcpy(BookList[3].author,"Zhang San");strcpy(BookList[3].sort,"S01");

strcpy(BookList[1].num,"002");strcpy(BookList[1].name,"Li Lun Li Xue");

strcpy(BookList[1].author,"Li Si");strcpy(BookList[1].sort,"L01");

strcpy(BookList[5].num,"003");strcpy(BookList[5].name,"Gao Deng Shu Xue");

strcpy(BookList[5].author,"Wang Wu");strcpy(BookList[5].sort,"S01");

strcpy(BookList[4].num,"004");strcpy(BookList[4].name,"Xian Xing Dai Shu");

strcpy(BookList[4].author,"Zhao Liu");strcpy(BookList[4].sort,"S02");

strcpy(BookList[7].num,"005");strcpy(BookList[7].name,"Shu Ju Jie Gou");

strcpy(BookList[7].author,"Zhou Qi");strcpy(BookList[7].sort,"J01");

strcpy(BookList[2].num,"006");strcpy(BookList[2].name,"Shu Ju Ku");

strcpy(BookList[2].author,"Zhou Qi");strcpy(BookList[2].sort,"J02");

strcpy(BookList[6].num,"007");strcpy(BookList[6].name,"Shu Ju Jie Gou");

strcpy(BookList[6].author,"Sun Ba");strcpy(BookList[6].sort,"J01");

strcpy(BookList[0].num,"008");strcpy(BookList[0].name,"Shu Ju Jie Gou");

strcpy(BookList[0].author,"Zhang Jiu");strcpy(BookList[0].sort,"J01");

}

void ShowBookInfo(BookInfo book) //显示一本书的信息

{

printf("编号:%s\n",book.num);

printf("书名:%s\n",);

printf("作者:%s\n",book.author);

printf("分类:%s\n",book.sort);

}

void SortOnNum(BookInfo BookList[]) //按编号排序

{

int i,j;

BookInfo temp;

for (i=1;i

{

temp=BookList[i];

for(j=i-1;j>=0;j--)

{

if(strcmp(temp.num,BookList[j].num)<0) BookList[j+1]=BookList[j];

else break;

}

BookList[j+1]=temp;

}

}

int FindOnNum(BookInfo BookList[],char key[]) //以编号为关键字进行二分查找{

int low=0,high=BOOKNUM-1,mid;

while (low<=high)

{

mid=(low+high)/2;

if(strcmp(key,BookList[mid].num)==0)

return mid;

else if(strcmp(key,BookList[mid].num)<0)

high=mid-1;

else low=low+1;

}

return -1;

}

void FindOnName(BookInfo BookList[],char key[]) //以书名为关键字查找

{

int i,j=0;

for (i=0;i

{

if(strcmp(BookList[i].name,key)==0)

{

j++;

printf("满足该关键字的第%d本图书的详细信息如下:\n",j);

相关文档
最新文档