• 《面向对象程序设计》课程作业 (四)


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

    类的划分

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

    类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();//统计结果
    };
  • 相关阅读:
    设备arduino的编译目录
    c# await 关键字错误
    开篇 hello 内Cool超人
    在Windows Azure虚拟机上开发Windows 8 应用
    使用LVS实现负载平衡之Windows Server 2008配置
    IDC Digital Transition Annual Festival(2018.10.19)
    Dell Technology Summit(2018.10.17)
    Lean Data Innovation Sharing Salon(2018.09.15)
    Trusted Block Chain Summit(2018.10.09)
    Artificial Intelligence Computing Conference(2018.09.12)
  • 原文地址:https://www.cnblogs.com/ctsyx/p/6862928.html
Copyright © 2020-2023  润新知