Java——一个Java实体类,表示一个试题的模型

news2024/11/19 3:36:39

这段代码是一个Java实体类,表示一个试题的模型。
该实体类具有以下属性:

  • id:题号,表示试题的编号。
  • title:题目,表示试题的题目内容。
  • optionA:选项A,表示试题的选项A。
  • optionB:选项B,表示试题的选项B。
  • optionC:选项C,表示试题的选项C。
  • optionD:选项D,表示试题的选项D。
  • answer:答案,表示试题的正确答案。
  • value:分值,表示该试题的分值。

该实体类提供了对应属性的获取(get)和设置(set)方法,用于对试题的属性进行操作。

这个实体类用于表示试题的数据模型,可以在试题系统中使用,用来存储和获取试题的相关数据。

 

package demo1130;
import java.util.ArrayList;
import java.util.Scanner;

//(业务)功能类
public class QuestionTest {

	public static void main(String[] args) {
		new QuestionTest().start();

	}

	Scanner sc = new Scanner(System.in);

	public void start() {
		while (true) {
			System.out.println("------------------------");
			System.out.println("----请选择功能-----------");
			System.out.println("----1-试题录入-----------");
			System.out.println("----2-试题查询(按照题号查看)-----------");
			System.out.println("----3-试题删除(按照题号删除)-----------");
			System.out.println("----4-试题修改(按照题号修改)-----------");
			System.out.println("----5-查看试题(查看全部试题)-----------");
			System.out.println("----6-排序试题(根据题号排序)-----------");
			System.out.println("----7-回答试题(正确数/得分)-----------");
			System.out.println("----请输入功能序号:-----------");
			switch (Integer.parseInt(sc.nextLine())) {
			case 1:
				inputs();
				break;
			case 2:
				getModelById();
				break;
			case 3:
				delModelById();
				break;
			case 4:
				updModelById();
				break;
			case 5:
				print();
				break;
			case 6:
				sortById();
				break;
			case 7:
				test();
				break;

			}
			System.out.println("****是否退出系统? y/n ****");
			if ("y".equalsIgnoreCase(sc.nextLine()))
				break;
		}

	}

	public void test() {//回答试题
		int sum = 0;// 总分
		int count = 0;// 正确数
		for (QuestionModel model : list) {
			System.out.println("题号:" + model.getId());
			System.out.println("题目:" + model.getTitle());
			System.out.println("选项A:" + model.getOptionA());
			System.out.println("选项B:" + model.getOptionB());
			System.out.println("选项C:" + model.getOptionC());
			System.out.println("选项D:" + model.getOptionD());
//			System.out.println("答案:"+model.getAnswer());
			System.out.println("分值:" + model.getValue());
			System.out.println("请输入答案:");
			String line = sc.nextLine();
			if (model.getAnswer().equalsIgnoreCase(line)) {
				sum += model.getValue();
				count++;
			}
		}
		System.out.println("正确数" + count + "\t得分:" + sum);
	}

	public void sortById() {//排序
		int len = list.size();
		for (int i = 0; i < len - 1; i++) {
			for (int j = 0; j < len - i - 1; j++) {
				QuestionModel m1 = list.get(j);
				QuestionModel m2 = list.get(j + 1);
				if (m1.getId() > m2.getId()) {
					list.set(j, m2);
					list.set(j + 1, m1);
				}
			}
		}

	}

	public void updModelById() {//修改
		System.out.println("请输入即将修改的题号:");
		int id = Integer.parseInt(sc.nextLine());
		for (QuestionModel model : list) {
			if (model.getId() == id) {
				System.out.println("该题目信息如下:");
				System.out.println("题号:" + model.getId());
				System.out.println("题目:" + model.getTitle());
				System.out.println("选项A:" + model.getOptionA());
				System.out.println("选项B:" + model.getOptionB());
				System.out.println("选项C:" + model.getOptionC());
				System.out.println("选项D:" + model.getOptionD());
				System.out.println("答案:" + model.getAnswer());
				System.out.println("分值:" + model.getValue());
				System.out.println("请进行修改操作:");
				System.out.println("请输入题目:");
				model.setTitle(sc.nextLine());
				System.out.println("请输入选项A:");
				model.setOptionA(sc.nextLine());
				System.out.println("请输入选项B:");
				model.setOptionB(sc.nextLine());
				System.out.println("请输入选项C:");
				model.setOptionC(sc.nextLine());
				System.out.println("请输入选项D:");
				model.setOptionD(sc.nextLine());
				System.out.println("请输入答案:");
				model.setAnswer(sc.nextLine());
				System.out.println("请输入分值:");
				model.setValue(Integer.parseInt(sc.nextLine()));

			}
		}

	}

