活期储蓄账目管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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)

{

相关文档
最新文档