zoukankan      html  css  js  c++  java
  • 《面向对象程序设计》课程作业 (四)

    •采取面向对象的方法,四则运算自动出题软件,根据需求可以划分为几个类?每个类具有什么属性?每个类具有什么行为?
    •类与类之间是如何进行协作的?谁给谁发送消息?谁持有谁的引用?
    •该自动出题软件采取何种算法或者是如何实现的?可以采用流程图描述的方法。

    类的划分

    根据需求,我划分了三个类。

    类1:UserInteraction

    • 作用:负责与用户交互
    • 属性:题数
    • 行为:读取用户输入的题数、选择语言、

    类2:Expression

    • 作用:负责有关算式的部分
    • 属性:算式字符串、符号字符数组
    • 行为:产生随机数字、产生随机符号、产生算式

    类3:Answer

    • 作用:负责有关答案的部分
    • 属性:算式结果、正确题数、错误题数
    • 行为:运算算式答案、检验答案、统计结果

    流程图

    首先UserInteraction类负责与用户交互,输入题目数量n和选择语言后传递给Expression类,Expression类根据传递的消息进行算式的产生,然后传递给Answer类,Answer类根据产生的算式进行答案的运算,再根据UserInteraction类中输入的答案判断对错,最后输出统计结果。

    代码构思

    class UserInteraction //负责与用户交互 
    {
    private:
    	int n;//题数 
    	int language;
                int ans;//答案
    public:
    	void getNumber(int n);//获取题数
    	void chooseLanguage();//选择语言 
    	void getQuestions();//统计题数
    	void getAnswer();//获取答案
    };
    
    class Expression //负责和算式有关的 
    {
    private:
    	string equa;//算式
    	char sign[4];
    public:
    	void randomNumber(); //随机数字
    	void randomOperation(); //随机符号
    	void generateExpression();//产生算式 
    }; 
    
    class Answer() //负责跟答案有关的部分 
    {
    private:
    	double result;
    	int right;
    	int wrong;
    public:
    	void calculateResult (); //运算答案
    	void checkanswer(); //检验答案
    	void countQuestions();//统计结果
    };
  • 相关阅读:
    Eclipse 重构功能的使用与重构快捷键
    Idea工具常用技巧总结
    Eclipse常用快捷键
    RabbitMQ的原理和使用
    总结消息队列RabbitMQ的基本用法
    rabbitmq常见运维命令和问题总结
    关于RabbitMQ关键性问题的总结
    Rabbit MQ 面试题相关
    RabbitMQ的使用总结
    史玉柱: 我的成功不是偶然(底下还有一堆相关链接)
  • 原文地址:https://www.cnblogs.com/ctsyx/p/6862928.html
Copyright © 2011-2022 走看看