	public void delModelById() {//删除
		System.out.println("请输入即将删除的题号:");
		int id = Integer.parseInt(sc.nextLine());
		for (int i = list.size() - 1; i >= 0; i--) {
			QuestionModel model = list.get(i);
			if (model.getId() == id) {
				list.remove(i);
				System.out.println("该题号(" + ")已删除");
				return;
			}
		}
		System.out.println("该题号对应题目不存在");
	}

	public void getModelById() {//查询
		System.out.println("请输入即将查询的题号:");
		int id = Integer.parseInt(sc.nextLine());
		for (QuestionModel model : list) {
			if (model.getId() == id) {
				System.out.println("题号:" + model.getId());
				System.out.println("题目:" + model.getTitle());
				System.out.println("选项A:" + model.getOptionA());
				System.out.println("选项B:" + model.getOptionB());
				System.out.println("选项C:" + model.getOptionC());
				System.out.println("选项D:" + model.getOptionD());
				System.out.println("答案:" + model.getAnswer());
				System.out.println("分值:" + model.getValue());
				return;
			}

		}
		System.out.println("该题号对应题目不存在");
	}

	public void inputs() {//录入
		while (true) {
			input();
			System.out.println("是否继续录入? y/n");
			if ("n".equalsIgnoreCase(sc.nextLine()))
				break;
		}
	}

	public boolean isExist(int id) {// 判断题号是否存在
		for (QuestionModel model : list) {
			if (model.getId() == id) {
				System.out.println("该题号(" + ")已经存在");
				return true;
			}
		}
		return false;
	}

	ArrayList<QuestionModel> list = new ArrayList<>();

	public void input() {
		QuestionModel model = new QuestionModel();
		int id = 0;
		do {
			System.out.println("请输入题号:");
			id = Integer.parseInt(sc.nextLine());
		} while (isExist(id));
		model.setId(id);
		System.out.println("请输入题目:");
		model.setTitle(sc.nextLine());
		System.out.println("请输入选项A:");
		model.setOptionA(sc.nextLine());
		System.out.println("请输入选项B:");
		model.setOptionB(sc.nextLine());
		System.out.println("请输入选项C:");
		model.setOptionC(sc.nextLine());
		System.out.println("请输入选项D:");
		model.setOptionD(sc.nextLine());
		System.out.println("请输入答案:");
		model.setAnswer(sc.nextLine());
		System.out.println("请输入分值:");
		model.setValue(Integer.parseInt(sc.nextLine()));
		list.add(model);

	}

	public void print() {//查看
		for (QuestionModel model : list) {
			System.out.println("题号:" + model.getId());
			System.out.println("题目:" + model.getTitle());
			System.out.println("选项A:" + model.getOptionA());
			System.out.println("选项B:" + model.getOptionB());
			System.out.println("选项C:" + model.getOptionC());
			System.out.println("选项D:" + model.getOptionD());
			System.out.println("答案:" + model.getAnswer());
			System.out.println("分值:" + model.getValue());
		}
	}

}
package demo1130;

//实体类
//试题
public class QuestionModel {

	private int id;// 题号
	private String title;// 题目
	private String optionA;// 选项A
	private String optionB;// 选项B
	private String optionC;// 选项C
	private String optionD;// 选项D
	private String answer;// 答案
	private int value;// 分值

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getOptionA() {
		return optionA;
	}

	public void setOptionA(String optionA) {
		this.optionA = optionA;
	}

	public String getOptionB() {
		return optionB;
	}

	public void setOptionB(String optionB) {
		this.optionB = optionB;
	}

	public String getOptionC() {
		return optionC;
	}

	public void setOptionC(String optionC) {
		this.optionC = optionC;
	}

	public String getOptionD() {
		return optionD;
	}

	public void setOptionD(String optionD) {
		this.optionD = optionD;
	}

	public String getAnswer() {
		return answer;
	}

	public void setAnswer(String answer) {
		this.answer = answer;
	}

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}
}

 

