Java综合实验报告
java实训报告(通用9篇)

java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。
那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。
java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。
2.熟练掌握Java中常用的Swing组件的使用方法。
3.熟练掌握Java程序中图形用户界面设计的方法。
4.熟练掌握使用JDBC操作数据库的方法。
5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。
二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。
该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。
设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。
系统功能分析是在系统开发的总体任务的基础上完成的。
该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。
供应商管理:主要包括供应商的添加、删除和修改。
产品管理:主要包括产品的添加、删除和进货、出货。
产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。
2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.3 功能设计及思想本次实训设计采用选择结构化开发方法,即用系统工程的思想和工程化的方法,按照用户至上的原则,自顶向下整体分析与设计和自底向上逐步实施的系统开发过程。
是组织、管理和控制信息系统开发过程的一种基本框架。
其基本思想:在系统分析时,采用自顶向下、逐层分解,由抽象到具体的逐步认识问题的过程;在系统设计的时候,先考虑系统整体的优化,再考虑局部的优化问题;在系统实施的时候,则坚持自底向上,先局部后整体,通过标准化模块的连接形成完整的系统。
java实训报告(精选5篇)

java实训报告(精选5篇)java实训报告1作为就业培训,项目的好坏对培训质量的影响十分大,常常是决定性的作用。
这篇__是关于在学习java软件开发时练习项目的总结,简单总结为以下几点:1、项目一定要全新的项目,不能是以前做过的2、项目一定要企业真实项目,不能是精简以后的,不能脱离实际应用系统3、在开发时要和企业的开发保持一致4、在做项目的时候不应该有参考代码长话短说就是以上几点,如果你想要更多的了解,可以继续往后看。
一:项目的地位因为参加就业培训的学员很多都是有一定的计算机基础,大部分都具备一定的编程基础,尤其是在校或者是刚毕业的学生,多少都有一些基础。
他们欠缺的主要是两点:(1)不能全面系统的、深入的掌握某种技术,也就是会的挺多,但都是皮毛,不能满足就业的需要。
(2)没有任何实际的开发经验,完全是想象中学习,考试还行,一到实际开发和应用就歇菜了。
解决的方法就是通过项目练习,对所学知识进行深化,然后通过项目来获取实际开发的经验,从而弥补这些不足,尽快达到企业的实际要求。
二:如何选择项目项目既然那么重要,肯定不能随随便便找项目,那么究竟如何来选择呢?根据java的研究和实践经验总结,选择项目的时候要注意以下方面:1:项目不能太大,也不能太小这个要根据项目练习的阶段,练习的时间,练习的目标来判断。
不能太大,太大了做不完,也不能太小,太小了没有意义,达不到练习的目的。
2:项目不能脱离实际应用系统项目应该是实际的系统,或者是实际系统的简化和抽象,不能够是没有实战意义的教学性或者是纯练习性的项目。
因为培训的时间有限,必须让学员尽快地融入到实际项目的开发当中去。
任何人接受和掌握一个东西都需要时间去适应,需要重复几次才能够真正掌握,所以每个项目都必须跟实际应用挂钩。
3:项目应能覆盖所学的主要知识点学以致用,学完的知识点需要到应用中使用,才能够真正理解和掌握,再说了,软件开发是一个动手能力要求很高的行业,什么算会了,那就是能够做出来,写出代码来,把问题解决了,你就算会了。
Java实验三实验报告1

