活期储蓄账目管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include
using namespace std;
#include
#include
#include
#define file "temp.txt" //数据存储的文件名
struct user //用户类型定义(账号,,号,余额)
{
int id;
char name[20];
char person_num[19];
double money;
};
void add() //添加用户资料
{
cout<<"***添加用户***"< cout<<"---------------------------------------------"< struct user getuser(); int count(); //函数目的:计算文件中的记录数目以生成自动账号 FILE *fp; int number; struct user temp; if((fp=fopen(file,"ab"))==NULL) { cout<<"cannot open file!"< exit(1); } temp=getuser(); //读取用户名 number=count(); temp.id=number+1; //生成自动账号 fwrite(&temp,sizeof(struct user),1,fp); cout<<"添加用户成功!"< fclose(fp); } int count() //函数目的:计算文件中的记录总数 { FILE *fp; int num; struct user temp; num=0; if((fp=fopen(file,"rb"))==NULL) { cout<<"cannot open file!"< 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<<"输入开户金额:"; do{ //判断开户金额(>=100) cin>>temp.money; fflush(stdin); if((temp.money)<100.0) cout<<"开户金额不能小于100"< else break; cout<<"重新输入开户金额:"; }while(1); return temp; } void getname(char *name) //函数功能:读取用户(字符数<20) { do{ scanf("%s",name); fflush(stdin); if(strlen(name)==0) cout<<"不能为空!"< else if(strlen(name)>=20) cout<<"不能超过20个字符!"< else break; cout<<"重新输入: "; }while(1); //循环以保证读入数据有效 } void getperson_num(char *person_num) //函数功能:读取用户(15位或者18位) { do{ int i,mark; char ch; for(i=0,mark=0;;i++) //输入有效性判断(只能是数字) if((ch=getchar())!='\n') { if(ch<='9'&&ch>='0') person_num[i]=ch; else { cout<<"只能是数字!"< mark=1; break; } } else break; person_num[i]='\0'; if(mark==1) continue; if(strlen(person_num)!=15&&strlen(person_num)!=18) cout<<"只能是15位,或者18位!\n"; else break; cout<<"重新输入: "; }while(1); //循环以保证读入数据有效 } void select_name() //按照查询账户余额 { void getname(char *name); cout<<"***按照查询账户余额***"< cout<<"账号"<<"用户"<<""<<"存款余额"< cout<<"---------------------------------------------"< FILE * fp; struct user temp; char name[20]; if((fp=fopen(file,"rb"))==NULL) { cout<<"cannot open file!"< exit(1); } cout<<"输入要查询的:"; //调用读取用户名函数 getname(name); while(fread(&temp,sizeof(struct user),1,fp)) //循环读取每一条记录判断是否为要查看的记录 if(strcmp(,name)==0) {