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

个人项目互评

时间:2023-09-22 20:15:49浏览次数:24  
标签:题目 个人 项目 互评 密码 XX 123 初中 输入

结对编程队友:软件2103-和政德

编程语言:Java

评价者:阿卜杜萨拉木

一、项目需求:

用户:

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

功能:

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

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

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

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

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

6、个人项目9月17日晚上10点以前提交至创新课程管理系统。提交方式:工程文件打包,压缩包名为“几班+姓名.rar”。迟交2天及以内者扣分,每天扣20%。迟交2天及以上者0分。

附表-1:账户、密码

账户类型

账户

密码

备注

小学

张三1

123

 

张三2

123

 

张三3

123

 

初中

李四1

123

 

李四2

123

 

李四3

123

 

高中

王五1

123

 

王五2

123

 

王五3

123

 

 

附表-2:小学、初中、高中题目难度要求

 

小学

初中

高中

 

难度要求

+,-,*./

平方,开根号

sin,cos,tan

 

备注

只能有+,-,*./和()

题目中至少有一个平方或开根号的运算符

题目中至少有一个sin,cos或tan的运算符

 

 

项目结构如下图

 

该同学项目结构较清晰,实现了题目要求,能正常运行各种难度的出题正常。

 

 

DateBase类的主要功能保存用户和密码,检查该用户是否存在。使用了List集合,使用List集合,List是基于Array存在的,需要耗费比Array相对更多的时间,以及更大的空间,用户数量变化是使用list集可以避免空间浪费和空间不足等问题,设计优秀,可用性强,使用效率高,操作简单

Main方法里分别调用了创建系统类,加载系统类,登录功能。

 

TeacherUser类定义了三个成员变量,用户名,密码账号类型。有参无参构造方法get,set方法。这些方法以后输入新的数据的检查用户信息的很方便。

 

PaperSystem类里面实现各种功能,

 

登录功能正常可以多次输入账户密码,输入错误可以重新输入。代码思路清晰。建议如果输入错账户,密码的时候输出一个提示。

生成卷子文件名格式特别标准,卷子生成完了以后他用了相对文件路径。换了台笔记本也很容易的找到题目位置。

处理右括号使用的方法很,平方后面数字与加减号之间可以放括号,有括号的的数量的与左括号。

 

 

成功生成,题目也符合要求。

队友代码分析:

使用了三个类 DataBase,Main ,PaperSystem,TeacherUser,完成了该项目,

TeacherUser类十分简洁,包含三个属性:账号名称,账号密码,账号类别。方法包括构造方法和获取这三个类别的方法。

缺点分析:

  1. 代码编写符合规范,各种关键字的命名方式也很正确,每个方法和类都写了注释,通过检查没有问题。

2.合理得将代码分成多个类,让每个类专注于特定的功能,整个代码清晰易读。

3.代码可复用性高,同一个方法可以被重复利用来实现想要的功能。

4.在保存文件时使用相对路径,代码有较高的可移植性和灵活性。

缺点:

有几个方法行数 超过了40行

切换难度的时候出现了一些问题有时候切换不了难度可能是jdk不一样了。

 

总结:

总的来说,该项目基本实现了项目需求中的所有要求,方法简洁,层层递进。很多函数的实现方法值得我去学习。后续可以优化测试用例,重构部分类的设计,以提升代码质量和扩展性

 

标签:题目,个人,项目,互评,密码,XX,123,初中,输入
From: https://www.cnblogs.com/abdusalam/p/17723234.html

相关文章

  • 【Java】ElasticSearch 在项目里的应用
    一、前言:好久没写笔记了,最近忙一个项目,用到ES查询,以往的笔记写ES都是搭建环境,用Kibana玩一玩这次是直接调用API操作了,话不多说,进入主题 二、环境前提:公司用的还是纯ElasticSearch的API库,并没有Spring-Data-ES的包装ElasticSearch版本是7.3.1这是封装的包:<!--esstart-......
  • 如何提升Java项目质量,代码是关键
    关于编程,代码质量是一个极其重要的因素。无论是初学者还是资深开发者,都深知高质量代码的重要性,除了可以提高程序的可维护性,还能减少错误和问题的出现。尤其在像Java这样受欢迎但难度较高的编程语言中,代码质量显得尤为突出。要想写出高质量的Java代码,并不是一件容易的事情。你可能......
  • 从GitHub更新代码后新的项目类的图标会变成大写的J解决办法【杭州多测师_王sir】
     项目地址:https://github.com/macrozheng/mall-learning/tree/teach一、切换分支更新GitHub的代码发现拉取下来变文件夹了,类的图标会变成大写的J二、解决办法:找到项目的pom.xml右键,在靠近最下方的位置找到Add as Maven Project点击即可。此时,一般类的图标就变成C了,但是可......
  • docker部署java项目
    1、首先你需要提前准备好jar包或者war包,并想办法放入Linux环境(或虚拟机)中;2、java项目的部署需要用到Tomcat或者Jetty,docker可以直接拉取他俩的镜像,这里以Tomcat为例:#:后面需要加上war或者jar对应的Tomcat版本,最好加上,#否则默认最新的版本--latest,会出现版本不兼容的问题d......
  • 【项目心得】关于Angular中使用Cookie
    今天写一个Angular前端项目时遇到需要使用Cookie的场景,bing寻找解决办法根据bing搜索第一条的方法,使用了一个名为”ngx-cookie-service“的库,结果方才一导入,就提示报错,报错信息如下:Error:Uncaught(inpromise):Error:NG0203:inject()mustbecalledfromaninjec......
  • HbuilderX将Vue项目打包后的dist,打包成安卓apk安装包
    1、先看这个(必看):https://www.cnblogs.com/lyt520/p/16545806.html2、安装移动端log(如不需要可跳过此步骤)npminstallvconsolemain.js中引入:importVConsolefrom'vconsole'constvConsole=newVConsole()Vue.use(vConsole)3、HBuilderX和逍遥模拟器(用模拟器实现真......
  • HBase13(项目03phoenix视图JDBC开发)
    1.phoenix视图建立当创建视图后,就可以使用SQL查询视图,和操作Table一样。1.视图如何映射到HBase的表? 视图的名字必须是:命名空间.表名2.视图中的列如何映射到HBase的列族和列? 列名必须是:列族.列名3.视图中的类如何映射到HBase的ROWKEY? 指定某个列为primarykey,自动映射......
  • HBase学习12(项目02数据随机生成后写入Hbase里面)
    26~291.已完成创建hbase_shell目录用于存放hbaseshell脚本命名空间:MOMO_CHAT表名:MSG预分区6个,压缩方式'GZ'HBase学习11(项目01分析及准备)-201812-博客园(cnblogs.com) 2.导入pom依赖<repositories><!--代码库--><repository><id>aliyun</id>......
  • HBase学习11(项目01分析及准备)
    海量数据1.准备在idea中创建项目,然后创建脚本包hbase_shell。添加文件说明readme.md,写入相关项目结构说明。通过复制hbase_shell文件目录,在VSCode中打开进行对脚本文件的编写。在VSCode中编写方便。 2.创建名称空间namespace当表的数量比较多的时候,为了方便管理,不同的业......
  • Day06 - Vue项目的使用
    解析Vue项目//1为什么浏览器中访问某个地址,会显示某个页面组件 -根组件:App.Vue必须是:<template><divid="app"><router-view></router-view></div></template> -配置路由: //先导入 importy......