




已阅读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秋招面试专业追问及参考财务审计岗位
- 国家能源内江市2025秋招机械工程类面试追问及参考回答
- 中国广电菏泽市2025秋招笔试题库含答案
- 中国移动潜江市2025秋招行业常识50题速记
- 沧州市中石油2025秋招心理测评常考题型与答题技巧
- 四川中考物理试题及答案
- 2025年卫生公共考试试题及答案
- 定西市中石化2025秋招笔试模拟题含答案安全环保与HSE岗
- 江门市中储粮2025秋招安全环保岗高频笔试题库含答案
- 艺术单招江苏试卷及答案
- 济南市章丘区2024-2025七年级第一学期语文期中试题(带答案)
- 2024-2025学年九年级化学上册 第二单元 单元测试卷(人教版)
- 2024版人教版英语初一上单词默写表
- 双下肢乏力护理查房
- 工程结算审核服务方案技术标
- 公司驾驶业务外包管理办法
- 店中店合作协议
- AKAIEWI5000电吹管快速入门(中文说明书)
- 炉外精炼-RH读本
- 部编版语文小学五年级下册第一单元集体备课(教材解读)
- 模具设计与制造授课全张课件
评论
0/150
提交评论