zoukankan      html  css  js  c++  java
  • 购买到最多的巧克力实验代码

    shop.h

    #ifndef SHOP_H
    #define SHOP_H
    
    
    class Shop
    {
    public:
        Shop();
        int buy(int m,int n);//只用钱买到的巧克力数
        int chang(int m, int n);//兑换的巧克力
        int remain_coupons(int m,int n);//剩余的券
        void input();//输入
        void output();//输出
        void choose();//购买选项
        int getk();//获取k的值
        int gett();//获取t的值
        int getmoney();//获取money的值
        int getnumber();//获取number的值
        int getm();//获取m的值
    
    private:
        int money;//拥有的钱
        int number;//兑换一块巧克力需要的优惠券
        int k;//购买到的巧克力
        int t;//剩余的优惠券
        int m;//巧克力的单价
        int q;//只用钱买到的巧克力数
        int p;//优惠券兑换的巧克力数
        int n;//现在拥有的优惠券数
    };
    
    #endif // SHOP_H

    shop.cpp

    #include "shop.h"
    #include<iostream>
    #include<fstream>
    using namespace std;
    Shop::Shop()
    {
        money=0;
        number=0;
        k=0;
        t=0;
        m=1;
        q=0;
        p=0;
        n=0;
    }
    //求只用钱买到的巧克力数量,m代表你有的美元,n代表巧克力单价
    int Shop::buy(int m, int n)
    {
        int k;
        k=m/n;
        return k;
    }
    //运用递归函数求优惠券兑换的巧克力
    int Shop::chang(int m, int n)
    {
        if((m/n + m%n) < n){
            return m/n;
        }
        else{
            return (chang((m/n + m%n),n) + m/n);
        }
    
    }
    //运用递归函数求剩余的优惠券
    int Shop::remain_coupons(int m, int n)
    {
        if((m/n+m%n)<n){
            return (m/n+m%n);
        }
        else {
            return (remain_coupons((m/n+m%n),n));
        }
    }
    
    void Shop::input()
    {
        cout<<"     请问你有多少钱:";
        cin>>money;
        cout<<"     ---------------------"<<endl;
        cout<<"     多少优惠券兑换一块巧克力:";
        cin>>number;
        cout<<"     ---------------------"<<endl;
        cout<<"     巧克力的单价:";
        cin>>m;
        cout<<"     ---------------------"<<endl;
    }
    
    void Shop::output()
    {
        q=buy(money,m);//只用钱买到的巧克力数
        n=q;//最开始拥有的优惠券
        p=chang(n,number);
        k=q+p;
        t=remain_coupons(n,number);
        cout<<"     你总共能买到的巧克力数量是"<<k<<endl;
        cout<<"     你还剩下的优惠券的数量是"<<t<<endl;
        cout<<"     -----------------------"<<endl;
        cout<<"          继续进行购买请按a"<<endl;
        cout<<"          退出请按b"<<endl;
        cout<<"     -----------------------"<<endl;
        cout<<"     ";//设置后面输入选项的位置
    }
    
    void Shop::choose()
    {
        cout<<endl;
        cout<<endl;
        cout<<"   ____________________________________________"<<endl;
        cout<<"   |------------------商店--------------------|"<<endl;
        cout<<"   |------------------------------------------|"<<endl;
        cout<<"   |---------本店购买巧克力,一美元一块-------|"<<endl;
        cout<<"   |---------且可以用优惠券兑换巧克力---------|"<<endl;
        cout<<"   |                                          |"<<endl;
        cout<<"   |请选择:----------------------------------|"<<endl;
        cout<<"   |----a.购买巧克力--------------------------|"<<endl;
        cout<<"   |----b.退出购买----------------------------|"<<endl;
        cout<<"   |                                          |"<<endl;
        cout<<"   |           请输入相应的按键进行选择       |"<<endl;
        cout<<"   |__________________________________________|"<<endl;
    }
    
    int Shop::getk()
    {
        int m;
        m=k;
        return m;
    }
    
    int Shop::gett()
    {
        int n;
        n=t;
        return n;
    }
    
    int Shop::getmoney()
    {
        int a;
        a=money;
        return a;
    }
    
    int Shop::getnumber()
    {
        int b;
        b=number;
        return b;
    }
    
    int Shop::getm()
    {
        int c;
        c=m;
        return c;
    }

    main.cpp

    #include <iostream>
    #include<fstream>
    #include "shop.h"
    using namespace std;
    
    int main()
    {
        Shop chocolate;
        chocolate.choose();
        ofstream fout;
        char ch;
        //设计输入选项按键位置
        cout<<endl;
        cout<<"    ";
        while(cin>>ch){
            switch (ch) {
            case 'a':
                chocolate.input();//调用输入函数
                chocolate.output();//将结果打印在屏幕
                //将内容写进文档
                fout.open("E:\outfile.txt",ios::app);
                    if(!fout){
                        cout << "无法打开文件!!!"<<endl;
                        return 1;
                    }
                    fout <<ch<<endl;
                    fout<<"     请问你有多少钱:"<<chocolate.getmoney()<<endl;
                    fout<<"     ---------------------"<<endl;
                    fout<<"     多少优惠券兑换一块巧克力:"<<chocolate.getnumber()<<endl;
                    fout<<"     ---------------------"<<endl;
                    fout<<"     巧克力单价:"<<chocolate.getm()<<endl;
                    fout<<"     ---------------------"<<endl;
                    fout<<"     你总共能买到的巧克力数量是"<<chocolate.getk()<<endl;
                    fout<<"     你还剩下的优惠券的数量是"<<chocolate.gett()<<endl;
                    fout<<"     -----------------------"<<endl;
                    fout<<"          继续进行购买请按a"<<endl;
                    fout<<"          退出请按b"<<endl;
                    fout<<"     -----------------------"<<endl;
                    fout.close();                
                break;
            case 'b':
                cout<<"    购买结束,按回车退出"<<endl;
                cout<<"     -----------------------"<<endl;
                cout<<"     ";//设置后面输入选项的位置
                fout.open("E:\outfile.txt",ios::app);
                    if(!fout){
                        cout << "无法打开文件!!!"<<endl;
                        return 1;
                     }
                    fout<<ch<<endl;
                    fout<<"    购买结束,按回车退出"<<endl;
                    fout<<"     -----------------------"<<endl;
                    fout.close();
                exit(0);
            default:
                cout<<"    请输入a或者b"<<endl;
                cout<<"     -----------------------"<<endl;
                cout<<"     ";//设置后面输入选项的位置
                fout.open("E:\outfile.txt",ios::app);
                    if(!fout){
                        cout << "无法打开文件!!!"<<endl;
                        return 1;
                     }
                    fout<<ch<<endl;
                    fout<<"    请输入a或者b"<<endl;
                    fout<<"     -----------------------"<<endl;
                    fout.close();
                break;
            }
        }
        return 0;
    }
  • 相关阅读:
    创建你的 /proc 文件
    在 /proc 里实现文件
    使用 /proc 文件系统
    printk函数速率限制
    printk函数打开和关闭消息
    printk 函数消息是如何记录的
    mysql存储程序
    Javascript 笔记与总结(1-1)作用域
    Java实现 LeetCode 142 环形链表 II(二)
    Java实现 LeetCode 142 环形链表 II(二)
  • 原文地址:https://www.cnblogs.com/ZhangStudy/p/12499420.html
Copyright © 2011-2022 走看看