广义表的应用

发布时间 : 星期四 文章广义表的应用更新完毕开始阅读

七、设计体会与总结

此次课程设计我被分配到的题目是广义表的应用,这对我来说是个熟悉的陌生人,因为前不久才复习过,可是没记住,只能回头再去看,经过多方面参考,总算是勉强执行出来了,不过这中间也遇到了一些问题:

1.建立广义表时,把表一次性全部输完再回车,无限循环;经检查,是源程序中输入算法编写的错误。

2. 输入代码1,即输出广义表,显示调试错误,经检查,是源程序中输出算法编写的错误。

3.查找结点的时候要输入两个结点才会显示第二个结点位置;经检查,是调用的程序中多写了一句输入语句。

7

图书借阅管理系统

一、问题陈述

主要分为两大功能:

1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书); 2)会员管理(增加会员、查询会员、删除会员、借书信息);

二、需求分析

1.主函数

分为两个模块:图书信息和会员信息,并显示两个模块的主界面,可将图书信息和会员信息写入和读出。 2.图书管理

(1)增加图书:只需添加书的编号和书名即可,考虑到图书的信息较多,所以用结构体对其定义,又考虑到图书量大,所以添加后要保存到文件中去。

(2)查询图书:可按书名查询、按书的编号查询,也可查询所有图书信息,主要是通过顺序查找法来实现的。

(3)删除图书:输入要删除的书的编号即可,主要是把保存到文件中的内容写到链表中去,用链表删除结点的方法来删除,删除时以记录为单位,能一次删除一条记录。

(4)图书借阅:输入会员编号和图书编号即可借阅,能对借出的图书作记录信息,能一次借出一本图书。

(5)还书:输入要还的书的编号即可还,能将被借出的图书信息还原,能一次借出一本图书。

3.会员管理(方法与图书管理类似)

(1)增加会员:输入会员编号、姓名、性别即可添加。 (2)查询会员:可按姓名查询,也可查询所有会员信息。

(3)删除会员:输入会员编号即可删除,主要是通过把保存到文件中的内容写到链表中去,用链表删除结点的方法来删除图书。

(4)借书信息:选择“借书信息”即可显示所有读者是否借书

三、概要设计

图书和会员的信息的存储是建立两个带头结点的单链表,分别用于存储图书和会员。建立这两个链表的联系是在图书结点中设一个借书人编号,在会员结点中设一个数组用于存会员借的书,剩下的只需按链表的操作就可以了。

8

四、详细设计

1.主函数

void main() {

FILE *fpb1,*fpb2,*fpm1,*fpm2; //文件指针

Book *p1,*p2,*s1; Member *q1,*q2,*s2; H=Init_B(); L=Init_M();

fpb1=fopen(\//读方式打开图书文件 if(fpb1!=NULL) {

p1=(Book

*)malloc(sizeof(Book)); if(!p1) exit(1); p1->next=NULL;

while(fread(p1,sizeof(Book),1,fpb1)==1) {

if(H->next==NULL) {

H->next=p1; s1=p1; }

else {

s1->next=p1; s1=p1; }

p1=(Book *)malloc(sizeof(Book));

if(!p1) exit(1); p1->next=NULL; } }

fpm1=fopen(\//读方式打开会员文件 if(fpm1!=NULL) {

q1=(Member

*)malloc(sizeof(Member)); if(!q1) exit(1); q1->next=NULL;

while(fread(q1,sizeof(Member),1,fpm1)==1) {

if(L->next==NULL) {

9

L->next=q1; 书借阅 \ s2=q1; cout<<\0.退 出 } else { s2->next=q1; s2=q1; } q1=(Member *)malloc(sizeof(Member)); if(!q1) exit(1); q1->next=NULL; } } int m,n; while(m!=0) { cout<<\欢迎进入图书借阅管理系统 \ cout<<\************************************\<>m; cout<<\==========\ cout<>n; cout<<\==========\ switch(n) { case 1:BookAdd(H); break; //增加图书 case 2:BookSearch(H); break; //查询图书 case 3:BookDel(H); break; //删除图书 case 4:BookBorrow(H,L); break; //图书借阅 case 0:break; //退出图书管理,返回上一层菜单 } } else if(m==2) { cout<<\会员管理 \ cout<<\***********************************\>n;

10

联系合同范文客服:xxxxx#qq.com(#替换为@)