一、 问题描述
模拟银行柜台业务的要求,实现一个小型的“银行储蓄系统”软件的开发,其中包括开户、存
款、取款、转帐、改密、挂失、解挂、销户等功能。各功能的要求分别为:
开户:增加一个银行账户,输入账号、姓名、密码、金额,状态自动置为 0(正常)。
建议输入密码的过程中,以星号(*)代替实际的输入的符号显示出来
存款:输入账号、金额,增加该账号的余额。
取款:输入账号、金额,减少取款后的余额。要求取款额不能超过原余额。
查询:输入账号,显示账户信息。
转账:输入转出的账号、金额以及转入的账户,减少转出账号的余额,增加转入账号
的余额。要求转出账户的金额不能超过该账号的余额,转出减少的金额,与转入账户
增加的金额相同。
挂失:输入账号,将其状态改变为 1(挂失)。处于挂失状态的账号,不能执行除解挂
以外的其他任何操作。
解挂:输入账号,将状态为 1(挂失)的账户的状态改为 0(正常)。
销户:输入账号,确认后,提示将余额全部取完,将余额置 0,并将状态 state 置为 2
(销户)。办理销户后的账号,不能再执行除查询以外的功能。
改密:用新密码替代旧密码。新密码要求输入两次,一致后才确认改密成功。
二、 需求分析
输入密码的过程中,以星号(*)代替实际的输入的符号显示出来。
新密码要求输入两次,一致后才确认改密成功。
账户结构设计 ,数据库文件。
代码:
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>//getch头文件
#include<string.h>
#define MAX 10000;
FILE *fp; //文件名
void opAccount(); //开户
void saveMoney(); //储蓄
void getMoney(); //取款
void toMoney(); //转账
void search(); // 查询
void noLost(); //解挂
void Lost(); //挂失
void noAccount(); //销户
void password(); //改密
void drop(); //退出
void main_menu(); //主菜单
int readData(); //读文件
int writeData(); //写文件
int setpassword(); //改密处理
int deal(); //判断
struct Data
{
int card; //账号
char name[10]; //姓名
int pwd; //密码
double money; //金额
int state; //状态
}data[100];
int count=0; //账号个数
int main()
{
readData();//读文件
main_menu();
writeData();//写文件
}
void drop() //退出程序
{
printf("|+------------------------------+|\n");
printf("| 欢迎下次使用储蓄综合业务平台 |\n");
printf("|+------------------------------+|\n");
}
void main_menu()
{
int choic_number; //命令选择
printf("+---------欢迎使用储蓄系统---------+\n");
printf("| 0.开户 5.挂失 |\n");
printf("| 1.存款 6.解挂 |\n");
printf("| 2.取款 7.销户 |\n");
printf("| 3.查询 8.改密 |\n");
printf("| 4.转账 9.退出 |\n");
printf("+----------------------------------+\n");
printf("请输入操作指令:");
scanf("%d",&choic_number);
switch(choic_number)
{
case 0:
opAccount(); break;
case 1:
saveMoney(); break;
case 2:
getMoney(); //取款
break;
case 3:
search();
break;
case 4:
toMoney();
break;
case 5:
Lost(); //挂失
break;
case 6:
noLost(); //解挂
break;
case 7
#include<stdlib.h>
#include <conio.h>//getch头文件
#include<string.h>
#define MAX 10000;
FILE *fp; //文件名
void opAccount(); //开户
void saveMoney(); //储蓄
void getMoney(); //取款
void toMoney(); //转账
void search(); // 查询
void noLost(); //解挂
void Lost(); //挂失
void noAccount(); //销户
void password(); //改密
void drop(); //退出
void main_menu(); //主菜单
int readData(); //读文件
int writeData(); //写文件
int setpassword(); //改密处理
int deal(); //判断
struct Data
{
int card; //账号
char name[10]; //姓名
int pwd; //密码
double money; //金额
int state; //状态
}data[100];
int count=0; //账号个数
int main()
{
readData();//读文件
main_menu();
writeData();//写文件
}
void drop() //退出程序
{
printf("|+------------------------------+|\n");
printf("| 欢迎下次使用储蓄综合业务平台 |\n");
printf("|+------------------------------+|\n");
}
void main_menu()
{
int choic_number; //命令选择
printf("+---------欢迎使用储蓄系统---------+\n");
printf("| 0.开户 5.挂失 |\n");
printf("| 1.存款 6.解挂 |\n");
printf("| 2.取款 7.销户 |\n");
printf("| 3.查询 8.改密 |\n");
printf("| 4.转账 9.退出 |\n");
printf("+----------------------------------+\n");
printf("请输入操作指令:");
scanf("%d",&choic_number);
switch(choic_number)
{
case 0:
opAccount(); break;
case 1:
saveMoney(); break;
case 2:
getMoney(); //取款
break;
case 3:
search();
break;
case 4:
toMoney();
break;
case 5:
Lost(); //挂失
break;
case 6:
noLost(); //解挂
break;
case 7