![程序实践报告-C语言_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/21/68bf90a6-4e30-45f3-96a7-a2da5a84cdbe/68bf90a6-4e30-45f3-96a7-a2da5a84cdbe1.gif)
![程序实践报告-C语言_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/21/68bf90a6-4e30-45f3-96a7-a2da5a84cdbe/68bf90a6-4e30-45f3-96a7-a2da5a84cdbe2.gif)
![程序实践报告-C语言_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/21/68bf90a6-4e30-45f3-96a7-a2da5a84cdbe/68bf90a6-4e30-45f3-96a7-a2da5a84cdbe3.gif)
![程序实践报告-C语言_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/21/68bf90a6-4e30-45f3-96a7-a2da5a84cdbe/68bf90a6-4e30-45f3-96a7-a2da5a84cdbe4.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品文档程序设计报告( 2016/2017 学年 第 一 学期)题目:银行定期储蓄管理系统专业应用统计学组长 学号姓名B15080330宁行组员 学号姓名B15080331彭云聪B15080332钱春指导教师崔子冠指导单位计算机学院软件教学中心日期2016 年 10月 28 日。1欢迎下载精品文档根据课题制定编程大纲分配任务以及界面美化,口令组长(宁行)修改功能函数编写。成主要负责程序中主函数,存款取款查询存单等功能函员组员(彭云聪)数等编写。分工组员(钱春)主要负责整理测试程序,制作报告等。评分项优秀良好中等差遵守机房规章制度上机时的表现学习态度程序准备情况程序设计能力评团队合作精神分细课题
2、功能实现情况则算法设计合理性用户界面设计报告书写认真程度内容详实程度文字表达熟练程度回答问题准确度简短评教师签名:语年月日评B15080330 宁行B15080331 彭云聪B15080332 钱春分等级备注评分等级共五种:优秀、良好、中等、及格、不及格。2欢迎下载精品文档一、课题要求和内容1 系统的基本功能该系统要求编写一个程序, 设计一套银行定期储蓄管理系统, 要求实现定期利息计算,客户按密码取款,工作人员口令修改等功能。2 要求及提示2.1基本要求要能提供以下几个基本功能:(1) 工作人员根据口令进入系统;(2) 可以录入新的存单信息(存单编号,储户姓名,身份证编号,住址,联系电话,存款
3、金额,存期,利率,密码) ,存单信息可以保存在文件中,利率在存期决定后自动得到;(3)根据存单编号可以查询存单信息;(4)根据存单编号和密码可以完成储户取款操作,自动算清应支付的利息并显示在屏幕上。(5) 界面友好,可操作性强,输入信息符合逻辑如存款金额不为负数、不可能有非数字的字符等;(6)可增加对工作人员信息维护的功能,如口令修改等。2.2选做要求(1)设计美观实用的图形菜单界面(2)自行增加一些新功能模块2.3提示本程序设计题目涉及到的主要知识点包括:(1)面向对象程序设计方法。3欢迎下载精品文档(2)类和对象的概念、关系及实现(3)文件的读写(4)界面制作2.4其他要求(1)在上述功能
4、要求的基础上,为了提高成绩, 可以添加一些额外的功能。(2)变量、函数命名符合规范。(3)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返回值也要以注释的形式说明用途;关键的语句段要求有注释解释。(4)程序的层次清晰,可读性强。3 开发环境可以选择 TC2.0、TC3.0、 VC+6.0。二、需求分析本实验在 vc+6.0 条件下,实现银行定期储蓄管理系统的生成, 存单信息中包括存单编号、储户姓名、身份证编号、住址、联系电话、存款金额、存期、利率、密码。A. 输入的形式和输入值的范围:开户时自定义的账号、用户名、密码、开户金额及存单编号。用户输入正确的账号和密码, 完成登
5、陆之后可以进行存取款以及利息存期的查看。B. 输出形式:在所有操作中都显示是否正确以及相应操作后的内容。 其中输入错误可以回到主页面,重新操作。C. 程序最终所能达到的功能是用户定期存取款能够简单便捷到完成, 工作人员可以自由的完成信息的维护,通过口令修改等。D. 测试多组数据,以确保系统的准确跟稳定性。4欢迎下载精品文档三、系统概述。5欢迎下载精品文档四、数据源代码#include<stdio.h>#include<stdlib.h>void dlshow();void glfunction();void ckqk();int kouling();void ck();
6、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;。6欢迎下载精品文档int ID;int tel;double money;int time;double ll;int ymd;int status;int key;void main()printf("nnnn*n&q
7、uot;);printf("|n");printf("|n");printf("|欢迎使用银行定期储蓄管理系统|n");printf("|n");printf("|n");printf("*nnn");dlshow();void dlshow()/*验证口令,登入操作系统*/int ling1,ling2,i;ling2=kouling();printf("PleaseInputPasswordn");scanf("%d",&l
8、ing1);for(i=0;(ling1!=ling2)&&(i<=2);i+)/*对口令进行判断, ling1 ling2重新输入 */printf("口令错误!naaa");printf("请重新输入 n");scanf("%d",&ling1);switch(i)。7欢迎下载精品文档case 1:case 2:case 0:glfunction();break;default :printf("nn三次输入错误,系统关闭nn");/*三次输错后,程序自动关闭*/break;int
9、 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("$欢
10、迎进入系统$n");printf("*n");printf("$存单变更请按1 ,再按回车$n");printf("*n");。8欢迎下载精品文档printf("$挂失 / 解挂请按2,再按回车$n");printf("*n");printf("$修改口令请按3,再按回车$n");printf("*n");printf("$查询请按4 ,再按回车$n");printf("*n");printf("
11、$退出请按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
12、 及 0 外的数字 */printf("选择错误,请重新选择 nnn");glfunction();void ckqk()/*存款取款功能 */printf("nnnn");printf("-n");printf("§§n");printf("请选择功能 n");。9欢迎下载精品文档printf("-n");printf("§1.存款§ n");printf("2.取款 n");printf(&q
13、uot;§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(&
14、quot;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);/* 即将录入的新用户的地址 */pr
15、intf("nn请输入电话号码: ");scanf("%d",&cd.tel);/*即将录入的新用户的电话号码*/printf("nn 请输入身份证号码 ( 六位数字 ) :"); scanf("%d",&cd.ID);/* 即将录入的新用户的身份证号码 */printf("nn 请输入密码(查询取款时使用) :"); scanf("%d",&m1);。10欢迎下载精品文档printf("nn确认密码(查询取款时使用) :");sc
16、anf("%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;
17、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);/*根据选择的存
18、期自动选择利率*/printf("nn请输入存款时间(如20161019):nnn");scanf("%d",&cd.ymd);/*录入存款时间 */cd.status=1;/*账户状态默认为正常 */FILE *fp;fp=fopen("D:cundan.txt","r+");/*打开用户信息文件,可读可写*/if(fp=0)printf("file errorn");/*未能正常打开 */。11欢迎下载精品文档exit(1);fseek(fp,0L,2);/* 将光标定位在用户信息文
19、档末尾 */ 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");pr
20、intf("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,ym
21、d;。12欢迎下载精品文档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&quo
22、t;,&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. n
23、ame,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.stat us,&cd.key);fclose(fp);if(number=cd.number)/*如果查找到相应存单编号*/if(cd.status=2)/*该账户处于挂失状态 */printf("nnn该存单已挂失,请解挂后重试n");printf("nn即将返回管理员操作界面,请稍候 nn");glfunction();else/* 该账户可正常使用 */pr
24、intf("n请输入密码: ");scanf("%d",&pw);/*输入密码 */for(i=0;(i<=2)&&(pw!=cd.key);)/*密码不一致 */printf("nn密码不一致! nnn请重新输入: nn");scanf("%d",&pw);i+;。13欢迎下载精品文档switch(i)case 1:case 2:case 0:fp=fopen("D:cundan.txt","r+");/*打开用户信息文件,可读可写 *
25、/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)&&(number!=cd.number)fscanf(fp,"n%d %s %s %d %d %
26、lf %d %lf %d %dn",&cd.number, ,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.status);/* 循环读入数据直到存单编号与输入的相等 */printf("n请输入取款金额:");/* 通过验证 */scanf("%lf",&money);/*输入取款金额 */if(money>cd.money)/*验证取款金额是否大于余额*/printf(&quo
27、t;n余额不足,请查询后重试 n");/*取款金额大于余额 */printf("n请输入取款时间(如 20160506):");/*输入取款时间 */scanf("%d",&ymd);*/if(ymd<cd.ymd)/* 判断取款时间是否小于存款时间printf("输入错误,请重新开始 n");/*取款时间小于存款时间,重新开始*/qk();elsem=judge(ymd,cd.ymd,cd.money,cd.ll,cd.time);/*执行 judge 函数 */。14欢迎下载精品文档cd.money=(cd
28、.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.
29、status);/*录入新的数据代替原有数据*/fclose(fp);printf("nn");printf(" n");printf("取款成功! n");printf(" n");printf("页面跳转中。 n");printf(" n");printf("nnnnnnnnnnn");glfunction();break;default :printf("nn三次输入错误, 请重新开始!nn");qk();break;if(num
30、ber!=cd.number)/*未找到输入的编号 */printf("nnnn该存单不存在,请核实后再输入n");。15欢迎下载精品文档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("§
31、§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;ca
32、se 3:printf("nnn");printf("即将退出,请稍候 .nn");。16欢迎下载精品文档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=f
33、open("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. name,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.stat us);while(!feof(fp)&&(num
34、!=cd.number)fscanf(fp,"n%d %s %s %d %d %lf %d %lf %d %dn",&cd.number,cd. name,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.stat us);if(num=cd.number)fseek(fp,-3L,1);fwrite ("2",1,1,fp);fclose(fp);elseprintf("nn该账户不存在,请核实后再输入。17欢
35、迎下载精品文档nnn");gsjg();fp=fopen("D:cundan.txt","r");fscanf(fp,"n%d %s %s %d %d %lf %d %lf %d %dn",&cd.number,cd. name,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.stat us);while(!feof(fp)&&(num!=cd.number)fscanf(f
36、p,"n%d %s %s %d %d %lf %d %lf %d %dn",&cd.number,cd. name,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.stat us);if(cd.status=2)printf("nn挂失成功 n");printf("nn即将返回管理员操作界面,请稍候nn");glfunction();elseprintf("nn挂失失败,请重试 nnn&qu
37、ot;);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+");i
38、f(fp=0)printf("file errorn");exit(1);。18欢迎下载精品文档fscanf(fp,"n%d %s %s %d %d %lf %d %lf %d %dn",&cd.number,cd. name,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.stat us);while(!feof(fp)&&(num!=cd.number)fscanf(fp,"n%d %s %
39、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.t
40、xt","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,c d.key);while(!feof(fp)&&(num!=cd.number)fscanf(fp,"n%d %s %s %d %d %lf %d %lf %d %dn&q
41、uot;,&cd.number,cd. name,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.stat us);if(cd.status=1)printf("nn解挂成功 nn");printf("nn即将返回管理员操作界面,请稍候nn");glfunction();elseprintf("nn解挂失败,请重试 nnn");。19欢迎下载精品文档gsjg();void xgkl()/*修改口令函数
42、 */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",&a
43、mp;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);
44、/*通过修改文本中的信息来修改口令*/fclose(fp);printf("nn修改完毕,下次登录请使用新口令nnnn");printf("正在向功能界面跳转 .nn");。20欢迎下载精品文档glfunction();elseprintf("nn密码不一致 n");printf("nn即将返回上一界面 nnn");xgkl();else if(i=2)glfunction();elseprintf("nn选择无效,请重新选择 :nn");xgkl();void cxxx()/*查询信息函数 *
45、/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(&quo
46、t;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,&cd.ll,&cd.ymd,&cd.s tatus,&cd.key);while(!feof(fp)&&(num!=cd.number)fscanf(fp,"n%d %s %s %d %d %lf %d
47、 %lf %d %d %dn",&cd.number, ,cd.add,&cd.ID,&cd.tel,&cd.money,&cd.time,&cd.ll,&cd.ymd,&cd.s。21欢迎下载精品文档tatus,&cd.key);fclose(fp);if(num!=cd.number)printf("nn该存单不存在,请确认后再输入 n");printf("nn页面跳转中。 n");glfunction();elseprintf("nn请输入用户密码: ");scanf("%d",&id);fscanf(fp,"n%d %s %s %d %d %lf %d %lf %d %d %dn",&am
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年改性丙烯酸树脂涂饰剂合作协议书
- 广东汕头幼儿师范高等专科学校《商务计量方法》2023-2024学年第二学期期末试卷
- 打造智能消费新模式的实施方案
- 跨境进口保健品的创新与研发趋势
- 青海民族大学《国际商务谈判》2023-2024学年第二学期期末试卷
- 绵阳职业技术学院《数字系统》2023-2024学年第二学期期末试卷
- 西安财经大学行知学院《个案社会工作实验》2023-2024学年第二学期期末试卷
- 东营职业学院《数据学分析实验》2023-2024学年第二学期期末试卷
- 南宁理工学院《经济学专业导论》2023-2024学年第二学期期末试卷
- 甘肃医学院《油田开发地质学基础》2023-2024学年第二学期期末试卷
- 2025年山西地质集团社会招聘高频重点提升(共500题)附带答案详解
- 四川省绵阳市2025届高三第二次诊断性考试思想政治试题(含答案)
- 2024-2025学年辽宁省沈阳市沈河区七年级(上)期末英语试卷(含答案)
- 2024-2025学年初中七年级上学期数学期末综合卷(人教版)含答案
- 体育活动策划与组织课件
- 公司违规违纪连带处罚制度模版(2篇)
- 2025届高考物理二轮总复习第一编专题2能量与动量第1讲动能定理机械能守恒定律功能关系的应用课件
- T型引流管常见并发症的预防及处理
- 2024-2025学年人教新版九年级(上)化学寒假作业(九)
- 内业资料承包合同个人与公司的承包合同
- 2022年全国医学博士英语统一考试试题
评论
0/150
提交评论