已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#includeusing namespace std;#include#include#include#define file temp.txt /数据存储的文件名struct user /用户类型定义(账号,姓名,身份证号,余额)int id; char name20;char person_num19;double money;void add() /添加用户资料 cout*添加用户*endl;cout-endlendl;struct user getuser();int count(); /函数目的:计算文件中的记录数目 以生成自动账号FILE *fp;int number;struct user temp;if(fp=fopen(file,ab)=NULL)coutcannot open file!endl;exit(1);temp=getuser(); /读取用户名number=count(); temp.id=number+1; /生成自动账号 fwrite(&temp,sizeof(struct user),1,fp);cout添加用户成功!endl;fclose(fp);int count()/函数目的:计算文件中的记录总数 FILE *fp;int num;struct user temp;num=0;if(fp=fopen(file,rb)=NULL)coutcannot open file!endl;exit(1);while(fread(&temp,sizeof(struct user),1,fp)num+;fclose(fp);return num;struct user getuser()void getname(char *name);void getperson_num(char *person_num);struct user temp;cout请输入用户姓名(字符数20): ; /读取相关开户信息getname();cout请输入用户身份证号码: ;getperson_num(temp.person_num);cout=100)cintemp.money;fflush(stdin);if(temp.money)100.0)cout开户金额不能小于100endl;elsebreak;cout重新输入开户金额:;while(1);return temp;void getname(char *name) /函数功能:读取用户姓名(字符数20)doscanf(%s,name);fflush(stdin);if(strlen(name)=0)cout姓名不能为空!=20)cout姓名不能超过20个字符!endl;elsebreak;cout重新输入姓名: ;while(1); /循环以保证读入数据有效void getperson_num(char *person_num) /函数功能:读取用户身份证号码(15位 或者 18位 ) doint i,mark;char ch;for(i=0,mark=0;i+) /输入有效性判断(只能是数字)if(ch=getchar()!=n)if(ch=0)person_numi=ch;elsecout身份证号码只能是数字!endl;mark=1;break;else break;person_numi=0;if(mark=1)continue;if(strlen(person_num)!=15&strlen(person_num)!=18)cout身份证号码只能是15位,或者18位!n;elsebreak;cout重新输入身份证号码: ;while(1);/循环以保证读入数据有效void select_name()/按照姓名查询账户余额void getname(char *name);cout*按照姓名查询账户余额*endl;cout账号用户姓名身份证号码存款余额endl;cout-endlendl;FILE * fp;struct user temp;char name20;if(fp=fopen(file,rb)=NULL)coutcannot open file!endl;exit(1);cout输入要查询的姓名:; /调用读取用户名函数getname(name);while(fread(&temp,sizeof(struct user),1,fp) /循环读取每一条记录 判断是否为要查看的记录if(strcmp(,name)=0)temp.person_numtemp.moneyendl;fclose(fp);void select_id() /按照账号查询账户余额int count();cout*按照编号查询账户余额*endl;cout编号用户姓名身份证号码存款余额endl;cout-endlendl;FILE * fp;struct user temp;int i,maxnum;if(fp=fopen(file,rb)=NULL)coutcannot open file!endl;exit(1);maxnum=count();couti;if(imaxnum)cout你要查询的账号不存在!;return;while(fread(&temp,sizeof(struct user),1,fp)/循环读取每一条记录 判断是否为要查看的记录if(temp.id=i)temp.person_numtemp.moneyendl;fclose(fp);void display() /显示用户资料cout*用户资料显示*endl;cout账号用户姓名身份证号码存款余额endl;cout-endlendl;FILE * fp;struct user temp;if(fp=fopen(file,rb)=NULL)coutcannot open file!endl;exit(1);while(fread(&temp,sizeof(struct user),1,fp)temp.person_numtemp.moneyendl;fclose(fp);void save_money() /函数功能:按账号存款cout*用户存款业务*endl;cout-endlendl;int count();FILE *fp;int i,num,mark;struct user *temp;num=count(); /根据记录数申请空间temp=(struct user *)malloc(num*sizeof(struct user);if(fp=fopen(file,rb)=NULL)coutcannot open file!endl;exit(1);for(i=0;inum;i+)/将文件内容存入数组fread(&tempi,sizeof(struct user),1,fp);fclose(fp);coutmark;if(marknum)cout你要存款账号不存在!;return;if(fp=fopen(file,wb)=NULL) /写方式打开文件,覆盖原文件中的内容coutcannot open file!endl;exit(1);for(i=0;inum;i+)if(tempi.id=mark)double money=0;coutmoney;if(money=0)cout只能为正数!endl;money=0;tempi.money +=money; /修改该用户的信息fwrite(&tempi,sizeof(struct user),1,fp);fclose(fp);free(temp);cout你存款业务已办妥!endl;void get_money() /函数功能:用户取款cout*用户取款业务*endl;cout-endl;int count();FILE *fp;int i,num,mark;struct user *temp;num=count();/根据记录数申请空间temp=(struct user *)malloc(num*sizeof(struct user);if(fp=fopen(file,rb)=NULL)coutcannot open file!endl;exit(1);for(i=0;inum;i+)/读取文件内容fread(&tempi,sizeof(struct user),1,fp);fclose(fp);coutmark;if(marknum)cout你要取款账号不存在!;return;if(fp=fopen(file,wb)=NULL)coutcannot open file!endl;exit(1);for(i=0;inum;i+) /写方式打开文件,覆盖原文件中的内容if(tempi.id=mark) double money=0;coutmoney;if(money=0)/判断用户余额是否足够cout只能为正数!tempi.money)cout你的余额不足!endl;money=0;tempi.money -=money;fwrite(&tempi,sizeof(struct user),1,fp);fclose(fp);free(temp);cout你取款业务已办妥!endl;void del() /销户 int count();cout*注销账户*endl;cout账号用户姓名身份证号码存款余额endl;cout-endl;FILE * fp;struct user temp;int i,maxnum;if(fp=fopen(file,rb)=NULL)coutcannot open file!endl;exit(1);maxnum=count();couti;if(imaxnum)cout你要查询的账号不存在!;return;while(fread(&temp,sizeof(struct user),1,fp)/循环读取每一条记录 判断是否为要查看的记录if(temp.id=i&temp.money=0.00)/余额为0temp.id=-1;/算无效帐户temp.person_numtemp.moneyendl; fwrite(&temp,sizeof(struct user),1,fp);/保存修改 fclose(fp);void print()/函数功能:输出界面cout*活期储蓄帐目管理系统*endl;cout-endl;cout1储户开户endl;cout2按照姓名查询账户余额endl;cout3按照账号查询账户余额endl;cout4显示用户信息endl;cout5存款endl;cout6取款endl; cout7储户销户endl;cout8退出endl;cout请选择功能(18):choose; /读取功能标号,根据标号选择不同的函数fflush(stdin);system(cls);switch(choose)case 1:add();break;case 2:select_name();b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国再保险行业发展研究报告
- 2024年大学三年级氢能科学与工程专业《氢能制备技术》期末考试测验卷及答案
- 加气混凝土制品工岗前理论考核试卷含答案
- 漆器制漆工常识能力考核试卷含答案
- 《GBT 24131.2-2017 生橡胶 挥发分含量的测定 第 2 部分:带红外线干燥单元的自动分析仪加热失重法》专题研究报告
- 《GB-T 40904-2021家具产品及其材料中禁限用物质测定方法 偶氮染料》专题研究报告
- 公司竖窑球团焙烧工合规化技术规程
- 燃气轮机值班员复测模拟考核试卷含答案
- 溶剂蒸馏工操作知识评优考核试卷含答案
- 玻璃钢制品灌注工诚信品质评优考核试卷含答案
- 大学生职业生涯规划与就业创业指导教学教案
- 2024南京交通职业技术学院辅导员招聘笔试真题
- 【2025年】宪法知识竞赛题库及答案
- 1.2复杂多变的关系教案 2024-2025学年统编版道德与法治九年级下册
- 衢州市国企招聘考试基础题库
- 风光摄影讲座课件
- 4M变更管理程序含表格
- 城市设计(共32页)
- 全球四大管理咨询公司培训讲义打造让战略落地的人力资源系统
- 银行职业介绍
- 习题参考答案(第10章)
评论
0/150
提交评论