南京邮电大学程序设计(银行管理系统)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序设计报告
( 2015 / 2016学年第 1 学期)
题目:银行定期储蓄管理系统
专业测控技术与仪器
组长学号姓名 B14050608 刘晨星昱组员学号姓名B14050629 郭文超
B14050633蒋文杰
指导教师崔子冠
指导单位计算机学院软件教学中心日期2015年 9月24日
银行定期储蓄管理系统
一、课题内容和要求
银行定期储蓄管理系统可以实现定期利息计算,客户按密码取款,工作人员口令修改等功能。
具体功能如下:
(1)工作人员根据口令进入系统;
(2)可以录入新的存单信息(存单编号,储户姓名,身份证编号,住址,联系电话,存款金额,存期,利率,密码),存单信息可以保存在文件中,利率在存期决定后自动得到;
(3)根据存单编号可以查询存单信息;
(4)根据存单编号和密码可以完成储户取款操作,自动算清应支付的利息并显示在屏幕上。
(5)界面友好,可操作性强,输入信息符合逻辑如存款金额不为负数、不可能有非数字的字符等;
(6)工作人员可对信息维护,如口令修改等。
二、需求分析
系统中要求工作人员有一个系统帐号,并且帐号有密码,系统的一切操作(如:录入存单信息,信息维护等)都由工作人员执行,而不是由存储用户执行,也主要是说存储用户并不直接与系统交互,而是通过管理员与系统交互。
储户填写的新的存单信息由工作人员输入系统,存单信息包括存单编号,储户姓名,身份证编号,住址,联系电话,存款金额,存期,利率,密码。存单信息可以保存在文件中,利率在存期决定后自动得到;储户可以根据存单编号查询存单信息,根据存单信息和密码完成储户取款操作,自动计算利息,并显示利息。功能如图1所示:
图1 功能框架图
(1)提供可操作的主菜单:输出5个菜单,用于显示管理人员和用户可供操作的函数选项。根据客户输入的选项来运行不同的功能,运行不同的函数。
(2)新建存单函数:管理人员利用函数输入存单单号,姓名,身份证,地址,手机号码,存期,取款密码,存入金额。
(3)查询存单函数:管理人员和用户利用函数查询已存入的存单信息。
(4)取款函数:用户利用函数,输入取款密码取出自己的存款。
(5)修改管理员登录密码函数:管理人员利用函数重新设定管理员登陆密码。
三、概要设计
1 主要结构体
struct bill//账单
{
int numb;//账单编号
char name[32]; //用户姓名
char id[19];//身份证号
char add[20];//住址
char tel[12];//电话
double money;//存款金额
int year;//存期
double lilv;//利率
int key;//密码
};
2主要函数流程图
(1)主函数:用于从文本中载入管理员登录密码,识别管理员输入密码,正确则载入主界面,错误则重输。主界面包含5个选项,分别为新建存单,查询存单,取款,修改管理员密码,退出。等待用户选择进入下一界面。流程图如图2所示:
图2主函数
(2)新建存单函数:管理员输入密码成功后,选择新建存单,输入存单单号,姓名,身份证,地址,手机号码,存期,取款密码,存入金额,输入成功后显示存入成功。流程图如图3所示:
否
是
图3新建存单信息
(3)查询存单函数:管理员输入密码成功后,选择查询存单信息,输入存单信息正确,主界面显示存单单号,姓名,身份证,地址,手机号码,,存入金额,存期,利率。输入存单信息错误,提示重新输入。流程图如图4所示:
图4查询存单信息
(4)取款函数:管理员输入密码成功后,选择取款,用户输入存单单号,单号正确,主界面显示存单单号,存入金额,利率,存期,应得利息,单号错误重新输入;继续输入密码,密码正确,取款成功,密码错误,重新输入,错误3次,系统终止取款业务,返回主界面。流程图如图5所示:
图5取款函数
(5)修改管理员登录密码函数,:管理员输入密码成功后,选择修改管理员登录密码,输入原密码,密码正确,继续输入新密码,再次输入新密码,修改成功。若原密码输错3次,则终止修改密码操作,返回主界面。流程图如图6所示:
图6修改管理员登录密码函数
四、源程序代码
#include
#include
#include
int keyy;
struct bill//账单
{
int numb;//账单编号
char name[32]; //用户姓名
char id[19];//身份证号
char add[20];//住址
char tel[12];//电话
double money;//存款金额
int year;//存期
double lilv;//利率
int key;//密码
};
int newa()//新建存单
{
int n,i,flag;
FILE *nbill = fopen("bill.txt","r");
FILE *fbill = fopen("bill.txt","a");
{
struct bill a;
int n;
printf("请输入新存单信息");
printf("\n>>编号:");
do
{
int j,fnumb;
struct bill c[10];
scanf("%d",&(a.numb));
flag=0;
for(j=0;j<10;j++)
{
fscanf(nbill,"%d\t%s\t%s\t%s\t%s\t%lf\t%d\t%lf\t%d",&c[j].numb,&c[j].name,&c[j].id,&c[j].add,&c[j].t el,&c[j].money,&c[j].year,&c[j].lilv,&c[j].key);
if(c[j].numb==a.numb)
{
printf("存单号重复,请重新输入\n");
j=10;
flag=2;
}
}
}while(flag==2);
//录入姓名
printf("\n>>姓名:");
scanf("%s",);