首页 > 其他分享 >个人项目互评

个人项目互评

时间:2023-09-21 21:23:45浏览次数:40  
标签:题目 个人 项目 用户 生成 互评 XX fileWriter 输入

个人项目互评

1 前言

本文是应要求对结对编程队友韩成玉同学的个人项目评价的分析与评价。个人看法可能不全面,理解有偏差,还望理解

2 个人项目需求

本次个人项目的需求如下:

用户:

小学、初中和高中数学老师。

功能:

1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户名、密码”,重新输入用户名、密码;

2、登录后,系统提示“准备生成XX数学题目,请输入生成题目数量(输入-1将退出当前用户,重新登录):”,XX为小学、初中和高中三个选项中的一个,用户输入所需出的卷子的题目数量,系统默认将根据账号类型进行出题。每道题目的操作数在1-5个之间,操作数取值范围为1-100;

3、题目数量的有效输入范围是“10-30”(含10,30,或-1退出登录),程序根据输入的题目数量生成符合小学、初中和高中难度的题目的卷子(具体要求见附表)。同一个老师的卷子中的题目不能与以前的已生成的卷子中的题目重复(以指定文件夹下存在的文件为准,见5);

4、在登录状态下,如果用户需要切换类型选项,命令行输入“切换为XX”,XX为小学、初中和高中三个选项中的一个,输入项不符合要求时,程序控制台提示“请输入小学、初中和高中三个选项中的一个”;输入正确后,显示“”系统提示“准备生成XX数学题目,请输入生成题目数量”,用户输入所需出的卷子的题目数量,系统新设置的类型进行出题;

5、生成的题目将以“年-月-日-时-分-秒.txt”的形式保存,每个账号一个文件夹。每道题目有题号,每题之间空一行;

 

 

3 队友代码分析

1、User类 :用户基本属性,生成用户文件夹和相应题目文件方法,生成试卷方法。(个人不喜欢把这两方法放进用户类,更倾向放进系统类。)

2、Operations类 :在构造函数使用HashMap存放所有用户,存放用户登录和根据用户操作方法

图形用户界面, 文本, 应用程序

描述已自动生成

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

文本

低可信度描述已自动生成

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

图形用户界面, 文本, 应用程序

描述已自动生成

3、ElementMaker 类 根据类型随机生成符号(个人感觉有点麻烦)

文本

低可信度描述已自动生成

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成4、TitleMaker类 :调用ElementMaker函数生成题目(个人认为生成题目用两个类有点奢侈了,代码量有点多,降低了一点可读性)

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

图形用户界面, 文本

描述已自动生成

文本

中度可信度描述已自动生成

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

5、Writer类 :这真的在我意料之外这居然写成一个类,想必是受到代码40行限制不得已而为之


public class Writer {
// 写入文件
public void writeIn(File file, Integer n, String title) {
try {
// 传入文件 确定类型为续写
FileWriter fileWriter = new FileWriter(file, true);
// 序号
String num = n.toString() + ".";
fileWriter.append(num + " " + title);
// 空一行
fileWriter.append("\r\n");
fileWriter.append("\r\n");
// 刷新文件,关闭writer
fileWriter.flush();
fileWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

主函数

public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Operations operations = new Operations();
while (true) {
// 识别用户名和密码
System.out.println("请输入用户名、密码");
if (operations.selectOperation(in.next().trim(), in.nextLine().trim())) {
break;
}
}
}
}

4代码运行结果测试

图形用户界面, 文本, 应用程序

描述已自动生成

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

图形用户界面, 文本, 应用程序

描述已自动生成

图形用户界面, 文本, 应用程序

描述已自动生成

图形用户界面, 文本, 应用程序, 电子邮件

描述已自动生成

图形用户界面, 文本, 应用程序

描述已自动生成

5优缺点分析

  4.1 优点:基本实现功能,每个方法看起来短小精悍;

   4.2 缺点:没有抽象类,代码量有点过多

标签:题目,个人,项目,用户,生成,互评,XX,fileWriter,输入
From: https://www.cnblogs.com/52guyuefangyuan/p/17720966.html

相关文章

  • react的todolist拆分项目
    React的todolist的拆分项目TodoList.jsximportTodofrom"./Todo"exportdefaultfunctionTodoList({todos,toggleTodo,deleteTodo}){return<><ul>{todos.map(todo=><......
  • 个人项目互评——中小学数学卷子自动生成程序
    项目需求用户小学、初中和高中数学老师。功能1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请输入正确的用户名......
  • HNU个人项目评测
    HNU个人项目评测——中小学数学试卷自动生成程序简介本博客是对于结对编程队友周润荣个人项目代码的评价与总结,代码使用Java语言编写。项目要求1.命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示......
  • 湖南大学个人项目互评-中小徐数学卷子自动生成程序
    个人项目互评一、简介项目名称:中小学数学卷子自动生成程序编程语言:Java代码作者:李令博评价人:刘洋二、功能完成情况及测试代码基本实现了要求中的功能代码运行测试:输出结果测试:产生题目的文件按照当前时间命名:每一位教师拥有单独的文件夹:功能不足:题目产生后,没有实......
  • 湖南大学个人项目互评
    代码作者:吕镇鑫项目需求:用户:小学、初中和高中数学老师。功能:1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个选项中的一个。否则提示“请......
  • 湖南大学个人项目C++互评
    优点模块化设计:代码有一个良好的模块化设计,其中每个类和函数都有一个特定的目的。可扩展性:由于使用了继承和多态,该设计易于扩展。例如,添加新类型的问题生成器相对简单。用户交互:代码包含用户交互,允许用户登录并选择问题类型和数量。文件操作:代码成功地将生成......
  • Linux学习笔记与个人理解(第一章初识Linux)
     1.云计算的简介1.1云计算的定义云计算是一种基于互联网的计算模式,通过网络提供可按需访问的共享计算资源和服务,包括计算能力、存储空间和应用程序等。1.2云计算的特点弹性伸缩:根据需求动态调整计算资源的规模,实现快速扩展或缩减。资源共享:多个用户共享云计算平......
  • 基于Java面向对象思想对个人项目的深度分析
    基于Java面向对象思想对个人项目的深度分析一、摘要本文站在java面向对象思想的角度,深入研究了GJH同学Java中小学数学卷子自动生成程序的工程代码。通过对核心类、继承与多态、封装与解耦等面向对象思想和生成题目算法进行了深度分析,全面探讨了系统的优缺点与改进空间。关键字:j......
  • 【实战案例】技术转项目经理容易踩的坑,我都踩了
    “带团队容易,带好团队难。”这是身边一位项目经理近期在团队管理方面的深刻感悟。目前,他手上的一个项目被迫暂停了,项目团队也散了。下面给大家简要分享下这个项目案例。【案例分享】小李负责的是一个二次开发的项目,所涉及的需求较多,但小李之前是由技术转为项目经理的,所以他刚接到......
  • day1项目配置
    项目初始化本项目使用vite进行构建,vite参考官网pnpm包管理:performantnpm,意味"高性能的npm"。pnpm由npm/yarn衍生而来,解决了npmlyarn内部潜在的bug,极大的优化了性能,扩展了使用场景。被誉为"最先进的包管理工具”使用vite创建V3工程是新一代前端构建工具官网地址pnpm安装......