




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计报告(2016/2017学年 第 一 学期)题 目:银行定期储蓄管理系统专 业 应用统计学 组长 学号姓名 B 宁行 组员 学号姓名 B 彭云聪 B 钱春 指 导 教 师 崔子冠 指 导 单 位 计算机学院软件教学中心日 期 2016 年10月 28日 成员分工组长(宁行) 根据课题制定编程大纲分配任务以及界面美化,口令修改功能函数编写。组员(彭云聪) 主要负责程序中主函数,存款取款查询存单等功能函数等编写。组员(钱春) 主要负责整理测试程序,制作报告等。评分细则评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力团队合作精神课题功能实现情况算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度 简短评语 教师签名: 年 月 日评分等级B 宁行B彭云聪B 钱春备注评分等级共五种:优秀、良好、中等、及格、不及格一、课题要求和内容1 系统的基本功能该系统要求编写一个程序,设计一套银行定期储蓄管理系统,要求实现定期利息计算,客户按密码取款,工作人员口令修改等功能。2 要求及提示2.1 基本要求要能提供以下几个基本功能:(1) 工作人员根据口令进入系统;(2) 可以录入新的存单信息(存单编号,储户姓名,身份证编号,住址,联系电话,存款金额,存期,利率,密码),存单信息可以保存在文件中,利率在存期决定后自动得到;(3)根据存单编号可以查询存单信息;(4)根据存单编号和密码可以完成储户取款操作,自动算清应支付的利息并显示在屏幕上。(5) 界面友好,可操作性强,输入信息符合逻辑如存款金额不为负数、不可能有非数字的字符等;(6)可增加对工作人员信息维护的功能,如口令修改等。2.2 选做要求(1)设计美观实用的图形菜单界面(2)自行增加一些新功能模块2.3 提示本程序设计题目涉及到的主要知识点包括:(1)面向对象程序设计方法(2)类和对象的概念、关系及实现(3)文件的读写(4)界面制作2.4 其他要求(1)在上述功能要求的基础上,为了提高成绩,可以添加一些额外的功能。(2)变量、函数命名符合规范。(3)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。(4)程序的层次清晰,可读性强。3 开发环境可以选择TC2.0、TC3.0、VC+6.0。二、需求分析本实验在vc+6.0条件下,实现银行定期储蓄管理系统的生成,存单信息中包括存单编号、储户姓名、身份证编号、住址、联系电话、存款金额、存期、利率、密码。A.输入的形式和输入值的范围:开户时自定义的账号、用户名、密码、开户金额及存单编号。用户输入正确的账号和密码,完成登陆之后可以进行存取款以及利息存期的查看。B.输出形式:在所有操作中都显示是否正确以及相应操作后的内容。其中输入错误可以回到主页面,重新操作。C.程序最终所能达到的功能是用户定期存取款能够简单便捷到完成,工作人员可以自由的完成信息的维护,通过口令修改等。D.测试多组数据,以确保系统的准确跟稳定性。三、系统概述四、数据源代码#include#includevoid dlshow();void glfunction();void ckqk();int kouling();void ck();double ll(int time);void qk();double judge(int i,int j,double k,double l,int p);void gsjg();void gs();void jg();void xgkl();void cxxx();struct cundanint number;char name20;char add100;int ID;int tel;double money;int time;double ll;int ymd;int status;int key;void main() printf(nnnn *n);printf( | |n); printf( | |n); printf( | 欢迎使用银行定期储蓄管理系统 |n);printf( | |n);printf( | |n);printf( *nnn); dlshow();void dlshow()/*验证口令,登入操作系统*/ int ling1,ling2,i;ling2=kouling();printf( Please Input Passwordn);scanf(%d,&ling1); for (i=0;(ling1!=ling2)&(i=2);i+)/*对口令进行判断,ling1ling2重新输入*/ printf( 口令错误!naaa); printf( 请重新输入n); scanf(%d,&ling1); switch(i) case 1: case 2: case 0: glfunction(); break; default : printf(nn 三次输入错误,系统关闭nn);/*三次输错后,程序自动关闭*/ break; int kouling() int m=0; FILE *fp; fp=fopen(D:kouling.txt,r);/*文件路径*/ if(fp=0) printf(file error!n);/*未找到文件,路径错误*/ exit(1); fscanf(fp,%d,&m); fclose(fp); return m;void glfunction()/*操作主菜单界面*/int n; printf(nnnn * - - - - - - - - - - *n); printf( $ 欢迎进入系统 $n); printf( * *n); printf( $ 存单变更请按1,再按回车 $n); printf( * *n); printf( $ 挂失/解挂请按2,再按回车 $n); printf( * *n); printf( $ 修改口令请按3,再按回车 $n); printf( * *n); printf( $ 查询请按4,再按回车 $n); printf( * *n); printf( $ 退出请按5,再按回车 $n); printf( *-*nnnnnnnn); scanf(%d,&n);/*选择功能*/ switch(n)/*根据选项运行函数*/ case 1:ckqk();break;/*存取款功能*/ case 2:gsjg();break;/*挂失解挂功能*/ case 3:xgkl();break;/*修改口令功能*/ case 4:cxxx();break;/*查询信息功能*/ case 5:printf(nn 欢迎下次使用 nn);break; default:/*输入了除1-4及0外的数字*/ printf( 选择错误,请重新选择nnn); glfunction(); void ckqk()/*存款取款功能*/printf(nnnn);printf( -n);printf( n);printf( 请 选 择 功 能 n);printf( -n);printf( 1.存款 n);printf( 2.取款 n);printf( 3返回主菜单 n);printf( nnnnnnnnnnn); int i;scanf(%d,&i);/*输入一个数字进行选择*/switch(i)/*根据输入的数字运行函数*/case 1:ck();break;case 2:qk();break;case 3:glfunction();default:/*输入了除1-3外的数字*/printf( 选择错误,请重新选择n);ckqk();break;void ck()/*存款功能*/printf(nnnnnnn);int m1,m2,i=0;struct cundan cd;printf(nn 请输入存单编号:); scanf(%d,&cd.number);/*即将录入的新用户的存单编号*/printf(nn 请输入用户姓名:);scanf(%s,);/*即将录入的新用户的用户姓名*/printf(nn 请输入地址:);scanf(%s,cd.add);/*即将录入的新用户的地址*/printf(nn 请输入电话号码:);scanf(%d,&cd.tel);/*即将录入的新用户的电话号码*/printf(nn 请输入身份证号码(六位数字):);scanf(%d,&cd.ID);/*即将录入的新用户的身份证号码*/printf(nn 请输入密码(查询取款时使用):);scanf(%d,&m1); printf(nn 确认密码(查询取款时使用):); scanf(%d,&m2); for(i=0;(i=2)&(m1!=m2);)/*对密码进行判断*/printf(nn 密码不一致!nnn 请重新输入:nnn);scanf(%d,&m1);/*两次输入的密码,重新输入*/printf(nn 请确认密码:nnn);scanf(%d,&m2);/*确认输入的密码*/i+;/*循环*/ switch(i) case 1: case 2: case 0: cd.key=m1; break; default : printf(nn 三次输入错误,请重新开始!nnn);/*三次输错退回主菜单*/ ckqk(); break; printf(nn 请输入存款金额:nnn);scanf(%lf,&cd.money);/*输入存款金额*/printf(nn 请选择存期:nnn);printf( 1.一年 2.三年 3.五年nnn);scanf(%d,&cd.time);/*选择存期*/cd.ll=ll(cd.time);/*根据选择的存期自动选择利率*/printf(nn 请输入存款时间(如):nnn);scanf(%d,&cd.ymd);/*录入存款时间*/cd.status=1;/*账户状态默认为正常*/FILE *fp;fp=fopen(D:cundan.txt,r+);/*打开用户信息文件,可读可写*/if(fp=0)printf(file errorn);/*未能正常打开*/exit(1); fseek(fp,0L,2);/*将光标定位在用户信息文档末尾*/fprintf(fp,n%d %s %s %d %d %f %d %f %d %d %dn,cd.number,,cd.add,cd.ID,cd.tel,cd.money,cd.time,cd.ll,cd.ymd,cd.status,cd.key); /*换行后进行数据录入,数据为上方填写的数据*/fclose(fp);/*录入完毕,关闭文件*/printf(nnnn); printf(nn 存款成功!n); printf(nn 存单编号 用户姓名 存款 存期 利率 n);printf(nn %d %s %f %d %f nn,cd.number,,cd.money,cd.time,cd.ll);printf(nnnn返回管理员界面nnnn) ;glfunction();/*返回主菜单*/double ll(int time)/*利率的选择函数*/double m;switch(time)case 1: m=0.001;break;case 2: m=0.003;break;case 3: m=0.005;break;return m;void qk()/*取款部分函数*/int pw,i=0,number,ymd;double m,money;struct cundan cd;FILE *fp;fp=fopen(D:cundan.txt,r+);/*打开用户信息,可读可写*/if(fp=0)printf(file errorn);exit(1);printf(nn 请输入存单编号:);scanf(%d,&number);/*输入存单编号*/fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status,&cd.key); /*读取用户存单信息*/while(!feof(fp)&(number!=cd.number)/*判断输入的编号是否相同,不相同继续读入下一行数据,循环*/fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status,&cd.key); fclose(fp);if(number=cd.number)/*如果查找到相应存单编号*/if(cd.status=2)/*该账户处于挂失状态*/printf(nnn 该存单已挂失,请解挂后重试n);printf(nn 即将返回管理员操作界面,请稍候nn);glfunction();else/*该账户可正常使用*/printf(n 请输入密码:);scanf(%d,&pw);/*输入密码*/for(i=0;(icd.money)/*验证取款金额是否大于余额*/ printf(n 余额不足,请查询后重试n);/*取款金额大于余额*/ printf(n 请输入取款时间(如):);/*输入取款时间*/ scanf(%d,&ymd); if(ymdcd.ymd)/*判断取款时间是否小于存款时间*/ printf( 输入错误,请重新开始n);/*取款时间小于存款时间,重新开始*/ qk(); else m=judge(ymd,cd.ymd,cd.money,cd.ll,cd.time);/*执行judge函数*/ cd.money=(cd.money+m-money);/*现有余额=曾有余额+利息-取款钱数*/ cd.ymd=ymd;/*更新存单中的时间*/ printf(n 您于%d取款%f,账户余额:%f,cd.ymd,money,cd.money);/*显示取款信息*/ fseek(fp,-64L,1);/*光标退至本行开头处*/ fprintf(fp,n%d %s %s %d %d %f %d %f %d %dn,cd.number,,cd.add,cd.ID,cd.tel,cd.money,cd.time,cd.ll,cd.ymd,cd.status);/*录入新的数据代替原有数据*/ fclose(fp); printf(n n); printf( n); printf( 取款成功! n); printf( n); printf( 页面跳转中。 n); printf( n); printf( nnnnnnnnnnn); glfunction(); break; default :printf(nn 三次输入错误,请重新开始!nn);qk(); break;if(number!=cd.number)/*未找到输入的编号*/printf(nnnn 该存单不存在,请核实后再输入n);double judge(int i,int j,double k,double l,int p)/*利率计算函数*/int item,n,q;double m;item=i-j;n=item/10000;q=n/p;m=q*l*k;return m;void gsjg()/*挂失解挂选择菜单函数*/printf(nnnnn);printf( +n);printf( n);printf( 请 选 择 操 作 n);printf( 1.挂失 n);printf( 2.解挂 n);printf( 3返回主菜单 n);printf( n);printf( =nnnnnnnnnnnn);int i;scanf(%d,&i);switch(i)case 1:gs();break;case 2:jg();break;case 3:printf(nnn);printf( 即将退出,请稍候.nn);glfunction();break; default:printf(nn 选择无效,请重新选择nnn);gsjg();break;void gs()/*挂失函数,通过改变cd.status的值来改变存单状态*/int num;printf(nn 请输入操作账户:nn);scanf(%d,&num);struct cundan cd;FILE *fp;fp=fopen(D:cundan.txt,r+); if(fp=0)printf(file errorn);exit(1);fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status);while(!feof(fp)&(num!=cd.number)fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status);if(num=cd.number)fseek(fp,-3L,1);fwrite (2,1,1,fp);fclose(fp);elseprintf(nn 该账户不存在,请核实后再输入nnn);gsjg();fp=fopen(D:cundan.txt,r);fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status);while(!feof(fp)&(num!=cd.number)fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status);if(cd.status=2)printf(nn 挂失成功n);printf(nn 即将返回管理员操作界面,请稍候nn);glfunction();elseprintf(nn 挂失失败,请重试nnn);gsjg();void jg()/*解挂函数,通过改变cd.status的值来改变存单状态*/int num;struct cundan cd;printf( -n);printf( | |n);printf( | 请输入存单编号 |n);printf( | |n);printf( -n);scanf(%d,&num);FILE *fp;fp=fopen(D:cundan.txt,r+);if(fp=0)printf(file errorn);exit(1);fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status);while(!feof(fp)&(num!=cd.number)fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status);if(num=cd.number)fseek(fp,-3L,1);fwrite (1,1,1,fp);fclose(fp);elseprintf(nn 该账户不存在,请核实后再输入nnn);gsjg();fp=fopen(D:cundan.txt,r); fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status,cd.key);while(!feof(fp)&(num!=cd.number)fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status);if(cd.status=1)printf(nn 解挂成功nn);printf(nn 即将返回管理员操作界面,请稍候nn);glfunction();elseprintf(nn 解挂失败,请重试nnn);gsjg();void xgkl()/*修改口令函数*/printf(nnnn *-*n);printf( | 口令修改 |n);printf( *-*n);printf( | 确认修改请按1 |n);printf( *-*n);printf( | 退出请按2 |n);printf( *-*nnnnnn);printf( 请选择:);/*选项菜单*/printf(nnn); int i,ling3,ling4;scanf(%d,&i);if(i=1)printf(nn 请输入新口令:n); scanf(%d,&ling3);printf(nn 请再次输入口令:n);scanf(%d,&ling4);if(ling3=ling4) FILE *fp; fp=fopen(D:kouling.txt,r+); if(fp=0) printf(file errorn); exit(1); fprintf(fp,%d,ling4);/*通过修改文本中的信息来修改口令*/ fclose(fp); printf(nn 修改完毕,下次登录请使用新口令nnnn); printf( 正在向功能界面跳转.nn); glfunction();elseprintf(nn 密码不一致n);printf(nn 即将返回上一界面nnn); xgkl();else if(i=2)glfunction();elseprintf(nn 选择无效,请重新选择:nn);xgkl();void cxxx()/*查询信息函数*/ int num,id;struct cundan cd;printf( -n);printf( | |n);printf( | 请输入存单编号 |n);printf( | |n);printf( -n);scanf(%d,&num);printf(nnn);FILE *fp;fp=fopen(D:cundan.txt,r+);/*读取文本中的信息*/if(fp=0)printf(file errorn);exit(1);fscanf(fp,n%d %s %s %d %d %lf %d %lf %d %d %dn,&cd.number,,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租房合同催收法律函件范文合集
- 房地产销售合同管理标准文本
- 农民专业合作社合作合同
- 培训机构教师用工合同解读
- 房地产中介服务合同及纠纷处理方案
- 书店销售员劳务合同2篇
- 正规的买卖合同样书3篇
- 合同范本之泰康人寿保险合同5篇
- 六角凉亭专项施工方案
- 设备回填施工方案
- 9.18事变防空演练方案3篇2025
- 急性心肌梗死病人护理
- 2025年充换电站项目建议书
- 学校意识形态工作培训会
- 宠物医疗行业招商策划
- UL484美国房间空调器安全检验规范
- 民法总论讲义大纲4
- 国寿新绿洲团体意外伤害保险(A款)条款
- ARDS患者肺康复训练专家共识解读
- 生物防治技术-免疫接种技术(动物防疫与检疫技术)
- 中远海运(上海)有限公司招聘考试真题及答案2022
评论
0/150
提交评论