Java实验三实验报告1一、实验目的本次 Java 实验的主要目的是深入理解和掌握 Java 中的面向对象编程概念,通过实际的编程实践,提高对类、对象、继承、多态等特性的运用能力,同时培养良好的编程习惯和代码规范。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers三、实验内容1、设计一个名为`Shape` 的抽象类,其中包含一个抽象方法`calculateArea()`用于计算图形的面积。
2、分别创建`Circle`(圆形)、`Rectangle`(矩形)和`Triangle`(三角形)类继承自`Shape` 类,并实现各自的`calculateArea()`方法来计算具体图形的面积。
3、创建一个测试类`TestShapes`,在其中创建不同图形的对象,并调用其计算面积的方法,输出结果。
四、实验步骤1、创建`Shape` 抽象类```javaabstract class Shape {abstract double calculateArea();}```2、创建`Circle` 类继承自`Shape` 类```javaclass Circle extends Shape {private double radius;public Circle(double radius) {thisradius = radius;}@Overridedouble calculateArea(){return MathPI radius radius;}}```3、创建`Rectangle` 类继承自`Shape` 类```javaclass Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {thislength = length;thiswidth = width;}@Overridedouble calculateArea(){return length width;}}```4、创建`Triangle` 类继承自`Shape` 类```javaclass Triangle extends Shape {private double base;private double height;public Triangle(double base, double height) {thisbase = base;thisheight = height;}@Overridedouble calculateArea(){return 05 base height;}}```5、创建测试类`TestShapes````javapublic class TestShapes {public static void main(String args) {Circle circle = new Circle(50);Rectangle rectangle = new Rectangle(40, 60);Triangle triangle = new Triangle(30, 80);Systemoutprintln("圆形的面积:"+ circlecalculateArea());Systemoutprintln("矩形的面积:"+ rectanglecalculateArea());Systemoutprintln("三角形的面积:"+trianglecalculateArea());}}```五、实验结果运行测试类`TestShapes` 后,输出结果如下:```圆形的面积:78539816矩形的面积:240三角形的面积:120```六、实验中遇到的问题及解决方法1、在编写抽象类和子类的代码时,一开始对于抽象方法的定义和实现理解不够清晰,导致代码出现错误。
Java实验报告(三)

