图书信息管理系统

/***********************************************************   
* 版权所有 (C)2016,test  
*   
* 文件名称: main.cpp   
* 文件标识:main   
* 内容摘要:函数文件   
* 其它说明:主函数   
* 当前版本: V8.0   
* 作 者:陈梦雪 
* 完成日期: 20161227   
*   
* 修改记录1:   
* 修改日期 :20161225   
* 版本号: V1.0   
* 修改人: 陈梦雪 
* 修改内容:整理思路,创建基本架构   
*   
* 修改记录2:   
* 修改日期:20161225   
* 版本号: V2.0   
* 修改人: 陈梦雪  
* 修改内容:添加基本功能   
*   
* 修改记录3:   
* 修改日期: 20161226   
* 版本号: V3.0   
* 修改人: 陈梦雪  
* 修改内容:修复大量的BUG   
*   
* 修改记录4:   
* 修改日期: 20161226  
* 版本号: V4.0   
* 修改人:陈梦雪 
* 修改内容:探索新功能  
*   
* 修改记录5:   
* 修改日期: 20161227  
* 版本号: V5.0   
* 修改人: 陈梦雪  
* 修改内容:测试运行 发现问题  
*   
* 修改记录6:   
* 修改日期: 20161227  
* 版本号: V6.0   
* 修改人:陈梦雪 
* 修改内容:更改功能 测试运行  
*   
* 修改记录6:   
* 修改日期: 20161228   
* 版本号: V7.0   
* 修改人: 陈梦雪  
* 修改内容:完善系统的功能  
*   
* 修改记录6:   
* 修改日期: 20161228   
* 版本号: V8.0   
* 修改人: 陈梦雪  
* 修改内容:将程序添加注释,将初始化数据变成文件存储,修改小部分不完善的地方   
**********************************************************/   

library.h

#include <iostream>  
using namespace std;  
#include <cstdlib>  
#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
#include <fstream>  
#include <iomanip>   
#define MAX    100   
#define MaxSize 100              //100条记录  
//定义希尔排序结构体  
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;  
//界面  
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];  
  


library.cpp

#include "library.h"
/********************************************************* 
* 功能描述:初试化图书链表 
* 输入参数:无 
* 输出参数:无 
* 返回值  :图书链表 
* 其它说明:无 
************************************************************/  
//增加图书  
Book *Init_B()                  //初试化图书链表  
{  
    Book *H;  
    H=(Book *)malloc(sizeof(Book));  
    if(!H) exit(1);  
    H->next=NULL;  
    return H;  
}  
/********************************************************* 
* 功能描述:新建图书 
* 输入参数:X[xer]-图书编号 
* 输出参数:是否成功增加 
* 返回值  :(1) 
* 其它说明:无 
************************************************************/  
int BookAdd(BookList &H)        //建立一个带头结点的链表用来存储图书信息  
{  
    int i=0;                    //统计要增加的图书量  
    Book *p,*q;  
    p=(Book *)malloc(sizeof(Book));  
    if(!p) exit(1);  
    if(H->next==NULL)  
    {  
        cout<<"                       ○请输入图书编号:";  
        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<<"                        ○请输入图书编号:";  
        cin>>p->num;  
        //希尔数组的加入  
        X[xer]=p->num;  
        if(p->num==0)                  //退出"增加图书"  
        {  
            cout<<"                                                    共计"<<i<<"本图书入库!"<<endl;  
       
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值