这段代码可以分为以下几个部分:

  1. 包名和导入语句:

    package demo1130;
    
    // 导入所需的类
    
  2. QuestionModel类的定义:

    public class QuestionModel {
        // 类的成员变量
        private int id;
        private String title;
        private String optionA;
        private String optionB;
        private String optionC;
        private String optionD;
        private String answer;
        private int value;
    
        // 类的方法
        // 省略 getter 和 setter 方法
    }
    
  3. QuestionModel类的成员变量和 getter/setter 方法的定义:

    public int getId() {
        return id;
    }
    
    public void setId(int id) {
        this.id = id;
    }
    
    public String getTitle() {
        return title;
    }
    
    public void setTitle(String title) {
        this.title = title;
    }
    
    public String getOptionA() {
        return optionA;
    }
    
    public void setOptionA(String optionA) {
        this.optionA = optionA;
    }
    
    public String getOptionB() {
        return optionB;
    }
    
    public void setOptionB(String optionB) {
        this.optionB = optionB;
    }
    
    public String getOptionC() {
        return optionC;
    }
    
    public void setOptionC(String optionC) {
        this.optionC = optionC;
    }
    
    public String getOptionD() {
        return optionD;
    }
    
    public void setOptionD(String optionD) {
        this.optionD = optionD;
    }
    
    public String getAnswer() {
        return answer;
    }
    
    public void setAnswer(String answer) {
        this.answer = answer;
    }
    
    public int getValue() {
        return value;
    }
    
    public void setValue(int value) {
        this.value = value;
    }
    

以上是整段代码的分块解析。这段代码定义了一个名为 QuestionModel 的实体类,用于表示试题的模型。该实体类具有题号、题目、选项和答案等属性,并提供了对应的获取和设置方法。这个实体类可以作为试题系统中试题数据的载体,在处理试题相关的逻辑时使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/928092.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【智算中心】GPU是如何改变世界的

现在有市场消息表示&#xff0c;NVIDIA正计划减少A800 GPU的产量&#xff0c;以促进其更高端的H800 GPU 的销售。很显然NVIDIA是希望从H800 GPU上获得更多销售量&#xff0c;从中国市场获得更多利益。而且最近一段时间有传闻美国要彻底封杀AI芯片的出口&#xff0c;让国内甚至连…

错误:依赖检测失败: mysql-community-libs(x86-64) >= 5.7.9 被 (已安裝) mysql-community-li

错误&#xff1a; 错误原因&#xff1a;没有删除之前安装的依赖问题 解决办法&#xff1a; yum remove mysql-libs 再用下面指令检查一遍&#xff1a; rpm -qa | grep mysql 如果有还未清理的&#xff0c;用下面指令&#xff1a; rpm -e xxx

Huawei AP 3030DN Fit转换Fat

一、FTP软件下载与安装 二、下载bin文件&#xff0c;AP系统用 三、终端连接AP 四、传送文件 五、升级AP system-view ap-mode-switch prepareap-mode-switch check system-view ap-mode-switch prepare ap-mode-switch check ap-mode-switch ftp 3030dn.bin 172.21.1.250 t…

windows环境 pip安装mysqlclient失败问题记录及解决方案

1.问题记录 > pip install -i https://pypi.douban.com/simple mysqlclient Looking in indexes: https://pypi.douban.com/simple Collecting mysqlclientUsing cached https://pypi.doubanio.com/packages/50/5f/eac919b88b9df39bbe4a855f136d58f80d191cfea34a3dcf96bf5d…

半导体企业如何进行跨网数据传输,又能保护核心数据安全?

为了保护设计文档、代码文件等内部核心数据&#xff0c;集成电路半导体企业一般会将内部隔离成多个网络&#xff0c;比如研发网、办公网、生产网、测试网等。常规采取的网络隔离手段如下&#xff1a; 1、云桌面隔离&#xff1a;一方面实现数据不落地&#xff0c;终端数据安全有…

学习JAVA打卡第四十二天

正则表达式及字符串的替换与分解 ⑴正则表达式 正则表达式是string对象的字符序列&#xff0c;该字符序列中含有具有特殊意义的字符&#xff0c;这些特殊字符称作正则表达式的元字符。 注&#xff1a;由于“ ”代表任何一个字符&#xff0c;所以在正则表达式中如果想使用普…

【PLSQL】PLSQL学习笔记

文章目录 一&#xff1a;记录类型1.语法2.代码实例 二&#xff1a;字符转换三&#xff1a;%TYPE和%ROWTYPE1.%TYPE2.%ROWTYPE 四&#xff1a;循环1.LOOP2.WHILE&#xff08;推荐&#xff09;3.数字式循环 五&#xff1a;游标1.游标定义及读取2.游标属性3.NO_DATA_FOUND和%NOTFO…

抖音web主页视频爬虫

需要抖音主页视频爬虫源码的发私信&#xff0c;小偿即可获得长期有效的采集程序。 比构造 s_v_web_id 验证滑块的方法更快&#xff0c;更稳定。

SELinux 入门 pt.2

