为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

银行定期储蓄管理系统

2011-10-06 17页 doc 309KB 71阅读

用户头像

is_509218

暂无简介

举报
银行定期储蓄管理系统程序设计报告 (2009/2010学年第二学期) 题 目: 银行定期储蓄管理系统 专 业 学 生 姓 名 班 级 学 号 指 导 教 师 指 导 单 位 日 期 评 分 细 则 评分项 优秀 良好 中等 差 遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简 短 评 语 教师签名: 年 月 日 评分等级 备注 评分等级有五种:优秀、良好、中等、及格、不及格 一、课题内容和要求 银...
银行定期储蓄管理系统
程序设计报告 (2009/2010学年第二学期) 题 目: 银行定期储蓄管理系统 专 业 学 生 姓 名 班 级 学 号 指 导 教 师 指 导 单 位 日 期 评 分 细 则 评分项 优秀 良好 中等 差 遵守机房规章 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简 短 评 语 教师签名: 年 月 日 评分等级 备注 评分等级有五种:优秀、良好、中等、及格、不及格 一、课题内容和要求 银行定期储蓄管理系统 系统的基本功能: (1) 工作人员根据口令进入系统; (2) 可以录入新的存单信息(存单编号,储户姓名,身份证编号,住址,联系电话,存款金额,存期,利率,密码),利率在存期决定后自动得到; (3)根据存单编号可以查询存单信息; (4)根据存单编号和密码可以完成储户取款操作,自动算清应支付的利息并显示在屏幕上。 要求: (1) 首先自己设计好界面和算法,存单信息可以保存在文件中; (2) 界面友好,可操作性强,输入信息符合逻辑如存款金额不为负数、不可能有非数字的字符等; (3) 必须完成(四)所要求的各基本功能,在基本功能实现的基础上,可考虑增加对工作人员信息维护的功能,如口令修改等。 二、需求分析 1) 管理员输入口令进入系统; 2) 提供可操作的主菜单:输出主菜单,包括申请账号、查询管理、取款管理、修改密码、退出系统,根据客户输入的选项来运行不同的功能,运行不同的函数; 3) 账号申请功能:客户按照正确的输入基本信息,申请账号; 4) 查询功能:客户输入账号,查询基本信息和当前本息和; 5) 取款功能:客户输入账号和密码,提取本息和; 6) 修改密码:客户输入账号和原密码进行密码修改; 7) 退出系统。 三、概要设计 四、详细设计 #include #include #include #include #include struct per { char mz[20]; char zh[20]; char mm[20]; char zhuzhi[20]; char ID[20]; char tel[20]; double money; double rate; int year; int year1,month1,day1; } dat,temp; void kh() /* 开户 */ { FILE *pa,*pa1; char mm_ok[20]; pa = fopen("db.dat","ab"); char ch; int coin,yy; double ra; char dizhi[20]; char shenfenzheng[20]; char dianhua[20]; lp: printf("请输入您的名字:"); scanf("%s",dat.mz); printf("存单帐号:"); scanf("%s",dat.zh); pa1 = fopen("db.dat","rb"); while(fread(&temp,sizeof(temp),1,pa1) ==1 ) { if ((strcmp (dat.zh,temp.zh) == 0)) { printf("对不起,此帐号已经有人用了,请重新输入.\n"); fclose(pa1); goto lp; } } printf("密码:"); scanf("%s",dat.mm); printf("确认密码:"); scanf("%s",&mm_ok); if(strcmp(dat.mm,mm_ok) !=0) { printf("确认密码不一样!请重新输入.\n"); goto lp; } printf("住址:"); scanf("%s",&dizhi); printf("身份证:"); scanf("%s",&shenfenzheng); printf("联系电话:"); scanf("%s",&dianhua); printf("存期:"); scanf("%d",&yy); switch(yy) {case 1:ra=0.1;break; case 2:ra=0.2;break; default:ra=0.3; } printf("利率:%.2lf",ra); do { printf("存款金额(整数):"); scanf("%d",&coin); }while(coin<0); printf("请输入存款时间:"); printf("年:");scanf("%d",&dat.year1); printf("月:");scanf("%d",&dat.month1); printf("日:");scanf("%d",&dat.day1); strcpy(dat.zhuzhi,dizhi); strcpy(dat.ID,shenfenzheng); strcpy(dat.tel,dianhua); dat.money=coin; dat.year=yy; dat.rate=ra; fwrite(&dat,sizeof(dat),1,pa); fclose(pa); printf("申请成功.\n"); printf("输入任何键返回菜单......\n"); scanf("%s",&ch); getchar(); } void time()/*计算某时段利率函数*/ { int year2,month2,day2; int m,n,l; printf("查询当前本息和"); printf("请输入当天日期:\n"); printf("年:");scanf("%d",&year2); printf("月:");scanf("%d",&month2); printf("日:");scanf("%d",&day2); m=year2-dat.year1; n=month2-dat.month1; l=day2-dat.day1; if(m<0) printf("不能计算利息!\n"); else if(m==0) { if(n<0) printf("不能计算本息和!\n"); else if(n==0) { if(l<0) printf("不能计算本息和!\n"); else printf("到目前为止本息和是:%f\n",(1+dat.rate)*dat.money); } else printf("到目前为止本息和是:%f\n",(1+dat.rate)*dat.money); } else if(m==1) { if(n<0) printf("不能计算本息和!\n"); else if(n==0) { if(l<0) printf("不能计算本息和!\n"); else printf("到目前为止本息和是:%f\n",(1+dat.rate)*dat.money); } else printf("到目前为止本息和是:%f\n",(1+dat.rate)*dat.money); } else { if(n<0) printf("到目前为止本息和是:%f\n",pow(1+dat.rate,m-1)*dat.money); else if(n==0) { if(l<0) printf("到目前为止本息和是:%f\n",pow(1+dat.rate,m-1)*dat.money); else printf("到目前为止本息和是:%f\n",pow(1+dat.rate,m)*dat.money); } else printf("到目前为止本息和为:%f\n",pow(1+dat.rate,m)*dat.money); } printf("按任何键返回菜单......\n"); getchar(); } void cx() /* 查询 */ { FILE *pa; char zh[20]; char ch; pa = fopen("db.dat","rb"); if(pa == NULL) { printf("还没有一个人申请帐号.\n"); printf("输入任何键返回菜单......\n"); } else { printf("请输入您的帐号:"); scanf("%s",zh); while(feof(pa) ==0) { fread(&dat,sizeof(dat),1,pa); if(strcmp(dat.zh,zh) == 0) { printf("名字:%12s\n",dat.mz); printf("帐号:%12s\n",dat.zh); printf("存款:%.2lf\n",dat.money); printf("地址:");puts(dat.zhuzhi); printf("\n"); printf("身份证号:");puts(dat.ID); printf("\n"); printf("电话:");puts(dat.tel); printf("\n"); printf("存款日期:"); printf("%d年%d月%d日",dat.year1,dat.month1,dat.day1); time(); break; } else if(feof(pa) !=0) { printf("帐号不存在!\n"); printf("按任何键返回菜单......\n"); getch(); break; } } } fclose(pa); scanf("%s",&ch); getchar(); } void qk() /* 取款 */ { FILE *db; char zh[20]; char mm[20]; double money; db = fopen("db.dat","w+"); if(db == NULL) { printf("还没有一个人申请帐号.\n"); printf("输入任何键返回菜单......\n"); getch(); goto gl; } printf("请输入您的帐号:"); scanf("%s",zh); printf("密码:"); scanf("%s",mm); while(!feof(db)) { fread(&dat,sizeof(dat),1,db); if(strcmp(zh,dat.zh) == 0 && strcmp(mm,dat.mm) == 0) { money=dat.money+dat.money*dat.rate*dat.year; printf("您一共取出:"); printf("%.2f",money); dat.money=0; fwrite(&dat,sizeof(dat),1,db); break; } if(feof(db) !=0) { printf("帐号不存在或密码错误!\n"); printf("按任何键返回菜单......\n"); getch(); goto gl; } } printf("取款成功!\n"); printf("按任何键返回菜单......\n"); getch(); gl:; } void xg() /*修改密码*/ { FILE *pa; char zh[20]; char mm[20]; char ch; pa = fopen("db.dat","w+"); if(pa == NULL) { printf("还没有一个人申请帐号.\n"); printf("输入任何键返回菜单......\n"); } else { m: printf("请输入你的帐号:"); scanf("%s",zh); printf("请输入原密码:"); scanf("%s",mm); while(feof(pa) ==0) { fread(&dat,sizeof(dat),1,pa); if(strcmp(dat.zh,zh) == 0&&strcmp(dat.mm,mm)==0) { printf("请输入新密码:"); scanf("%s",mm); strcpy(dat.mm,mm); printf("密码修改成功!"); fwrite(&dat,sizeof(dat),1,pa); break; } else printf("帐号不存在或密码错误"); goto m; } } fclose(pa); printf("输入任何键返回菜单......\n"); scanf("%s",&ch); getchar(); } void jinru()/*工作人员进入系统函数*/ { char real_pwd[15]={"123"};/*工作人员进入口令*/ char pwd[15]; int i; dl: printf(" ┌────────────────────────┐\n"); printf(" ├───────欢迎进入银行管理系统───────┤\n"); printf(" ├────────────────────────┤\n"); printf(" │ 请以管理员的身份登陆管理系统 │\n"); printf(" ├────────────────────────┤\n"); printf(" │ 提示: │\n"); printf(" ├────────────────────────┤\n"); printf(" │ 口令为:123 │\n"); printf(" └────────────────────────┘\n"); printf(" \n"); printf("请输入口令:"); for(i=0;i<15;i++) { pwd[i]=getch(); if((pwd[i]==0x0d)) break; printf("*"); } pwd[i]='\0'; if(strcmp(pwd,real_pwd)!=0) { printf("口令错误\n"); goto dl; } printf("\n"); gl: printf(" ┌────────────────────────┐\n"); printf(" ├───────欢迎进入银行管理系统───────┤\n"); printf(" ├────────────────────────┤\n"); printf(" │ (1).申请帐号,输入1并按Enter │\n"); printf(" ├────────────────────────┤\n"); printf(" │ (2).查询管理,输入2并按Enter │\n"); printf(" ├────────────────────────┤\n"); printf(" │ (3).取款管理,输入3并按Enter │\n"); printf(" ├────────────────────────┤\n"); printf(" │ (4).修改密码,输入4并按Enter │\n"); printf(" ├────────────────────────┤\n"); printf(" │ (5).退出系统,输入5并按Enter │\n"); printf(" ├────────────────────────┤\n"); do { scanf("%d",&i); switch(i) { case 1:system("cls");kh();goto gl; break; case 2:system("cls");cx();goto gl; break; case 3:system("cls");qk();goto gl; break; case 4:system("cls");xg();goto gl; break; case 5:system("cls");printf("谢谢您的使用"); exit(0); default:printf(" 输入错误,请重新输入"); } }while(i!=0); } void main()/*主函数*/ { jinru(); } 五、测试数据及其结果分析 输入口令:123 1、申请帐号:基本信息录入 2、查询: 3、取款管理: 4、修改密码: 5、退出系统。 六、调试过程中的问题 调试过程中,出现许多错误,根据报错逐一进行修改 ,出现的丢三落四的情况较多,例如少打分号、引号、换行符等,申请账户时不知怎样确认密码,后来请教前辈用串比较函数strcmp()比较两字符串的大小, if(strcmp(dat.mm,mm_ok) !=0) { printf("确认密码不一样!请重新输入.\n"); goto lp; } 由于输入法切换,导致VC无法识别代码,经过几次检查才发现,浪费了不少时间。 学习时,老师略过goto语句,经人指点后看书知道了goto语句为无条件转移语句,它可以在不需要任何条件的情况下直接使程序跳转到语句标号所标识的语句处执行,可以实现循环结构。 七、课程设计 通过这次编程实习,我收获不小。首先它锻炼了我们的动手能力,其次以小组为单位的实习形式,培养了我们的团队合作意识,这是将来我们走向社会必不可少的必备的素质之一。它让我感受到C语言的深奥和魅力,让我进一步掌握VC的操作,增加了我对C语言的了解,让我认识到个人能力有待提高。总之,这次实习满成功的!
/
本文档为【银行定期储蓄管理系统】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索