实训音像店管理系统的C++源代码_第1页
实训音像店管理系统的C++源代码_第2页
实训音像店管理系统的C++源代码_第3页
实训音像店管理系统的C++源代码_第4页
实训音像店管理系统的C++源代码_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C++源代码#include <iostream.h>#include <fstream.h>#include <string.h>#include <iomanip.h>class guke{private:char no[5];//顾客编号char name[10];//顾客姓名public:void get//输入顾客资料{cout<<“请输入顾客编号:“;cin>>no;cout<<“请输入顾客的姓名:“;cin>>name;}void print//打印顾客资料{cout<<“顾客编号:“<<no<<endl;cout<<“顾客的姓名:“<<name<<endl;}char* getno{return(no);}char* getname{return(name);}};//影碟类class die{private:char code[20];//影碟编号char title[40];char star1[40];//1char star2[40];//主演2char producer[40];//制片人char director[40];//导演char productionCo[40];//制片公司public:char flag;//标记die//利用构造函数,将flag变量默认为”N”,即没有借出{flag=”N”;}void get//输入影碟资料{cout<<“请输入影碟编号:“;cin>>code;cout<<“请输入影碟名称:“;cin>>title;cout<<“1:“;cin>>star1;cout<<“2:“;cin>>star2;cout<<“请输入制片人:“;cin>>producer;cout<<“请输入导演:“;cin>> director;cout<<“请输入制片公司:“;cin>> productionCo;}void print{cout<<“影碟编号:“<<code <<endl;cout<<“影碟名称:“<<title <<endl;cout<<“1:“<<star1<<endl;cout<<“2:“<<star2<<endl;cout<<“制片人:“<<producer<<endl;cout<<“导演:“<<director<<endl;cout<<“制片公司:“<<productionCo<<endl;}void getflag{cout<<“确认要租此碟吗?[Y/N]“;cin>>flag;}char* getcode{return(code);}char* gettitle{return(title);}char* getstar1{return(star1);}char* getstar2{return(star2);}char* getproducer{return(producer);}char* getdirector{return(director);}char* getproductionCo{return(productionCo);}};class gukeborrowdie //用于记录租碟状况的类{public:char no[5];//顾客编号char code[20];//影碟编号void borrowdie//借碟{cout<<“请输入您的编号:“;cin>>no;cout<<“请输入您要租的影碟的编号:“;cin>>code;}void print//显示{cout<<“您的编号:“<<no<<endl;cout<<“您要租的影碟的编号是:“<<code<<endl;}};guke gukesz[500];//(顾客库)die dian[500];//(影碟库)gukeborrowdie gkbd[500];//定义租碟记录数组(租碟库)fstream file_guke;fstream file_die;fstream file_gkbd;int g=0;//记录顾客个数int dd=0;//记录影碟数量int b=0;//记录租碟记录voidcshguke{file_guke.open(“guke.txt“, ios::in);//翻开文件file_guke.read((char*)&gukesz[0], sizeof(gukesz[0]));//将文件内容读到读者库数组的第一个对象if(strlen(gukesz[0].getno) == 0){cout<<“顾客库信息为空,请建立顾客信息。“<<endl;}else{while(!file_guke.eof)//否则将文件后面的内容读到顾客库数组后面的对象之中,从而到达初始化的效果{g++;//顾客就进展增减file_guke.read((char*)&gukesz[g], sizeof(gukesz[g]));if (g>=500){cout<<“顾客库已满!“<<endl;break;}}cout<<“初始化顾客库成功……“<<endl;}file_guke.close;}voidcshdie//初始化影碟库函数{file_die.open(“diefile.txt“, ios::in);file_die.read((char*)&dian[0], sizeof(dian[0]));if(strlen(dian[0].getcode) == 0){}else{