哈喽大家好&#xff0c;我是咸鱼 在《SELinux 入门 pt.1》中&#xff0c;咸鱼向各位小伙伴介绍了 SELinux 所使用的 MAC 模型、以及几个重要的概念&#xff08;主体、目标、策略、安全上下文&#xff09; 我们还讲到&#xff1a; 对于受 SELinux 管制的进程&#xff0c;会先…

React 全栈体系(三)

第二章 React面向组件编程 四、组件三大核心属性3: refs与事件处理 1. 效果 需求: 自定义组件, 功能说明如下: 点击按钮, 提示第一个输入框中的值当第2个输入框失去焦点时, 提示这个输入框中的值 2. 理解 组件内的标签可以定义ref属性来标识自己 3. 编码 3.1 字符串形式…

【javaweb】学习日记Day7 - Mysql 数据库 DQL 多表设计

之前学习过的SQL语句笔记总结戳这里→【数据库原理与应用 - 第六章】T-SQL 在SQL Server的使用_Roye_ack的博客-CSDN博客 目录 一、DQL 数据查询 1、基本查询 2、条件查询 3、分组查询 &#xff08;1&#xff09;聚合函数 ① count函数 ② max min avg sum函数 &…

无涯教程-进程 - 管道(Pipes)

管道是两个或多个相关进程之间的通信介质&#xff0c;它可以在一个进程内&#xff0c;也可以在子进程与父进程之间进行通信。 可以实时查看管道机制&#xff0c;例如用管道将水填充到某个容器(例如桶)中&#xff0c;然后取回某人(例如用杯子)。填充进程只不过是写入管道&#…

【无标题】jenkins消息模板(飞书)

这里写目录标题 Jenkins 安装的插件 发送消息到飞书预览 1 &#xff08;单Job&#xff09;预览 2 &#xff08;多Job&#xff0c;概览&#xff09; Jenkins 安装的插件 插件名称作用Rebuilder Rebuilder。 官方地址&#xff1a;https://plugins.jenkins.io/rebuild 安装方式&a…

软件研发CI/CD流水线图解

当谈到现代软件开发流程时&#xff0c;持续集成&#xff08;Continuous Integration&#xff0c;简称CI&#xff09;和持续交付&#xff08;Continuous Delivery&#xff0c;简称CD&#xff09;是两个关键的实践。它们旨在加速开发流程、提高软件质量&#xff0c;并使软件发布更…

java八股文面试[JVM]——元空间

JAVA8为什么要增加元空间 为什么要移除永久代&#xff1f; 知识来源&#xff1a; 【2023年面试】JVM8为什么要增加元空间_哔哩哔哩_bilibili

shopee开店后店铺怎么运营?这几点运营技巧要学会!

Shopee卖家开店后&#xff0c;这几点运营技巧要学会&#xff01; 1.Listing上架 产品在上架前&#xff0c;卖家要为主打产品需要精细化打造好文案和图片后再上传&#xff0c;尽量不要随意上架或者等到上架后再优化&#xff0c;避免浪费了新品最佳流量时期。 卖家可以从标题、…

【基于Arduino的仿生蚂蚁机器人】

【基于Arduino的仿生蚂蚁机器人】 1. 概述2. Arduino六足位移台–蚂蚁机器人3D模型3. 3D 打印零件4. 组装Arduino六足位移台5. Arduino蚂蚁机器人电路图6. 为Arduino Hexapod设计PCB7. 组装电路板8. 系统代码9. Arduino蚂蚁机器人安卓应用程序在本教程中,我将向您展示如何构建…

Total Uninstall | Windows 专业卸载清理工具

前言&#xff1a;Total Uninstall PC 专业卸载清理工具&#xff1a;彻底清除软件痕迹的神器 在日常使用电脑的过程中&#xff0c;我们常常需要安装和卸载各种软件。然而&#xff0c;传统的卸载方法往往并不能彻底清除软件的痕迹&#xff0c;使得电脑逐渐变慢或者出现各种问题。…

Idea常用快捷键--让你代码效率提升一倍(一)

一、代码编辑相关快捷键 1.单行复制(实现快速创建多个对象)CtrlD 2.空出下一行 ShiftEnter 3.单行注释快捷键 ctrl / 4.快速构建构造函数&#xff0c;setter&#xff0c;getter、toString方法 AltInsert 4.显示快速修复和操作的菜单 altenter 5.格式化代码&#xff1a;C…

leetcode 767. Reorganize String(重组字符串)

重新排列字符串s中的字母&#xff0c;使得任意两个相邻的字母都不相同。 思路&#xff1a; 让相邻字母不同&#xff0c;能想到的办法是先把相同的字母排列&#xff0c; 然后在相同字母的缝隙中插入另一种字母。 比如"aab", 先把"a a"排出来&#xff0c;再…