活期储蓄账目管理系统_第1页
活期储蓄账目管理系统_第2页
活期储蓄账目管理系统_第3页
活期储蓄账目管理系统_第4页
活期储蓄账目管理系统_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、-作者xxxx-日期xxxx活期储蓄账目管理系统【精品文档】#include<iostream>using namespace std;#include<string.h>#include<conio.h>#include<stdlib.h>#define file "temp.txt" /数据存储的文件名struct user /用户类型定义(账号,姓名,身份证号,余额)int id; char name20;char person_num19;double money;void add() /添加用户资料 cout<

2、<"*添加用户*"<<endl;cout<<"-"<<endl<<endl;struct user getuser();int count(); /函数目的:计算文件中的记录数目 以生成自动账号FILE *fp;int number;struct user temp;if(fp=fopen(file,"ab")=NULL)cout<<"cannot open file!"<<endl;exit(1);temp=getuser(); /读取

3、用户名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)cout<<"cannot open file!"<<en

4、dl;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<<"请输入用户身份证号码: "getper

5、son_num(temp.person_num);cout<<"输入开户金额:"do /判断开户金额(>=100)cin>>temp.money;fflush(stdin);if(temp.money)<100.0)cout<<"开户金额不能小于100"<<endl;elsebreak;cout<<"重新输入开户金额:"while(1);return temp;void getname(char *name) /函数功能:读取用户姓名(字符数<20)dosc

6、anf("%s",name);fflush(stdin);if(strlen(name)=0)cout<<"姓名不能为空!"<<endl;elseif(strlen(name)>=20)cout<<"姓名不能超过20个字符!"<<endl;elsebreak;cout<<"重新输入姓名: "while(1); /循环以保证读入数据有效void getperson_num(char *person_num) /函数功能:读取用户身份证号码(15位 或者

7、 18位 ) doint i,mark;char ch;for(i=0,mark=0;i+) /输入有效性判断(只能是数字)if(ch=getchar()!='n')if(ch<='9'&&ch>='0')person_numi=ch;elsecout<<"身份证号码只能是数字!"<<endl;mark=1;break;else break;person_numi='0'if(mark=1)continue;if(strlen(person_num)!=15&

8、amp;&strlen(person_num)!=18)cout<<"身份证号码只能是15位,或者18位!n"elsebreak;cout<<"重新输入身份证号码: "while(1);/循环以保证读入数据有效void select_name()/按照姓名查询账户余额void getname(char *name);cout<<"*按照姓名查询账户余额*"<<endl;cout<<"账号"<<"用户姓名"<&l

9、t;"身份证号码"<<"存款余额"<<endl;cout<<"-"<<endl<<endl;FILE * fp;struct user temp;char name20;if(fp=fopen(file,"rb")=NULL)cout<<"cannot open file!"<<endl;exit(1);cout<<"输入要查询的姓名:" /调用读取用户名函数getname(nam

10、e);while(fread(&temp,sizeof(struct user),1,fp) /循环读取每一条记录 判断是否为要查看的记录if(strcmp(,name)=0)cout<<temp.id<<<<temp.person_num<<temp.money<<endl;fclose(fp);void select_id() /按照账号查询账户余额int count();cout<<"*按照编号查询账户余额*"<<endl;cout<&

11、lt;"编号"<<"用户姓名"<<"身份证号码"<<"存款余额"<<endl;cout<<"-"<<endl<<endl;FILE * fp;struct user temp;int i,maxnum;if(fp=fopen(file,"rb")=NULL)cout<<"cannot open file!"<<endl;exit(1);maxnum=

12、count();cout<<"输入要查询账号:" /判断账号是否在记录中cin>>i;if(i<1|i>maxnum)cout<<"你要查询的账号不存在!"return;while(fread(&temp,sizeof(struct user),1,fp)/循环读取每一条记录 判断是否为要查看的记录if(temp.id=i)cout<<temp.id<<<<temp.person_num<<temp.money<<endl

13、;fclose(fp);void display() /显示用户资料cout<<"*用户资料显示*"<<endl;cout<<"账号"<<"用户姓名"<<"身份证号码"<<"存款余额"<<endl;cout<<"-"<<endl<<endl;FILE * fp;struct user temp;if(fp=fopen(file,"rb")

14、=NULL)cout<<"cannot open file!"<<endl;exit(1);while(fread(&temp,sizeof(struct user),1,fp)cout<<temp.id<<<<temp.person_num<<temp.money<<endl;fclose(fp);void save_money() /函数功能:按账号存款cout<<"*用户存款业务*"<<endl;cout<&l

15、t;"-"<<endl<<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)cout<<"cannot open file!"<<endl;exit(1);for(i=0;i<num;i+)/将文件内容存入数组fr

16、ead(&tempi,sizeof(struct user),1,fp);fclose(fp);cout<<"输入要存款账号:" /读取存款账号cin>>mark;if(mark<1|mark>num)cout<<"你要存款账号不存在!"return;if(fp=fopen(file,"wb")=NULL) /写方式打开文件,覆盖原文件中的内容cout<<"cannot open file!"<<endl;exit(1);for(i=0

17、;i<num;i+)if(tempi.id=mark)double money=0;cout<<"输入要存入的金额:"cin>>money;if(money<=0)cout<<"只能为正数!"<<endl;money=0;tempi.money +=money; /修改该用户的信息fwrite(&tempi,sizeof(struct user),1,fp);fclose(fp);free(temp);cout<<"你存款业务已办妥!"<<en

18、dl;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)cout<<"cann

19、ot open file!"<<endl;exit(1);for(i=0;i<num;i+)/读取文件内容fread(&tempi,sizeof(struct user),1,fp);fclose(fp);cout<<"输入要取款账号:"cin>>mark;if(mark<1|mark>num)cout<<"你要取款账号不存在!"return;if(fp=fopen(file,"wb")=NULL)cout<<"cannot op

20、en file!"<<endl;exit(1);for(i=0;i<num;i+) /写方式打开文件,覆盖原文件中的内容if(tempi.id=mark) double money=0;cout<<"输入要取出的金额:"cin>>money;if(money<=0)/判断用户余额是否足够cout<<"只能为正数!"<<endl;money=0;elseif(money>tempi.money)cout<<"你的余额不足!"<<

21、;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<<"账号"<<"用户姓名"<<"身份证号码"<<&

22、quot;存款余额"<<endl;cout<<"-"<<endl;FILE * fp;struct user temp;int i,maxnum;if(fp=fopen(file,"rb")=NULL)cout<<"cannot open file!"<<endl;exit(1);maxnum=count();cout<<"输入要销户账号:" /判断编号是否在记录中cin>>i;if(i<1|i>maxnum)

23、cout<<"你要查询的账号不存在!"return;while(fread(&temp,sizeof(struct user),1,fp)/循环读取每一条记录 判断是否为要查看的记录if(temp.id=i&&temp.money=0.00)/余额为0temp.id=-1;/算无效帐户cout<<temp.id<<<<temp.person_num<<temp.money<<endl; fwrite(&temp,sizeof(struct user),1

24、,fp);/保存修改 fclose(fp);void print()/函数功能:输出界面cout<<"*活期储蓄帐目管理系统*"<<endl;cout<<"-"<<endl;cout<<"1"<<"储户开户"<<endl;cout<<"2"<<"按照姓名查询账户余额"<<endl;cout<<"3"<<"按照账号查询账户余额"<<endl;cout<<"4"<<"显示用户信息"<<endl;cout&l

温馨提示

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

评论

0/150

提交评论