Java实验报告(三)实验(三)类和对象⼀、实验⽬的和要求1.掌握类的构造函数的重载2.深⼊理解类和对象3.学习NetBeans中UML项⽬的创建类并⽣成相应代码的⽅法⼆、实验内容和原理设计⼀个复数类,能够完成复数之间的基本运算,重写⽅法toString(),使其能输出此复数(形式为:实部 + 虚部i)。
要求设计的复数类必须有三个构造函数,分别为⽆参数、1个参数和2个参数的构造函数,完成的基本运算包括两个复数的加、减、乘、除法和共轭复数。
三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以⽤类图、流程图、伪代码或源程序描述)2.实验步骤●创建⼀个UML项⽬,并设计类Complex如下图●创建⼀个Java应⽤项⽬●把UML项⽬中的Complex⾃动⽣成代码到Java应⽤项⽬中●实现Complex类中的⽅法●进⾏编译●进⾏测试,使⽤的测试⽤例:输⼊:预期输出:…代码:Complex类:package studentTaskThree;/*** 复数类* @author Administrator**/public class Complex{/*** 定义类变量,复数的实部realPart和虚部ImaginaryPart */ private double realPart;private double imaginaryPart;/*** ⽆参构造⽅法*/public Complex(){super();* 不含实部复数的构造⽅法* @param realPart*/public Complex(double imaginaryPart){super();this.imaginaryPart = imaginaryPart;}/*** 含有实部参数和虚部参数的构造⽅法* @param realPart* @param imaginaryPart*/public Complex(double realPart, double imaginaryPart) { super();this.realPart = realPart;this.imaginaryPart = imaginaryPart;}/*** 读取实部* @return*/public double getRealPart(){return realPart;}/*** 设置实部* @param realPart*/public void setRealPart(double realPart){this.realPart = realPart;* 读取虚部* @return*/public double getImaginaryPart(){return imaginaryPart;}/*** 设置虚部* @param imaginaryPart*/public void setImaginaryPart(double imaginaryPart){this.imaginaryPart = imaginaryPart;}/*** 复数相加⽅法* @param complex* @return*/public Complex plus(Complex complex){return new Complex(this.realPart + complex.realPart, this.imaginaryPart + complex.imaginaryPart); }/*** 复数相减⽅法* @param complex* @return*/public Complex minus(Complex complex){return new Complex(this.realPart - complex.realPart, this.imaginaryPart - complex.imaginaryPart); }* @param complex* @return*/public Complex times(Complex complex){return new Complex(complex.realPart * this.realPart - complex.imaginaryPart * this.imaginaryPart,complex.realPart * this.imaginaryPart +complex.imaginaryPart * this.realPart);}/*** 复数相除⽅法* @param complex* @return*/public Complex divideBy(Complex complex){double dividedPart = (this.realPart * this.realPart +this.imaginaryPart * this.imaginaryPart);return new Complex((complex.realPart * this.imaginaryPart + complex.imaginaryPart * this.realPart) / dividedPart, (complex.imaginaryPart* this.realPart- complex.realPart * this.imaginaryPart) / dividedPart);}/*** 求共轭复数⽅法* @return*/public Complex conjugate(){return new Complex(this.getRealPart(),-this.getImaginaryPart());}/*** 重写toString⽅法,实现复数的输出格式*/String str = "";// 实部为零,虚部不为零if (this.realPart == 0 && this.imaginaryPart != 0){str += this.getImaginaryPart() + "i";}// 实部不为零,虚部为零else if (this.realPart != 0 && this.imaginaryPart == 0){str += this.getRealPart();}// 实部、虚部都不为零else if (this.realPart != 0 && this.imaginaryPart != 0){str += this.getRealPart() + (this.getImaginaryPart() > 0 ? "+": "") + this.getImaginaryPart() + "i"; }return str;}}测试类:Complexdemopackage studentTaskThree;/*** 测试类* @author Administrator**/public class ComplexDemo{/*** main⽅法,测试程序⼊⼝点* @param args*/public static void main(String[] args)* 创建两个完整复数对象*/Complex com1 = new Complex(1, 2);Complex com2 = new Complex(2, 1);// 创建⽆参复数Complex com3 = new Complex();// 创建只有虚部的复数Complex com4 = new Complex(5);// 输出对象System.out.println("复数1:" + com1);System.out.println("复数2:" + com2);System.out.println("复数3:" + com3);System.out.println("复数4:" + com4);// 输出相加结果System.out.println("复数相加:(" + com1 + ") + (" + com2 + ") = " + (com1.plus(com2)).toString()); // 输出相减结果System.out.println("复数相减:(" + com1 + ") - (" + com2 + ") = "+ (com1.minus(com2)).toString());// 输出相乘结果System.out.println("复数相乘:(" + com1 + ") * (" + com2 + ") = " + com1.times(com2));// 输出相除结果System.out.println("复数相除:(" + com1 + ") / (" + com2 + ") = " + com1.divideBy(com2));// 输出所求的共轭复数System.out.println("共轭复数: " + com1 + " 共轭复数是:" +com1.conjugate());}}实际测试类:import javax.swing.JOptionPane;/*** 实际测试类* @author Administrator**//*** 测试类⼊⼝点* @param args*/public static void main(String[] args){// 创建两个复数对象Complex com1 = new Complex();Complex com2 = new Complex();// 输⼊数据com1.setRealPart(Double.parseDouble(JOptionPane.showInputDialog("请输⼊复数1的实部:")));com1.setImaginaryPart(Double.parseDouble(JOptionPane.showInputDia log("请输⼊复数1的虚部:")));com2.setRealPart(Double.parseDouble(JOptionPane.showInputDialog("请输⼊复数2的实部:")));com2.setImaginaryPart(Double.parseDouble(JOptionPane.showInputDia log("请输⼊复数2的虚部:")));// 输出各个⽅法的测试结果JOptionPane.showMessageDialog(null, "复数应⽤测试如下:\n" +"复数1:" + com1 + "\n" +"复数2:" + com2 + "\n" +"复数相加:" + com1.plus(com2) + "\n" +"复数相加:" + com1.minus(com2) + "\n" +"复数相乘:" + com1.times(com2) + "\n" +"复数相除:" + com1.divideBy(com2) + "\n" +"共轭复数:" + com1 + " 共轭复数是:" +com1.conjugate());}}五、调试过程1.编译过程没有错误。
Java万能实训报告心得(7篇)

Java万能实训报告心得(7篇)Java万能实训报告心得篇1短短的一个月很快就过去了,在这短短的一个月里,我学到了很多,了解了很多。
在这一个月里我学到了有关JAVA等方面的知识,了解了关于软件开发的流程。
了解了自己的不足,知道了自己努力的方向。
回顾这次的实训,这次或许是最后的实训机会。
我是一名大二的学生,明年或许就要出去实习了,所以我很珍惜这次的实训机会,因为它能够让我了解自己的不足以及以后自己努力的方向,同时也能让我了解软件开发的流程,增加一点软件开发经验和社会经验。
让我在以后的实习中会更好的融入到其中,增加自己的就业机会,因为纵观现在的就业形势很不让人乐观,由于之前的经济危机,就业机会越来越少,就业也越来越难,这就给了我们很大的压力,所以要是没有真本事,就业岗位就无从谈起,因此,在以后的学习中,我会更加好好努力。
通过这次的实训,我学到了很多:首先,对JAVA识比以前有了更深的了解。
在这之前由于种.种原因我JAVA学的很不好,编程我几乎写不出来。
但经过这次的实训,我对JAVA的理解,虽然还有很多都不懂,但我会在今后的实训和学习中加以学习了解,力求弄懂,增强自己对JAVA的理解。
其次,在这次的实训中我的动手操作能力有了一点的提高,刚开始的时候JDK的配置,数据库的安装都出现了一定的问题,JAVA 可实话开发工具的不熟悉,所以开始的时候进程很慢,时间都用在了JDK的配置,数据库的安装以及熟悉JAVA可视化开发工具上,但付出有了回报,成功的配置了JDK,安装了数据库,熟悉了JAVA可视化开发工具,总的说来,自己还是有一定的收获的。
因为自己的动手操纵能力得到了提高。
最后是团队协作。
在整个项目完成过程中团队协作有着不可替代的作用。
从在刚拿到项目时对项目的分析到最后的项目完结的都有一定的体现。
刚拿到项目时,我们团队进行了分析,并分配了各自的任务。
当我们其中一人遇到问题的时候,我们其他人都会去帮忙,效率提升了很多。
java综合实验报告

//弹出
} } }
if( e.getSource()==item_rem ){ //重来 for(int i=1;i<=9;i++){ for(int j=1;j<=9;j++){
text[i][j].setText(atext[i][j]); } } }
public static void main(String args[]){ //声明main方法 setnum(); settext(); new ShuDu1(); }
class ShuDuAns extends JFrame{ //类声明;设置答案窗口 private JTextField atext[][]=new JTextField[10][10]; public ShuDuAns(){ //构造类 super("Answer"); //设置框架窗口标题 this.setSize(300,300); //设置框架尺寸 this.setLocation(200,200); //设置框架显示在屏幕的位置 this.setVisible(true); //组件设为可见 this.setResizable(false); //窗口大小不能改变 JPanel apanel_but=new JPanel(new FlowLayout()); //将面板设为流布局 JPanel apanel_txt=new JPanel(new GridLayout(3,3,2,2)); //将面板内部
2、确定类的属性。
ShuDu1: public JtextField:private Jframe:public
String: public JPanel:private
大学生java实训总结报告6篇

大学生java实训总结报告6篇篇1一、实训背景与目标本次Java实训旨在通过实践操作,加深大学生对Java编程语言的理解与掌握,提高实际项目开发能力。
在为期一个月的实训期间,我们小组围绕Java SE基础、Java Web开发、数据库操作等内容进行了系统学习和实践。
通过本次实训,我们期望达到以下目标:1. 深入理解Java核心技术与编程思想。
2. 掌握Java Web开发的基本流程和关键技术。
3. 学会使用至少一种数据库进行Java程序与数据库的交互。
4. 具备一定的项目开发和团队协作能力。
二、实训内容与过程1. Java SE基础实训在实训初期,我们重点复习和巩固了Java SE基础知识,包括数据类型、运算符、流程控制、面向对象编程等。
通过编写简单的控制台程序,我们实践了异常处理、集合类、泛型以及多线程编程。
2. Java Web开发实训随后,我们转向Java Web开发的学习。
通过学习和实践,掌握了基于Servlet和JSP的Web开发技术。
同时,学习了HTML、CSS和JavaScript等前端技术,并练习了前后端数据的交互。
此外,还了解了MVC设计模式在Web开发中的应用。
3. 数据库操作实训在数据库操作方面,我们主要学习了SQL语言以及JDBC操作数据库的技术。
通过实践操作,我们能够在Java程序中实现数据的增删改查,并学会了使用ORM框架进行对象与数据库表的映射。
4. 项目开发实践在实训的最后阶段,我们以小组形式进行了一个小型项目——在线图书管理系统。
通过项目的开发,我们综合运用了前面学到的知识,包括Web开发技术、数据库操作等。
在项目开发过程中,我们学会了如何分工合作,如何进行有效的项目管理。
三、实训收获与体会1. 提升了编程能力。
通过实训,我们对Java编程语言有了更深入的了解,编程能力得到了显著提高。
2. 增强了项目开发经验。
项目开发的实践让我们体验到了软件开发的流程,学会了如何在项目中运用所学知识。
JAVA实验研究报告一

Java语言程序设计实验报告一班级:姓名:学号:一、实验教案目的与基本要求Java程序设计的实验是Java程序设计课程重要的实践教案环节。
实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。
充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。
本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。
本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。
(1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。
(2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。
(3)具有分析、寻找和排除程序中常见问题的能力。
二、实验内容与收获(1)Java的安装与配置。
熟悉语言环境及简单程序设计的使用练习,正确配置Java开发环境(Eclipse 集成开发环境的安装、配置与使用)a)安装JDKSun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。
可以通过IE或Netscape浏览器浏览网址:/j2se,根据提示可以下载支持Microsoft Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。
安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.5.0目录下,如图1-2。
正确安装后,在JDK目录下有bin、demo、lib、jre等子目录,如图1-3,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了Java的类库文件,jre目录保存的是Java的运行时环境(JRE)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计综合性实验题目学生考试成绩分析程序实验时间指导老师专业年级姓名学号内容要求:1.基本数据:(1)班级:程序能处理若干班级,每个班级包括的属性有:年级、专业、班和若干学生。
(2)学生:每个班级包含多名学生,学生属性有:学号和姓名。
(3)课程:程序能处理多门课程,每个课程属性:课程编号、名称、学分、学时。
2.数据存储:基本数据能搞保存在文件中。
3.功能要求:(1)基本数据输入:程序提供界面(推荐实现GUI)能够建立并输入班级、学生和课程的信息。
(2)考试成绩输入:程序提供界面(推荐实现GUI),指定班级、课程后,输入该班所有学生的该门课程的考试成绩。
(3)成绩查询:输入学号和课程后,能够显示该学生的考试成绩。
(4)成绩分析:指定班级和课程后,对该班的该课程进行以下3个方面的分析:·分数分析:最高分、最低分、平均分。
·分数段分析:分别统计0-59、60-69、70-79、80-89、90-100的学生人数和所占的百分比。
·图形分析:生成考试成级的统计图(柱状图和圆饼图)。
评语及成绩:项目/分数 A B C D E 比重%内容完成情况√□□□□25%系统分析设计√□□□□30%程序设计水平√□□□□20%实验报告撰写√□□□□10%实验总结√□□□□5%其他(功能)√□□□□10%总评成绩(一)系统分析:本系统为学生考试成绩分析系统,系统要求可以让用户输入若干学生的基本信息、课程信息,还有对应的课程成绩。
而主要功能则是可以实现按条件进行相应学生的成绩查询和按条件进行成绩的分析,并且能够通过绘制柱状图与圆饼图来显示相应结果。
因此,我设计了3个保存数据的类,分别是年级班级类、学生类以及课程类,其中学生类继承了课程类,而年级班级类则继承学生类。
每当新建一条信息(一个学生的信息),则新建一个年级班级类,在内部会自动新建一个学生类以及课程类,用于记录一个学生的信息。
本系统采用了窗口GUI来实现,因此大量采用了按钮、文本框、单选按钮、滚动窗口等等,所以必不可少的当然是不少的监听器与对应的实现方法。
(二)系统设计:1.基本数据:Class—Grade : String—major : String—classname : String—Student : Student+getGrade() : String+getStudent() : Student+getClassname() : String+getMajor() : String+setGrade(Grade : String) : void+setClassname(classname : String) : void +setMajor(major : String) : voidStudent—StudentID : String—StudentName : String—Course : Course—couseMark : double+getCourse() : Course+getCouseMark () : double+getStudentID () : String+getStudentName () : String+setCouseMark (couseMark : double) : void+setStudentID (StudentID : String) : void+setStudentName (StudentName : String) : voidCourse—coureNumber : String—courseName : String—coureScore : double—courseHour : double+getCoureNumber () : String+getCoureScore () : double+getCourseHour () : double+getCourseName () : String+setCoureNumber (coureNumber : String) : void +setCoureScore (coureScore: double) : void+setCourseHour (courseHour: double) : void+setCourseName(courseName : String) : voidjava.io.Serializable2.主要方法实现及其他类(总共有20个,简单罗列5个):AnalysisExamination +readFile() : voidAnalysisGUI2—jbtStatistical : JButton —jbtMarkStep : JButton —jbtDrawPicture : JButtonDeleteGUI—DeleteGUI : JFrame —jrbStudentID : JRadioButton —jrbStudentName : JRadioButton —jrbClassName : JRadioButton —jtfText : JTextField —LbForShowMessage : JLabel —LB0 : JLabel—LB00 : JLabel (static) —jbtConfirm : JButton —jbtDelete : JButton —jchkBold : JCheckBox —jchkItalic : JCheckBox —jrbRed : JRadioButton —jrbBlue : JRadioButton —jrbBlack : JRadioButton —ClassForSelect : Class[] (static) —countForSelect : int (static)DeleteGUI2—DeleteGUI2 : JFrame—jtfSetNumber : JTextField—jlbSetNumber : JLabel—jlbSetNumber2 : JLabel—jbtConfirm : JButton—GetNumber : intDrawHistogramGUI—useForDrawing : JFrame—Mark : int[]—Grade : String—Major : String—ClassName : String—count : intJFrame(三)系统实现:1.显示全部信息:利用窗口进行显示,而该窗口由菜单栏、滚动窗口、单选按钮和复选按钮组成。
菜单栏用于选择按条件显示,滚动窗口则用于显示相关信息,单选按钮则用于选择字体颜色,复选按钮则用于选择字体是否加粗或者倾斜。
而显示内容则用标签存放每个学生的相关信息,则每条信息都用十个标签来显示。
2.输入基本信息:当鼠标点击输入基本信息按钮时,则弹出一个窗口让用户进行输入。
当满足一切条件后则创建一个新的Class对象来存放该条信息;如果有某个条件不满足,则停留在输入窗口,让用户进行修改。
3.输入成绩:一开始创建基本信息时候,分数是默认为-1的,所以当用户指定年级、班名、专业、课程名称后,系统则会显示满足条件的所有学生的信息,然后让用户进行分数的输入,如果输入的内容满足条件则把分数存入对象中,否则提示错误,让用户重新输入。
4.信息管理:(I)。
修改信息:当点击修改信息按钮,会弹出一个窗口。
除了选择修改的条件的单选按钮,窗口所有按钮一开始都是不可用的。
但选择完条件后,输入文本框、提示的标签与提交的确定按钮则会开启,让用户输入数据。
输入完数据后,中间的滚动窗口则会显示出相应的信息,并且对于字体相关显示属性的按钮也会开启,确认修改按钮同时也开启。
当点击进行修改按钮后,会弹出一个窗口,让用户输入要修改的信息,然后在选择修改什么内容,然后相应的文本框与提示标签也开启,当满足一切条件后,则会将用户输入的修改的内容写入记录中,并且把修改后的内容及时显示在记录板上。
(II)。
删除信息:与修改信息基本一样。
5.按条件进行排序:当点击此按钮,则弹出一个窗口。
此窗口是显示窗口的“强化”,只是在左下角添加了选择排序的条件的单选按钮而已,但选择完条件后,系统将排序后的结果显示在中间的滚动窗口中。
6.成绩查询:当用户点击了此按钮,则弹出一个窗口,让用户输入学生的学号和课程的名称,然后系统进行搜索,如果搜索到则在该窗口显示相应的成绩,否则就弹出提示窗口。
7.成绩分析:当点击此按钮后,则弹出窗口让用户输入年级、班级、专业、课程名称,如果找到记录则再弹出一个窗口,让用户选择成绩分析的功能。
当点击显示对应的按钮则弹出相应的提示。
当点击了绘图按钮,则会继续询问用户要绘制柱状图还是圆饼图,然后画出相应的图案。
8.保存数据到文件:点击此按钮时,系统就会将数据序列化,然后以对象的形式写入文件当中。
9.数字时钟:数字时钟是默认打开的,当用户关闭了后,可以按此按钮进行打开。
若在打开状态继续按此按钮,则会提示相应的提示,告诉用户时钟已经打开了,不需要再次打开。
(四)系统测试:1.自动读取文件:(I)文件不存在或者文件里面没有信息时候:(II)文件读取成功:2.主界面:3.显示所有信息:4.基本数据输入:5.成绩输入:6.信息管理:7.修改信息、删除信息的主窗口:8.修改信息、删除信息的子窗口:9.按条件排序:10.成绩查询:11.成绩分析:12.成绩分析子窗口:13.绘制柱状图:14.圆饼图:(五)实验总结:这次综合实验可以说受益良多。
因为不仅仅能够把这学期老师上课讲到的所有内容都运用、操作一遍,另外还能让我了解到更多的额外内容。
这个小小的、算是简单的程序,运用到了类的概念、继承的运用,以及图形用户界面的简单实用,还有绘制图画的简单操作。
我真是感谢这次实验,原本我对绘制图片一点概念都没有,对画图一律不懂,不知道从何入手。
但是经过这次实验后,我对绘图有了进一步的了解,现在对于绘图并不感到害怕。
其实画图几乎都是一样的,都是使用直线,圆,矩形,扇形,多边形等等来构造出一幅比较复杂的图片。
所以说,只要你明白了画图的基本原理,以及对绘图这个类有一定的了解,那么你就基本能绘出一幅漂亮的图片。
这次综合实验,按照题目意思,我是用了所推荐的GUI来实现本系统。
老师上课讲的窗口事件、按钮事件等我都用到了,但是在做的时候,我发现只用上那些是远远不够的。
就是因为这样,我就自己学了另外的一些内容,包括滚动窗口的使用,菜单栏与菜单子选项,单选按钮,复选按钮,列表框等等的使用。
所以通过这次实验,我学到了更多知识,这样为下学期的课程设计提供了良好的基础。