搜索
查看: 3820|回复: 15
打印 上一主题 下一主题

版主发帖慢,我给大家布作业

[复制链接]
跳转到指定楼层
楼主
发表于 2012-12-17 18:16:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
相信大多数坛友都有去银行取款的经历吧,我第一个(自主开发)C程序就是ATM取款机的模拟程序哦~~

内容:
编写一个模拟ATM机运行的程序
                             须含以下项目:1.存取款(肯定的)
                                                      2.能汇款
                                                      3.卡里还有5000,限制每次取款最多1000,汇款最多500
                                                      4.操作完了以后不能直接结束,要返回一级菜单继续操作(当然,一级菜单有退出键)
                                                      5.三次输入密码错误冻结
                                                      6.修改密码功能
                                                      7.最重要的~中文操作界面~
这玩意儿三种结构都有了,是初学者自我测验的好项目(为啥我当时能够想出这么好的题材~~~)



沙发
发表于 2012-12-17 22:43:24 | 只看该作者
我来试一试
板凳
发表于 2012-12-18 00:31:30 | 只看该作者
版本1.0
初始密码为:123456

[mw_shl_code=c,true]
#include <cstdlib>
#include <iostream>
#include <windows.h>
using namespace std;
class ATM
{
    private:
      int  money,password;
    public:
      //卡里原有5000元,初始密码为123456
      ATM()
      {
          money=5000;
          password=123456;
      }
      //存款
      void depositMoney(int money)
      {
        
        this->money+=money;
        printf("操作已成功,正在返回主菜单!");   
      }
      //取款
      void getMoney()
      {
        int mymoney;
        do
        {
          system("CLS");
          printf("请输入您要取款的金额:");
          scanf("%d",&mymoney);
          if(mymoney<=1000) //每次最多只能取1000元
            {
              
              this->money-=mymoney;
              printf("操作已成功,请取款,正在返回主菜单!");
              break;  
            }
          else
            {
              printf("为了您的账户安全,每次取款最多1000元\n");
              Sleep(3000);
              continue;
            }
         }while(1);     
      }
      //汇款
      void sendMoney()
      {
        int account,mymoney;
        do
        {  
          system("CLS");
          printf("请输入您要汇入的账户和金额(用空格隔开):");
          scanf("%d %d",&account,&mymoney);
          if(mymoney<=500)
          {
            this->money-=mymoney;
            printf("操作已成功,正在返回主菜单!");
            break;               
          }
          else
            {
              printf("为了您的账户安全,每次汇款最多500元");
              Sleep(5000);
              continue;
            }   
        }while(1);
      }
      //查询账户余额
      void printAccount()
      {
          system("CLS");
          printf("您当前账户余额为:%d\n",this->money);
          printf("正在返回主菜单!");
         
      }
      //输入密码
      void enterPassword()
      {
          int mypassword,count=0; //密码输错计数
         
          do
          {
            count++;
            printf("==欢迎使用 啊哈C银行 ATM==\n");
            printf("请输入您的密码:");
            scanf("%d",&mypassword);
            if(mypassword==this->password)
            {
               break;                           
            }
            else if(count==3)//输错3次密码,退出程式
            {
               printf("您已输错3次密码,为了您的账户安全,现将您的账户进行冻结\n");
               Sleep(3000);
               exit(0);  
            }
            else
            {
               printf("密码有误,请再次输入密码\n");  
            }
          }while(1);
          printf("密码正确\n");
      }
      //修改密码
      void changePassword()
      {
        int newpassword1,newpassword2;
        
        do
        {   
          system("CLS");
          printf("请输入您的新密码:");
          scanf("%d",&newpassword1);
          printf("请再一次输入您的新密码:");
          scanf("%d",&newpassword2);
          if(newpassword1==newpassword2)
          {   
            this->password=password;
            printf("您的新密码已修改成功!");
            break;
          }
          else
          {
            printf("两次密码不一样,请重新输入\n");
            Sleep(5000);
            continue;   
          }
        }while(1);      
           
      }        
};

int main(int argc, char *argv[])
{
    int mymoney,sel;
    ATM host;
    host.enterPassword();
    Sleep(500);
    system("CLS");
    do
    {
    printf("\n");               
    printf("===请选择您需要的业务===\n");
    printf("===  1.   存款       ===\n");
    printf("===  2.   取款       ===\n");
    printf("===  3.   汇款       ===\n");
    printf("===  4.查询账户余额  ===\n");
    printf("===  5.修改账户密码  ===\n");
    printf("===  6.   退出       ===\n");
    printf("========================\n");
    printf("请选择您要操作的业务[1-6]\n");
    scanf("%d",&sel);
    switch(sel)
    {
      case 1:
        system("CLS");
        printf("请输入您要存入的金额:");
        scanf("%d",&mymoney);
        host.depositMoney(mymoney);
        Sleep(3000);
        break;
      case 2:
        host.getMoney();
        Sleep(3000);
        break;  
      case 3:
        host.sendMoney();
        Sleep(3000);
        break;
      case 4:
        host.printAccount();
        Sleep(3000);
        break;
      case 5:
        host.changePassword();
        Sleep(3000);  
        break;
      case 6:
        printf("正在退出中...\n");  
        printf("  请取卡...\n");
        Sleep(2000);      
        exit(0);
        break;
      default :
        printf("输入有误,请选择[1-6]\n");
        Sleep(3000);
        break;                        
    }
    system("CLS");
    }while(1);   
    system("PAUSE");
    return EXIT_SUCCESS;
}
[/mw_shl_code]
地板
发表于 2012-12-19 00:11:22 | 只看该作者
太強了  厲害厲害
5#
 楼主| 发表于 2012-12-19 08:36:19 | 只看该作者
henk 发表于 2012-12-18 00:31
版本1.0
初始密码为:123456

-_-请检查代码~该版本无法通过编译器执行
6#
发表于 2012-12-19 13:39:42 来自手机 | 只看该作者
伊洛 发表于 2012-12-19 08:36 -_-请检查代码~该版本无法通过编译器执行

这是用c++
写的,啊哈c的编译器应该没办法跑
7#
发表于 2013-1-8 22:20:18 | 只看该作者
额,不错啊,我学习啦 。
8#
发表于 2013-1-12 14:18:51 | 只看该作者
{:soso_e141:}
9#
发表于 2013-1-12 14:19:45 | 只看该作者
啊哈C第3章后面的内容怎么略了
10#
发表于 2013-1-27 10:38:56 | 只看该作者
最近上班有点忙,呵呵
11#
发表于 2013-1-30 16:41:30 | 只看该作者
忽然发现这题我用VB和PASCAL各做过一部分。。
12#
发表于 2013-1-30 18:47:30 | 只看该作者
弄好一点了

ATM.zip

5.65 KB, 下载次数: 10

13#
发表于 2013-1-30 19:24:28 | 只看该作者
1104192709 发表于 2013-1-30 18:47
弄好一点了

密码是1104192709
14#
发表于 2013-1-30 20:22:38 | 只看该作者
1104192709 发表于 2013-1-30 18:47
弄好一点了

有问题有问题有问题
15#
发表于 2013-1-31 11:41:04 | 只看该作者
The new ATM.zip (7.64 KB, 下载次数: 9) 新的
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表