C++ 大作业 超市收银系统
来源:互联网 发布:笔记本打印机端口设置 编辑:程序博客网 时间:2024/05/01 13:18
#include<iostream> #include<fstream>#include<string>#include<iomanip>#include<ctime>#include<windows.h>using namespace std;string td;class Product //商品类{private: //私有数据成员double price; char name[30]; long number;public: //成员函数double getprice() //获取商品价格{return price;}char *getname() //获取商品名{return name;}long getnumber() //获取商品条形码{return number;}double setprice() //设置价格{cout<<"请 输 入 价 格 : ";cin>>price;}string setname() //设置商品名{cout<<"请 输 入 商 品 名 : ";cin>>name;}void setnumber() //设置商品条形码{ cout<<"请 输 入 商 品 条 形 码 : "; cin>>number;}void addproduct(); //增加商品void search();//查找商品信息void change();// 更改商品信息void display(); //显示商品信息int del(int k=0); //删除商品信息};void Product::addproduct() //增加商品 { string pnumber,nam;int k=0;cout<<"请 输 入 商 品 条 形 码 : ";cin>>pnumber;nam="D:\\商品\\"+pnumber+".txt";ifstream infile(nam.c_str());if(infile){cout<<" 该商品已存在,请重新选择!"<<endl;k=1;infile.close();}infile.close();if(k==0){ofstream outfile(nam.c_str());if(!outfile){cout<<" 系统出现错误,请重新保存!"<<endl;}if(outfile){outfile<<setw(20)<<"商品条形码:"<<pnumber<<endl;cout<<"请 输 入 商 品 价 格 : ";cin>>price; outfile<<setw(20)<<"商品价格:"<<price<<endl;cout<<"请 输 入 商 品 名 : ";cin>>name;outfile<<setw(20)<<"商品名:"<<name<<endl;outfile.close();cout<<" 保存商品成功!"<<endl;}}}void Product::search() //查找商品信息{string pnumber,nam;cout<<"请 输 入 商 品 条 形 码: ";cin>>pnumber;nam="D:\\商品\\"+pnumber+".txt";ifstream infile(nam.c_str());if(!infile){cout<<"未找到该商品,请核对 !"<<endl;}else{cout<<" 该商品存在,详情请查询所有信息 !"<<endl;infile.close();}}void Product::change() // 更改商品信息{string pnumber,nam;int m=0; m=del(1);if(m==1){nam="D:\\商品\\"+pnumber+".txt";ofstream outfile(nam.c_str());if(outfile){ cout<<" 请 输 入 更 改 后 的 商 品 信 息 !";cout<<" 商 品 名 : ";cin>>name;cout<<" 商 品 条 形 码 : ";cin>>number;cout<<" 商 品 价 格 : ";cin>>price;outfile<<setw(20)<<"商品条形码:"<<number<<endl;outfile<<setw(20)<<"商品价格:"<<price<<endl;outfile<<setw(20)<<"商品名:"<<name<<endl;outfile.close();}}}void Product::display() //显示商品信息{string pnumber,nam;cout<<"请 输 入 要 查 找 商 品 条 形 码 :";cin>>pnumber;nam="D:\\商品\\"+pnumber+".txt";ifstream infile(nam.c_str());if(!infile){cout<<" 该商品不存在,请核对!"<<endl;}else{cout<<" 该商品存在!商品信息如下:"<<endl;string s;while(getline(infile,s)){cout<<s<<endl;}}infile.close();}int Product::del(int k) //删除商品信息{ string pnumber,nam; cout<<"请 输 入 商 品 条 形 码 : "; cin>>pnumber;nam="D:\\商品\\"+pnumber+".txt"; ifstream infile(nam.c_str()); if(!infile) { cout<<"该商品不存在,请核对!"<<endl;return 0; } else {infile.close();DeleteFile(nam.c_str());if(k==0) cout<<"删除成功!"<<endl;return 1; }}class Member //会员类{private:char name[30];int number;unsigned long int pnumber;public:void addcustomer(); //增加会员int search(int k=0); //查找会员void change(); // 更改会员信息void display(); //显示会员信息int del(int k=0); //删除会员信息};void Member::addcustomer() //增加会员{string cnumber,nu;int k=0;cout<<"请 输 入 会 员 卡 号 : ";cin>>cnumber;nu="D:\\会员\\"+cnumber+".txt";ifstream infile(nu.c_str());if(infile){cout<<" 该会员已存在,请重新输入选择!"<<endl;k=1; infile.close();}infile.close();if(k==0){ofstream outfile(nu.c_str());if(!outfile){cout<<" 系统出现错误,请重新保存!"<<endl;}if(outfile){cout<<"请 输 入 会 员 姓 名 : ";cin>>name;outfile<<setw(20)<<"会员名:"<<name <<endl;outfile<<setw(20)<<"会员卡号:"<<cnumber<<endl;cout<<"请 输 入 会 员 手 机 号 : ";cin>>pnumber;outfile<<setw(20)<<"会员手机号:"<<pnumber<<endl;outfile.close();cout<<" 保存会员成功!"<<endl;}}}int Member::search(int k) //查找会员{string cnumber,nu;cout<<"请输入会员卡号";cin>>cnumber;nu="D:\\会员\\"+cnumber+".txt";ifstream infile(nu.c_str());if(!infile){cout<<"未找到该会员,请核对!"<<endl;return 0;}if(infile){if(k==0) cout<<"该会员存在,详情请查询所有信息 !"<<endl;infile.close();return 1;}}void Member::change() // 更改会员信息{string cnumber,nu;int m=1; m=del(1); if(m==1){cout<<"请输入更改后的会员信息!";cout<<"会 员 卡 号: ";cin>>cnumber;nu="D:\\会员\\"+cnumber+".txt";ofstream outfile(nu.c_str());if(outfile){cout<<"会 员 名 : ";cin>>name;cout<<"会 员 手 机 号 :";cin>>pnumber;outfile<<setw(20)<<"会员姓名:"<<name<<endl;outfile<<setw(20)<<"会员卡号:"<<cnumber<<endl;outfile<<setw(20)<<"会员手机号:"<<pnumber<<endl;outfile.close();}}}void Member::display() //显示会员信息{string cnumber,nu;cout<<"请 输 入 要 查 找 会 员 的 会 员 卡 号 :";cin>>cnumber;nu="D:\\会员\\"+cnumber+".txt";ifstream infile(nu.c_str());if(!infile){cout<<" 该会员不存在,请核对!"<<endl;}else{cout<<" 该会员存在!会员信息如下:"<<endl;string s;while(getline(infile,s)){cout<<s<<endl;}} }int Member::del(int k) //删除会员信息{ string cnumber,nu; cout<<"请 输 入 会 员 卡 号 : "; cin>>cnumber;nu="D:\\会员\\"+cnumber+".txt";ifstream infile(nu.c_str());if(!infile){cout<<" 该会员不存在,请核对!"<<endl;return 0;}if(infile){ infile.close(); DeleteFile(nu.c_str()); if(k==0) cout<<"删除成功!"<<endl; return 1;}}class Vip:public Member //vip类{private:char name[30];int numbervip;unsigned long int pnumber;public:int addvip();//增加vipvoid searchvip();//查找vipvoid changevip();// 更改vip信息void displayvip();//显示vip信息int delvip(int k=0);//删除vip信息void memv();//member变成VIP};int Vip::addvip()//增加vip{string vnumber,vn;int k=0;cout<<"请 输 入 VIP 卡 号: ";cin>>vnumber;vn="D:\\VIP\\"+vnumber+".txt";ifstream infile(vn.c_str());if(infile){cout<<" 该VIP已存在,请重新选择!"<<endl;k=1;infile.close();} if(k==0){ofstream outfile(vn.c_str());if(!outfile){cout<<" 系统出现错误,请重新保存!"<<endl;}if(outfile){cout<<"请 输 入 VIP 姓 名: ";cin>>name;outfile<<setw(20)<<"VIP姓名:"<<name <<endl;outfile<<setw(20)<<"VIP卡号:"<<vnumber<<endl;cout<<"请 输 入 VIP 手 机 号:";cin>>pnumber;outfile<<setw(20)<<"VIP手机号:"<<pnumber<<endl;outfile.close();cout<<" 保存VIP成功!"<<endl;return 1;}}}void Vip::searchvip() //查找vip{string vnumber,vn;cout<<"请 输 入 vip 卡 号 : ";cin>>vnumber; vn="D:\\VIP\\"+vnumber+".txt";ifstream infile(vn.c_str());if(!infile){cout<<" 未找到该vip,请核对"<<endl;}else {cout<<" 该vip存在,详情请查询所有信息 !"<<endl;infile.close();}}void Vip::changevip() // 更改vip信息{string vnumber,vn; int m=0;m=delvip(1);if(m==1){vn="D:\\VIP\\"+vnumber+".txt";ofstream outfile(vn.c_str());if(outfile){cout<<" 请输入更改后VIP信息!";cout<<"vip 姓 名 : ";cin>>name;cout<<"vip 卡 号 : ";cin>>numbervip;cout<<"vip 手 机 号 码 : ";cin>>pnumber;outfile<<setw(20)<<"VIP姓名:"<<name<<endl;outfile<<setw(20)<<"VIP卡号:"<<numbervip<<endl;outfile<<setw(20)<<"VIP手机号:"<<pnumber<<endl;outfile.close();}}}void Vip::displayvip() //显示vip信息{string vnumber,vn;cout<<"请 输 入 要 查 找 vip 的 vip 卡 号:";cin>>vnumber;vn="D:\\VIP\\"+vnumber+".txt";ifstream infile(vn.c_str());if(!infile){cout<<" 该vip不存在,请核对!"<<endl;}else{cout<<" 该vip存在!vip信息如下:"<<endl;string s;while(getline(infile,s)){cout<<s<<endl;}infile.close();}}int Vip::delvip(int k) //删除vip信息{ string vnumber,vn; cout<<"请 输 入 vip 卡 号 : "; cin>>vnumber;vn="D:\\VIP\\"+vnumber+".txt";ifstream infile(vn.c_str());if(!infile){ cout<<" 该vip不存在,请核对!"; return 0;}if(infile){ infile.close(); DeleteFile(vn.c_str()); if(k==0) cout<<"删除成功!"<<endl; return 1;}}void Vip::memv() //member变成VIP{int flag=0,flag1=0;Member m;flag=m.search(1);if(flag==1){cout<<" 该会员存在!请继续!"<<endl;while(flag1==0)flag1=addvip();m.del(1);}}int charge() //收银员系统{ system("cls");system("color 5f");int cchoice; char name[20]; while(cchoice!=0){if(cchoice!=3){cout<<" ╭------------< 收银员 >-----------╮"<<endl;cout<<" ∣ ∣"<<endl; cout<<" ├-----------------------------------┤"<<endl; cout<<" ∣ 1.收银员注册 ∣"<<endl;cout<<" ∣ 2.收银员登陆 ∣"<<endl;cout<<" ∣ 3.返 回 ∣"<<endl;cout<<" ╰-----------------------------------╯"<<endl;cout<<" 请选择您要服务的类别:";cin>>cchoice;if((cchoice!=1)&&(cchoice!=2)&&(cchoice!=3)){cout<<" 输入有误,请重新输入!"<<endl;continue;}}if(cchoice==1){string ad,wn;cout<<"请 输 入 工 号 : ";cin>>ad;wn="D:\\收银员\\"+ad+".txt";ifstream infile(wn.c_str());if(infile){cout<<" 已注册!"<<endl;continue;}ofstream outfile(wn.c_str());if(!outfile){cout<<" 有错误,请重试!"<<endl;continue;} cout<<"请 输 入 姓 名 : ";cin>>name;outfile<<setw(10)<<"姓名: "<<name<<endl;outfile<<setw(10)<<"工号: "<<ad<<endl; cout<<" 欢迎!注册成功!"<<endl;}if(cchoice==2){string wn,ad;cout<<"请 输 入 你 的 工 号 : ";cin>>ad;wn="D:\\收银员\\"+ad+".txt";ifstream infile(wn.c_str());{if(infile){cout<<" ☆☆☆☆☆ 欢 迎 光 临 ☆☆☆☆☆"<<endl;return 'a';}if(!infile){cout<<" 您的输入有误,请您核对!"<<endl;}}continue;} if(cchoice==3)return 2; }return 0;}int shouying_system(){ system("color 3b");int cho=1;while(cho!=0){ cout<<" ☆☆☆☆☆☆☆☆ 超市收银系统 ☆☆☆☆☆☆☆☆"<<endl;cout<<" ********************************************************"<<endl;cout<<" * 商品支付系统---------------------------1 *"<<endl;cout<<" * 会员管理系统---------------------------2 *"<<endl;cout<<" * VIP 管理系统---------------------------3 *"<<endl;cout<<" * 商品管理系统---------------------------4 *"<<endl;cout<<" * 查看超市收入情况-----------------------5 *"<<endl;cout<<" * 返 回----------------------------------6 *"<<endl;cout<<" ********************************************************"<<endl;cout<<" 请输入您的指令!"<<endl;cin>>cho;if(cho==1){return 1;}if(cho==2){return 2;} if(cho==3){return 3;} if(cho==4){return 4;} if(cho==5){return 5;} if(cho==6){return 6;} }}int productpay_system(){ SYSTEMTIME sys;GetLocalTime(&sys); system("color 3c" );double income=0,total,price,quantity;string pn,pm,mov,s;int f,k,flag=0,flag1=1,flag2=1;while(flag==0){if(flag1==2){cout<<" 1.继续支付商品 2.返回收银系统";cin>>flag2;}if(flag2==2) return 1;if(flag2==1){cout<<"请 输 入 商 品 条 形 码 :";cin>>pn;pm="D:\\商品\\"+pn+".txt";ifstream infile(pm.c_str());if(!infile){cout<<" 未找到该商品!"<<endl;cout<<"1.重 新 输 入 2.返 回";cin>>k;if(k==1){k=0;continue;}if(k==2) {f=0,flag=0;flag1=2;}}if(infile){while(getline(infile,s)){cout<<s<<endl;}cout<<"请输入商品单价:";cin>>price;cout<<"请输入重量或质量:";cin>>quantity;cout<<"1:会员 2:VIP 3:普通顾客"<<endl; cout<<"(请询问,若是会员或VIP请输入相应数字进入系统)";cin>>f;}while(f==1){string a,mn;cout<<"请 会 员 卡 号 :";cin>>a;mn="D:\\会员\\"+a+".txt";ifstream infile(mn.c_str());if(!infile){cout<<" 未找到该会员!"<<endl;cout<<"1.重 新 输 入 2.返 回";cin>>k;if(k==1){k=0;continue;}if(k==2) {f=0,flag=0;flag1=2;}}if(infile){string in;string date;total=price*quantity*0.9;income=income+total;cout<<"应 付 金 额 :"<<total<<endl;in="D:\\收入\\会员收入\\"+td+".txt";ofstream outfile(in.c_str());outfile<<income<<'\t'<<sys.wSecond<<'/'<<sys.wMinute<<'/'<<sys.wHour<<endl;f=0,flag=0;flag1=2;}}while(f==2){string b,vn;cout<<"请 输 入 VIP 卡 号 :";cin>>b;vn="D:\\VIP\\"+b+".txt";ifstream infile(vn.c_str());if(!infile){cout<<" 未找到该vip!"<<endl;cout<<"1.重 新 输 入 2.返 回";cin>>k;if(k==1){k=0;continue;}if(k==2) {f=0,flag=0;flag1=2;}}if(infile){infile.close();total=price*quantity*0.8;income=income+total;string in;string date; cout<<"应 付 金 额:"<<total<<endl;in="D:\\收入\\VIP收入\\"+td+".txt";ofstream outfile(in.c_str());outfile<<income<<'\t'<<sys.wSecond<<'/'<<sys.wMinute<<'/'<<sys.wHour<<endl;f=0,flag=0;flag1=2;}}while(f==3){total=price*quantity;cout<<"应付金额:"<<total<<endl;income=income+total;string in;string date;in="D:\\收入\\普通收入\\"+td+".txt";ofstream outfile(in.c_str());outfile<<income<<'\t'<<sys.wSecond<<'/'<<sys.wMinute<<'/'<<sys.wHour<<endl;f=0,flag=0;flag1=2;}}}return 1;}int member_system(){system("color 1d");Member m;int choic; while(choic!=0){ { cout<<" 1.增加 2.查找 "<<endl;cout<<" 3.更改 4.显示 "<<endl;cout<<" 5.删除 6.返回 "<<endl;cout<<"请输入您的指令:";cin>>choic;}if(choic==1){m.addcustomer();continue;}if(choic==2){m.search();continue;}if(choic==3){m.change();continue;}if(choic==4){m.display();continue;}if(choic==5){m.del(0);continue;}if(choic==6){return 1;}}}int vip_system(){system("color 4a");Vip v;int choic;while(choic!=0){ { cout<<" 1.增加 2.查找 "<<endl;cout<<" 3.更改 4.显示 "<<endl;cout<<" 5.删除 6.返回 "<<endl;cout<<" 7.会员变成VIP "<<endl;cout<<"请输入您的指令:";cin>>choic;}if(choic==1){v.addvip();continue;}if(choic==2){v.searchvip();continue;}if(choic==3){v.changevip();continue;}if(choic==4){v.displayvip();continue;}if(choic==5){v.delvip(0);continue;}if(choic==6){return 1;}if(choic==7) {v.memv();continue;}}}int productmanage_system(){ system("color 5e"); Product p;int ch;while(ch!=0){cout<<" 1.增加 2.更改 "<<endl;cout<<" 3.查找 4.删除 "<<endl;cout<<" 5.显示 6.返回 "<<endl;cout<<"请输入您的指令: ";cin>>ch;if(ch==1){p.addproduct();continue;}if(ch==2){p.change();continue;}if(ch==3){p.search();continue;}if(ch==4){p.del(0);continue;}if(ch==5){p.display();continue;}if(ch==6)return 1;}}int showincome_system(){ SYSTEMTIME sys;GetLocalTime(&sys);system("color 2e");double tincome=0,number; string s,in,date; cout<<"请输入要查询的日期:";cin>>date; in="D:\\收入\\会员收入\\"+date+".txt";ifstream infile(in.c_str());if(!infile){cout<<"未能统计会员收入" <<endl;}while(getline(infile,s)){ofstream outfile("d:\\收入\\totalincome.txt",ios::app);outfile<<s<<endl;infile.close();}string vn; vn="D:\\收入\\VIP收入\\"+date+".txt";ifstream fin(vn.c_str());if(!fin){cout<<"未能统计VIP收入" <<endl;} while(getline(fin,s)){ ofstream outfile("d:\\收入\\totalincome.txt",ios::app);outfile<<s<<endl;fin.close();} ifstream input_data;string pt; pt="D:\\收入\\普通收入\\"+date+".txt";input_data.open(pt.c_str());if(!input_data){cout<<"未能统计普通顾客收入"<<endl;}while(getline(input_data,s)){ofstream outfile("d:\\收入\\totalincome.txt",ios::app);outfile<<s<<endl;input_data.close();}ifstream datafile("d:\\收入\\totalincome.txt",ios::in);if(!datafile){cout<<"该文件未能正确打开!"<<endl;}while(datafile>>number){int se,m,h,d,m1,y;char d1,d2,d3,d4,d5;datafile>>se>>d1>>m>>d2>>h>>d3>>d>>d4>>m1>>d5>>y;tincome=tincome+number;}datafile.clear();cout<<"总收入:"<<tincome<<endl;return 1;}int main(){system("color 06f"); extern string td;cout<<"请输入当前日期(年/月/ 日):";cin>>td;double income=0,flag1=0,flag2=0;int c=1,cho=1,k,p;cout<<" ********************************************************"<<endl;cout<<" 欢迎使用!收银员系统(!请仔细阅读使用说明!) "<<endl;cout<<" ********************************************************"<<endl;cout<<" please press 1!"<<endl;cout<<" 使用说明 "<<endl;cout<<" 一.请按提示输入要的选项"<<endl;cout<<" 二.请先在D盘建立四个文件夹"<<endl;cout<<" ①收银员 ②会员 ③VIP ④收入"<<endl;cout<<" 三.请在收入文件夹中建立三个文件夹"<<endl;cout<<" ①会员收入 ②VIP收入 ③普通收入"<<endl;cout<<" 四.如需要改变路径,请联系相关技术人员"<<endl;cout<<" 五.系统还在测试阶段,谢谢使用!"<<endl;cin>>c;if(c!=1){ cout<<"please press 1!"<<endl;cin>>c;}while(c!=0){system("cls");cout<<" ☆☆☆☆☆ 欢 迎 使 用! ☆☆☆☆☆"<<endl;cout<<" 收银员系统-------------1"<<endl; cout<<" 退 出-----------------2"<<endl;cin>>c;if(c==1) { c=charge();}if(c=='a'){cout<<" 收银系统----------------1"<<endl;cout<<" 返 回------------------2"<<endl;cout<<" 退 出------------------3"<<endl;cin>>k;if(k==2){c=2;continue;}while(k==1){ int flag3=0;if(flag1==0) p=shouying_system();if(p==1) {flag2=productpay_system();}if(p==2) {flag2=member_system();}if(p==3) {flag2=vip_system();}if(p==4) {flag2=productmanage_system();} if(p==5) {flag3=1;flag2=showincome_system();}if(p==6) {k=2; flag1=0; flag2=0; continue;}if(flag2==1) {if(flag3==0) system("cls"); p=shouying_system();flag1=1;}}if(k==3)exit(1);}if(c==2) exit(1);}return 0;}
超市作为市民日常生活消费的主要场所,随着社会的发展,超市作为信息资源的集散地的现象日趋明显,各种促销方式,各种消费手段,是超市的业务量更大,收入更高,工作量更大。为了管理超市商品和会员和VIP信息以及计算商品价格和统计收入,我们根据超市收银台所需要的实际管理系统进行了全面的分析处理。通过设计合理的函数,通过C++设计出本程序。
系统针对超市收银系统和商品管理系统,面对大量纷繁复杂的管理操作,对不同商品的增加和删除和更改信息,以及消费者信息的维护,需要设计一个合理的系统,它应包括商品类,会员类,和基于会员类的VIP类和超市的收入信息,建立本超市管理系统8的目的是实现无纸化超市收管理,减轻管理员的工作量,实现收银维护和信息上架的一体化管理,并要求对管理员进行身份验证。
0 0
- C++ 大作业 超市收银系统
- C语言超市收银系统
- 仿真超市收银系统
- 超市收银系统
- 超市收银系统设计思路
- Qt实现小型的超市收银系统
- 超市收银系统需求分析求指导
- c#练习之超市收银系统
- 基于C#的超市收银管理系统
- C#小项目:模拟超市收银系统
- 超市收银系统(小组实训)
- C#基础综合练习--超市收银系统的设计
- c#超市收银系统,多态的使用
- HOJ1941 超市收银问题
- 商品超市管理系统作业
- 银行收银系统(C#)
- 小型超市管理系统.c
- 从超市收银故事看互联网技术
- object to xml
- linux中c语言errno的使用
- insertAdjacentElement兼容处理
- Topic 4:More Control Flow Tools
- C++学习总结NO.1
- C++ 大作业 超市收银系统
- 什么时候使用NO_UNNEST
- Oracle的随机函数的使用方法
- firefox获取事件源以及swapNode兼容处理
- 计算思维(1)-质因数
- 二分查找
- 实现负载均衡的基本算法
- 如何编译android 4.1 的源码并在android的ADT里面调试framework相关的代码
- Mplayer安装总结