课设题目
图书管理系统
程序运行界面
核心代码
//定义希尔排序结构体
typedef char InfoType[10];
typedef struct //记录类型
{
int key; //关键字项
} RecType; //排序的记录类型定义
//书的结构体
typedef struct book
{
float price; //图书单价
char name[80]; //图书名
long num; //图书编号
char writername[20]; //作者姓名
char publish[40]; //出版社名称
struct book *next; //结点指针
} Book,*BookList;
#define MAX 100
#define MaxSize 100 //100条记录
int X[100]; //暂存数组
int xer=0; //暂存标记
RecType R[MaxSize]; //哈希数组
Book *H; //图书链表
//界面
void Face();
void FaceBook();
void FaceBookSearh();
//初始化
Book *Init_B(); //初始化图书链表
int BookAdd(BookList &); //建立一个带头结点的链表用来存储图书信息
//查询图书方式
int BookSearch(BookList &); //图书查询菜单
int Search_BookNum(BookList &); //按编号查询
int Search_BookName(BookList &); //按书名查询
int Search_BookWritername(BookList &); //按作者名查询
int Search_AllB(BookList &); //查询所有图书信息
//删除图书
int BookDel(BookList &); //以图书编号作为主键进行删除
//修改图书信息
int BookChange(BookList &);
//排序函数
int BookPai(BookList &);
void ShellSort(RecType [],int);
//全局变量声明
extern RecType R[MaxSize];
extern int xer;
extern int X[100];
/*********************************************************
* 功能描述:初始化图书链表
* 输入参数:无
* 输出参数:无
* 返回值 :图书链表
* 其它说明:无
************************************************************/
//增加图书
Book *Init_B() //初始化图书链表
{
Book *H;
// H=(Book *)malloc(sizeof(Book));
H=new Book;
if(!H) exit(1);
H->next=NULL;
return H;
}
/*********************************************************
* 功能描述:新建图书
* 输入参数:X[xer]-图书编号
* 输出参数:是否成功增加
* 返回值 :(1)
* 其它说明:无
************************************************************/
int BookAdd(BookList &H) //建立一个带头结点的链表用来存储图书信息
{
for(int i = 0;i < 5;++i){
cout<<endl;
}
i=0; //统计要增加的图书量
Book *p,*q;
//p=(Book *)malloc(sizeof(Book));
p=new Book;
if(!p)
exit(1);
if(H->next==NULL) //记录第一本书
{
cout<<" ○输入图书编号:(输入图书编号为0时退出)";
cin>>p->num;
X[xer]=p->num;
if(p->num==0) //退出"增加图书"
{
cout<<" 共计"<<i<<"本图书入库!"<<endl;
cout<<"┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈"<<endl;
return 1;
}
cout<<" ○输入书名:";
cin>>p->name;
cout<<" ○输入图书价格:";
cin>>p->price;
cout<<" ○输入作者姓名:";
cin>>p->writername;
cout<<" ○输入出版社名称:";
cin>>p->publish;
p->next=NULL;
H->next=p;
q=p;
i++;
cout<<endl<< X[xer];
xer++;
}
else
{
q=H;
while(q->next!=NULL)
q=q->next;
p->num=1; //进入循环的条件 记录往后的每一本
p->next=NULL;
}
while(p->num!=0) //以图书编号作为判断链表是否结束
{
p=(Book *)malloc(sizeof(Book));
if(!p) exit(1);
cout<<" ○输入图书编号:(输入图书编号为0时退出)";
cin>>p->num;
//希尔数组的加入
X[xer]=p->num;
if(p->num==0) //退出"增加图书"
{
cout<<" 共计"<<i<<"本图书入库!"<<endl;
cout<<"┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈"<<endl;
break;
}
cout<<" ○输入书名:";
cin>>p->name;
cout<<" ○输入图书价格:";
cin>>p->price;
cout<<" ○输入作者姓名:";
cin>>p->writername;
cout<<" ○输入出版社名称:";
cin>>p->publish;
p->next=NULL;
q->next=p;
q=p;
i++;
//希尔数组的加入
cout<<endl<< X[xer];
xer++;
}
cout << "按任意键返回主菜单"<<endl;
system("pause");
system("CLS");
return 1;
}
/*********************************************************
* 功能描述:查询图书选择模块
* 输入参数:0~9(对应相应功能)
* 输出参数:相应界面
* 返回值 :(1)
* 其它说明:0是退出
************************************************************/
int BookSearch(BookList &H)
{
int m;
while(m!=0)
{
FaceBookSearh();
cin>>m;
cout<<"┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈"<<endl;
switch(m)
{
case 1:
Search_BookName(H);
break; //按书名查询
case 2:
Search_BookNum(H);
break; //按编号查询
case 3:
Search_BookWritername(H);
break; //按作者名查询
case 0:
break; //退出
}
}
cout << "按任意键返回主菜单"<<endl;
system("pause");
system("CLS");
return 1;
}
项目源码
需要源码的小伙伴请前往
微信公众号:海轰Pro
回复: 海轰
O(∩_∩)O哈哈~