




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include<stdio.h>#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() /添加用户资料 printf("%30sn","*添加用户*");printf("-
2、nn");struct user getuser();int count(); /函数目的:计算文件中的记录数目 以生成自动账号FILE *fp;int number;struct user temp;if(fp=fopen(file,"ab")=NULL)printf("cannot open file!n");exit(1);temp=getuser(); /读取用户名number=count(); temp.id=number+1; /生成自动账号 fwrite(&temp,sizeof(struct user),1,fp);pr
3、intf("添加用户成功!n");fclose(fp);int count()/函数目的:计算文件中的记录总数 FILE *fp;int num;struct user temp;num=0;if(fp=fopen(file,"rb")=NULL)printf("cannot open file!n");exit(1);while(fread(&temp,sizeof(struct user),1,fp)num+;fclose(fp);return num;struct user getuser()void getname(c
4、har *name);void getperson_num(char *person_num);struct user temp;printf("请输入用户姓名(字符数<20): "); /读取相关开户信息getname();printf("请输入用户身份证号码: ");getperson_num(temp.person_num);printf("输入开户金额:");do /判断开户金额(>=100)scanf("%lf",&temp.money);fflush(stdin);
5、if(temp.money)<100.0)printf("开户金额不能小于100n");elsebreak;printf("重新输入开户金额:");while(1);return temp;void getname(char *name) /函数功能:读取用户姓名(字符数<20)doscanf("%s",name);fflush(stdin);if(strlen(name)=0)printf("姓名不能为空!n");elseif(strlen(name)>=20)printf("姓名不能
6、超过20个字符!n");elsebreak;printf("重新输入姓名: ");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<='9'&&ch>='0')person_numi=ch;elsepri
7、ntf("身份证号码只能是数字!n");mark=1;break;else break;person_numi='0'if(mark=1)continue;if(strlen(person_num)!=15&&strlen(person_num)!=18)printf("身份证号码只能是15位,或者18位!n");elsebreak;printf("重新输入身份证号码: ");while(1);/循环以保证读入数据有效void select_name()/按照姓名查询账户余额void getname(c
8、har *name);printf("%30sn","*按照姓名查询账户余额*");printf("%8s %15s %15s %10sn","账号","用户姓名","身份证号码","存款余额");printf("-nn");FILE * fp;struct user temp;char name20;if(fp=fopen(file,"rb")=NULL)printf("cannot open file!
9、n");exit(1);printf("输入要查询的姓名:"); /调用读取用户名函数getname(name);while(fread(&temp,sizeof(struct user),1,fp) /循环读取每一条记录 判断是否为要查看的记录if(strcmp(,name)=0)printf("NO.%d %15s %15s %.2fn",temp.id,,temp.person_num,temp.money);fclose(fp);void select_id() /按照账号查询账户余额int
10、count();printf("%30sn","*按照编号查询账户余额*");printf("%8s %15s %15s %10sn","编号","用户姓名","身份证号码","存款余额");printf("-nn");FILE * fp;struct user temp;int i,maxnum;if(fp=fopen(file,"rb")=NULL)printf("cannot open file!n&
11、quot;);exit(1);maxnum=count();printf("输入要查询账号:"); /判断账号是否在记录中scanf("%d",&i);if(i<1|i>maxnum)printf("你要查询的账号不存在!");return;while(fread(&temp,sizeof(struct user),1,fp)/循环读取每一条记录 判断是否为要查看的记录if(temp.id=i)printf("NO.%d %15s %15s %.2fn",temp.id,temp.nam
12、e,temp.person_num,temp.money);fclose(fp);void display() /显示用户资料printf("%30sn","*用户资料显示*"); printf("%8s %15s %15s %10sn","账号","用户姓名","身份证号码","存款余额");printf("-nn");FILE * fp;struct user temp;if(fp=fopen(file,"rb"
13、)=NULL)printf("cannot open file!n");exit(1);while(fread(&temp,sizeof(struct user),1,fp)printf("NO.%d %15s %15s %.2fn",temp.id,,temp.person_num,temp.money);fclose(fp);void save_money() /函数功能:按账号存款printf("%30sn","*用户存款业务*");printf("-nn");i
14、nt 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)printf("cannot open file!n");exit(1);for(i=0;i<num;i+)/将文件内容存入数组fread(&tempi,sizeof(struct user),1,fp);fclose(fp);prin
15、tf("输入要存款账号:"); /读取存款账号scanf("%d",&mark);if(mark<1|mark>num)printf("你要存款账号不存在!");return;if(fp=fopen(file,"wb")=NULL) /写方式打开文件,覆盖原文件中的内容printf("cannot open file!n");exit(1);for(i=0;i<num;i+)if(tempi.id=mark)double money=0;printf("输入要
16、存入的金额:");scanf("%lf",&money);if(money<=0)printf("只能为正数!n");money=0;tempi.money +=money; /修改该用户的信息fwrite(&tempi,sizeof(struct user),1,fp);fclose(fp);free(temp);printf("你存款业务已办妥!n");void get_money() /函数功能:用户取款printf("%30sn","*用户取款业务*");
17、printf("-nn");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)printf("cannot open file!n");exit(1);for(i=0;i<num;i+)/读取文件内容fread(&tempi,sizeof(struct user),
18、1,fp);fclose(fp);printf("输入要取款账号:");scanf("%d",&mark);if(mark<1|mark>num)printf("你要取款账号不存在!");return;if(fp=fopen(file,"wb")=NULL)printf("cannot open file!n");exit(1);for(i=0;i<num;i+) /写方式打开文件,覆盖原文件中的内容if(tempi.id=mark) double money=0;pr
19、intf("输入要取出的金额:");scanf("%lf",&money);if(money<=0)/判断用户余额是否足够printf("只能为正数!n");money=0;elseif(money>tempi.money)printf("你的余额不足!n");money=0;tempi.money -=money;fwrite(&tempi,sizeof(struct user),1,fp);fclose(fp);free(temp);printf("你取款业务已办妥!n&q
20、uot;);void del() /销户 int count();printf("%30sn","*注销账户*");printf("%8s %15s %15s %10sn","账号","用户姓名","身份证号码","存款余额");printf("-nn");FILE * fp;struct user temp;int i,maxnum;if(fp=fopen(file,"rb")=NULL)printf("
21、cannot open file!n");exit(1);maxnum=count();printf("输入要销户账号:"); /判断编号是否在记录中scanf("%d",&i);if(i<1|i>maxnum)printf("你要查询的账号不存在!");return;while(fread(&temp,sizeof(struct user),1,fp)/循环读取每一条记录 判断是否为要查看的记录if(temp.id=i&&temp.money=0.00)/余额为0temp.id=
22、-1;/算无效帐户printf("NO.%d %15s %15s %.2fn",temp.id,,temp.person_num,temp.money); /printf("%dn",temp.id); fwrite(&temp,sizeof(struct user),1,fp);/保存修改 fclose(fp);void print()/函数功能:输出界面printf("%30sn","*活期储蓄帐目管理系统*");printf("-nn");printf("%8s,%-20sn","1","储户开户");printf("%8s,%-20sn","2","按照姓名查询账户余额");printf("%8s,%-20sn","3","按照账号查询账户余额");printf("%8s,%-20sn","4","显示用户信息");printf("%8s,%-20sn","
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年普通昆虫学试题
- 职业资格-开发经营与管理真题库-8
- 工程法规考试中的典型误解与真相试题及答案
- 2025年工程法规考试专题培训试题及答案
- 充电安全测试题及答案
- 社会责任感与个体行动的关系试题及答案
- 职业性考试试题及答案
- 差距游戏测试题及答案
- 宠物试题及答案
- 超声医学试题及答案
- 加油站新员工安全知识培训
- DB32T-桥梁轻量化监测系统建设规范编制说明
- 筑牢中国民族共体意识课件
- 儿童青少年行为和情绪障碍的护理
- 土石方工程施工安全责任协议书
- 2025年江苏交控招聘笔试参考题库含答案解析
- 银行柜员职业规划
- 试验外委合同模板
- 《云南民族交通文化》课件
- 齐鲁文化(齐鲁师范学院)知到智慧树章节答案
- 《中国现代影视作品中反派人物形象塑造历程与特点浅析》15000字(论文)
评论
0/150
提交评论