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

个人项目互评

时间:2023-09-20 21:58:05浏览次数:31  
标签:题目 个人 项目 代码 用户 生成 互评 XX 输入

  • 代码:软件2102王珏
  • 评价:软件2102刘良宸

一、项目介绍

用户

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

功能

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

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

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

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

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

二、代码功能测试

登录及操作界面:

操作界面无错误信息,无逻辑错误

生成试卷:

 生成的题目符合要求,每行以空行隔开且无重复题目

 生成的试卷以时间为标题

 综上可见功能基本完善,对错误的输入能做出反馈,程序能及时退出

三、代码评价与分析

题目生成类XXCT,CZCT,GZCT类:

其中CZCT和GZCT类中的出题方法过长且三个方法的代码逻辑有大部分相同,或许可以考虑将其中一些代码提取出来作为公共方法,以此提高代码可读性

三个方法均采用对String进行多次增添修改来生成完整的数学表达式题目,对String的多次修改可使用Stringbuilder类更易于操作

 

 Main类:

程序主要功能以及主函数均存放在此类中,此类中包含的函数种类多且函数复杂,程序运行的逻辑中函数嵌套有些多,稍微影响了代码的可读性

获取历史试卷查重时使用了哈希表,极大地提高了检索数据时地效率

 在涉及IO读写等方面都及时捕获了可能发生的 IOException,进行了异常处理

 在获取时间时使用了Calendar类,因为Calendar得到的时间的数据类型是int型,这样又要通过String的转换函数转换为字符串,并且相加得到最终的时间字符串,以这样的一种方式得到时间字符串是在难免会代码偏多,运行时间变长。这里建议使用Date。

User类和GetMassage类

User类设计了用户的信息储存方式以及返回方式,GetMassage类中的方法可将txt文件中的用户账号信息读取,使得管理员能随时修改增添用户信息而程序不会发生错误

GetTest类和GetProblem类

GetTest类为虚类,其中定义了虚拟方法返回生成的题目字符串,GetProblem类继承自GetTest类,采用继承的方法,方便了后续方法的重构和修改

 四、总结

优点:

有良好的注释习惯,每一个类与方法都有详细的注释

逻辑严谨,考虑了多种输入情况且具有功能保障

程序结构清晰,每个类都有其特定的功能。

通过随机数来生成不同的数学题目,增加了题目的多样性。

有足够的输入提示,并且运行时基本没有出现bug。

从代码编写上来看,基本符合代码规范。

缺点:

一些类的功能过于复杂,方法众多,而另一些类中的方法与其他方法重合部分高,或许应该平衡一下

对于类和变量还有方法命名不规范,采用了许多拼音以及大小写混用还有单字母命名的错误命名方法

有一些不太符合用户习惯的设计如在用户登录后切换为其他难度并出题后,系统会自动切换为该用户默认的出题模式,不太符合用户的一般习惯

总结:

王珏同学完成了基本完成了需求的功能,且在程序设计上有着自己独特且精巧的设计,但是在代码规范上还有进步的空间。通过王珏同学的代码我学到了不少东西,也希望在接下来的时间里我们能更上一层楼。

 

标签:题目,个人,项目,代码,用户,生成,互评,XX,输入
From: https://www.cnblogs.com/kirakira1918/p/17718530.html

相关文章

  • HNU个人项目分析互评
    笔者:万宇龙项目作者:梁钰项目目标个人项目:中小学数学卷子自动生成程序用户:小学、初中和高中数学老师。功能:命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为XX出题”,XX为小......
  • 软件工程导论个人项目互评
    评价人:软件2101谢先衍评价对象:软件2101方毅前言个人项目是实现一个中小学数学卷子自动生成程序,用户为小学、初中和高中老师,老师可以登录自己的账号生成对应年级的题目并保存到对应的文件夹下,并且还可以切换年级以生成不同难度的题目。具体要求如下:1、命令行输入用户名和密码......
  • 软件工程导论——对结对伙伴袁永杰的个人项目评价
    一前言   很感谢老师安排的这次互评,我从伙伴的代码中得到了一些收获,也对Java编程有了更多的理解,思维也变得更加清晰。同伴选择的也是Java,基于面向对象的思想,在进行评价的同时我也会学习他的优点,不断努力进步。二项目需求与评分标准用户:小学、初中和高中数学老师。功......
  • 与结对队友的个人项目互评
    与我结对的队友是木拉迪力.艾海提同学,接下来我来分析一下他的个人项目:#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切换效果:输入错误的指令有提示,输入正确的指令切换成功。初中题目:  高中题目,某些题目被大括号扩了起来。......
  • 【个人项目互评】——中小学数学试卷生成系统
    项目名称:中小学数学试卷生成系统编程语言:java代码作者:符南山评价人:秦凯一、简介我与符南山同学结对,并且都是采用java语言。因此下面博客,我们以java的角度来测试分析南山同学的代码,功能。通过这次互评来互相学习彼此间的优点,同时认识到自己的不足,来提升自己的编程思维。二......
  • 个人项目
    这个作业属于哪个课程软件工程这个作业要求在哪里个人项目这个作业的目标项目管理,github使用github链接开发环境win10IDE:eclipse需求分析需求分析:题目:论文查重描述如下:设计一个论文查重算法,给出一个原文文件和一个在这份原文上经过了增删改的抄袭版论......
  • 【HNU个人项目互评】 基于java生成中小学数学卷子自动生成程序代码分析
    【评价者】:金颖希【项目作者】:刘一凡【使用语言】:Java前言【项目简介】本项目为中小学数学卷子自动生成程序,采用java编程语言实现用户登录、用户类型判断、生成题目、题目查重、切换用户类型以及题目保存等简单功能。【评价标准】本文以代码分析为主,主要从代码的可读性、性能......
  • 论文查重-第一次个人编程
    1、github链接:https://github.com/lanzeye7/lanzeye72、PSP表格PSP2.1PersonalSoftwareProcessStages预估耗时(分钟)实际耗时(分钟)Planning计划 60 85·Estimate·估计这个任务需要多少时间 180 210Development开发......
  • 个人项目互评
    中小学数学卷子自动生成程序分析本次课程任务要求我们在规定时间内完成一个可以自动生成中小学数学题目卷子的程序,用户为老师。主要是实现账户名密码的验证,账户的切换,根据账户类型生成不同难度的试题并查重。在此简单分析一下搭档小天的项目代码。 程序流程我来分析......