数据结构 课程设计 简易图书管理系统
《数据结构》 课程设计报告
课题名称:专业班级: 11软件2班 学 号: 201103112 姓 名:____ _______ 指导老师: 刘 杰 成 绩:__________________
2012年12月
一、课题名称
简易图书管理系统
二、主要内容
图书管理系统的设计主要是实现对图书的管理和相关操作。基本功能如下: (1)图书信息录入、添加功能:包括书号(即ISBN 号,不可重复)、书名(多书可重名)、作者、出版社名称、存馆数量、定价等。
(2)图书信息查询功能:①按书名进行查询。②按作者名进行查询。③按出版社进行查询。
(3)排序:①按书号的升序进行排序;②按作者的升序进行排序,作者相同时按书号的升序再进行排序
(4)图书的修改、删除功能:①按书号进行图书的修改、删除②按书名进行图书的修改、删除(同样的书名多于1本书时,再指定具体修改和删除的书号)。
(5)图书借阅、归还功能:如果一种书的现存量大于0,可以借出,借出相应数量后改存馆数量;归还时改变该书的存馆数量。
三、课题设计的基本思想,原理和算法描述
这个简易图书管理系统所采用的是线性表的顺序存储结构,把线性表中的所有元素按照逻辑顺序依次存储在一块连续的存储空间。
定义顺序表时,采用数组来储存表中的所有元素,同时还定义了一个变量来表示顺序表的实际长度。首先构造一个空的线性表L ,再把长度设为0;录入图书信息时,成功添加时将线性表的长度加1,则可完成录入信息。在执行删除图书信息时,将所要删除的元素之后的元素均向前移动一个位置,再将顺序表的长度减1,即可实现删除的功能。在实现排序功能这块,采用了冒泡排序法。再如图书的借阅和归还功能的实现,将存馆数量作相应修改,借出时将馆存减1,归还时再将馆存加1。
界面设计:本系统所要实现的功能较多,为了使主界面更加简洁,采用了子菜单的界面设计,将部分功能放在子菜单来实现。这样简化了主界面,同时使系统更完善。
输入输出设计:输入除馆存数量是int 外,其他均为char 型。
功能模块设计:包含输入、查找、删除、修改、排序、借阅和归还功能。
流程图:
四、运行示例及结果分析
图1 图书管理系统主菜单
图1.1 图书信息输入
图2.1 图书信息查询子菜单
图2.2 按书名查找图书信息
图2.3 按作者名查询图书信息
图2.4 按出版社查询图书信息
图3.1 按书号进行图书排序
图3.2 按作者名进行图书排序
图4.1 按书号进行图书修改
图4.2 按书名进行图书修改
图5.1 按书号进行图书删除
图5.2 按书名进行图书删除
图6.1 图书借阅
图6.2 图书归还
五、调试和运行程序过程中产生的问题及采取的措施
本次课程设计遇到的问题主要有以下几点:
(1)在修改、删除函数执行还能查找到被删除(或)修改的数据;经过调试及修改发现问题在于函数中的形参不能传递,缺少取地址符。
(2)在采用冒泡排序法排序时,不能调换字符串位置。解决:用strcpy 可以将字符串赋值。
(3)在主菜单与子菜单的相互调用方面存在着问题。解决:将主菜单单独放在一个函数里面,这样就可以实现简单调用了。
六、总结
这次课程设计做的是简易图书管理系统,这个系统跟以前作业学生管理系统非常类似,只是在那个基础上多增加了一个排序和图书的借阅归还功能。选择用顺序表来完成这个程序,是觉得顺序表在理解方面要比链表简单的多。尝试过用链表来实现排序功能,但一直碰壁。
初步分析了题目后,了解到需要实现的功能有11个,如果全部放在主菜单里面会使得界面看起来复杂,不够简洁。为此采用了子菜单的模块设计,但也为后来带来了许多麻烦。系统中的不同查询方式其实就是变量名的变化而已,再用顺序表编写时很顺利的完成了。在系统编写中遇到问题最多的就是排序,按图书的书号排序,定义书号是整型的,比较书号大小,然后交换位置。虽然思想简单,但在实际操作中并不是这样。其中涉及到字符串的交换,起初使用“=”赋值来交换,后来查书才了解字符串的赋值改用strcpy 来完成。同时,有不少小问题通过自己不断调试、修改能够完全解决。
现在存在的不足之处主要是在菜单上会出现一些小Bug 。比如在调用二级菜单返回主菜
单后,会出现无法退出等情况,需要进一步完善。另外系统上有些不足之处就是没有判断输入图书信息是否是现存馆内已有图书,如果是的话应该将馆存数量上做相应的修改。
通过本次课程设计,我们认识到必须牢固掌握好基础知识,熟悉各种算法,并在这基础之上灵活利用。我们平时应该多练习,不能只看代码而不去做,这样是对编程提高不了多少的。通过我们对C 语言以及数据结构有了更深刻的了解,增强了程序的编写能力,巩固了专业知识,对程序的模块化观念更清楚了。在程序的运行与调试过程中出现了很多错误,通过反复地复习课本上的相关知识,不停地修改与调试,我们终于完成了这段程序。在调试过程中,认识到了数据结构的灵活性与严谨性,同一个功能可以由不同的语句来实现,但编写程序时要特别注意细节方面的问题,因为一个小小的疏忽就能导致整个程序不能运行。我也认识到了自己的薄弱之处,在以后的学习中要集中精力、端正态度,争取把知识学得更扎实、更全面。
七、参考文献
[1] 李建学等著. 数据结构课程设计案例精编. 清华大学出版社,2007
[2] 唐宁九等主编. 数据结构与算法(C++版)实验和课程设计教程. 清华大学出版社,2008) [3] 谭浩强著.C 程序设计. 清华大学出版社,2010
八、源代码
#include #include #include #include #define MaxSize 100 typedef struct
{ char isbn[30]; //书号 char name[30]; //书名 char writer[30]; //作者 char producter[30]; //出版社 int num; //馆存数量 char price[20]; //价格 }ElemType; typedef struct { ElemType data[MaxSize],data1[MaxSize]; int length; } SqList;
void InitList(SqList *&L) //初始化线性表 { L=(SqList *)malloc(sizeof(SqList));
L->length=0;
}
int ListEmpty(SqList *L) //判断线性表是否为空 {
return(L->length==0);
}
void AddBook(SqList *&L) //添加图书信息 {
int bz=0;
printf("请输入图书信息!\n");
printf("书号\t书名\t作者\t出版社\t馆存数量(整型)\t价格\n");
scanf("%s %s %s %s %d %s",L->data[L->length].isbn,L->data[L->length].name,L->data[L->length].writer,L->data[L->length].producter,&L->data[L->length].num,L->data[L->length].price);
printf("\n");
for(int i=0;ilength;i++)
{
if(strcmp(L->data[i].isbn,L->data[L->length].isbn)==0)
{
L->data[i].num++;
bz=1;break;
}
}
if(bz==0)
L->length++;
printf("添加图书成功!\n");
}
void Search_i(SqList *&L) //按书号查询
{
printf("请输入你想要查找图书的书号:");
char isbn[30];
scanf("%s",&isbn);
int i=0;
while(ilength&&strcmp(L->data[i].isbn,isbn)!=0)
{
i++;
}
if(i>=L->length)
{
printf("图书馆没有此图书!\n");
}
else
{
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[i].isbn,L->data[i].name,L->data[i].writer,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
void Search_n(SqList *&L) //按书名查询
{
printf("请输入你想查找图书的书名:");
char name[30];
scanf("%s",&name);
int i=0,b=0;
for(i;ilength;i++)
{
if(strcmp(L->data[i].name,name)==0)
b++;
}
if(b==0)
{
printf("图书馆没有此图书!\n");
}
else
{
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for(i=0;ilength;i++)
{
if(strcmp(L->data[i].name,name)==0)
{
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[i].isbn,L->data[i].name,L->data[i].writer,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
}
}
void Search_w(SqList *&L) //按作者查询
{
printf("请输入你想要查找图书的作者:");
char writer[30];
scanf("%s",&writer);
int i=0,b=0;
for(i;ilength;i++)
{
if(strcmp(L->data[i].writer,writer)==0)
b++;
}
if(b==0)
{
printf("图书馆没有此图书!\n");
}
else
{
printf("%s的作品共有%d本,信息如下:\n",writer,b);
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for(i=0;ilength;i++)
{
if(strcmp(L->data[i].writer,writer)==0)
{
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[i].isbn,L->data[i].name,L->data[i].writer,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
}
}
void Search_p(SqList *&L) //按出版社查询
{
printf("请输入你想要查找图书的出版社:");
char producter[30];
scanf("%s",&producter);
int i=0,c=0;
for(i;ilength;i++)
{
if(strcmp(L->data[i].producter,producter)==0)
c++;
}
if(c==0)
{
printf("图书馆没有此图书!\n");
}
else
{
printf("%s出版的作品共有%d本,信息如下:\n",producter,c);
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for(i=0;ilength;i++)
{
if(strcmp(L->data[i].producter,producter)==0)
{
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[i].isbn,L->data[i].name,L->data[i].writer,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
}
}
void Revise_i(SqList *&L) //按书号修改图书
{
printf("请输入你要修改图书的书号:");
char isbn[30];
scanf("%s",&isbn);
printf("你要修改的图书信息如下:\n");
int i=0,v=0;
while(ilength&&strcmp(L->data[i].isbn,isbn)!=0)
i++;
if(i>=L->length)
printf("图书馆没有此图书!\n");
else
{
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[i].isbn,L->data[i].name,L->data[i].writer,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
printf("请输入图书信息!\n");
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
scanf("%s %s %s %s %d %s",L->data[i].isbn,L->data[i].name,L->data[i].writer,L->data[i].producter,&L->data[i].num,L->data[i].price);
for(v=0;vlength;v++) //判断修改后的书籍,是否有相同书籍已存在于图书馆内
{
if(strcmp(L->data[v].isbn,L->data[i].isbn)==0)
{
L->data[v].num++;
L->length--;
}
}
printf("\n");
printf("修改图书信息成功!\n");
}
}
void Revise_n(SqList *&L) //按书名修改图书
{
printf("请输入你要修改图书的书名:");
char name[30];
scanf("%s",&name);
printf("你要修改的图书信息如下:\n");
int i=0,a=0;
for(i;ilength;i++)
{
if(strcmp(L->data[i].name,name)==0)
a++;
}
if(a==0)
{
printf("图书馆没有此图书!\n");
}
else
{
char isbn2[30];
printf("符合条件的图书共有%d本, 信息如下:\n",a);
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for(int o=0;olength;o++)
{
if(strcmp(L->data[o].name,name)==0) //书名相同时按书号删除
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[o].isbn,L->data[o].name,L->data[o].writer,L->data[o].producter,L->data[o].num,L->data[o].price);
printf("\n");
}
printf("请输入你想要修改的书籍的书号:");
scanf("%d",&isbn2);
int t=0,e=0;
for(t;tlength;t++)
{
if(strcmp(L->data[t].isbn,isbn2)==0)
{
e=t;
}
}
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[e].isbn,L->data[e].name,L->data[e].writer,L->data[e].producter,L->data[e].num,L->data
[e].price);
printf("\n");
printf("请输入图书信息!\n");
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
scanf("%s %s %s %s %d %s",L->data[e].isbn,L->data[e].name,L->data[e].writer,L->data[e].producter,&L->data[e].num,L->data[e].price);
for(t=0;tlength;t++) //判断修改后的书籍,是否有相同书籍已存在于图书馆内
{
if(strcmp(L->data[t].isbn,L->data[i].isbn)==0)
{
L->data[t].num++;
L->length--;
}
}
printf("\n");
printf("修改图书信息成功!\n");
}
}
void Delete_i(SqList *&L) //按书号删除图书
{
printf("请输入你要删除图书的书号:\n");
char isbn[30];
scanf("%s",&isbn);
int i=0;
while(ilength&&strcmp(L->data[i].isbn,isbn)!=0)
i++;
if(i>=L->length)
printf("图书馆没有此图书!\n");
else
{
int j;
printf("isbn:%s的图书%s已成功删除!\n",L->data[i].isbn,L->data[i].name); for (j=i;jlength-1;j++)
L->data[j]=L->data[j+1];
L->length--;
}
}
void Delete_n(SqList *&L) //按书名删除图书
{
printf("请输入你要删除图书的书名:\n");
char name[30];
scanf("%s",&name);
int i=0,a=0,e=0;
for(i;ilength;i++)
{
if(strcmp(L->data[i].name,name)==0)
a++;
}
if(a==0)
printf("图书馆没有此图书!\n");
else
{
char isbn2[30]; //书名相同时按书号删除
printf("符合条件的图书共有%d本, 信息如下:\n",a);
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for(int o=0;olength;o++)
{
if(strcmp(L->data[o].name,name)==0)
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[o].isbn,L->data[o].name,L->data[o].writer,L->data[o].producter,L->data[o].num,L->data[o].price);
printf("\n");
}
printf("请输入你想要删除的书籍的书号:");
scanf("%d",&isbn2);
int t=0;
for(t;tlength;t++)
{
if(strcmp(L->data[t].isbn,isbn2)==0)
e=t;
}
int j;
printf("isbn:%s的图书%s已成功删除!\n",L->data[e].isbn,L->data[e].name); for (j=e;jlength-1;j++)
L->data[j]=L->data[j+1];
L->length--;
}
}
void BorrowBook(SqList *&L) //图书借阅
{
printf("请输入你想要借的图书的书号:");
char isbn[30];
scanf("%s",&isbn);
int i=0;
while(ilength&&strcmp(L->data[i].isbn,isbn)!=0)
{
i++;
}
if(i>=L->length)
{
printf("图书馆内没有此图书!\n");
}
else
{
if(L->data[i].num==0)
{
printf("该图书已经全部借出!\n");
}
else
{
printf("图书%s借阅成功!\n",L->data[i].name);
L->data[i].num--;
}
}
}
void BackBook(SqList *&L) //图书归还
{
printf("请输入你想要归还的图书的书号:");
char isbn[30];
scanf("%s",&isbn);
int i=0;
while(ilength&&strcmp(L->data[i].isbn,isbn)!=0)
{
i++;
}
if(i>=L->length)
{
printf("这本图书不是我们图书馆所藏!\n");
}
else
{
printf("图书%s归还成功!\n",L->data[i].name);
L->data[i].num++;
}
}
void Sort_i(SqList *&L) //按书号排序
{
for(int i=0;ilength-1;i++) //冒泡法排序
{
for(int j=0;jlength-1-i;j++)
{
if(strcmp(L->data[j].isbn,L->data[j+1].isbn)>0)
{
strcpy(L->data1[j].isbn,L->data[j].isbn);
strcpy(L->data[j].isbn,L->data[j+1].isbn);
strcpy(L->data[j+1].isbn,L->data1[j].isbn);
strcpy(L->data1[j].name,L->data[j].name);
strcpy(L->data[j].name,L->data[j+1].name);
strcpy(L->data[j+1].name,L->data1[j].name);
strcpy(L->data1[j].writer,L->data[j].writer);
strcpy(L->data[j].writer,L->data[j+1].writer);
strcpy(L->data[j+1].writer,L->data1[j].writer);
strcpy(L->data1[j].producter,L->data[j].producter);
strcpy(L->data[j].producter,L->data[j+1].producter);
strcpy(L->data[j+1].producter,L->data1[j].producter);
L->data1[j].num=L->data[j].num;
L->data[j].num=L->data[j+1].num;
L->data[j+1].num=L->data1[j].num;
strcpy(L->data1[j].price,L->data[j].price);
strcpy(L->data[j].price,L->data[j+1].price);
strcpy(L->data[j+1].price,L->data1[j].price);
}
}
}
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for (i=0;ilength;i++)
{
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[i].isbn,L->data[i].name,L->data[i].writer,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
void Sort_n(SqList *&L) //按书名排序
{
for(int i=0;ilength-1;i++) { for(int j=0;jlength-i-1;j++) { if(strcmp(L->data[j].writer,L->data[j+1].writer)>0) { strcpy(L->data1[j].isbn,L->data[j].isbn); strcpy(L->data[j].isbn,L->data[j+1].isbn); strcpy(L->data[j+1].isbn,L->data1[j].isbn); strcpy(L->data1[j].name,L->data[j].name); strcpy(L->data[j].name,L->data[j+1].name); strcpy(L->data[j+1].name,L->data1[j].name); strcpy(L->data1[j].writer,L->data[j].writer); strcpy(L->data[j].writer,L->data[j+1].writer); strcpy(L->data[j+1].writer,L->data1[j].writer); strcpy(L->data1[j].producter,L->data[j].producter); strcpy(L->data[j].producter,L->data[j+1].producter); strcpy(L->data[j+1].producter,L->data1[j].producter); L->data1[j].num=L->data[j].num; L->data[j].num=L->data[j+1].num; L->data[j+1].num=L->data1[j].num; strcpy(L->data1[j].price,L->data[j].price); strcpy(L->data[j].price,L->data[j+1].price); strcpy(L->data[j+1].price,L->data1[j].price); } for(int t=0;tlength-1;t++) { if(strcmp(L->data[t].writer,L->data[t+1].writer)==0) { if(strcmp(L->data[t].isbn,L->data[t+1].isbn)>0) { strcpy(L->data1[t].isbn,L->data[t].isbn); strcpy(L->data[t].isbn,L->data[t+1].isbn); strcpy(L->data[t+1].isbn,L->data1[t].isbn); strcpy(L->data1[t].name,L->data[t].name); strcpy(L->data[t].name,L->data[t+1].name); strcpy(L->data[t+1].name,L->data1[t].name); strcpy(L->data1[t].writer,L->data[t].writer); strcpy(L->data[t].writer,L->data[t+1].writer); strcpy(L->data[t+1].writer,L->data1[t].writer); strcpy(L->data1[t].producter,L->data[t].producter); strcpy(L->data[t].producter,L->data[t+1].producter); strcpy(L->data[t+1].producter,L->data1[t].producter); L->data1[t].num=L->data[t].num;
L->data[t].num=L->data[t+1].num;
L->data[t+1].num=L->data1[t].num;
strcpy(L->data1[t].price,L->data[t].price);
strcpy(L->data[t].price,L->data[t+1].price);
strcpy(L->data[t+1].price,L->data1[t].price);
}
}
}
}
}
printf("书号\t书名\t作者\t出版社\t馆存数量\t价格\n");
for (i=0;ilength;i++)
{
printf("%s\t《%s》\t%s\t%s\t%d册\t%s元",L->data[i].isbn,L->data[i].name,L->data[i].writer,L->data[i].producter,L->data[i].num,L->data[i].price);
printf("\n");
}
}
int menu(SqList *&L);
void menu1(SqList *&L)
{
printf("\n\t----------------------------------------\n");
printf("\t 1. 按 书 名进行查询 \n\n");
printf("\t 2. 按作者名进行查询 \n\n");
printf("\t 3. 按出版社进行查询 \n\n");
printf("\t 0. 返回主菜单 \n");
printf("\n\t----------------------------------------\n");
printf("请选择功能(0~3):");
int choice;
scanf("%d",&choice);
switch(choice)
{
case 1:Search_n(L);system("pause");system("cls");break;
case 2:Search_w(L);system("pause");system("cls");break;
case 3:Search_p(L);system("pause");system("cls");break;
case 0:system("cls");menu(L);break;
default:printf("输入有误,请重新输入!");system("pause");system("cls");
}
menu1(L);
}
void menu2(SqList *&L)
{
printf("\n\t--------------------------------------------\n");
printf("\t 1. 按书号进行图书的修改 \n\n"); printf("\t 2. 按书名进行图书的修改 \n\n"); printf("\t 0. 返回主菜单 \n"); printf("\n\t--------------------------------------------\n");
printf("请选择功能(0~2):");
int choice;
scanf("%d",&choice);
switch(choice)
{
case 1:Revise_i(L);system("pause");system("cls");break;
case 2:Revise_n(L);system("pause");system("cls");break;
case 0:system("cls");menu(L);break;
default:printf("输入有误,请重新输入!");system("pause");system("cls"); }
menu2(L);
}
void menu3(SqList *&L)
{
printf("\n\t--------------------------------------------\n");
printf("\t 1. 按书号进行图书的删除 \n\n"); printf("\t 2. 按书名进行图书的删除 \n\n"); printf("\t 0. 返回主菜单 \n"); printf("\n\t--------------------------------------------\n");
printf("请选择功能(0~2):");
int choice;
scanf("%d",&choice);
switch(choice)
{
case 1:Delete_i(L);system("pause");system("cls");break;
case 2:Delete_n(L);system("pause");system("cls");break;
case 0:system("cls");menu(L);break;
default:printf("输入有误,请重新输入!");system("pause");system("cls"); }
menu3(L);
}
void menu4(SqList *&L)
{
printf("\n\t--------------------------------------------\n");
printf("\t 1. 按书号进行图书的排序 \n\n"); printf("\t 2. 按作者进行图书的排序 \n\n"); printf("\t 0. 返回主菜单 \n"); printf("\n\t--------------------------------------------\n");
printf("请选择功能(0~2):");
int choice;
scanf("%d",&choice);
switch(choice)
{
case 1:Sort_i(L);system("pause");system("cls");break;
case 2:Sort_n(L);system("pause");system("cls");break;
case 0:system("cls");menu(L);break;
default:printf("输入有误,请重新输入!");system("pause");system("cls"); }
menu4(L);
}
void menu5(SqList *&L)
{
printf("\n\t---------------------------------------\n");
printf("\t 1. 图书借阅 \n\n");
printf("\t 2. 图书归还 \n\n");
printf("\t 0. 返回主菜单 \n"); printf("\n\t---------------------------------------\n");
printf("请选择功能(0~2):");
int choice;
scanf("%d",&choice);
switch(choice)
{
case 1:BorrowBook(L);system("pause");system("cls");break;
case 2:BackBook(L);system("pause");system("cls");break;
case 0:system("cls");menu(L);break;
default:printf("输入有误,请重新输入!");system("pause");system("cls"); }
menu5(L);
}
int menu(SqList *&L)
{ printf("\n\t\t ★简易图书管理系统★ ");
printf("\n\t ――――――――――――――――\n");
printf("\t | 1. 图书信息录入 |\n\n");
printf("\t | 2. 图书信息查询 |\n\n");
printf("\t | 3. 图书信息排序 |\n\n");
printf("\t | 4. 图书信息修改 |\n\n");
printf("\t | 5. 图书信息删除 |\n\n");
printf("\t | 6. 图书借阅归还 |\n\n");
printf("\t | 0. 退出. | ");
printf("\n\t ――――――――――――――――\n");
printf("请选择功能(0~6):");
int choice;
scanf("%d",&choice);
switch(choice)
{
case 1:AddBook(L);system("pause");system("cls");break;
case 2:system("cls");menu1(L);break;
case 3:system("cls");menu4(L);break;
case 4:system("cls");menu2(L);break;
case 5:system("cls");menu3(L);break;
case 6:system("cls");menu5(L);break;
case 0:printf("您已成功退出!");return 0;break;
default:printf("输入有误,请重新输入!");system("pause");system("cls"); }
return 1;
}
void main()
{
SqList *L;
InitList(L);
while(menu(L));
}