zoukankan      html  css  js  c++  java
  • ATM管理系统

    这个作业属于哪个课程 计算机18级
    这个作业要求在哪里 作业要求
    这个作业的目标 实现ATM管理系统
    学号 3180701208

    一.题目要求

    编写一个ATM管理系统,语言不限,要求应包括以下主要功能:

    (1)开户,销户

    (2)查询账户余额

    (3)存款

    (4)取款

    (5)转账(一个账户转到另一个账户)等...

    二.代码提交

    1.结构体的创建

     1  struct User 
     2  {
     3      char name[50];  //账号
     4      double  money;  //金额
     5      int flag;        //账号能否正常使用
     6     char key[50];   //密码
     7  } user[100];
    

    2.开户

     1 void KaiHu() // 开户
     2 {
     3     printf("开户中.....
    ");
     4     Sleep(1000);
     5     int id = UserNumber + 1;
     6     while (1)
     7     {
     8 
     9         for (int i = 0; i < 11; i++)
    10         {
    11             user[id].name[i] = rand()%9+1+'0';
    12         }
    13         user[id].name[11] = '';
    14         int flag = 0;
    15         for (int i = 1; i <= UserNumber; i++)
    16         {
    17             if (strcmp(user[id].name, user[i].name) == 0)
    18             {
    19                 flag = i;
    20                 break;
    21             }
    22         }
    23         if (!flag)break;
    24     }
    25     printf("开户成功,账户为:%s
    ", user[id].name);
    26     while (1)
    27     {
    28         user[id].d = 2;
    29         user[id].flag = 1;
    30         user[id].money = 0.01;
    31         strcpy(user[id].key,"111111");
    32         char ss[50], cc[50];
    33         while (1)
    34         {
    35             printf("请输入账户密码:");
    36             strcpy(ss, get_password());
    37             if (strlen(ss) != 6)
    38             {
    39                 printf("密码必须6位,请重新输入密码
    ");
    40                 memset(ss, '', sizeof(char) * 50);
    41             }
    42             else
    43             {
    44                 printf("请再次输入账户密码:");
    45                 strcpy(cc, get_password());
    46                 if (strcmp(ss, cc) != 0)
    47                 {
    48                     printf("两次密码不一致
    请重新输入密码
    ");
    49                     memset(ss, 0, sizeof(ss));
    50                     memset(cc, 0, sizeof(cc));
    51                 }
    52                 else
    53                 {
    54                     strcmp(user[id].key, ss);
    55                     UserNumber++;
    56                     ChuCun();
    57                     printf("密码设置成功
    ,开户成功
    按任意键返回
    ");
    58                     getchar();
    59                     getchar();
    60                     return;
    61                 }
    62       }
    63        }
    64    }
    65} 
    
    

    3.登录

     1 int login()       //登陆
     2 {
     3 
     4     char a[50];
     5     char b[50];
     6     int count = 0, i, flag = 0;
     7     while (1)
     8     {
     9         printf("	请输入您的用户名:");
    10         scanf("%s", a);
    11         printf("	请输入您的密码  :");
    12         strcpy(b, get_password());
    13 
    14         int fff = 0;
    15         for (int i = 1; i <= UserNumber; i++)
    16         {
    17             if (strcmp(a, user[i].name) == 0 && strcmp(b, user[i].key) == 0)
    18             {
    19                 fff = 1;
    20                 userID = i;
    21             }
    22         }
    23 
    24 
    25         if (!fff)
    26             printf("	用户名或者密码输入错误!请重新输入!
    ");
    37         else
    38         {
    39             printf("			正在登陆  请稍后
    ");
    40             printf("			");
    41             for (i = 0; i < 8; i++)
    42             {
    43                 printf("■");
    44                 Sleep(100);   //让系统在此处停留500毫秒之后在运行。
    45             }
    46             printf("
    ");
    47             break;
    48         }
    49         count++;
    50         if (count == 3)
    51         {
    52             printf("		您输入错误已超过三次,系统已退出!
    ");
    53             system("color 4a");
    54             flag = 1;
    55             break;
    56         }
    57     }
    58     return flag;
    59 }
    
    

    4.存款

     1 void savemoney()//存款
     2 {
     3     int a, i;
     4     char c;
     5     while (1)
     6     {
     7         printf("	请输入您的存款金额:");
     8         scanf("%d", &a);
     9         if (a < 0 || a % 100 != 0)
    10             printf("	输入有误,请重新输入!
    ");
    11         else
    12             break;
    13     }
    14     getchar();
    15     user[userID].money += a;
    16     printf("	存款成功
    ");
    17     getchar();
    18}
    

    5.取款

     1 void drawmoney()//取款
     2 {
     3     int a, i;
     4     char c;
     5     while (1)
     6     {
     7         printf("	请输入您的取款金额:");
     8         scanf("%d", &a);
     9         if (a > user[userID].money)
    10             printf("	账户余额不足,请重新输入!
    ");
    11         else if (a < 0 || a % 100 != 0)
    12             printf("	输入有误,请重新输入!
    ");
    13         else
    14             break;
    15     }
    16     getchar();
    17     user[userID].money -= a;
    18     printf("	取款成功,请收好您的钞票!
    ");
    19 }
    

    6.查询余额

    1 void showmoney()//查询余额
    2 {
    3     printf("	用户名  :%s
    ", user[userID].name);
    4     printf("	账户余额:%.2lf
    ", user[userID].money);
    5     printf("	请按Enter键返回
    ");
    6     getchar();
    7 }
    

    7.转账

      1 void transfer() // 转账
      2 {
      3 
      4     char a[50];
      5     while (1)
      6     {
      7 
      8         printf("请输入转账人账户:");
      9         scanf("%s", a);
     10         int flag = 0;
     11         for (int i = 1; i <= UserNumber; i++)
     12         {
     13 
     14             if (strcmp(a, user[i].name) == 0)
     15             {
     16                 flag = i;
     17                 break;
     18             }
     19         }
     20 
     21         if (flag == 0)
     22         {
     23             printf("收款人未在此银行或不存在,转账失败
    ");
     24             while (1)
     25             {
     26 
     27                 printf("1.重新输入账号
    2.退出
    请输入编号:");
     28                 int b=0;
     29                 scanf("%d", &b);
     30                 if (b == 2)
     31                     return;
     32                 else if (b == 1)
     33                     break;
     34                 else
     35                     printf("编号错误
    ");
     36             }
     37         }
     38         else
     69         {
     70             printf("请输入转账金额:");
     71             double s=0;
     72             //scanf("%lf",&s);
     73             int x = 0;
     74             while (1)
     75             {
     76                 if (x){
     77                     printf("余额不足,是否重新输入转账金额y/n(n将返回菜单)");
     78                     char ff[5];
     79                     scanf("%s",ff);
     80                     if(ff[0]=='n' || ff[0]=='N')
     81                         return ;
     82                     else printf("重新输入转账金额
    ");
     83                 }
     84 
     85                 x = 0;
     86                 scanf("%lf", &s);
     87                 if (user[userID].money - 2.50 < s)
     88                     x = 1;
     89                 if (!x)
     90                 {
     91                     printf("转账金额为:%.2f
    是否确认转账y/n (n将返回菜单)", s);
     92                     char f[5];
     93                     scanf("%s", f);
     94                     if (f[0] == 'n' || f[0] == 'N')
     95                         return;
     96                     user[flag].money += s;
     97                     user[userID].money -= s;
     98                     ChuCun();
     99                     printf("转账成功
    ");
    100                     Sleep(800);
    101                     return;
    102                 }
    103             }
    104         }
    105     }
    106 }
    

    8.主菜单

    1void Menu()
    2{
    3	int d;
    4	printf("----欢迎使用ATM管理系统-----
    ");
    5	printf("1.注册
    ");
    6       printf("2.登录
    ");
    7       printf("3.取款
    ");
    8       printf("4.存款
    ");
    9       printf("5.查询余额
    ");
    10      printf("6.转账
    ");
    11      printf("7.销户
    ");
    12      printf("8.退出系统
    
    ");
    13	printf("请输入你的选择:");
    14	scanf("%d",&d);
    15	
    16}
    
    

    三、运行截图

    主菜单

    开户

    登录

    存款

    取款

    查询余额

    转账

    销户

    四、实验小结

    psp2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min)
    Planning 计划 10 8
    Estimate 估计这个任务需要多少时间,并规划大致工作步骤 10 12
    Development 开发 120 160
    Analysis 需求分析(包括学习新技术) 12 6
    Design Spec 生成设计文档 10 10
    Design Review 设计复审 5 5
    Coding Standard 代码规范 3 10
    Design 具体设计 10 20
    Coding 具体编码 36 30
    Code Review 代码复审 10 10
    Test 测试(自我测试,修改代码,提交修改) 20 20
    Reporting 报告 10 3
    Test Report 测试报告 5 3
    Size Measurement 计算工作量 5 3
    Postmortem & Process Improvement Plan 事后总结,并提出过程改进计划 5 4
  • 相关阅读:
    Reusable action with query database
    Oracle实现分组统计记录
    Oracle行列转换的几种实现方法
    junit私有方法测试
    Junit实现抽象类测试(二)
    C++的性能C#的产能?! .Net Native 系列《二》:.NET Native开发流程详解
    C++的性能C#的产能?! .Net Native 系列向导
    c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥
    辞职敬礼
    WPF 心路历程
  • 原文地址:https://www.cnblogs.com/sdpz/p/14000059.html
Copyright © 2011-2022 走看看