c++课设报告.docx
- 文档编号:25072419
- 上传时间:2023-06-04
- 格式:DOCX
- 页数:44
- 大小:719.99KB
c++课设报告.docx
《c++课设报告.docx》由会员分享,可在线阅读,更多相关《c++课设报告.docx(44页珍藏版)》请在冰豆网上搜索。
c++课设报告
6程序完整代码8
1题目及内容要求
题目:
用文件读写实现公司的客户信息跟踪系统
内容要求:
功能结构图:
参考提供的资料,以数组的方式实现程序中的各个功能
2类的UML图及程序相关数据模型
类的UML图:
客户信息类Customer
Customer
-name:
char
-no:
char
-ID:
char
-sex:
char
-age:
int
-city:
char
-business:
char
-money:
double
-type:
int
+count:
staticint
+Customer()
+~Customer()
+input(inCust[]:
Customer):
Customer*
+display(inCust[]:
Customer):
void
+save(inCust[]:
Customer):
void
+load(inCust[]:
Customer):
Customer*
+delete(inCust[]:
Customer):
Customer*
+short_cus(inCust[]:
Customer):
void
+bad_cus(inCust[]:
Customer):
Customer*
+find_cus(inCust[]:
Customer):
void
+operator<<(inoc:
ostream&,inobj:
Customer&):
ostream&{friend}
+operator>>(inic:
istream&,inobj:
Customer&):
istream&{friend}
+equal(ina:
Customer&,inb:
Customer&):
Customer&{friend}
图2-1客户信息类Customer的UML图
相关数据模型:
……
客户n
……
……
姓名
客户号
……
……
信誉度
……
图2-2客户信息的数组数据模型
3功能模块图
图3-1程序功能模块图
4各功能模块所涉及算法流程图
图4-1删除客户信息的算法流程图
5各功能模块的程序代码
删除客户信息模块的程序代码:
Customer*Customer:
:
delete_cus(CustomerCust[])//功能:
删除客户信息
{
inti=0;
intj=0;
intflag=0;
intchoose;
charname[20];
charno[10];
cout< cout<<"\t选择您要删除的客户关键字: "< cout<<"\t\t1.客户的姓名"< cout<<"\t\t2.客户的客户号"< cout<<"\t\t3.删除全部客户信息"< cout<<"\t\t4.删除简明客户信息"< cout<<"\t\t5.删除信誉不好的客户信息"< cout<<"\t\t0.返回上级菜单"< cout<<"\t请输入(0-5)进行选择: "; cin>>choose; while(choose>5||choose<0) { cout<<"\t输入错误,请重新输入(0-5)"; cin>>choose; } switch(choose) { case0: break; case1: //按姓名删除 {cout<<"\n\t请输入要删除的客户姓名: "; cin>>name; for(i=0;i { if(strcmp(name,Cust[i].name)==0) { strcpy(Cust[i].name,"0"); strcpy(Cust[i].no,"0"); strcpy(Cust[i].ID,"0"); strcpy(Cust[i].sex,"0"); Cust[i].age=0; strcpy(Cust[i].business,"0"); strcpy(Cust[i].city,"0"); Cust[i].type=0; Cust[i].money=0.0; cout<<"成功删除! "< for(j=i;j equal(Cust[j],Cust[j+1]); Cust[0].count--; flag=1; break; } } if(flag==0) cout<<"没有找到! "< break;} case2: //按客户号删除 {cout<<"\n\t请输入要删除的客户号: "; cin>>no; for(i=0;i { if(strcmp(no,Cust[i].no)==0) { strcpy(Cust[i].name,"0"); strcpy(Cust[i].no,"0"); strcpy(Cust[i].ID,"0"); strcpy(Cust[i].sex,"0"); Cust[i].age=0; strcpy(Cust[i].business,"0"); strcpy(Cust[i].city,"0"); Cust[i].type=0; Cust[i].money=0.0; cout<<"成功删除! "< for(j=i;j equal(Cust[j],Cust[j+1]); Cust[0].count--; flag=1; break; } } if(flag==0) cout<<"没有找到! "< break;} case3: //删除全部用户信息 {Cust[0].count=0; cout<<"成功删除全部用户信息! "< } case4: //删除简明用户信息 { for(inti=0;i { strcpy(cum[i].name,""); strcpy(cum[i].business,""); cum[i].money=0.0; } ofstreamout; out.open("cus_short.dat",ios: : out); if(! out) { cout<<"\t文件不能打开! "< } out.write((char*)cum,sizeof(cum));//将结构数组中的内容写入文件 out.close(); cout<<"成功删除简明用户信息! "< break; } case5: //删除信誉不好用户信息 { for(inti=0;i { strcpy(bad[i].name,""); strcpy(bad[i].no,""); bad[i].money=0.0; bad[i].type=0; } ofstreamout; out.open("cus_bad.dat",ios: : out); if(! out) { cout<<"\t文件不能打开! "< } out.write((char*)bad,sizeof(bad));//将结构数组中的内容写入文件 out.close(); cout<<"成功删除信誉不好用户信息! "< break; } } returnCust; } 6程序完整代码 全程序内容: #if! defined(COMPANY) #defineCOMPANY #include #include #include #include #include //结构体,用来描述客户简明信息 structshorts{ charname[20]; charbusiness[30]; doublemoney; }cum[20]={{"","",0.0}}; //结构体,用来描述信誉差的客户信息 structbads{ charname[20]; charno[10]; doublemoney; inttype; }bad[20]={{"","",0.0,0}}; /*************************************************************************/ /* 类名称: Customer 功能描述: 定义类模板Customer 修改记录: */ classCustomer { private: charname[20];//姓名 charno[10];//客户号 charID[19];//身份证 charsex[4];//性别 intage;//年龄 charcity[20];//城市 charbusiness[30];//主要业务 doublemoney;//交易金额 inttype;//信誉度 public: staticintcount; Customer(); ~Customer(); Customer*input(CustomerCust[]);//添加新记录 voiddisplay(CustomerCust[]);//显示数组中的记录 voidsave(CustomerCust[]);//将记录存入指定文件 Customer*load(CustomerCust[]);//将文件Custom.dat里的记录装入内存 Customer*delete_cus(CustomerCust[]);//删除指定数组成员 voidshort_cus(CustomerCust[]);//建立简表文件Cus_short.dat Customer*bad_cus(CustomerCust[]);//建立信誉不好的客户文件 voidfind_cus(CustomerCust[]);//查找满足条件的记录 friendostream&operator<<(ostream&oc,Customer&obj);//重载<< friendistream&operator>>(istream&ic,Customer&obj);//重载>> friendCustomer&equal(Customer&a,Customer&b); }; #endif #include"company.h" intCustomer: : count=0;//声明静态成员变量,说明记录数 Customer: : Customer() { name[0]='0'; no[0]='0'; ID[0]='0'; sex[0]='0'; age=0; business[0]='0'; city[0]='0'; type=0; money=0.0; } Customer: : ~Customer() { } /*************************************************************************/ /* 函数名称: input(CustomerCust[]) 功能描述: 客户信息输入函数 修改记录: */ Customer*Customer: : input(CustomerCust[]) {inti=0; i=Cust[0].count; while(strcmp(Cust[i].name,"0")==0) cout< cout<<"\t姓名: "; cin>>Cust[i].name; cout<<"\t客户号: "; cin>>Cust[i].no; cout<<"\t身份证号: "; cin>>Cust[i].ID; cout<<"\t性别: "; cin>>Cust[i].sex; cout<<"\t年龄: "; cin>>Cust[i].age; cout<<"\t城市: "; cin>>Cust[i].city; cout<<"\t主要业务: "; cin>>Cust[i].business; cout<<"\t交易金额: "; cin>>Cust[i].money; cout<<"\t信誉度: "; cin>>Cust[i].type; Cust->count++; returnCust; } /*************************************************************************/ /* 函数名称: display(CustomerCust[]) 功能描述: 显示三种不同的数据文件内容 修改记录: */ voidCustomer: : display(CustomerCust[]) { inti=0; intchoose; while (1) { cout< cout<<"\t选择您要显示的文件: "< cout<<"\t\t1.浏览全部客户信息"< cout<<"\t\t2.浏览简明客户信息"< cout<<"\t\t3.浏览信誉度不好的客户信息"< cout<<"\t\t0.返回上级菜单"< cout<<"\t请输入(0-3)进行选择: "; cin>>choose; while(choose>3||choose<0) { cout<<"\t输入错误,请重新输入(1-3)"; cin>>choose; } switch(choose) { case0: return; case1: //显示客户的全部信息 { if(Cust[0].count==0) { cout<<"\t文件中没有记录! "< return; } cout<<"\t文件中有"< "< cout<<"\t姓名\t客户号\t身份证\t\t性别\t年龄\t城市\t业务\t金额\t信誉度\n"; for(i=0;i cout<<"\t"< cout< break; } case2: //显示客户简明信息 { ifstreamin; in.open("cus_short.dat",ios: : in|ios: : nocreate); if(! in) { cout<<"\t文件不存在! "< return; } cout<<"\t读取文件..."< in.read((char*)cum,sizeof(cum)); in.close(); cout<<"\t姓名\t主要业务\t交易金额\n"; for(inti=0;i<20;i++) { if(cum[i].money==0.0)break; cout<<'\t'< } break; } case3: //显示信誉不好的客户信息 { ifstreamin; in.open("cus_bad.dat",ios: : in|ios: : nocreate); if(! in) { cout<<"\t文件不存在! "< return; } cout<<"\t读取文件..."< in.read((char*)bad,sizeof(bad)); in.close(); cout<<"\t姓名\t客户号\t交易金额\t信誉度\n"; for(inti=0;i<20;i++) { if(bad[i].type==0)break; cout<<'\t'< } break; } } } } /*************************************************************************/ /* 函数名称: find_cus(CustomerCust[]) 功能描述: 查找满足条件的成员 修改记录: */ voidCustomer: : find_cus(CustomerCust[]) { inti=0; intchoose; charname[20]; charno[10]; cout< cout<<"\t选择您要查找的客户关键字: "< cout<<"\t\t1.客户的姓名查找"< cout<<"\t\t2.客户的客户号查找"< cout<<"\t\t0.返回上级菜单"< cout<<"\t请输入(0-2)进行选择: "; cin>>choose; while(choose>2||choose<0) { cout<<"\t输入错误,请重新输入(0-2)"; cin>>choose; } switch(choose) { case0: return; case1: //按姓名找 {cout<<"\n\t请输入要找的客户姓名: "; cin>>name; intflag=0; for(i=0;i if(strcmp(name,Cust[i].name)==0) {cout<<"\n\t客户信息已经找到: "< cout<<"\t姓名\t客户号\t身份证\t\t性别\t年龄\t城市\t业务\t金额\t信誉度\n"; cout<<'\t'< flag=1;break;} if(flag==0) cout<<"\n\t没有找到您要查找的客户信息! "< } case2: //按客户号找 {cout<<"\n\t请输入要找的客户号: "; cin>>no; intflag=0; for(i=0;i if(strcmp(no,Cust[i].no)==0) {cout<<"\n\t客户信息已经找到: "< cout<<"\t姓名\t客户号\t身份证\t性别\t年龄\t城市\t业务\t金额\t信誉度\n"; cout<<'\t'< flag=1;break;} if(flag==0) cout<<"\n\t没有找到您要查找的客户信息! "< break;} } } /*************************************************************************/ /* 函数名称: delete_cus(CustomerCust[]) 功能描述: 删除满足条件的客户信息 修改记录: */ Customer*Customer: : d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)