银行活期储蓄帐目管理系统

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、需求分析:

设计一个银行活期储蓄帐目管理系统(每个记录有下列数据项:账户号码、用户名、身份证号、地址等)。

(1) 能比较迅速地找到储户的帐户,以实现存款、取款记账。

(2) 能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。

(3) 符合课题要求,实现相应功能;

(4) 要求界面友好美观,操作方便易行;

(5) 注意程序的实用性、安全性。

所使用的函数:

函数: 功能如下:

void mainmenu(); 输出主菜单

void add(); 添加用户资料

void select_name(); 按姓名查询余额

void select_id(); 按账号查询余额

void display(); 显示用户资料

void save_money(); 用户存款

void get_money(); 用户取款

void delete(); 销户

二、概要设计:

1、所使用的存储结构是:

struct user

{

int id;

char name[20];

char person_num[19];

double money;

}

2、其流程图如下:

三、详细设计:

1. void add() //添加用户资料

{

printf("%30s\n","***添加用户***");

printf("---------------------------------------------\n\n");

struct user getuser();

int count(); //函数目的:计算文件中的记录数目以生成自动账号FILE *fp;

int number;

struct user temp;

if((fp=fopen(file,"ab"))==NULL)

{

printf("不能打开文件!\n");

exit(1);

}

temp=getuser(); //读取用户名

number=count();

temp.id=number+1; //生成自动账号

fwrite(&temp,sizeof(struct user),1,fp);

printf("添加用户成功!\n");

fclose(fp);

}

2. int count() //函数目的:计算文件中的记录总数{

FILE *fp;

int num;

struct user temp;

num=0;

if((fp=fopen(file,"rb"))==NULL)

{

printf("不能打开文件!\n");

exit(1);

}

while(fread(&temp,sizeof(struct user),1,fp))

{

num++;

}

fclose(fp);

return num;

}

3. void getname(char *name) //读取用户姓名(字符数<20)

{

do{

scanf("%s",name);

fflush(stdin);

if(strlen(name)==0)

printf("姓名不能为空!\n");

else

if(strlen(name)>=20)

printf("姓名不能超过20个字符!\n");

else

break;

printf("请重新输入姓名: ");

}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

{

printf("身份证号码只能是数字!\n");

mark=1;

break;

}

}

else

break;

person_num[i]='\0';

if(mark==1)

continue;

if(strlen(person_num)!=15&&strlen(person_num)!=18) printf("身份证号码只能是15位,或者18位!\n");

else

break;

printf("重新输入身份证号码: ");

}while(1); //循环以保证读入数据有效

}

4. void select_name() //按照姓名查询账户余额

{

void getname(char *name);

printf("%30s\n","***按照姓名查询账户余额***");

相关文档
最新文档