首页 > 编程语言 >hnu个人编程项目评价

hnu个人编程项目评价

时间:2023-09-19 20:33:06浏览次数:33  
标签:题目 函数 编程 用户 生成 XX hnu 评价 输入

一、简介

1.项目名称:中小学数学卷子自动生成程序

2.编程语言:JAVA

3.完成情况:按照个人项目需求完成了要求的功能

4.完成同学:朱智星,评价者:杨安然

5.项目需求:

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

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

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

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

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

 

二、具体分析

首先我们来看一下朱哥的代码的流程图:

 如下是main函数当中的内容,首先进入systemManager.logIn()中进行用户登录的处理。当用户成功登录,则会进入到systemManager.inputManage()进行具体功能的实现,当按下-1则会回到systemManager.logIn();切换用户的时候则会继续重复回到systemManager.inputManage()。若生成试卷的时候则会直接接下去走下面的生成试卷方法。

 systemManager.logIn()登录函数,界面如下

 

systemManager.inputManage()函数如下:这相当于是一个提供功能的界面,若你在此处选择了-1,那么会进入isQuit()函数中。不用担心会直接跳出循环程序,在isQuit()函数当中任然调用了Login()函数来重新提供用户的输入与检查,设计十分精巧。

 isQuit()函数:

 在后续的操作中便是一些生成具体试卷的方法,我们主要来看看有关查重方面的代码。

在main函数当中生成的卷子会先放到Set<String> stringSet容器当中只要查重函数repetitionCheckAll()检查不出重复,便会跳出循环,利用fileOutput.outPut()输出到对应的文件夹当中。

repetitionCheckAll()函数是基于repetitionCheckOne()函数的,下面我将把repetitionCheckOne()函数贴出,其基本原理也较为易懂,下面也就不在赘述:

 

 三、个人项目总结

1.登录页面 :

登陆页面拥有文字提示,功能测试正常。命令行输入只能用用户+‘ ’+密码格式,若使用回车按键则会失效(不过个人项目需求说确实这样就可以的)

2.服务功能

输出的题目要求符合规范,每次登录可以多次出题,查重方面也可以做到对同一个人的题目进行查重。切换难度输入异常之后不会出现越界。在文档保存方面,格式符合规范,能够以正确的格式进行保存,路径选择在了相对路径。

3.代码规范及设计

代码设计规范,语法合理。使用了javadoc注解。类,包,变量的命名都遵循其使用的小驼峰或大驼峰命名。PrimaryMaker,SeniorMaker,JuniorMaker类都extends于PaperMaker。

总结:

优点:朱哥的代码总体功能完备,代码设计合理。尤其是在生成问题以及试卷的时候使用了set容器进行查重,以及使用抽象类实现不同用户的试卷生成。还有就是在一些小细节方面非常的仔细认真,很多方面都测试到位了,这一点是我所不足的,后面还需要多多的向他学习。

不足:用户信息的存储朱哥直接用HashMap写死了进去,要是能用文本文档写进去我认为会更好。

 

标签:题目,函数,编程,用户,生成,XX,hnu,评价,输入
From: https://www.cnblogs.com/clementinekb/p/17715481.html

相关文章

  • 湖南大学结对编程个人项目互评
    湖南大学结对编程个人项目互评分析对象:鲁旭同学的个人项目分析人:王明扬一、项目需求用户:小学、初中和高中数学老师。功能:1、命令行输入用户名和密码,两者之间用空格隔开(程序预设小学、初中和高中各三个账号,具体见附表),如果用户名和密码都正确,将根据账户类型显示“当前选择为X......
  • HNU软件工程导论个人项目互评
    湖南大学结对编程之个人项目互评本次博客主要内容是分析结对编程队友的个人项目分析代码作者:谢昶皓分析人:杨虎强目录湖南大学结对编程之个人项目互评本次博客主要内容是分析结对编程队友的个人项目一、分析项目需求中的“坑”1、出题之“坑”1)每个用户出的题目是否符合用......
  • HNU 个人项目(中小学数学卷子自动生成程序)互评
    目录一.简介二.测试与分析1.黑盒测试2.白盒测试三总结一.简介本篇博客为对结对编程队友朱俊文同学的个人项目(中小学数学卷子自动生成程序的)的评价。首先在这里特别感谢我的结对编程伙伴朱俊文,个人项目互评中,为我的项目提出了很多很好的建议,让我在认清自己不......
  • HNU个人项目评测—中小学数学试卷自动生成程序
    目录一.简介二.测试与分析1.黑盒测试2.白盒测试三.总结合理性不合理性四.一点小小展望一.简介本博客是针对结对编程队友苟怀炜同学的个人项目代码所写的分析与总结,代码使用语言为Java,与本人项目所用编程语言一致。为了更好的实现结对项目功能,在评价苟怀炜同学的代码时,我会学习他......
  • Win32编程之线程池同步(十三)
    1.InterlockedAdd函数InterlockedAdd是WindowsAPI中的一个原子操作函数,用于在多线程环境下对一个变量执行原子加法操作。原子操作是指在执行期间不会被其他线程中断,从而确保多线程环境下的数据一致性。函数原型:LONGInterlockedAdd(LONGvolatile*Addend,LONGValu......
  • Datainside数据分析,基于大数据分析学生成绩综合评价
    Datainside是一种基于大数据分析的学生成绩综合评价方法,通过对海量学生成绩数据进行深度挖掘和分析,为学生的学习表现提供全面、客观的评价。以下是对Datainside数据分析学生成绩综合评价的详细描述:1.数据收集:Datainside首先需要收集大量学生成绩数据,包括不同科目、不同年级、不......
  • 湖南大学结对编程个人项目互评
    湖南大学结对编程个人项目互评此文是我对队友汤家贝的个人项目的评价 ♊目录  项目描述与分析  代码结构分析  代码功能测试  代码风格分析  总结 ♋项目描述与分析 ♌代码结构分析 ♍代码功能测试 ♎代码风格分析 ♏总结 ......
  • 编程基础
    类采用Class作为关键字进行定义的代码块,表示的是一种类别对象实例化之后的类,对类中的形参进行了赋值,赋予其真正的含义或数值方法使用def作为关键词,定义在类内的函数函数使用def作为关键词,但是没有在类内进行定义,即定义在类外属性类内的称呼,其实就是类内的变量,同一个类内......
  • 面向对象编程特征?
    面向对象编程(Object-OrientedProgramming,OOP)的特征包括以下几个方面:封装(Encapsulation):封装是将对象的状态(属性)和行为(方法)捆绑在一起,并对外部隐藏对象的内部细节。通过访问修饰符(如public、private、protected等)来限制对对象属性的直接访问,以确保数据的安全性和一致性。封......
  • 获得详细错误信息-windows核心编程
    windows程序员想要知道系统出错信息,一般使用GetLastError()来获取,该API获取的是错误码,如通过GetLastError返回123我们可以查询VS自带工具errorloop得到出错码123的错误信息:文件名、目录名或卷标语法不正确。这是一件挺麻烦的事。所以如果开发过程中我们能直接得到错误码的错误信息......