首页 > 其他分享 >【个人项目互评】小初高试卷自动生成器

【个人项目互评】小初高试卷自动生成器

时间:2023-09-21 10:23:56浏览次数:40  
标签:登录 项目 代码 编程 生成器 互评 小初 试卷 输入

目录

  • 简介
  • 项目介绍
  • 代码分析
  • 优缺点分析

简介

本文将分析博主结对编程队友个人项目的代码,从项目完成程度、实用性、规范性分析代码的优缺点。

项目介绍

根据湖南大学软件工导论课程中个人项目要求,用java语言完成一个简单的小、初、高数学试卷自动生成工具。具体要求详见个人项目需求文件。

代码分析

此项目中总共定义了三个实体类,Paper、Question、User。

Paper

此类封装了一个问题集合,同时包含了创建文件夹、得到当前时间字符串、添加问题、添加问题、展示问题等方法。

Question

此类是问题类,其中包含了很多与问题生成相关的代码。

User

此类是用户类,包含了添加用户文件夹和登录等方法。

项目测试

登录

image

更改出题等级

image

选择出题数量

image

题目展示

image

优缺点分析

优点

  1. 交互界面清晰明了,易于交互,每次生成试卷前都有提示说明即将生成什么类型的试卷。
  2. 定义的三个实体类包含与之相关的方法,结构较为清晰。
  3. 各个功能都有自己的方法,并未杂糅在一起,代码易于阅读。
  4. 每次生成试卷后都会在操作台展示生成的问题,易于操作者预读试卷。
  5. 整体基本符合Google的java编程规范。

不足之处

  1. 登录时即使不按格式输入也可能登录成功
    image
  • 出现此类问题的原因分析:
    登录时的代码:
 Scanner sc = new Scanner(System.in);
            user = User.login(sc.next(), sc.next());
            if (user == null) {
                System.out.println("---请输入正确的用户名、密码----\n输入0或其他:重输入用户名、密码\n输入-1:退出");
            } else {
                break;
            }

登录时只是将输入的前两个值作为登录的函数传入,如果在账号密码之后跟进其他输入也不会有错误提示。

  1. 登录后如果输入-1应该是退出登录,重新登录而不是结束整个程序
    image
  2. 登录后选择下一步进行的功能时,如果输入的不是数字,则整个程序会报错而被迫终止
    image
    此种错误在用户输入题目数量时也会出现,原因是代码编写时,接受数字的函数使用的是:
Scanner sc3 = new Scanner(System.in);
int n = Integer.parseInt(sc3.next()); 

当输入接收的并不是一个数字字符串时程序就会报错,而并未处理此种异常。个人建议此处可以采用try{}catch(){}来捕获异常,如果输入的并非数字则提示输入有误并重新输入。可以采用下列形式:

input = scanner.nextLine();
      try {
        num = Integer.parseInt(input);
      } catch (Exception e) {
        System.out.println("输入有误,请重新输入");
        continue;
      }
  1. 有几处地方未按照Google编程规范编程。
  • 如一行的字符数超过列限制后并未自动换行。
  • 块缩进应该是2个空格,而代码中的块缩进是4个空格。

总结

总体而言,此项目完成了所有功能,并进行了一定的优化。但是有些细节有待优化。
通过此项目,我们最重要的是要意识到规范编程的重要性。规范编程可以提高代码质量、增加可维护性和可读性、利于团队协作并且提高我们编程的效率。此次个人项目编程是我们规范编程的试手,希望在未来的编程中,我们能一直坚持规范编程。

标签:登录,项目,代码,编程,生成器,互评,小初,试卷,输入
From: https://www.cnblogs.com/kunkun07/p/17717313.html

相关文章

  • 个人项目互评
    评价:软件2104党郑骅霖代码:软件2104熊偲彤一、项目介绍个人项目:中小学数学卷子自动生成程序用户:小学、初中和高中数学老师。功能:命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择......
  • HNU个人项目互评
    一、前言这篇博客是对软件工程导论的个人项目进行互评,项目要求实现一个简单的中小学数学卷子自动生成程序。我的搭档谢先衍同学使用Python完成了项目,而我则是使用java。尽管语言不同增加了一定的阅读成本,但是接触到另一种新语言并体会编程者发挥语言特性独特的心得,确实是拓展了......
  • HNU个人项目互评
    一、前言本次博客是对“中小学数学试卷自动生成程序”的个人项目的互评,编程语言都是java.二、代码需求个人项目:中小学数学卷子自动生成程序用户:小学、初中和高中数学老师。功能:1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如......
  • HNU软件工程导论个人项目互评
    HNU软件工程导论个人项目互评代码作者:张益洋  评价人:熊魁一:项目需求用户:小学、初中和高中数学老师。功能:1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小......
  • 【Java】个人项目互评——中小学数学卷子自动生成程序
     目录一、简介二、项目要求三、测试与分析1、功能测试2、代码分析四、项目总结1、代码优点2、代码缺点五、结语一、简介本博客用于分析和总结我的结对编程队友王晓婧的个人项目代码,代码使用语言为Java,与本......
  • 个人项目互评
    代码:软件2102王珏评价:软件2102刘良宸一、项目介绍用户:小学、初中和高中数学老师。功能:1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小学、初中和高中三个......
  • HNU个人项目分析互评
    笔者:万宇龙项目作者:梁钰项目目标个人项目:中小学数学卷子自动生成程序用户:小学、初中和高中数学老师。功能:命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小......
  • 软件工程导论个人项目互评
    评价人:软件2101谢先衍评价对象:软件2101方毅前言个人项目是实现一个中小学数学卷子自动生成程序,用户为小学、初中和高中老师,老师可以登录自己的账号生成对应年级的题目并保存到对应的文件夹下,并且还可以切换年级以生成不同难度的题目。具体要求如下:1、命令行输入用户名和密码......
  • 与结对队友的个人项目互评
    与我结对的队友是木拉迪力.艾海提同学,接下来我来分析一下他的个人项目:#include<iostream>#include<string>#include<fstream>#include<ctime>#include<cstdlib>usingnamespacestd;classTeacher{public:Teacher();Teacher(stringusername,stringpwd,str......
  • hnu个人项目互评
    对同伴宋玉为的个人项目的互评:1.代码运行结果1.1登录效果:1.2出题效果:出题有提示题目文件保存在绝对路径,为txt格式,题目前有序号,但是题目之间没有空行。 1.3切换效果:输入错误的指令有提示,输入正确的指令切换成功。初中题目:  高中题目,某些题目被大括号扩了起来。......