图书管理

#include #include #include #include using namespace std; class book; class BookManager; //BookManager类是Book类的友元类 class BuyManager; //BuyManager类是buyers类的友元类 class buyer; //顾客基类 class order; //订单类,是Book和buyer类的友元类 class list // 菜单类 {public: int list0(int choice0) { system("cls"); cout< <<"**************************欢迎进入图书管理系统**********************"< < >choice0; return choice0; } int list1(int choice1) { system("cls"); cout< <<"******************************图书管理**************************"< < >choice1; return choice1; } int list2(int choice2) { system("cls"); cout<<"******************************客户管理**************************"< < >choice2; return choice2; } int list3(int choice3) { system("cls"); cout<<"**************************订单管理**********************"< < >choice3; return choice3; } }; class Book //Book类 {public: Book(); Book(char *b_id,char *b_n,char *au,char *pu,double pr,double st,int sa);//构造函数 friend class BookManager;friend class order; void display(); const char * getbook_ID(); //获得书籍编号 const char * getbook_name(); //获得书名 const char * getauthor(); //获得书籍作者 const char * getpublishing(); //获得书籍出版社 double getstore(); //获得书籍库存量 double getprice(); //获得书籍价格 int getsalenum(); //获得书籍销售数量 protected: char book_ID[10]; char book_name[80]; char author[10]; char publishing[80]; double store; //库存 double price; int salenum; //销售量 }; Book::Book(char * b_id,char * b_n,char *au,char *pu,double pr,double st,int sa) { strcpy(book_ID,b_id); strcpy(book_name,b_n); strcpy(author,au); strcpy(publishing,pu); price=pr; store=st; salenum=sa; } Book::Book() { strcpy(book_ID,""); strcpy(book_name,""); strcpy(author,""); strcpy(publishing,""); price=0; store=0; salenum=0; } void Book::display() //显示函数 { cout<<"书号:"< <<"/t"; cout<<"书名:"< <<"/t"; cout<<"作者:"< <<"/n"; cout<<"出版社:"< <<"/t"; cout<<"定价:"< <<"/t"; cout<<"数量:"< <<"/n"; return ; } const char * Book::getbook_ID() { return book_ID;} const char * Book::getbook_name() { return book_name;} const char * Book::getauthor() { return author;} const char * Book::getpublishing() { return publishing;} double Book::getprice() { return price;} double Book::getstore() { return store;} int Book::getsalenum() { return salenum;} class BookManager //BookManager类 {public: BookManager(const char*) {} void Initial(); //书籍初始化 void add(); //添加书籍 void sale(); //售出 void sale_search(); //书籍销售查找 void store_search(); //书籍库存查询 int eof(); }; Book b_book[100]; //定义书籍数组(书籍库) int b=0; void Initial() //三级菜单,初始化图书文件 { b=0; fstream BookFile("bookfile.txt",ios::binary|ios::out); BookFile.seekp(0,ios::beg); BookFile.write((char*)&b,sizeof(int)); Book b1("0001","c++程序设计","谭浩强","清华大学出版社",32,200,0); Book b2("0002","数据结构","徐卓群","北大出版社",35,120,0); Book b3("0003","数据库技术","Jeffrey","机械工业出版社",45,180,0); Book b4("0004","组成原理","白中英","科学出版社",39,240,0); Book b5("0005","编译原理","张素琴","清华大学出版社",35,23,0); b_book[b]=b1; BookFile.write((char*)&b_book[b],sizeof(b_book[b])); b++; b_book[b]=b2; BookFile.write((char*)&b_book[b],sizeof(b_book[b])); b++; b_book[b]=b3; BookFile.write((char*)&b_book[b],sizeof(b_book[b])); b++; b_book[b]=b4; BookFile.write((char*)&b_book[b],sizeof(b_book[b])); b++; b_book[b]=b5; BookFile.write((char*)&b_book[b],sizeof(b_book[b])); b++; BookFile.seekp(0,ios::beg); BookFile.write((char*)&b,sizeof(int)); b_book[0].display(); cout< > choice ; switch ( choice ) { case 1: //追加新记录 cout << "书号, 书名, 作者,出版社,单价,数量:(以 Tab键分隔)/n" ; //输入新记录信息 cin >>book.book_ID; cin >> book.book_name; cin >>book.author; cin>>book.publishing; cin >> book.price; cin >>book.store; book.salenum=0; b_book[b]=book; BookFile.seekp(b*sizeof(Book)+sizeof(int)); BookFile.write((char*)&b_book[b],sizeof(b_book[b]));b++; BookFile.seekp(0,ios::beg); BookFile.write((char*)&b,sizeof(int)); break; case 2: //修改已有记录库存量 { if(b==0) { cout<<"暂无书籍!";getchar();getchar(); return ; } cout<<"请输入您要修改的书的书号:"; cin>>key; //输入书号 for(int j=0;j >num ; if (num>0) { b_book[p].store += num ; //修改库存量 BookFile.seekp(sizeof(int)+sizeof(Book)*p); BookFile.write((char*)&b_book[p],sizeof(b_book[p])); cout<<"入库后的数量:"< < >key; int j; for(j=0;j >num; if(num<0) { cout<<"售出量应为一个正数!"< > choice ; switch( choice ) { case 1: //按书号检索 { system("cls"); cout << "请输入您要查找的书的书号:"; cin >> key ; for(int j=0;j >name; cin>>buyerID; cin>>address; cin>>pay; } void Buyer::display() //显示函数 { cout<<"姓名:"< <<'/t'; cout<<"编号:"< < >key; p=0; for(j=0;j >f; } BuyFile.close(); } void BuyManager::delebuyer() //删除顾客 { Buyer temp; int j=0,p=0,flag,choice; char key[30],f='y'; fstream BuyFile("customerfile.txt",ios::binary|ios::out|ios::in); if(c==0) { cout<<"暂无客户!";getchar();getchar(); return ; } while(f=='Y'||f=='y') { a2: system("cls"); cout<<"请选择删除方式/t1.按姓名删除/t2.按编号删除"< >choice; switch(choice) { case 1:cout<<"请输入您要删除的客户姓名:"; //按姓名删除 cin>>key; for(j=0;j >key; for(j=0;j >f; } BuyFile.close(); } void BuyManager::updatebuyer() //更新客户 { char choice,key[40] ; Buyer buyer; int flag,p,j; fstream BuyFile( "customerfile.txt ",ios::binary|ios::out|ios::in); if(c==0) { cout<<"暂无客户!";getchar();getchar(); return ; } while(1) { system("cls"); cout<<"/n ********** 客户更新**********/n" ; cout<<"请输入客户的编号:/n" ; cin>>key ; for(j=0;j >choice; if(choice=='n'||choice=='N') break; } else { cout<<"您输入的客户编号不存在!"< >cus_nu; cout<<"请输入所购书的编号:"; cin>>book_nu; cout<<"请输入购书人电话"; cin>>phone; cout<<"请输入购书数量:"; cin>>ordernum; } order orderlist[100]; //定义书籍数组(书籍库) fstream OrderFile; //定义书籍库文件对象 ifstream in_order; int d=0; void orderinitial() { d=0; fstream OrderFile( "orderfile.txt",ios::binary|ios::out); OrderFile.seekp(0,ios::beg); OrderFile.write((char*)&d,sizeof(int)); order d1("0001","8001","8944533",32); order d2("0002","8002","8976154",10); order d3("0003","8003","15176762415",45); orderlist[d]=d1; OrderFile.write((char*)&orderlist[d],sizeof(orderlist[d]));d++; orderlist[d]=d2; OrderFile.write((char*)&orderlist[d],sizeof(orderlist[d]));d++; orderlist[d]=d3; OrderFile.write((char*)&orderlist[d],sizeof(orderlist[d]));d++; OrderFile.seekp(0,ios::beg); OrderFile.write((char*)&d,sizeof(int)); orderlist[0].orderdisplay(); cout< >k; if(k=='y'||k=='Y') {p=0;} else {p=1;} } } for(j=0;j >f; system("cls"); OrderFile.close(); } } void order::deleorder() //删除订单 { int j,p=0,flag; char choice='y'; char key[30]; OrderFile.open( "orderfile.txt",ios::binary|ios::out|ios::in); if(d==0) { cout<<"暂无订单!";getchar();getchar(); return ; } while(choice=='y'||choice=='Y') { system("cls"); cout<<"请输入顾客编号:"; cin>>key; for(j=0;j >choice; if(choice=='y'||choice=='Y') //删除 { for(j=p;j >choice; } else break; } else { cout<<"该订单不存在";getchar();getchar(); //未找到记录 break; } } OrderFile.close(); } void order::scanorder() //浏览订单 { OrderFile.open("orderfile.txt",ios::binary|ios::out|ios::in); order temp; in_order.seekg(0,ios::cur); if(d==0) { cout<<"暂无订单!";getchar();getchar(); return ; } for(int j=0;j add();break; case 2:m->sale();break; case 3:m->store_search();break; case 4:m->sale_search();break; case 5:system("cls");goto a1 ; //进入主菜单 default :cout<<"输入有误,请重新输入:"< addbuyer();break; case 2:t->delebuyer();break; case 3:t->updatebuyer();break; case 4:t->buyersearch();break; case 5:system("cls");goto a1 ; default :cout<<"输入有误,请重新输入:"< addorder();break; case 2:s->deleorder();break; case 3:s->scanorder();getchar();getchar();break; case 4:system("cls");goto a1 ; default:cout<<"输入有误,请重新输入:"<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值