加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

C语言程序-模拟银行系统

(2012-12-27 13:25:31)
标签:

c语言程序

银行系统

#include <stdio.h> 
#include <conio.h>
#include <stdlib.h>
#include <windows.h>
#include <time.h>
#include <string.h>
struct bank{
 char name[20];
 int num;
 char pswd[100];
 int money;
};

struct bank person[1000];

int i,j,jine,num,k=0;
//--------------------设置密码----------------------
void setpswd(char pswd[]){                           
 int x=0;
 printf("\t\t\t  请输入您的密码:");
 while(1){
    pswd[x]=getch();
  if(pswd[x]!='\r'){
   printf("*");
      ++x;
  }
  else break;
 }
 pswd[x]='\0';
    printf("\n");
}
//------------------输入卡号------------------------
int putnum(){
    int resultnum=-1;
// char pswd[100];
 while(resultnum<0){
    printf("\t\t\t  请输入您的卡号:");
    scanf("%d",&num);
    for(i=0;i<1000;i++){
           if(person[i].num==num){
        return resultnum=1;
   // break;  执行到return语句处,整个程序便结束,不会执行下边的break语句
     }
      else if(person[i].num==0){
    printf("\t\t\t  您输入的卡号不存在,请重新输入\n");  //system("cls");
    Sleep(1000);
    fflush(stdin);
    system("cls");
    printf("\n\n\n\n\n\n\n");
    break;
    // return resultnum=-1; 
   }
  }
 }
}
//------------------输入密码----------------------
void putpswd(){
 int z=0;
 char pswd[100];
 fflush(stdin);
    while(1){
  setpswd(pswd);
     if(strcmp(person[i].pswd,pswd)==0)  
     break;
  else{
   z++;
   if(z==3){
    printf("\t\t\t  您已连续三次输入密码错误,系统将在三秒后自动退出!\n\n\n");
    for(int i=0;i<3;i++)
    
     Sleep(1000);
     printf("\t\t\t\t\t  %d\r",3-i);
    }
       exit(0);
   }
   printf("\t\t\t  您输入的密码有误,请重新输入!\n");
   
    
 }
}
//----------------------开户----------------------
void kaihu(){ 
 system("cls");
 printf("\n\n\n\n\n\n\n");
    printf("\t\t\t  请输入用户姓名:");
 scanf("%s",person[k].name);
    setpswd(person[k].pswd);
 while(1){
  printf("\t\t\t  请输入初始金额(不少于一元!):");
        scanf("%d",&jine);
  fflush(stdin);
     if(jine>=1)break;
  else printf("\t\t\t  金额不足,请重新输入!\n");
 }
 person[k].money+=jine;
    // printf("\t\t\t  %s\n",person[k].pswd);
    // scanf("%d",&person[k].pswd);
    srand(time(0));                               //使每次产生的随机数不同
 int m=rand();
    person[k].num=m�0000+100000;
 printf("\t\t\t  您的账号为:%d\n",person[k].num);     // 随机产生六位数的账号
 printf("\t\t\t  开户成功,请牢记您的账户信息:\n ");
 printf("\t\t\t  姓名%s  卡号%d  余额%d\n",person[k].name,person[k].num,person[k].money);
 printf("\t\t\t  请按任意键返回!"); 
 k++;
 getch();
    system("cls");
}
//------------------------存款-----------------
void cunkuan(){
 system("cls");
 printf("\n\n\n\n\n\n\n");
 int y=putnum(); fflush(stdin);
 putpswd();
 printf("\t\t\t  请输入存款金额:");
    scanf("%d",&jine);
 person[i].money+=jine;
 printf("\t\t\t  您的余额为:");
 printf("%d\n",person[i].money);
 printf("\t\t\t  存款成功按任意键返回!"); 
 getch();
 system("cls");
 
}
//------------------------查询-----------------
void chaxun(){
 system("cls");
 printf("\n\n\n\n\n\n\n");
    int y=putnum();
 putpswd();
 printf("\t\t\t  您的余额为:");
 printf("%d\n",person[i].money);
 printf("\t\t\t  查询成功按任意键返回!"); 
 getch();
 system("cls");
}
//------------------------取款-----------------
void qukuan(){
    system("cls");
 printf("\n\n\n\n\n\n\n");
    int y=putnum();
 while(1){
      printf("\t\t\t  请输入您的取款金额");
      scanf("%d",&jine);
      if(jine>person[i].money)
             printf("\t\t\t  您的余额不足,请重新输入!\n");
      else break;
  }
  person[i].money-=jine;
  printf("\t\t\t  您的余额为:");
  printf("%d\n",person[i].money);
   printf("\t\t\t  取款成功按任意键返回!"); 
 getch();
 system("cls");

}
//------------------------转账-----------------
int zhuanzhang(){  
 system("cls");
 printf("\n\n\n\n\n\n\n");
 int num1,c;
 putnum();
 putpswd();
 printf("\t\t\t  请输入对方卡号:");
    scanf("%d",&num1);
    for(j=0;j<1000;j++){
        if(person[j].num==num1)
        break;
  if(person[j].num==0){
   j=0;
       printf("\t\t\t  您输入的卡号不存在,请重新输入!\n");
            printf("\t\t\t  请输入对方卡号:");
            scanf("%d",&num1);
  }
 }
 if(num!=num1){
  while(1){
         printf("\t\t\t  请输入您的转账金额");
         scanf("%d",&jine);
         if(jine>person[i].money)
                printf("\t\t\t  您的余额不足,请重新输入!\n");
         else break;
  }
 }
 else {
  printf("\t\t\t  不能给自己转账,请按任意键返回!");
  getch();
  system("cls");
  return 0;
 }
 printf("\t\t\t  请确认您的转入用户及转账金额:\n");
 printf("\t\t\t  姓名%s  卡号%d  金额%d",person[j].name,person[j].num,jine);
 printf("\n\t\t\t  确认转账请按Y/y,返回请按N/n");
 while(1){
        c=getch();
  if(c=='N'||c=='n'){
   system("cls");
   break;
  }
     if(c=='Y'||c=='y'){
         person[i].money-=jine;
         person[j].money+=jine;
         printf("\n\t\t\t  转账成功,是否显示您的余额(按Y/y显示余额,按任意键返回)");
      c=getch();
      if(c=='Y'||c=='y'){
    printf("\t\t\t  您的余额为:%d",person[i].money);
    printf("\n\t\t\t  交易完成 按任意键返回!"); 
    getch();
    system("cls");break;
   }
   else system("cls");break;
  }
   else printf("\n\t\t\t  输入有误,请重新输入:");
 }

}
//---------------------------主界面-------------------------------
void zhujiemian()
{
    int i;
 while(1)
 {
  printf("\t\t************************************************\n");
     printf("\t\t*                                              *\n");
     printf("\t\t*                欢迎进入中国银行              *\n");
     printf("\t\t*                                              *\n");
     printf("\t\t************************************************\n");
     printf("\t\t                     1.开户\n\n");
     printf("\t\t                     2.存款\n\n");
     printf("\t\t                     3.查询\n\n");
        printf("\t\t                     4.取款\n\n");
     printf("\t\t                     5.转账\n\n");
     printf("\t\t                     6.退出\n\n");
 
     printf("\t\t          请输入您要办理的业务的编号:");
        scanf("%d",&i);
  if(1<=i&&i<=6){
            switch(i)
   {
                case 1:kaihu();break;
                case 2:cunkuan();break;         
                case 3:chaxun();break;
                case 4:qukuan();break;
             case 5:zhuanzhang();break;
           case 6:exit(0);break;
   }break;
  }
      else{
       printf("\t\t\t  您输入的编号有误,请重新输入!\n");
       Sleep(1000);
    fflush(stdin);
    system("cls");
   }


 zhujiemian();
}
//-----------------------main函数---------------------------------
void main()

 int j;
    system("color 1E");
 printf("\n\n\n\n\n\n\n\n\n\n");
 printf("\t\t\t    %c ",1);
 printf("欢迎登录中国银行!\n\n\n\n\n\n\n\n\n\n\n\n\n");
 printf("正在进入,请等候...\n");
 printf("===============================================================================\r");
 for(j=0;j<80;j++){
     Sleep(100);
     printf(">");
 }
  system("cls");   
 zhujiemian();
}

 

说明:该程序为模拟银行系统,程序中绿色字体的语句为注释部分!该程序能实现如下功能:1.开户 2.存款 3.查询 4.取款 5.转账

程序的部分运行图如下:

http://s10/mw690/a1f9a1f5td1cf13cece19&690

http://s11/mw690/a1f9a1f5td1cf1487328a&690

 


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有