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();//统计结果
    };
  • 相关阅读:
    常见存储过程分页PK赛——简单测试分析常见存储过程分页速度
    简单的ASP.NET无刷新分页
    程序员45个好习惯
    手机应用兼职开发平台,欢迎有识之士参加...
    DotNetRemoting分布式安全部署(整理+原创)
    刚刚整理的截获SQL错误代码弹出提示信息类.
    485modbus通讯协议
    485通信
    ucoss在stm32上的移植
    使用OFFICE组件出问题环境配置
  • 原文地址:https://www.cnblogs.com/ctsyx/p/6862928.html
Copyright © 2011-2022 走看看