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哈哈~

发布了155 篇原创文章 · 获赞 110 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_44225182/article/details/103765497