xs_cctv 发布留言 2008-9-18 19:55 银行储存模拟系统#include #include #include #include #define N 10000 struct chuhu //储户结构信息 { char idnum[11]; //帐号 char password[7]; //密码 char name[11]; //储户姓名 char idnumber[19]; //储户身份证号码 double cunkuan; //存款金额 double lixi; //利息 double yu; //余额 int lei; //储种 char address[51]; //储户地址 char Tel[15]; //储户的联系电话 char khdate[40]; //开户日期 int g; //是否挂失(0为未,1为已) }hu[N]; //储户结构数组 void wang(); //显示“※淘气猫小组研发制作※”的函数 int yanzheng(); //验证帐号和密码并核查该帐号是否挂失的函数 void li(); //计算利息的函数 void date(); //显示当前日期和时间 void insert(); //开户函数 void display(); //显示所有帐户信息的函数 void in(int); //存款函数 void find(int); //查询余额函数 void out(int); //取款函数 void zhuan(int); //转帐函数 void changepwd(int); //修改密码的函数 void guashi(int); //挂失函数 void del(int); //销户函数 void lilvbiao(); //查看利率表 void cxgs(); //撤消挂失的函数 void grxx(int); //查看个人信息的函数 void help(); //储户须知函数 void bangzhu(); //帮助
int i,j,k,A=0,B=0; //i,j控制循环,id为帐号,A、B分别为开户数和销户数 double jin; //存款、取款或转帐金额 char ch='y'; //控制是否继续的变量 char id[11],password[7];
void main() //输出主菜单 { int a,b; //选择功能的变量 char dlzh[11],pword[7]; system("color 79"); date(); printf("\n\n\n\t\t※※※※※※※※※※※※※※※※※※※※※※※※※\n"); printf("\t\t※ ※\n"); //界面1 printf("\t\t※ ※\n"); printf("\t\t※ 银行储蓄管理模拟系统 ※\n"); printf("\t\t※ ※\n"); printf("\t\t※ ※\n"); printf("\t\t※ ※\n"); printf("\t\t※ ※\n"); printf("\t\t※※※※※※※※※※※※※※※※※※※※※※※※※\n\n\n\n"); wang(); printf("按ENTER键进入下一界面。。。→"); fflush(stdin); scanf("%c",&ch); do{ system("cls"); system("color f3"); date(); printf("\n\n\n\t\t\t"); for(i=0;i<10000000;i++) { if(i%340000==0) printf(">"); } printf("\t\t \n"); //界面2 printf("\t\t 欢迎使用本系统!!! \n"); printf("\n\n\t\t 请输入您的登陆帐号: "); fflush(stdin); gets(dlzh); printf("\n\n\t\t 请输入您的密码: "); for(i=0;i<6;i++) { fflush(stdin); pword='\0'; fflush(stdin); scanf("%c",&ch); printf("\t\t \n"); printf("\t\t ※ \n"); printf("\n\t\t\t"); for(i=0;i<10000000;i++) { if(i%340000==0) printf(">"); } if(strcmp(dlzh,"aa")!=0||strcmp("123456",pword)!=0) { printf("\n\n\t\t您输入的登陆帐号或密码不正确,请重新输入:\n\n"); printf("\t\t按ENTER键进入重新输入界面。。。→"); fflush(stdin); scanf("%c",&ch); } }while(strcmp(dlzh,"aa")!=0||strcmp("123456",pword)!=0); do{ wang(); printf("\n\n按ENTER键进入/返回主菜单→:"); fflush(stdin); scanf("%c",&ch); system("cls"); //清屏 system("color 57"); date(); printf("\t\t\t主菜单\n\n"); printf("\t\t★★★★★★★★★★★★★★★★★★★★★★\n"); //主菜单界面(界面3) printf("\t\t● ●\n"); printf("\t\t● ◆ 1、 开户 ●\n"); printf("\t\t● ◆ 2、 显示所有帐户 ●\n"); printf("\t\t● ◆ 3、 存款 ●\n"); printf("\t\t● ◆ 4、 查询余额 ●\n"); printf("\t\t● ◆ 5、 取款 ●\n"); printf("\t\t● ◆ 6、 转帐 ●\n"); printf("\t\t● ◆ 7、 修改密码 ●\n"); printf("\t\t● ◆ 8、 挂失 ●\n"); printf("\t\t● ◆ 9、 销户 ●\n"); printf("\t\t● ◆ 10、撤消挂失 ●\n"); printf("\t\t● ◆ 11、查看储户个人信息 ●\n"); printf("\t\t● ◆ 12、查看利率表 ●\n"); printf("\t\t● ◆ 13、储户须知 ●\n"); printf("\t\t● ◆ 14、帮助 ●\n"); printf("\t\t● ◆ 0、退出程序 ●\n"); printf("\t\t● ●\n"); printf("\t\t★★★★★★★★★★★★★★★★★★★★★★"); wang(); printf("请选择功能(0-14):→ "); fflush(stdin); scanf("%d",&a); switch(a) //选择功能 { case 1: //选择功能后调用相应的函数 insert(); break; case 2: display(); break; case 3: b=yanzheng(); in(b); break; case 4: b=yanzheng(); find(b); break; case 5: b=yanzheng(); out(b); break; case 6: b=yanzheng(); zhuan(b); break; case 7: b=yanzheng(); changepwd(b); break; case 8: b=yanzheng(); guashi(b); break; case 9: b=yanzheng(); del(b); break; case 10: cxgs(); break; case 11: b=yanzheng(); grxx(b); break; case 12: lilvbiao(); break; case 13: help(); break; case 14: bangzhu(); break; case 0: system("cls"); system("color f1"); date(); printf("\n\n\n\t==========================================================\n"); printf("\t‖ ‖\n"); printf("\t‖ 谢 谢 使 用 ‖\n"); printf("\t‖ ‖\n"); printf("\t‖ ‖\n"); printf("\t‖ ‖\n"); printf("\t‖ 组长: ‖\n"); printf("\t‖ ‖\n"); printf("\t‖ ‖\n"); printf("\t‖ 组员: ‖\n"); printf("\t‖ ‖\n"); printf("\t‖ ‖\n"); printf("\t‖ ‖\n"); printf("\t‖ ‖\n"); printf("\t=========================================================="); wang(); printf("您真的要退出吗(y/n)? "); fflush(stdin); scanf("%c",&ch); system("cls"); break; default: system("cls"); printf("\n\n\t您的输入有误,请正确选择功能!!!……"); break; } if(a==0&&(ch=='y'||ch=='Y')) { system("color 0c"); date(); printf("\n\n\n\n\t◇ 欢 迎 下 次 再 使 用 ! ◇"); wang(); break; } }while(1); }
void insert() //开户 { wang(); do{ system("cls"); //清屏 system("color f0"); date(); printf("\n\n\t\t请输入新储户的信息:"); do{ printf("\n\n\t\t储户帐号(10位): "); fflush(stdin); gets(hu[A-B].idnum); if(strlen(hu[A-B].idnum)!=10) { system("cls"); printf("\n\t\t输入错误!\n\t\t帐号请输入10位数字或字母"); } for(i=0;i if(strcmp(hu[A-B].idnum,hu.idnum)!=10||i printf("\n\t\t储户密码(6位): "); for(i=0;i<6;i++) { fflush(stdin); hu[A-B].password.password[6]='\0'; fflush(stdin); scanf("%c",&ch);
printf("\n\t\t姓名: "); fflush(stdin); gets(hu[A-B].name);
do{ printf("\n\t\t储户身份证号码(18位): "); fflush(stdin); gets(hu[A-B].idnumber); if(strlen(hu[A-B].idnumber)!=18) printf("\n\t\t输入错误!\n\t\t身份证请输入18位数字或字母\n"); for(i=0;i if(strcmp(hu[A-B].idnumber,hu.name,hu.idnumber)!=18||(strcmp(hu[A-B].idnumber,hu.name,hu.cunkuan);
printf("\n\t\t储种: "); printf("\n\t\t\t0、 活期"); printf("\n\t\t\t1、 一年定期"); printf("\n\t\t\t2、 两年定期"); printf("\n\t\t\t3、 三年定期"); printf("\n\t\t\t4、 五年定期"); do{ printf("\n\t\t请选择(1-4): "); fflush(stdin); scanf("%d",&hu[A-B].lei); if(hu[A-B].lei<0||hu[A-B].lei>4) printf("\n\n\t\t您选择错误,请正确选择!!"); }while(hu[A-B].lei<0||hu[A-B].lei>4);
printf("\n\t\t储户电话: "); fflush(stdin); gets(hu[A-B].Tel);
printf("\n\t\t储户地址: "); fflush(stdin); gets(hu[A-B].address);
printf("\n\t\t开户日期: "); gets(hu[A-B].khdate); hu[A-B].g=0; li(); hu[A-B].yu=hu[A-B].cunkuan+hu[A-B].lixi; A++; printf("是否继续(y/n)? "); fflush(stdin); scanf("%c",&ch); }while(ch=='y'||ch=='Y'); }
void display() //存款 { struct chuhu z; system("cls"); //显示出详细的信息 for(i=0;i for(j=0;j if(hu[j].idnum>hu[j+1].idnum) { z=hu[j]; hu[j]=hu[j+1]; hu[j+1]=z; } date(); if(A-B==0) printf("\n\n\n\t\t\t储户信息中暂无帐户!"); else { printf("\n\n\n\t\t\t储户信息(按照帐号升序排列)\n"); printf("============================================================================\n\n"); printf("帐号\t\t姓名\t储种\t余额(已加利息)\t开户日期\t是否挂失(1/0)\n\n"); for(i=0;i printf("%s\t%s\t%d\t%.2lf\t\t%s\t%d\n",hu.name,hu.yu,hu.g); printf("\n\n\t注: 储种中数字的含义为:\n\n\t0: 活期 1: 一年定期 2: 两年定期 3: 三年定期 4: 五年定期"); } }
void in(int count) //存款 { if(count<3&&strcmp(id,hu.password)==0) { date(); wang(); do{ printf("\n\n\t\t请输入存款金额: "); fflush(stdin); scanf("%lf",&jin); if(jin<0) printf("\n\n\n\t\t存款不能为负数!!!"); }while(jin<0); if(jin>=0) { hu.idnum)==0 && strcmp(password,hu.idnum); printf("\n\n\t\t姓名: %s",hu.lei); printf("\n\n\t\t余额(已加利息): %.2lf",hu.khdate); printf("\n\n\t注: 储种中数字的含义为:\n\n\t0: 活期 1: 一年定期 2: 两年定期\n\t3: 三年定期 4: 五年定期"); } }
void out(int count) //取款 { if(count<3&&strcmp(id,hu.password)==0) { date(); do{ printf("\n\n\t\t请输入取款金额: "); fflush(stdin); scanf("%lf",&jin); if(hu.yu if(hu.yu-=jin; printf("\n\n按ENTER键打印取款单→:"); //打印取款单 fflush(stdin); scanf("%c",&ch); system("cls"); date(); printf("\n\n\n\t\t办理业务: 取款"); printf("\n\n\t\t帐号: %s",hu.name); printf("\n\n\t\t储种: %d",hu.idnum)==0) break; if(k { printf("\n\n按ENTER键继续下一步→:"); fflush(stdin); scanf("%c",&ch); system("cls"); break; } else if(k { p++; printf("\n\n\t\t您输入的帐号已挂失,您可以选择重新输入或退出。\n\n"); printf("\t\t\t1、重新输入\n\t\t\t2、退出此程序"); printf("\n\n\t\t请选择→"); fflush(stdin); scanf("%d",&a); if(a==2) break; } else if(count==2) { printf("\n\n\t\t对不起,由于您三次输入的帐号都已挂失或不存在,程序将会退出。\n\n\t按任意键两次都会进入主界面。。。→"); fflush(stdin); scanf("%c",&ch); break; } else { p++; printf("\n\n\t\t帐户表中没有该帐户!您可以选择重新输入或退出。\n\n"); printf("\t\t\t1、重新输入\n\t\t\t2、退出此程序"); printf("\n\n\t\t请选择→"); fflush(stdin); scanf("%d",&a); if(a==2) break; } system("cls"); }while(A-B!=0); if(k { do{ printf("\n\n\t\t请输入转帐金额: "); fflush(stdin); scanf("%lf",&jin); if(hu.yu if(jin>=0) { hu.yu+=jin; printf("\n\n\t\t\t您已转帐成功!"); printf("\n\n\t\t本次转帐金额为(元): %.2f",jin); } } printf("\n\n\t\t是否继续(y/n)?"); fflush(stdin); scanf("%c",&ch); }while(ch=='y'||ch=='Y'); } }
void changepwd(int count) //修改密码 { int p=0; if(count<3&&p<3&&strcmp(id,hu.password)==0) { date(); do{ printf("\n\t\t请输入新密码(6位): "); for(k=0;k<6;k++) { fflush(stdin); password[k]=getch(); printf("*"); } password[6]='\0'; fflush(stdin); scanf("%c",&ch); printf("\n\n\t\t请再次输入新密码(6位): "); for(j=0;j<6;j++) { fflush(stdin); hu=getch(); printf("*"); } hu='\0'; fflush(stdin); scanf("%c",&ch); if(strcmp(hu.password,password)!=0); } }
void guashi(int count) //挂失 { if(count<3&&strcmp(id,hu.password)==0) { date(); system("cls"); printf("\n\n\n\t\t该帐户确实要挂失(y/n)? "); fflush(stdin); scanf("%c",&ch); if(ch=='y'||ch=='Y') { hu.idnum)==0 && strcmp(password,hu.yu>0) printf("\n\n\t\t该帐户上还有余额,不能进行销户\n\n\t\t如需销户请先进行取款操作!!"); else { B++; for(j=i;j hu[j]=hu[j+1]; printf("\n\n\t\t\t销户成功!\n\t\t下次如需办理相关业务请先开户。"); } } } }
void lilvbiao() //打印利率表 { system("cls"); system("color f5"); date(); printf("\n\n\n\t\t\t利率对照表:\n"); printf("\t≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n"); printf("\t‖ ‖ 活 ‖ 定 期 ‖\n"); printf("\t‖储 种 ‖ ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖\n"); printf("\t‖ ‖ 期 ‖ 一年 ‖ 二年 ‖ 三年 ‖ 五年 ‖\n"); printf("\t‖ˉˉˉ ‖ˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖ˉˉˉˉ‖\n"); printf("\t‖利率(%%%)‖ 1.25 ‖ 1.98 ‖ 2.25 ‖ 2.52 ‖ 2.79 ‖\n"); printf("\t≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n"); printf("\n\t说明:若为定期,每愈一天,每天利率0.02‰,若未到期提前\n\t支取,按每天计,每月算三十天,利息税20%扣除。\n"); }
void cxgs() //挂失 { int p=0,a; system("cls"); date(); do{ system("color f9"); printf("\n\n\t\t 请输入您的帐号: "); fflush(stdin); gets(id); printf("\n\n\t\t 请输入您的密码: "); for(i=0;i<6;i++) { fflush(stdin); password='\0'; fflush(stdin); scanf("%c",&ch); printf("\n\n\t\t"); for(i=0;i<10000000;i++) { if(i%340000==0) printf(">"); } for(i=0;i if(strcmp(id,hu.password)==0 ) break; if(i { p++; printf("\n\n\t\t您输入的帐号没有挂失,您可以选择重新输入或退出。\n\n"); printf("\t\t\t1、重新输入\n\t\t\t2、退出此程序"); printf("\n\n\t\t请选择→"); fflush(stdin); scanf("%d",&a); if(a==2) break; } else if(A-B==0) { p++; printf("\n\n\t\t帐户表中没有该帐户!\n\n\t\t如需办理相关业务,请先办理开户手续。"); printf("\n\n按两次ENTER键进入/返回主菜单(可办理开户手续)→:"); fflush(stdin); scanf("%c",&ch); break; } else if(p<2&&hu.g==1&&strcmp(id,hu.password)==0) { system("cls"); printf("\n\n\n\t\t该帐户确实要撤消挂失(y/n)? "); fflush(stdin); scanf("%c",&ch); if(ch=='y'||ch=='Y') { hu.idnum)==0 && strcmp(password,hu.idnum); printf("\n\n\t\t密码: %s",hu.name); printf("\n\n\t\t身份证号码: %s",hu.lei); printf("\n\n\t\t电话: %s",hu.address); printf("\n\n\t\t开户日期: %s",hu=getch(); printf("*"); } password[6]='\0'; fflush(stdin); scanf("%c",&ch); printf("\n\n\t\t"); for(i=0;i<10000000;i++) { if(i%340000==0) printf(">"); } for(i=0;i if(strcmp(id,hu.password)==0 ) break;
if(i { count++; printf("\n\n\t\t您输入的帐号已挂失,您可以选择重新输入或退出。\n\n"); printf("\t\t\t1、重新输入\n\t\t\t2、退出此程序"); printf("\n\n\t\t请选择→"); fflush(stdin); scanf("%d",&a); if(a==2) break; } else if(A-B==0) { printf("\n\n\t\t帐户表中没有该帐户!\n\n\t\t如需办理相关业务,请先办理开户手续。"); printf("\n\n按两次ENTER键进入/返回主菜单(可办理开户手续)→:"); fflush(stdin); scanf("%c",&ch); break; } else if(count<2&&hu.lei==1) xi=hu[A-B].cunkuan*0.0198*1; else if(hu[A-B].lei==2) xi=hu[A-B].cunkuan*0.0225*2; else if(hu[A-B].lei==3) xi=hu[A-B].cunkuan*0.0252*3; else if(hu[A-B].lei==4) xi=hu[A-B].cunkuan*0.0279*5; else xi=0; hu[A-B].lixi=xi-xi*0.2; }
void date() { printf("当前日期: "); system("date/t"); printf("当前时间: "); system("time/t"); }
void wang() //相当于页脚 { printf("\n\n\n\t\t==========※淘气猫小组研发制作※==========\n\n"); }
页: [1] 特别说明:如网页特效代码中有引用图片文件等,请自己下载到本地调试! |