C语言公交卡练习

#define _CRT_SECURE_NO_WARNINGS
//#define_CRT_NONSTDC_NO_DEPRECATE


#include    "stdio.h"
#include    "conio.h"

main()

{
    int    ticket = 0, stops = 0, cardmoney = 0,symbol = 0;
    char    choose = '\0';

    printf("||===============================================================||\n");
    printf("||---------------------------------------------------------------||\n");
    printf("||------------------------Welcome--------------------------------||\n");
    printf("||----------------------Use bus traffic--------------------------||\n");
    printf("||--------------------------Card---------------------------------||\n");
    printf("||---------------------------------------------------------------||\n");
    printf("||===============================================================||\n");

    printf("\n\n\n");
    printf("|-----------------------------------------------------------------|\n");
    printf("|-----------------------Please Input(0-8)-------------------------|\n");
    printf("|-----------------------------------------------------------------|\n");
    printf("|                       1.Add new card                            |\n");
    printf("|                       2.logout card                             |\n");
    printf("|                       3.Modify card                             |\n");
    printf("|                       4.Read card                               |\n");
    printf("|                       5.Save money                              |\n");
    printf("|                       6.Stat max money                          |\n");
    printf("|                       7.Display                                 |\n");
    printf("|                       8.Delete Data File                        |\n");
    printf("|                       0.Exit                                    |\n");
    printf("|-----------------------------------------------------------------|\n");
    printf("\n\n\n");

    scanf("%c", &choose);
    switch (choose)
    {
        case 'a': printf("你选择1\n"); break;
        case '2': printf("你选择2\n"); break;
        case '3': printf("你选择3\n"); break;
        case '4':
            while (symbol == 0)
            {
                printf("你选择的站数:");
                scanf("%d", &stops);
                if (1<=stops&&stops <= 10) { ticket = 1; symbol = 1; }
                else if (stops <= 15) { ticket = 2; symbol = 1; }
                else if (stops <= 20) { ticket = 3; symbol = 1; }
                else if (stops <= 25) { ticket = 4; symbol = 1; }
                else if (stops <= 30) { ticket = 5; symbol = 1; }
                else { printf("输入错误\n"); /*symbol = 0;*/ }
            }
                printf("你选择的站数是%d,票价是%d", stops, ticket);
                break;
            
        case '5':
            do
            {
                printf("请输入要充值的金额:");
                scanf("%d", &cardmoney);
                if (cardmoney <= 0)printf("金额数错误,请重新输入\n"); 
                //getch();
                //printf("显示:%d\n", cardmoney);
            } while (cardmoney <=0);
            //printf("你已充值金额:%d", cardmoney);
            break;
        case '6': printf("你选择6\n"); break;
        case '7': printf("你选择7\n"); break;
        case '8': printf("你选择8\n"); break;
        case '0':
            do
            {    
                printf("是否退出系统(Y/N):");
                scanf("%c\n", &choose);
            } while (choose!='y'&&choose!='Y'&&choose!='n'&&choose!='N');
            if (choose == 'y' || choose == 'Y')exit(0); break;
        default:printf("输入错误,请重新输入.\n");    
    }
    

system("pause");
return(0);
}

#include<iostream> using namespace std; class C { public: float card_fee; virtual void real_fee() = 0; virtual void show_the_real_fee() = 0; }; class student : public C { public: student(float fee) { card_fee = fee; } void real_fee(){ card_fee *= 0.5; }//计算学生卡的实际费用 void show_the_real_fee(){ cout << "学生卡实际的费用是:" << card_fee<<"元"<<endl; } }; class older : public C { public: older(float fee){ card_fee = fee; } void real_fee(){ card_fee *= 0.6; }//计算老人的实际费用 void show_the_real_fee(){ cout << "老人实际的费用是:" << card_fee << "元" << endl; } }; class normal : public C { public: normal(float fee){ card_fee = fee; } void real_fee(){ card_fee *= 0.95; }//计算一般的实际费用 void show_the_real_fee(){ cout << "一般市民卡实际的费用是:" << card_fee << "元" << endl; } }; void main() { cout << "请输入公交费原价:"; float fee; cin >> fee; cout <<"公交费原价为"<<fee<<"元"<< endl; cout << "请输入刷人群性质" << endl << "学生卡:请输 1;" << endl << "老人:请输 2;" << endl << "普通:请输 3;" << endl; int man; cin >> man;//2.定义了一个变量,用于了解用户刷的的种类,以便进行相应的计算 C *p_card;//3.定义了一个父类指针,为了方便对子类的操作(即:该指针指向"谁"时,用这个指针调用的函数就是"谁"的函数,因为子类的函数的名子都一样,函数里的内容不一样,调用不同子类的函数后,计算的结果就不同) switch (man)//4.根据用户的输入,开启相应的功能 { case 1: {student stu_card(fee); p_card = &stu_card; p_card->real_fee(); p_card->show_the_real_fee();}break; case 2: {older old_card(fee); p_card = &old_card; p_card->real_fee(); p_card->show_the_real_fee();}break; case 3: {normal normal_card(fee); p_card = &normal_card; p_card->real_fee(); p_card->show_the_real_fee();}break; default:cout <<"输入错误!"<< endl;//5.如果用户输入的不是1,2,3,而是其他字符,则报错 } getchar();getchar(); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值