cout<<“影碟库信息为空,请建立影碟信息。“<<endl;while(!file_die.eof){dd++;file_die.read((char*)&dian[dd], sizeof(dian[dd]));if(dd>=500){cout<<“影碟库已满!“<<endl;break;}}cout<<“初始化影碟库成功……“<<endl;}file_die.close;}void cshgkbd //初始化租碟库{file_gkbd.open(“gkbd.txt“, ios::in);file_gkbd.read((char*)&gkbd[0], sizeof(gkbd[0]));if(strlen(gkbd[0].no)==0){cout<<“租碟库信息为空,临时无租碟状况。“<<endl;}else{while (!file_gkbd.eof){b++;file_gkbd.read((char*)&gkbd[b], sizeof(gkbd[b]));if (b >= 500){cout<<“租碟库已满,请速让顾客归还影碟。break;}}

“<<endl;cout<<“初始化租碟库成功……“<<endl;}file_gkbd.close;}void{intdborrowdie//租碟函数= 0;//规律推断值inti= 0;charflag=”y”;gukeborrowdie temp;while(flag ==”y”||flag ==”Y”){temp.borrowdie;for(i =0; i <g;i++)//推断有无此读者编号{if(strcmp(temp.no, gukesz[i].getno) == 0){d = 1;//1则有此编号,否则无此编号break;}}if (d==0){cout<<“对不起!您的编号不存在!“<<endl;return;}int d=0, i=0; //恢复初始值,进展书的编号的推断for(i=0;i<dd;i++)//推断有无此影碟编号{if(strcmp(temp.code,dian[i].getcode) == 0){d=1;//同上break;}}if(d==0){cout<<“对不起!我们这里没有此影碟!“<<endl;return;}int j=0;for(j=0;j<b;j++){if(strcmp(temp.code,gkbd[j].code) == 0){cout<<“格外内疚,此影碟已经租出。“<<endl;return;}}dian[i].getflag;if(dian[i].flag==”Y”||dian[i].flag==”y”){}else{}

file_gkbd.open(“gkbd.txt“, ios::app);dian[i].print;gkbd[b] = temp;file_gkbd.write((char*)&gkbd[b], sizeof(gkbd[b]));b++;cout<<“租碟成功!请按时归还!“<<endl;file_gkbd.close;cout<<“您不中意此影碟吗?租碟未成功。“<<endl;cout<<“要连续租此影碟吗?[Y/N]“;cin>>flag;}}voidPrintborrowdie{inti=0;for(i=0;i<b;i++){gkbd[i].print;cout<<endl;}}voidborrow{charchoice;cout<<“1.凭证借碟2.查看借碟状况0.返回上一级菜单“<<endl;cout<<“请输入功能代码:“;cin>>choice;switch(choice){case ”1”:borrowdie;break;case ”2”:Printborrowdie;break;case ”0”:return;break;default:cout<<“输入错误,请重输入:“<<endl;}}void replacedie{char code[20];int i=0,d=0;cout<<“您要还的影碟的编号是:“;cin>>code;for(i=0;i<b;i++){if(strcmp(code, gkbd[i].code) == 0){d=1;//1则租出,否则没有租出break;//由于影碟编号具有唯一性,故退出循环}}if(d==0){cout<<“此碟尚未租出或者不存在。“<<endl;return;}else{cout<<“此碟租出状况如下:“<<endl;gkbd[i].print;}charflag;cout<<“确认要还此碟吗?[Y/N]“;cin>>flag;if(flag==”y”||flag==”Y”){intp,j=0;p=b-i; //P为要循环的次数for(j =0;j<=p;j++){gkbd[i]=gkbd[i+1];i++;}b--;//以下为观看借碟数组变化的代码for(i=0;i<b;i++){gkbd[i].print;cout<<endl;}}}void gkbdwritefile{inti=0;file_gkbd.open(“gkbd.txt“,ios::out);for(i=0;i<b;i++){file_gkbd.write((char*)&gkbd[i],sizeof(gkbd[i]));}file_gkbd.close;}voidaddguke{if (g>=500){cout<<“客户库已经满,无法添加!“<<endl;return;}charflag=”y”;int j= 0;int p= 0;//规律推断值guke temp;file_guke.open(“gukefile.txt“,ios::app);while (flag==”Y”||flag==”y”){p= 0;//假设编号为不存在temp.get;for(j=0;j<g;j++)//推断客户编号是否重复{if(strcmp(temp.getno,gukesz[j].getno)==0){cout<<“对不起!此客户编号已经存在!“<<endl;p=1;//1则存在,0则不存在}}if(p==0){gukesz[g]=temp;file_guke.write((char*)&gukesz[g],sizeof(gukesz[g]));//写入客户库cout<<“\t\t“<<endl;g++;}cout<<“您还要连续吗?[Y/N]“;cin>>flag;}file_guke.close;}voidadddie{if(dd>=500){cout<<“影碟库已经满,无法添加!“<<endl;return;}char f=”Y”;int j=0;int p=0;die temp;file_die.open(“diefile.txt“, ios::app);while(f==”Y”||f==”y”){p=0;temp.get;for(j=0;j<dd;j++){if(strcmp(temp.getcode, dian[j].getcode) == 0){cout<<“对不起!此影碟编号已经存在!“<<endl;p =1;}}if(p==0){dian[dd]=temp;file_die.write((char*)&dian[b], sizeof(dian[dd]));cout<<“\t\t写入影碟库成功……“<<endl;dd++;}cout<<“要连续吗?[Y/N]“;cin>>f;}file_die.close;};void gukelist{for(intj=0;j<g;j++){gukesz[j].print;cout<<endl;}}//列出全部影碟void dielist{for(intj=0;j<dd;j++){dian[j].print;cout<<endl;}}//客户编号查找函数void gukeFind_no{intj=0;intp=0;//保存对象下标intd=0;//规律推断值charflag=”Y”;charno[5];while(flag==”Y”||flag==”y”){d=0;//默认为没有找到cout<<“请输入要查找的客户的客户编号:“;cin>>no;for(j=0;j<g;j++){if(strcmp(no,gukesz[j].getno)==0){p=j;//将下标传给pd=1;//1则找到对象break;//由于code具有唯一性,故后面的不用找了,所以跳出循环.}}if(d==1){gukesz[p].print;}else{cout<<“格外内疚!没有找到你想要的!“<<endl;}cout<<“要连续查找吗?[Y/N]“;cin>>flag;}}//影碟编号查找函数void dieFind_code{intj=0;intp=0;//保存对象intd=0;//规律推断值char flag=”Y”;char code[20];while(flag==”Y”||flag==”y”){d= 0;//默认为没有找到cout<<“请输入要查找的影碟的编号:“;cin>>code;for(j=0;j<dd;j++){if(strcmp(code,dian[j].getcode)==0){p=j;//将下标传给pd=1;//1则找到对象break;//由于code具有唯一性,故后面的不用找了,所以跳出循环.}}if(d==1){dian[p].print;}else{cout<<“格外内疚!没有找到你想要的!“<<endl;}cout<<“要连续查找吗?[Y/N]“;cin>>flag;}}//客户姓名查找模块void gukeFind_name{char name[10];char flag = ”Y”;int d = 0;//规律推断值while (flag == ”Y”|| flag == ”y”){d=0;//默认为没有找到.cout<<“请输入要查找客户的姓名:“;cin>>name;for(inti=0;i<g;i++){if(strcmp(name,gukesz[i].getname)==0){d = 1;//找到记录,将d1gukesz[i].print;//由于姓名不具有唯一性,所以得循环完.cout<<endl;}}if(d==0){cout<<“格外内疚!没有找到你想要的!“<<endl;}cout<<“要连续查找吗?[Y/N]“;cin>>flag;}}//影碟名称查找模块void dieFind_title{chartitle[40];charflag=”Y”;int d=0;while(flag==”Y”||flag==”y”){d=0;cout<<“请输入要查找影碟的名称:“;cin>>title;for(inti=0;i<b;i++){if(strcmp(title,dian[i].gettitle)==0){d=1;dian[i].print;cout<<endl;}}if(d==0){cout<<“格外内疚!没有找到你想要的!“<<endl;}cout<<“要连续查找吗?[Y/N]“;cin>>flag;}}//客户查找void gukeFind{char flag;while (1){cout<<“1.按客户编号查找 2.按客户姓名查找“<<endl;cout<<“请输入功能代码:“;cin>>flag;switch (flag){

0.返回上一级菜单case ”1”:gukeFind_no;//编号查找模块break;case ”2”:gukeFind_name;//姓名查找模块break;case ”0”:return;break;default:cout<<“输入错误,请重输入:“<<endl;}}}//影碟查找void dieFind{char flag;while (1){cout<<“1.按影碟编号查找 2.按影碟名查找<<endl;cout<<“请输入功能代码:“;cin>>flag;switch (flag){

0.返回上一级菜单“case ”1”:dieFind_code;//按影碟编号查找模块break;case ”2”:dieFind_title;//按书名查找模块case ”0”:return;break;default:cout<<“输入错误,请重输入:“<<endl;}}}void gukedelete{charno[5]; //客户编号int d=0,i=0,j=0;cout<<“请输入要删除的客户的编号:“;cin>>no;for (i=0;i<g;i++)//首先推断客户库有没有此客户{if(strcmp(no,gukesz[i].getno)==0){d =1;//1则有break;}}if(d==0){cout<<“对不起,此客户不存在.“<<endl;return;}d=0,j=0; //恢复初值,在借书库进展推断for(j=0;j<b;j++){if(strcmp(no,gkbd[j].code)==0){d=1; //1则有碟未还break;}}if(d==1){cout<<“此客户有碟未还,还碟前方可删除此客户.“<<endl;return;}char flag;int p=b-i;cout<<“确认删除此客户吗?[Y/N]“;cin>>flag;if(flag==”Y”||flag==”y”){for(j=0;j<= p;j++)//挪动客户数组;{gukesz[i]=gukesz[i+1];i++;}g--;cout<<“客户删除成功“<<endl;}for(i=0;i<g;i++){gukesz[i].print;cout<<endl;}}void gukedeletefile//删除顾客文件上的操作{inti=0;file_guke.open(“gukefile.txt“, ios::out);for(i=0;i<g;i++){file_guke.write((char*)&gukesz[i], sizeof(gukesz[i]));}file_guke.close;}void diandelete{char code[20]; //影碟编号intd=0,i=0,j=0;cout<<“请输入要删除的影碟编号:“;cin>>code;for(i=0;i<dd;i++)//首先推断客户库有没有此客户{if(strcmp(code,dian[i].getcode)== 0){d=1;//1则有break;}}if(d==0){cout<<“对不起,此影碟不存在.“<<endl;return;}d=0,j=0;//恢复初值,在借书库进展推断for(j= 0;j < b;j++){if(strcmp(code,gkbd[j].code)==0){d =1;//1则有书未还break;}}if(d==1){cout<<“此碟未还,还前方可删除此影碟.“<<endl;return;}char flag;int p=dd-i;cout<<“确认删除此影碟吗?[Y/N]“;cin>>flag;if(flag==”Y” || flag==”y”){for(j=0;j<=p;j++)//挪动客户数组;{dian[i]=dian[i+1];i++;}dd--;cout<<“影碟删除成功“<<endl;}for(i=0;i<dd;i++){dian[i].print;cout<<endl;}}void diandeletefile//删除影碟文件上的操作{inti = 0;file_die.open(“diefile.txt“,ios::out);for(i=0;i< dd; i++){file_die.write((char*)&dian[i], sizeof(dian[i]));}file_die.close;}void gukeguanli//顾客治理{char flag;while (1){cout<<“1.增加顾客“<<endl;cout<<“2.删除顾客“<<endl;cout<<“3.查找顾客“<<endl;cout<<“4.列出全部顾客“<<endl;cout<<“5.退出“<<endl;cout<<“请输入功能代码:“;cin>>flag;switch (flag){default:}}}

case ”1”:addguke;//增加顾客break;case ”2”:gukedelete;//删除顾客break;case ”3”:gukeFind;//查找顾客break;case ”4”:gukelist;//显示全部顾客break;case ”5”:return;break;cout<<“输入错误,请重输入:“<<endl;void dieguanli//影碟治理{c

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论