課設題目
圖書管理系統
程序運行界面
核心代碼
//定義希爾排序結構體
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哈哈~