C++數據結構課程設計--圖書管理系統

課設題目

圖書管理系統

程序運行界面

在這裏插入圖片描述
在這裏插入圖片描述

核心代碼

//定義希爾排序結構體  
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哈哈~

發佈了162 篇原創文章 · 獲贊 112 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章