银行活期储蓄帐目管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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","***按照姓名查询账户余额***");