已阅读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年定西市安定区招聘城镇公益性岗位人员真题
- 2025年莆田辅警协警招聘考试真题附答案详解
- 2025年西宁辅警招聘考试真题含答案详解(b卷)
- 2025年盐城辅警协警招聘考试备考题库及一套参考答案详解
- (已压缩)(3)义务教育语文课程标准日常修订版(2022年版2025年修订)
- 2025湖北随州北星汇能产业发展有限公司招聘8人考试笔试参考题库附答案解析
- 2025国网能源研究院限公司高校毕业生招聘【21人】事业单位易考易错模拟试题(共500题)试卷后附参考答案
- 白血病患者日常护理建议
- 儿童功能性便秘(FC)诊断与治疗
- 2025年及未来5年中国鱼具行业市场运营现状及投资战略咨询报告
- 《政务信息系统运行维护费用定额测算方法》
- 物流车辆动态安全监控操作规程
- 2025中国电气装备许继集团许继电气校园招聘笔试历年参考题库附带答案详解
- 高中语文高考语文复习+高考中的成语考查+课件
- 2025甘肃庆阳正宁县公安局招聘警务辅助人员40人备考考试题库附答案解析
评论
0/150
提交评论