JAVA用户图形界面 模拟裁判评分
Java课程设计演示内容及评分标准
有重大异常,无法运行
6
代码的规范化程度,包括变量、方法命名、格式化排版10%
命名和格式规范标准
格式较规范
命名和格式混乱
好
较好
一般
差
2
文档是否齐全、标准20%(包括程序注释、测试报告、UML类图)
齐全
较齐全
不齐全
没有
3
编写类的个数20%
1~2个
3~5个
5个以上
4
是否清楚的表述类、对象等面向对象的概念,回答教师提问20%
准确清楚
基本清楚
概念模糊
完全不清楚
5
软件是否能够正常运行20%
脱离编译环境正常运行
在编译环境中能正常运行
Java课程设计演示内容要求及评分标准
演示内容
序号
内容
时间
1
程序的主要功能简介,附带演示
1~2分钟
2
程序定义的类(数量、属性和方法、引入的系统类有哪些、类之间的关系)
2~4分钟
3
有没有做异常处理,异常处理的方法
1分钟
4
程序注释、测试文档、UML建模图,回答教师提问
2~3分钟
评分标准
序号
内容等级1Fra bibliotek选题的创新性10%
《Java程序设计》课程论文评分标准
《Java程序设计》课程论文评分标准「、论文内容要求采用Java的图形用户界面设计并实现一个魔板游戏程序。
1游戏规则一个3*3的魔板,有一个格子是空的,其他格子内随机放置1-8共8个编号的方块,通过单击任意- 个与空格子相邻的方块可以把该方块移入空格子,不断的移动方块,直到方块一行一行的按数字顺序排好。
允许增加格子数目,提高游戏难度。
2 •程序基本功能(1)主窗口界面根据游戏的三种状态有三种界面图1游戏停止状态(初始状态)游戏00:00:0814236857图2游戏进行状态图3游戏暂停状态(2)主窗口菜单至少要有如下的五条菜单项:开贻Ctrl+NCtrl^P停止Ctrl+S排行榜Ctrl+L退出Ctrl+Q图4主窗口菜单(3)排行榜窗口根据数据库中的信息显示游戏成绩排行榜。
游戏进行过程中打开排行榜窗口时自动暂停游戏。
图5排行榜窗口(4)错误提示窗口程序运行出错则显示相应的提示信息,如下图显示“找不到数据库”的提示。
关闭错误提示窗口则结束整个程序的运行。
图6错误提示窗口(5)记录游戏成绩窗口如下图,游戏正常运行直至玩家正常结束游戏时显示该窗口,用于输入玩家的名称信息,并将该信息与游戏持续时间一起存储到数据库中。
关闭该窗口后,游戏进入停止状态,可以选择重新开始游戏或退出游戏程序。
请输入您的名称,不超过10个亩符图7记录游戏成绩窗口3•论文内容具体要求(1)程序结构说明包括程序有哪些功能(可以在基本功能的基础上进行扩展)类及其方,每个功能模块用了哪些类来实现,每个法的具体作用。
(2)程序源代码二、评分标准1 •优秀(90分以上)程序界面美观,并在全部实现基本功能的基础上作了一定扩展。
论文条理清楚,包含所要求的全部内容。
2 .良好(80〜89分)程序实现了所有的基本功能。
论文条理清楚,包含所要求的全部内容。
3.中等(70〜79分)程序实现了大部分的基本功能(允许缺少一项基本功能,排行榜或错误提示)论文包含所要求的全部内容。
2008级《程序设计语言(Java)》上机实验及综合设计评分标准
《程序设计语言(Java)》上机实验及综合设计评分标准一、实验总体安排《程序设计语言(Java)》课程面向全校非计算机专业理工类本科生,是程序设计语言类必修的公共基础课之一。
该课程重点介绍Java语言的基本语法和面向对象编程方法。
为配合课堂教学,本课程安排了32学时的课内上机和10学时的学生课外自主上机,实验内容由3个基本单元和综合设计共4个单元组成,各实习单元的具体内容和学时安排(包括自主上机的10学时)如下:第一单元(10学时):Java编程基础,包括课堂教学的第1,2,3章。
主要涉及JDK开发工具的使用、Java基本语法和流程控制语句的使用。
第二单元(10学时):Java编程提高,包括课堂教学的第4,5,6章。
主要涉及数组、向量和字符串、类和对象的创建和使用以及Java异常处理。
第三单元(12学时):Java编程进阶,包括课堂教学的第7,8,9,10章,主要涉及Java图形界面设计和Swing组件的使用、Applet程序涉及以及数据流方面的知识。
第四单元(10学时):综合设计。
根据教师所给出的参考课题或自选课题,综合应用所学的Java编程知识和面向对象程序设计方法,设计一个相对完整的Java应用程序或Java Applet小应用程序。
说明:每次上机实习,学生应按实验要求认真完成实习内容。
教师应认真指导学生进行上机实习,检查实验情况,把好上机实习关。
学生完成前三个基本单元的实习内容后,需填写相应的《上机实验报告》,综合设计单元需按要求提交相关设计的电子文档和相应的《综合实践报告》,教师则根据完成情况按下述评分标准给出成绩。
二、上机实验评分标准《程序设计语言(Java)》实验课为独立设课,课程的考核和成绩记载方式请参见该课程的考核要求。
对于3个基本实验单元,每个单元均由一定数量的相关实验组成,各单元的评分标准如表1所示。
表1 上机实验评分标准说明:每个学生需提交上述单元的《上机实验报告》,共1个。
信息技术作业如何使用Java编写一个简单的学生成绩分析系统
信息技术作业如何使用Java编写一个简单的学生成绩分析系统在当今的教育环境中,学生成绩分析是对学生学习情况进行量化和分析的重要工作。
为了方便教师和学校管理者对学生成绩进行准确、高效的分析,使用Java编写一个简单的学生成绩分析系统是一个很好的解决方案。
本文将介绍如何使用Java编写一个简单的学生成绩分析系统,并提供一些设计和实现的指导。
一、需求分析在开始编写学生成绩分析系统之前,我们首先需要对系统的需求进行分析。
一个基本的学生成绩分析系统需要满足以下几个主要功能:1. 输入学生信息和成绩:系统应该可以输入学生的基本信息,如姓名、学号、班级等,以及对应的成绩信息,如数学成绩、语文成绩等。
2. 统计分析功能:系统需要能够根据输入的学生成绩数据进行统计和分析,如计算每个学生的总分、平均分、最高分和最低分等。
3. 成绩排名功能:系统应该能够根据学生的成绩给出排名情况,如按总分进行排名或按照某一科目成绩进行排名。
4. 查询功能:系统需要提供查询学生信息和成绩的功能,可以根据学号或姓名进行查询,并显示相应的结果。
二、系统设计1. 数据结构设计:基于上述需求,我们需要设计适当的数据结构来存储学生信息和成绩数据。
可以使用类来表示学生对象,包含学生的基本信息和成绩数据。
```javapublic class Student {private String name;private String studentID;private String className;private float mathGrade;private float chineseGrade;// ...// 构造方法和访问器方法}```2. 界面设计:为了方便用户的输入和操作,可以使用简单的文本界面来实现学生成绩分析系统。
可以使用Java的控制台作为用户界面,通过输出提示信息和读取用户输入实现交互。
三、系统实现接下来,我们将实现学生成绩分析系统的各个功能。
ui面试评分文档
ui面试评分文档UI面试评分文档一、前言UI(User Interface,用户界面)设计是指人与机器之间进行信息交互的界面设计,是产品和用户之间进行沟通的桥梁。
在UI设计师的招聘过程中,面试评分文档是评判候选人能力的重要工具。
本文将介绍UI面试评分文档的要点和内容。
二、评分标准1. 设计理念(20分):候选人是否能明确表达自己的设计理念,设计风格是否与公司需求相匹配。
2. 用户体验(20分):候选人是否能充分考虑用户的需求,设计出易用、易懂、易操作的界面。
3. 设计技巧(20分):候选人是否具备良好的设计技巧,如色彩搭配、排版、图标设计等。
4. 创意和原创性(15分):候选人是否能提供有创意和独特的设计方案,是否具备原创性。
5. 响应式设计(15分):候选人是否能设计出适应不同设备和平台的响应式界面。
6. 交流能力(10分):候选人是否能清晰表达自己的设计思路,与团队成员进行良好的沟通。
7. 工具使用(10分):候选人是否熟练使用常见的UI设计工具,如Sketch、Photoshop等。
三、评分细则1. 设计理念在这一部分,面试官将针对候选人的设计理念进行评分。
候选人应能清楚地表达自己的设计思路,包括对用户需求的理解、设计风格的选择等。
同时,候选人要能与公司的产品定位相契合,展现出对市场趋势的洞察力和创新性。
评分细则如下:- 清晰度和连贯性(10分):候选人的设计理念是否清晰明了,是否能将其与整体设计方案相连贯。
- 与公司需求匹配度(10分):候选人的设计理念是否与公司产品的定位和品牌形象相匹配。
2. 用户体验用户体验是UI设计中至关重要的一部分,面试官将评估候选人是否能考虑用户的需求,设计出易用、易懂、易操作的界面。
评分细则如下:- 可用性(10分):候选人设计的界面是否符合用户的使用习惯,是否容易上手。
- 信息架构(5分):候选人是否能合理组织和呈现页面的信息,使用户能够快速找到所需内容。
Java程序设计中的图形界面与事件响应处理案例
Java程序设计中的图形界面与事件响应处理案例在Java程序设计中,图形界面(Graphical User Interface, GUI)和事件响应处理是非常重要的概念。
通过图形界面,用户可以直观地与程序进行交互,而事件响应处理则是指程序对用户的操作作出相应的反应。
本文将通过一个案例来介绍Java程序设计中的图形界面与事件响应处理的应用。
案例介绍:假设我们要开发一个简单的计算器程序,用户可以通过图形界面输入两个数值,选择不同的操作符(如加、减、乘、除),最后得到计算结果。
在这个案例中,图形界面将提供文本框用于用户输入数值,选择框用于选择操作符,按钮用于触发计算。
事件响应处理将负责捕获用户的操作,并根据用户的输入进行计算,最后将结果显示在界面上。
图形界面设计:首先,在程序中引入Java的图形界面工具包(Swing)。
通过使用Swing组件,我们可以创建窗口、文本框、选择框、按钮等各种界面元素。
在创建窗口时,需要定义窗口的标题、大小和关闭操作。
同时,将需要的文本框、选择框和按钮添加到窗口中。
根据案例需求,文本框用于输入数值,选择框用于选择操作符,按钮用于触发计算。
事件响应处理:在事件响应处理中,我们需要给按钮添加点击事件的监听器。
当用户点击按钮时,系统将触发监听器中的事件处理方法,并执行对应的操作。
在事件处理方法中,首先需要获取用户输入的数值和操作符。
然后,根据操作符执行相应的计算。
最后,将计算结果显示在界面上。
除了计算逻辑的实现,还需要考虑用户输入的合法性。
例如,如果用户未输入数值或选择操作符,则需要给出相应的提示信息。
优化与扩展:为了提升用户体验,我们可以添加一些优化和扩展功能。
例如,可以对用户输入进行格式校验,确保输入的是数字。
另外,可以为计算器添加更多的操作符和功能,如取余、开方等。
总结:通过这个案例,我们了解了Java程序设计中的图形界面与事件响应处理的应用。
在实际开发中,图形界面和事件响应处理是非常重要的技术,能够实现用户友好的界面交互和相应的操作处理。
Java编程题自动判分软件框架的设计
42 •电子技术与软件工程 Electronic Technology & Software Engineering软件开发• Software Development【关键词】Java 编程题 自动判分 软件框架 代码1 Java编程题自动判分规则特点分析1.1 面向对象Java 编程题判分软件具有很大的面向对象特性,在操作中要注意应用的数据和操作数据的方法,在一个面向对象的软件里,面向程序一般是由相对独立的类声明组成,在Java 编程题自动判分的软件中,通过类声明的判分可以较为合理科学的解决问题,类声明中的每一Java 编程题自动判分软件框架的设计文/崔宁 曾峰个类代码都是由结构性代码和功能性代码两部分组成。
其中的结构性代码是将相互之间存在一种或者多种特定关系的数据元素进行集合,主要的研究有数据间的固有关系、数据在计算机内部的存储方法以及数据在不同结构上的操作和处理。
结构性代码主要有包括类、成员变量、构造器以及方法声明的头部四方面的内容。
功能性代码主要包括构造器和体代码两方面的内容。
在自动判分的类层体系中,类是按照一定的体系和层次分布排列的,可以使子类集成超类,可以更好的完成自动评分。
1.2 准确性Java 编程题自动判分软件中,要保证判分性能丰富准确,降低判分的复杂性,提高准确度,比如在评分过程中,成员变量和方法声明的头部应该分别进行判读和评分,所需要的源代码也应该分别开来,从而保证评分的准确度。
Java 编程要对所做出的评分进行解释,Java 字节符要提供对应结构中性的目标文件格式,保证Java 代码可以有效的传递到评分程序上,实现Java 编程的解释功能,Java 编程可以很快的将新类因素装进编程环境,实现增量目的。
保证编程软件中的输入参数和比对指标可以完全访问,也可以实现评分对象的互换和调用。
1.3 独立性虽然Java 编程题自动判分软件中可以实现评分对象的互换和调用,但是评分的新类因素毕竟在成分和逻辑上存在很大的差异,如果不对评分新类进行准确分离和筛选,就会造成评分软件系统出现混乱。
(评分系统)java实验报告四
实验报告4一、实验目的掌握Swing的使用,设计简单的GUI程序。
二、实验环境1、微型计算机一台2、WINDOWS操作系统,Java SDK,Eclipse开发环境三、实验内容1、编写一个GUI界面的java程序。
要求如下:1)主窗体首先显示以下内容:输入选手姓名和评委数后,点击确定,进入下一个界面2)第二个界面如下:按要求输入每位评委的评分后,点击提交,将按去掉一个最高分和一个最低分,取平均值,即为选手的成绩,进入下一个页面。
点击重置,所有输入清零。
3)第三个界面如下:显示该选手的成绩,点击按钮回到初始界面,进行下一个选手的评分。
四、实验步骤和结果主函数代码:package windowsGUI;import javax.swing.JFrame;import javax.swing.JPanel;public class Main {public static void main(String[] args) {// TODO Auto-generated method stubfinal JFrame win=new JFrame("我的窗体");final JPanel panM=new JPanel();new firstWindows(win,panM);win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);win.setSize(500,300);win.setVisible(true);}}第一个界面代码:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.JButton;public class firstWindows extends JPanel {private JTextField name=new JTextField(10);private JTextField cout=new JTextField(10);private JButton btn = new JButton("确定");final JPanel pan=new JPanel();public firstWindows(final JFrame win,final JPanel panM){ win.getContentPane().remove(panM);JLabel lab1=new JLabel("输入选手姓名:");JLabel lab2=new JLabel("输入评委数:");btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {if(e.getSource()==btn){final String name1=new String(name.getText());final int cout1=Integer.parseInt(cout.getText());new SecondWindows(win,name1,cout1,pan);}}});pan.add(lab1);pan.add(name);pan.add(lab2);pan.add(cout);pan.add(btn);win.add(pan);win.setVisible(true);}}运行结果及输入:第二个界面代码:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;public class SecondWindows extends JPanel{private JTextField grade1=new JTextField(10);private JTextField grade2=new JTextField(10);private JTextField grade3=new JTextField(10);private JTextField grade4=new JTextField(10);private JButton btn1 = new JButton("提交");private JButton btn2 = new JButton("重置");final JPanel pan2=new JPanel();public SecondWindows(final JFrame win,final String name2,final int cout1,final JPanel pan){win.getContentPane().remove(pan);JLabel lab=new JLabel("正在为"+name2+"选手评分");JLabel lab1=new JLabel("评委一:");JLabel lab2=new JLabel("评委二:");JLabel lab3=new JLabel("评委三:");JLabel lab4=new JLabel("评委四:");pan2.setLayout(null);lab.setBounds(150, 10, 200, 20);lab1.setBounds(10, 50, 60,20);grade1.setBounds(80,50,80,20);lab2.setBounds(210, 50, 60, 20);grade2.setBounds(280,50,80,20);lab3.setBounds(10, 100, 60, 20);grade3.setBounds(80,100,80,20);lab4.setBounds(210, 100, 60, 20);grade4.setBounds(280,100,80,20);btn1.setBounds(90,200,80,30);btn2.setBounds(220,200,80,30);btn1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {if(e.getSource()==btn1){double[] s=new double[cout1];s[cout1-4]=Integer.parseInt(grade1.getText());s[cout1-3]=Integer.parseInt(grade2.getText());s[cout1-2]=Integer.parseInt(grade3.getText());s[cout1-1]=Integer.parseInt(grade4.getText());java.util.Arrays.sort(s);double h=(s[cout1-3]+s[cout1-2])/2;new TirdWindows(win,name2,h ,pan2);}}});btn2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {if(e.getSource()==btn2){grade1.setText("");grade2.setText("");grade3.setText("");grade4.setText("");}}});pan2.add(lab);pan2.add(lab1);pan2.add(grade1);pan2.add(lab2);pan2.add(grade2);pan2.add(lab3);pan2.add(grade3);pan2.add(lab4);pan2.add(grade4);pan2.add(btn1);pan2.add(btn2);win.add(pan2);win.setVisible(true);}运行结果及输入:若点击出现第三个界面代码:import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;public class TirdWindows {private JPanel pan3=new JPanel();private JButton btn = new JButton("回到初始画板");public TirdWindows(final JFrame win,String name3 ,double h,final JPanel pan2){win.getContentPane().remove(pan2);JLabel lab=new JLabel("选手"+name3+"最终得分为:"+h);pan3.setLayout(null);lab.setBounds(80, 10, 200, 20);btn.setBounds(300,10,120,20);pan3.add(lab);pan3.add(btn);btn.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e) {if(e.getSource()==btn){new firstWindows(win,pan3);}}});win.add(pan3);win.setVisible(true);}}运行结果:点击出现五、实验总结(1)为完成本次实验,历尽千辛万苦。
《面向对象程序设计(Java)》课程考核及评分方法
面向对象程序设计Java
《面向对象程序设计(Java)》课程考核及评分方法
一、课程性质
本课程是为计算机软件专业学生开设的一门专业必修课。
其主要内容是学习Java语言的基本语句、语法和Java面向对象的程序设计方法与设计过程、学习Java C/S应用系统开发方法与相关技术。
二、课程考核方式
课程采用形成性考核方式,由平时形成性考核成绩、课程笔试和拓展项目开发三部分组成。
全面考核学生的面向对象程序设计基础理论学习情况与应用开发能力,具体分值安排如下:
1.平时形成性考核(课堂考核+作业+单元测试)40%
2.期末课程笔试30%
3.拓展项目开发30%
平时形成性考核:主要考核学生平时学习态度、课堂学习表现、作业完成情况及单元测试结果。
期末课程笔试:主要考核学生对课程基础部分内容掌握情况,包括Java基本语法、Java面向对象相关知识与技术、Java API的使用、输入输出流与异常处理等内容。
拓展项目开发:主要考核学生应用Java进行C/S应用系统开发的能力。
三、考核内容与标准。
java实验
实验项目名称:图形用户界面实验学时: 6 同组学生姓名:————实验地点: 1514/A203 实验日期: 2016.5.4/5.6/5.11 实验成绩:批改教师:王倩倩批改时间:一、实验目的和要求(1)掌握Swing组件的使用方法;(2)熟练掌握Swing中常用布局管理器的使用方法;(3)掌握用户界面动作与事件的处理程序的编写方法;(4)熟练掌握构造用户界面的方法和常见界面元素的使用;(5)熟练掌握Java绘图的主要方法。
(6)调试程序要记录调试过程中出现的问题及解决办法;(7)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(8)做完实验后给出本实验的实验报告。
二、实验仪器和设备奔腾以上计算机,Windows 操作系统,装有JDK1.7和Eclipse软件。
三、实验过程1. 计算器设计2. 模拟裁判评分。
设计如图所示图形界面,显示n个裁判的评分,根据制定规则计算出最后得分。
要求:图形界面采用表格显示裁判评分,随裁判人数变化而变化;指定分数范围,若超出,则异常处理;得分规则有指定接口约定,由多个接口对象给出多种得分规则,如求平均数值,或去掉一个最高分和一个最低分后,再求平均值。
3. 编译运行下例,然后修改程序,当使用鼠标单击后在另一位置重新绘制月亮。
【例】在Applet中画月亮。
import java.awt.*;import java.applet.Applet;public class MoonApplet extends Applet{public void paint(Graphics g) //在Applet上绘图{g.setColor(Color.red);g.drawString("The Moon",100,20);int x=0,y=0; //圆外切矩形左上角坐标x = this.getWidth() /4;y = this.getHeight() /4;int diameter = Math.min(this.getWidth()/2, this.getHeight()/2); //圆的直径g.setColor(Color.yellow);g.fillOval(x,y,diameter,diameter); //画圆g.setColor(this.getBackground()); //设置为背景色g.fillOval(x-20,y-20,diameter,diameter); //画圆}}4.根据阿基米德螺线的极坐标方程:r=aθ画出相应图形。
Java编程题自动评分技术的研究与实现
学校代码:10385分类号:研究生学号:密级:工程硕士专业学位论文Java编程题自动评分技术的研究与实现The Research and Implementation of Java Programs Automatic Grading Technology作者姓名:郑燕娥指导教师:陈维斌工程单位导师:工程领域:研究方向:数据库技术及应用所在学院:计算机科学与技术学院论文提交日期:二零一三年十二月十五日摘要目前计算机程序设计语言考试中编程题的自动评分技术仍然不完善,该技术是实现计算机在线考试及自动阅卷的关键和难点所在,因此许多研究者致力于寻找一种程序的中间表示形式(比如系统依赖图、抽象语法树)来进行源码分析并匹配评分,这种方法是将程序整体作为比较对象,不仅内存占用率高,而且实现难度大,同时也会牺牲灵活性。
本文融合了程序查错及局部纠错技术、基于反射机制的黑盒测试技术、知识要点的正则表达式匹配评分技术等关键技术,实现了Java编程题自动评分技术及原型系统。
评分方式兼顾了可执行代码的动态测试与源程序的静态分析,实现了对不同的考生程序采用以下两种评分方法:(1)对于可以通过编译的考生程序,利用Java反射机制提取考生程序的相关信息进行黑盒测试,给出测试分,再结合语法分、结果分,计算出总得分。
(2)对于无法通过编译的考生程序,利用本地jdk包中的编译器编译考生程序,然后进行查错并局部纠错,每纠正一个错误都要重新编译以消除虚假错误。
对于纠错后能顺利通过编译的考生程序,采用第一种评分方法。
对于无法纠错的考生程序,则采取放弃纠错,根据错误种类适当给出语法分,再结合知识要点匹配情况计算总得分。
实验结果表明,本文所实现的Java编程题自动评分技术提高了试题评阅过程的合理性和准确性,且具有较好的灵活性。
关键词:Java反射机制正规表达式XML程序查错局部纠错IAbstractIn computer programming language examination, the automatic grading technology of programs is still not perfect, it is the key and difficult to realize the computer online test and automatic grading, so many researchers are trying to find a middle form (such as PMD or abstract syntax tree) for source code analysis and match to give a score. However, this method is to manipulate the program as a whole to compare, it has not only the high memory usage but also difficulty to realize and loses flexibility.This paper fuses program error checking and partial correction techniques, black box testing techniques based on reflection mechanism, regular expression matching and grading techniques for knowledge points to achieve Java programming questions automatic grading technologies and prototype systems. The way of grading takes into account the dynamic test of executable code and static analysis of source code, and uses the following two grading methods for different examine programs:1.As the examinee program can pass compiling, it uses Java reflection mechanism to extract the related information of examinee programs for black box testing and then give a test point, combines with the grammar point and running results point to calculate a total score.2.As the examinee program will not pass compiling, it uses the compiler of the local jdk package to compile the examinee program, and then checks errors and makes partial correction, once corrects an error should be recompiled it to eliminate false errors. If the examinee program can smoothly pass compiling after correcting, it uses the first method to calculate score. If the examinee program can not correct, then it abandons correction and properly gives grammar points according to the kind of errors, combines with the matching of knowledge points to calculate a total score. Experimental results show that the Java programming questions automatic grading technologies which achieve in this paper, improve the reasonableness and accuracy of questions grading process, and have good flexibilityKeywords: reflection mechanism regular expression XML program error checking partial correctionII目录第1章绪论 (1)1.1 研究背景 (1)1.2 研究目的及意义 (1)1.3 国内外研究现状 (2)1.4 课题的研究思路 (3)1.5 研究目标 (3)1.6 课题的难点与解决方法 (4)1.7 系统开发工具 (4)1.8 论文组织结构 (5)第2章相关技术简介 (6)2.1 Java反射机制 (6)2.1.1 Java反射机制原理 (6)2.1.2 反射机制的应用步骤 (7)2.2 正则表达式 (9)2.2.1 正则表达式的构造字符 (9)2.2.2 正则表达式的应用步骤及示例 (10)2.3 UML建模 (13)2.3.1 UML模型图 (13)2.3.2 UML建模过程 (14)2.4 XML相关技术 (14)2.4.1 XML验证技术 (15)2.4.2 XML解析技术 (15)2.4.3 XML查询技术 (16)2.5 本章小结 (16)第3章自动评分系统的总体设计 (18)3.1系统需求建模 (18)3.2 静态结构建模 (20)III3.3 动态行为建模 (20)3.5 数据库设计 (23)3.6 试卷标准答案的XML文档格式 (25)3.7 XML数据的加解密 (26)3.8本章小结 (26)第4章自动评分系统的实现与测试 (27)4.1 程序查错及局部纠错技术的实现 (27)4.1.1获取程序编译后的出错信息 (27)4.1.2 查错及局部纠错技术的实现 (28)4.2基于反射机制的黑盒测试技术的实现 (31)4.3知识要点的正则表达式匹配评分技术的实现 (35)4.3.1知识要点的正则表达式描述 (35)4.3.2 知识要点的提取 (36)4.3.3 知识要点的匹配评分技术的实现 (38)4.4 XML数据加解密的实现 (38)4.5原型系统的设计与实现 (40)4.6本章小结 (45)第5章总结及展望 (47)参考文献 (48)致谢 .............................................................. 错误!未定义书签。
java编写评委打分
import java.util.Scanner;
public class JudgeScoring {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numJudges = 3; //评委数量
System.out.println("平均分:" + averageScore);
}
}
该程序首先定义了一个numJudges变量,表示评委数量。然后,定义了一个scores数组,用于存储每个评委的分数。接下来,使用一个for循环获取每个评委的分数,并将其存储在scores数组中。在每次循环中,程序都会提示用户输入分数,并使用input.nextInt方法读取输入的值。最后,程序计算总分和平均分,并输出结果。
int[] scores = new int[numJudges]; //存储每个评委的分数
int totalScore = 0; //总分
//获取每个评委的分数
for (int i = 0; i < numJudges; i++) {
System.out.print("请输入第" + (i + 1) + "个评委的分数:");
scores[i] = input.nextInt();
totalScore += scores[i];
}
//计算平均分
double averageScore = (double) totalScore / numJudges;
模拟裁判给比赛选手打分参考程序2
void sort(result *s,int n);//排序
void main(void)
{ int n,m;
cout<<"输入参赛选手人数: ";
cin>>n;
cout<<"输入裁判人数: ";
cin>>m;
result temp(m);//定义一个临时对象,确定裁判人数,未定义该对象默认为10人
{ int i,m;
m=s[0].read_size();//获取裁判人数
cout <<setw(10)<<"编号"<<setw(10)<<"姓名"<<setw(10)<<"成绩\n";
for(i=0;i<n;i++)
{ cout<<setw(10)<<s[i].read_num();
cout<<setw(10)<<s[i].read_name();
s[j]=s[j-1];
s[k]=temp;
}
}
}
/*
以下为模拟裁判经给比赛选手打分参考程序2(实验二中的程序设计实验),供同学们参考,请各位同学认真阅读,并与参考程序1进行对比分析,然后自己重新编写并调试通过(分步调试)后上交。
类的定义放在头文件“hhresult.h”中,处理程序放在“exp207.cpp”中,
*/
//以下为类的定义:
#include<iostream>
信息化教学设计教案-《一维数组》
另外,除了可以通过课程网站即时发布与课程学习相关的通知外,还开通了 QQ 群及课程微信平 台辅助教学,这样,老师和学生都可以直接使用手机方便快捷的发布和查看即时消息,为师生的交 流互动提供了更加便捷的途径,有利于化解教学难点。
2
从学生的差异来看,基本操作能力不会相差太大,主要体现在创新能力和知识迁移的水平上。 所以,教法选择和学法指导要针对学生的基础及爱好差异,符合学生的认知规律,尊重学生个 性发展,注重学生的灵活运用能力培养。
四、 教学目标及重难点
教学目标设计
知识目标:
1、 熟练掌握一维数组的声 明、创建的语法结构及 使用的基本流程;
评价平台既可以给出学生个人的素养考核、在线作业、考试情况,也可以给出全班同学的作业、 考试分布情况、形成综合评定。
六、 教学方法
●任务驱动法 项目教学中,最常用的是任务驱动法。把一个项目分成若干个任务,每个任务都要完成一定的 功能。但我在教学实践中发现,如果学生对你设计的任务不感兴趣时,就不能驱动学生自主学习, 这样即使在你的帮助和引导下,学生完成了任务,但这种驱动,只能是外驱动或硬驱动。而通过创 设有趣味的情境,结合知识本身的特点,吸引学生全身心地投入到活动中来,让每个学生都在做中 学,学中乐,真正做到自主学习、探究学习,在活动体验中获得经验,培养学生的探索精神,提高学 生的信息素养,这种融合了情境的任务驱动才能真正做到学习以学生为中心,主动建构知识技能。
素材等。
5
八、教学过程设计
步骤 1:课前准备 教学内容
师生活动 教师
JAVA用户图形界面 模拟裁判评分
Java实验报告图形用户界面——Swing组件及事件一、实验目的:①掌握Java swing组件的使用方法,包括窗口、框架、对话框、面板、文本编辑框、、按钮、组合框等,掌握多种布局方式②理解委托时间处理模型,掌握不同组件,不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面③掌握文件字符流的使用方法二、实验名称:模拟裁判评分三、实验要求:求若干整数的最大值、最小值和平均数。
输入若干整数和浮点数,求出最大值和最小值并显示。
并能用FileReader和FileWrite进行文本文件的输入输出处理,在面板上有保存进行处理。
程序运行界面如下图所示:要求:使用JTextFiled数组,数值个数可变;响应事件,计算最大值、最小值和平均分忽略空值和空串;按实际元素个数求值;解决除数为零的问题;能用FileReader和FileWrite进行文本文件的输入输出处理。
四、实验内容package模拟裁判评分;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;public class Source extends JFrame implements ActionListener{private JTextField texts[],text_source;private JButton button;private JButton b1,b2,b3;private JTextField t1,t2;//TextFile afile=new TextFile("");private int rows,columns;public Source(int rows,int columns ) throws IOException{super("模拟裁判评分");this.setBounds(300, 240, 650, 200);this.rows=rows;this.columns=columns;this.setBackground(java.awt.Color.lightGray);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.getContentPane().setEnabled(false);JPanel p1=new JPanel(new GridLayout(rows,columns));this.getContentPane().add(p1);texts=new JTextField[rows*columns];for(int i=0;i<texts.length;i++){texts[i]=new JTextField(i+2+".0",6);texts[i].setHorizontalAlignment(JTextField.CENTER);p1.add(texts[i]);}JPanel p2=new JPanel(new FlowLayout(FlowLayout.CENTER));this.getContentPane().add(p2,"South");button=new JButton("平均分");p2.add(button);button.addActionListener(this);text_source=new JTextField("",6);text_source.setEditable(false);text_source.setHorizontalAlignment(JTextField.CENTER);p2.add(text_source);b1=new JButton("去掉最高分");b2=new JButton("去掉最低分");b3=new JButton("保存");b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);t1=new JTextField("",6);t2=new JTextField("",6);t1.setEditable(false);t2.setEditable(false);t1.setHorizontalAlignment(JTextField.CENTER);t2.setHorizontalAlignment(JTextField.CENTER);p2.add(b1);p2.add(t1);p2.add(b2);p2.add(t2);p2.add(b3);this.setVisible(true);}public void actionPerformed(ActionEvent e){ String pingjunfen,max,min;double table[]=new double[texts.length];for(int i=0;i<texts.length;i++)try{ if(texts[i].getText().equals("")){remove(texts[i]);}elsetable[i]=Double.parseDouble(texts[i].getText());}catch(NumberFormatException nfe){JOptionPane.showMessageDialog(this, texts[i].getText()+"字符串不能转换为浮点数 请重新输入。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java实验报告图形用户界面——Swing组件及事件一、实验目的:①掌握Java swing组件的使用方法,包括窗口、框架、对话框、面板、文本编辑框、、按钮、组合框等,掌握多种布局方式②理解委托时间处理模型,掌握不同组件,不同事件的事件处理方法,设计出能够响应事件的Java图形用户界面③掌握文件字符流的使用方法二、实验名称:模拟裁判评分三、实验要求:求若干整数的最大值、最小值和平均数。
输入若干整数和浮点数,求出最大值和最小值并显示。
并能用FileReader和FileWrite进行文本文件的输入输出处理,在面板上有保存进行处理。
程序运行界面如下图所示:要求:使用JTextFiled数组,数值个数可变;响应事件,计算最大值、最小值和平均分忽略空值和空串;按实际元素个数求值;解决除数为零的问题;能用FileReader和FileWrite进行文本文件的输入输出处理。
四、实验内容package模拟裁判评分;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.*;public class Source extends JFrame implements ActionListener{private JTextField texts[],text_source;private JButton button;private JButton b1,b2,b3;private JTextField t1,t2;//TextFile afile=new TextFile("");private int rows,columns;public Source(int rows,int columns ) throws IOException{super("模拟裁判评分");this.setBounds(300, 240, 650, 200);this.rows=rows;this.columns=columns;this.setBackground(java.awt.Color.lightGray);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.getContentPane().setEnabled(false);JPanel p1=new JPanel(new GridLayout(rows,columns));this.getContentPane().add(p1);texts=new JTextField[rows*columns];for(int i=0;i<texts.length;i++){texts[i]=new JTextField(i+2+".0",6);texts[i].setHorizontalAlignment(JTextField.CENTER);p1.add(texts[i]);}JPanel p2=new JPanel(new FlowLayout(FlowLayout.CENTER));this.getContentPane().add(p2,"South");button=new JButton("平均分");p2.add(button);button.addActionListener(this);text_source=new JTextField("",6);text_source.setEditable(false);text_source.setHorizontalAlignment(JTextField.CENTER);p2.add(text_source);b1=new JButton("去掉最高分");b2=new JButton("去掉最低分");b3=new JButton("保存");b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);t1=new JTextField("",6);t2=new JTextField("",6);t1.setEditable(false);t2.setEditable(false);t1.setHorizontalAlignment(JTextField.CENTER);t2.setHorizontalAlignment(JTextField.CENTER);p2.add(b1);p2.add(t1);p2.add(b2);p2.add(t2);p2.add(b3);this.setVisible(true);}public void actionPerformed(ActionEvent e){ String pingjunfen,max,min;double table[]=new double[texts.length];for(int i=0;i<texts.length;i++)try{ if(texts[i].getText().equals("")){remove(texts[i]);}elsetable[i]=Double.parseDouble(texts[i].getText());}catch(NumberFormatException nfe){JOptionPane.showMessageDialog(this, texts[i].getText()+"字符串不能转换为浮点数 请重新输入。
");}if(e.getSource()==button) //平均分{pingjunfen=String.valueOf( Average(table));pingjunfen=pingjunfen.substring(0,5);text_source.setText(pingjunfen);}if(e.getSource()==b1) //去掉最高分{max=String.valueOf( Max(table));t1.setText(max);}if(e.getSource()==b2) //去掉最低分{min=String.valueOf( Min(table));t2.setText(min);}if(e.getSource()==b3) //读写文件{try {this.writeToText();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}try {this.readFromText();} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}}}public static void main(String args[]) throws IOException {new Source(6,10);}public double Average(double a[]) //平均分{double sum=0.0;double pingjunshu=0.0;for(int i=0;i<texts.length;i++){sum+=a[i];if(a[i]<0){JOptionPane.showMessageDialog(this,"有负数");}}sum-=((Max(a)+Min(a)));return sum/texts.length;}public double Max(double a[]) //最高分{double t=0.0;for(int i=0;i<texts.length;i++){if(a[i]<0){JOptionPane.showMessageDialog(this,"有负数");}if(t<a[i])t=a[i];}return t;}public double Min(double a[]) //最低分{double t=a[2];for(int i=0;i<texts.length;i++){if(a[i]<0){JOptionPane.showMessageDialog(this,"有负数");}if(t>a[i])t=a[i];}return t;}public void writeToText() throws IOException //写方法{FileWriter fout=new FileWriter("fibfile.txt");for(int i=0;i<rows*columns;i++){fout.write(texts[i].getText()+" ");if((i+1)%columns==0)fout.write("\r\n");}fout.write("\r\n");fout.write("平均分:"+text_source.getText()+" "+"最高分:"+t1.getText()+" "+"最低分:"+t2.getText());fout.close();}public void readFromText()throws IOException //读方法{FileReader fin=new FileReader("fibfile.txt");BufferedReader bin=new BufferedReader(fin);System.out.println("fibfile.txt"+":");String aline="";do{aline=bin.readLine();if(aline!=null)System.out.println(aline);}while(aline!=null);bin.close();fin.close();}}六、运行结果:点击四个按钮后的结果:七、实验说明①Source(int rows,int columns )构造方法中带有参数,实现数组可变,并用texts[]文本数组。