第一篇:学生管理系统实训报告(java语言)
《Java实训》设计报告
学生管理系统一、项目需求
通过与科信学院教务人员的详细交流,目标系统具备以下功能。1.教师客户端功能 * 可以更改密码;
* 可以添加学生,并要求填写学生基本信息; * 可以根据学号查询学生基本信息及其成绩;
* 有权限控制,每个管理员只能管理其所在学院的信息; * 可以添加新课程、新班级;
* 可以控制选课的课程范围,并可以控制选课的时间,即:可以控制选课开始和结束时间;
* 可以录入成绩,缓存成绩,检查无误后公布成绩。2.学生客户端功能
* 学生可以查看自己的基本信息;
* 学生可以查看自己的成绩,已修学分和不及格成绩信息; * 学生端可以进行远程选课,并且可以查看课表。根据以上相关功能,现规划数据流图和数据字典如下:
二、项目设计
在设计学生管理系统时,编写20个Java源文件:ChangePwd.java、ChangePwdTeacher.java、ChoseCourse.java、CourseTable.java、CourseManage.java、GetScore.java、GetStuInfo.java、GradeInDB.java、Login.java、NewClass.java、NewCourse.java、NewStu.java、StuClient.java、StuFailGrade.java、StuGrade.java、StuInfo.java、StuScore.java、TeacherClient.java、TeachSearchInfo.java、Welcome.java学生管理系统除了上述20个Java源文件所给出的类外,还需要Java系统提供的一些重要类,如JButton,JTextField,JTextArea,LinkedList等。
下面是20个Java源文件的功能:(1)Login.java(主类)
《Java实训》设计报告
Login类负责创建学生管理系统登陆界面的主窗口,该类含有main方法,学生管理系统从该类开始执行。Login类是继承Jframe类,有一个ActionListener接口,并且加载了Mysql数据库连接。该类中有两种身份类型:学生、管理员,在登录窗口中选择相应的身份类型,输入信息正确后就会进入相应的客户端。
(2)ChangePwd.java类
该类是学生客户端修改密码的类,在该类中,用户提供原始密码(登陆成功的密码)后并且输入新密码和确认新密码后点击“确认”按钮就可以修改密码。
(3)ChangePwdTeacher.java类
该类是教师客户端修改密码的类,在该类中,用户提供原始密码(登陆成功的密码)后并且输入新密码和确认新密码后点击“确认”按钮就可以修改密码。
(4)ChoseCourse.java类
该类主要是控制学生选课,学生根据教师安排的课程信息,由学生输入已经安排好的“课程号”就可以选课。
(5)CourseTable.java类
该类主要控制学生的课程安排,就是以课表显示学生的选课信息。(6)NewClass.java类
该类主要是有教师操作,教师通过输入正确的班级号、班级名、专业信息后就可以添加新的班级。
(7)NewStu.java类
该类作为教师客户端的一个主要模块,该模块是教师添加新学生。教师通过输入学生的基本信息,包括:姓名、出生年月、学号、籍贯、入学年份、专业等等。这样就可以添加新学生。
(8)StuClient.java类
该类是基于Login类的,这是学生客户端的界面类,该类控制了学生客户端要显示什么内容,由什么功能等等。包括:修改密码、查看自己基本信息和成绩、选课等功能界面的显示。
(9)TeacherClient.java类
该类是教师客户端界面的类,该类和StuClient类的功能基本相似,主要包括修改密码、添加新学生、查看学生基本信息和成绩信息、进行课程安排、添加新课程和班级等功能的显示。
(10)StuInfo.java类
《Java实训》设计报告
StuInfo.java类是学生查询学生自己的基本信息。(11)TeachSearchInfo.java类
TeachSearchInfo.java类是教师根据学生提供的基本信息建立学生基本信息电子档案。即新生报到功能的实现。
(12)Welcome.java类
该类最为简单,仅仅通过一张xs.jpg图片显示在学生和教师客户端中。(13)CourseManage.java类
该类是教师管理课程,教师可以对课程安排,包括:周次、任课教师、学分等信息,为学生选课做准备。
(14)GetScore.java类
该类是提供学生的成绩各科成绩,包括及格成绩和不及格成绩,以及学分。(15)GetStuInfo.java类
根据学号获得学生相应基本信息的方法。教师在输入学生学号后点击“查询”按钮查看相应学生的基本信息。
(16)GradeInDB.java类
该类的功能是公布学生某一科的成绩,教师通过点击“公布该科成绩单”就会公布该科的成绩,学生就会在学生自己客户端查看自己的成绩信息。
(17)NewCourse.java类
该类主要是有教师操作,教师通过输入正确的课程号、课程名、学分信息后就可以添加新的课程,这个类与NewClass.Java的功能相似。
(18)StuFailGrade.java类
该类功能是显示学生的不及格成绩。学生在查看成绩时候,点击“不及格成绩”时显示的界面。
(19)StuGrade.java类
该类功能是显示学生的已修课程成绩。学生在查看成绩时候,点击“已修课程成绩”时显示的界面。
(20)StuScore.java类
该类是教师通过输入学生的“学号”进行查询学生的成绩信息。
1、Login类(主类)(1)数据和方法
Login类是javax.swing包中JFrame的一个字类,并实现了ActionListener接
《Java实训》设计报告
口。类中有关数据和方法的详细说明。
1)成员变量
该类中的变量大部分都是私有的,这样有利于信息的封装。其中包括:
private Connection conn;//连接数据库用到
private Statement stmt;//执行数据库语句 private ResultSet rs;//结果集
private JPanel jp=new JPanel();//创建用来存放空间的容器 private JLabel jl1=new JLabel(“用户名”);private JLabel jl2=new JLabel(“密码”);//创建用户名和密码输入框
private JTextField jtf=new JTextField();private JPasswordField jpwf=new JPasswordField();private JRadioButton[] jrbArray={new JRadioButton(“普通学生”,true), new JRadioButton(“管理人员”)};//创建单选按钮数组
private ButtonGroup bg=new ButtonGroup();//创建组 //创建操作按钮
private JButton jb1=new JButton(“登陆”);private JButton jb2=new JButton(“重置”);2)方法
main(String args[]);方法是学生管理系统程序运行的入口方法。Login();是构造方法,负责完成窗口的初始化。addListener();添加事件监听器方法。initialFrame();初始化窗体
actionPerformed(ActionEvent e);实现接口方法 initialConnection();自定义的初始化数据库连接的方法 closeConn();关闭数据库
2、代码
import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;import java.util.*;import java.net.*;
《Java实训》设计报告
import java.io.*;import java.sql.*;import javax.sql.*;public class Login extends JFrame implements ActionListener { private String host;//声明Connection引用、Statement对象引用与结果集引用
private Connection conn;private Statement stmt;
private ResultSet rs;private JPanel jp=new JPanel();//创建用来存放空间的容器 private JLabel jl1=new JLabel(“用户名”);private JLabel jl2=new JLabel(“密码”);private JLabel jl3=new JLabel(“");//正在登陆提示标签 //创建用户名和密码输入框
private JTextField jtf=new JTextField();private JPasswordField jpwf=new JPasswordField();private JRadioButton[] jrbArray={new JRadioButton(”普通学生“,true),new JRadioButton(”管理人员“)};//创建单选按钮数组
private ButtonGroup bg=new ButtonGroup();//创建组
//创建操作按钮
private JButton jb1=new JButton(”登陆“);private JButton jb2=new JButton(”重置“);public Login(){ this.addListener();initialFrame();//初始化界面 } public void addListener(){ this.jb1.addActionListener(this);//为登陆按钮注册监听器
this.jb2.addActionListener(this);//为重置按钮注册监听器
this.jtf.addActionListener(this);//为用户名文本框注册监听器 this.jpwf.addActionListener(this);//为用户名密码框注册监听器 } public void initialFrame(){ jp.setLayout(null);//设为空布局
//将控件添加到容器相应位置
jl1.setBounds(30,100,110,25);jtf.setBounds(120,100,130,25);jl2.setBounds(30,140,110,25);jpwf.setBounds(120,140,130,25);jpwf.setEchoChar('*');bg.add(jrbArray[0]);bg.add(jrbArray[1]);jrbArray[0].setBounds(40,180,100,25);jrbArray[1].setBounds(145,180,100,25);jb1.setBounds(35,210,100,30);jb2.setBounds(150,210,100,30);jl3.setBounds(40,250,150,25);this.add(jp);
jp.add(jl1);jp.add(jtf);jp.add(jl2);jp.add(jpwf);
jp.add(jrbArray[0]);jp.add(jrbArray[1]);jp.add(jb1);jp.add(jb2);jp.add(jl3);
《Java实训》设计报告
//设置窗口的标题、大小、位置以及可见性 this.setTitle(”登陆“);this.setResizable(false);Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();int centerX=screenSize.width/2;int centerY=screenSize.height/2;int w=300;//本窗体宽度 int h=320;//本窗体高度
this.setBounds(centerX-w/2,centerY-h/2-100,w,h);//设置窗体出现在屏幕中 this.setVisible(true);} public void actionPerformed(ActionEvent e){ if(e.getSource()==jb1)
{//按下登陆按钮
String name=this.jtf.getText().trim();if(name.equals(”“)){
JOptionPane.showMessageDialog(this,”请输入用户名“,”错误“,JOptionPane.ERROR_MESSAGE);
jl3.setText(”“);return;} String pwd=new String(jpwf.getPassword()).trim();if(pwd.equals(”“)){
JOptionPane.showMessageDialog(this,”请输入密码“,”错误“,JOptionPane.ERROR_MESSAGE);
jl3.setText(”“);return;
}
int type=this.jrbArray[0].isSelected()?0:1;//获取登陆类型
try
{//初始化连接
this.initialConnection();
if(type==0){//普通学生登陆
String sql=”select * from user_stu where stu_id='“+name+”' and
rs=stmt.executeQuery(sql);if(rs.next())
{ new StuClient(name);//创建学生客户短窗口
this.dispose();//关闭登陆窗口并释放资源 } else
{//弹出错误提示窗口
JOptionPane.showMessageDialog(this,“用户名或密码错误”,“错pwd='”+pwd+“'”;
误“,JOptionPane.ERROR_MESSAGE);
jl3.setText(”“);
《Java实训》设计报告
}
this.closeConn();//关闭连接,语句及结果集
} else{//教师登陆
String sql=”select coll_id from user_teacher where uid='“+name+”' and pwd='“+pwd+”'“;
rs=stmt.executeQuery(sql);
if(rs.next())
{ String coll_id=rs.getString(1);new TeacherClient(coll_id);//创建教师客户端窗口
}
this.dispose();//关闭登陆窗口并释放资源
else
{//弹出错误提示窗口
JOptionPane.showMessageDialog(this,”用户名或密码错误“,”错误“,JOptionPane.ERROR_MESSAGE);
jl3.setText(”“);
}
}
this.closeConn();
//关闭连接,语句及结果集
} catch(SQLException ea){ ea.printStackTrace();}
} } else if(e.getSource()==this.jb2)//按下重置按钮,清空输入信息 { this.jtf.setText(”“);this.jpwf.setText(”“);} else if(e.getSource()==jtf)//当输入用户名并回车时 {this.jpwf.requestFocus(true);} else if(e.getSource()==jpwf)//当输入密码并回车时 {this.jb1.requestFocus(true);} //自定义的初始化数据库连接的方法 public void initialConnection(){ try {//加载驱动,创建Connection及Statement Class.forName(”org.gjt.mm.mysql.Driver“);
conn=DriverManager.getConnection(”jdbc:mysql://localhost:3306/test“,”root“,”root“);
stmt=conn.createStatement();} catch(SQLException e){
JOptionPane.showMessageDialog(this,”连接失败,请检查主机地址是否正确“,”错误",JOptionPane.ERROR_MESSAGE);
《Java实训》设计报告
e.printStackTrace();
} catch(ClassNotFoundException e){ e.printStackTrace();}
} //初始化的关闭数据库连接的方法 public void closeConn(){ try
{ if(rs!=null){rs.close();} if(stmt!=null){stmt.close();} if(conn!=null){conn.close();} } catch(SQLException e){ e.printStackTrace();}
} public static void main(String args[]){ Login login=new Login();//创建登陆窗体对象} }
3、效果图
Login创建的窗口效果如图1所示。
图1 登录窗体
《Java实训》设计报告
学生管理系统共有三个窗体:登录窗体、教师客户端窗体、学生客户端窗体。主要操作如下:
(1)如果用户名或密码错误,则会弹窗错误提示对话框,如图2所示。
图2 错误提示框
(2)当用户为教师时,登录成功后的窗体会自动全屏显示,展开左边的树状列表,如图3所示,然后通过单击不同节点进行相应的业务操作。
(3)通过单击“退出”节点时,系统会弹出对话框确认,如图4所示,根据用户选择进行相应操作。
图3教师客户端主窗
《Java实训》设计报告
图4退出确认效果
(4)当有新生报到时,用户可以单击“新生报到”节点,进入如图5所示的添加学生窗体界面。
图5 添加学生窗体
(5)当教师需要查询某个学生的基本信息时,可以单击“基本信息查询”节点输入学号进行查询,界面如图6所示。
《Java实训》设计报告
图6 学生基本信息查询窗
(6)每学期开始,各学院都应该为学生安排可选课程,这时可以通过“开课选项设置”进入选课设置界面进行操作,如图7所示。教师进行课程设置后效果如图8所示
图7
开课选项设置
《Java实训》设计报告
图8 开课选项设置效果
(7)在每个学期期末,需要对学生的成绩进行录入,用户通过“课程成绩录入”模块进行录入操作,如图9所示。
图9 成绩录入窗体
(8)教师还可以通过点击“添加课程”、“添加班级”节点,进行添加课程和班级操作,如图10和图11所示。
《Java实训》设计报告
图10添加课程效果图
图11添加班级效果图
(9)教师可以点击“修改密码”来修改自己的登录密码,如图12所示。(10)如果用户是学生,登录后的窗体也会自动全屏显示,展开树状列表后的界面如图13所示。
《Java实训》设计报告
图12修改密码效果
图13学生客户端窗体
(11)当学生需要选课时,可以通过单击“选课”节点进入如图14所示的选课界面进行选课。
(12)在学生选课过程中,随时可以点击“课表显示”节点查看课表,如图15所示。
(13)学生点击“已修课程成绩”节点时,便可进入已修课程查看界面,查看成
《Java实训》设计报告
绩和学分,如图16所示。
图14 学生选课界面
图15 学生课表显示界面
《Java实训》设计报告
图16 已修课程查看窗体
三、项目总结
学生管理系统的完成,对学校的管理带来了方便,也对教师是一个很好的帮助,方便管理,提高了工作的效率。在本系统开发过程中,由于本人是初次开发软件,在知识、经验方面存在不足。另外在整个开发过程中,时间也比较仓促,因此,该系统必然存在一些缺陷和不足。因为对学生的管理整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。另外,由于自身对网络的不熟悉,本应做到C/S客户端/服务器的软件,结果不能达到预期效果,实为遗憾。
虽然该系统存在诸多的不足,但其功能均已经实现,易于日后程序的更新、数据库管理容易、界面友好、操作方便、安全性好。相信本学生管理系统是一套学校在日常管理中必不可少的管理软件。
四、心得体会
通过开发这个软件,我掌握了项目的开发过程,了解了基本知识,巩固了我对Java编程语言和软件工程思想的学习,掌握了简单的数据库操作。尤其掌握了树状列表作为导航的重要性,并且能够运用。同时编写这个程序让我更好的理解了数组、类的运用及事件的监听和获取等功能。我相信我会再在java方面下苦工的,相信自己一定能更好的运用java编程语言的。
第二篇:学生管理系统实训报告
WinForm实训报告
项目名称:学生成绩管理系统 1.项目背景:Windows程序设计实训 2.项目分析:部门信息表部门编号,部门名称,部门级别,上级部门编号,负责人,备注班级信息表班级编号,部门编号,班级名称,班级人数,备注学生信息表学生学号,学生姓名,学生性别,学生身份证,所在班级编号,备注课程信息表课程编号,课程名称,课程介绍教师信息表教师编号,教师姓名,教师性别,教师身份证,所属部门编号,备注成绩信息表成绩编号,学生学号,课程编号,学期,课程成绩,备注
用户信息表
用户编号,用户名,用户密码
3.项目设计:
数据库名:ScoreSystem 部门信息表(Department)
学生信息表(Student)
用户信息表 4.任务分配李驰:数据库设计,各模块衔接曹龙:部门管理
部门管理:1.系部门管理2.专业信息管理
系部门信息的添加、修改。专业信息的添加、修改。
登录模块、注册模块
薛巧云:学生信息管理,课程信息管理
学生信息管理:
学生信息的添加、修改、删除、查询。查询应分为:按班级查询,按学号查询,按姓名查询。查询内容应包括学生学号、姓名、性别、所在班级、身份证号。课程信息管理:
课程信息的添加、修改、删除、查询。查询应分为:按教师查询(显示该教师所教授的课程信息)张平平:成绩信息管理
成绩信息管理:
成绩信息的添加、修改、删除、查询。查询应分为:按某个学生查询(显示该学生所有课程的成绩),按某一门课程查询(显示该门课程最高成绩以及最高成绩人,不及格的人员及其成绩和人数,该课程的平均成绩,以及该门可的授课教师)、按某个班级查询(显示该班级所有的成绩信息)适当的使用下拉列表 张玲:教师信息管理
教师信息管理:
教师信息的添加、修改、删除、查询。查询应分为:按部门查询(显示该部门的所有教师信息)、按课程查询(显示该门课程的教师信息)李海鑫:班级信息管理
班级信息的管理:
班级信息的添加、修改、删除、查询。查询应分为:按某个专业查询(显示该专业的所有的班级)
5,每天任务必须上交,由李驰进行考察记录 6.项目研发:
计划5天完成项目研发技术:C# + VisualStdio2005 运行平台:windows server 2003 操作系统,以及安装有SQL Server 2005 和 Visual Stdio200
5研发团队:
项目组长:李驰
项目成员:曹龙,张平平,薛巧云,张玲,李海鑫
总结:
通过为期四天的winform 实训,作为项目组长,我感到数据
库的设计至关重要,数据库设计的好与坏直接影响后期的程序设计。经过短短的四天,我们这个团队实现了很好的配合,大家共同讨论功能的实现以及在不懂的地方互相帮助,体现出了我们的团队精神。
其中也有很多不足,比如我们整体对数据库操作比较生疏,多亏曹龙龙同学不辞辛劳的为大家答疑,从而提了高整个团队的速度。最后,感谢老师在实训过程中的帮助,已经曹龙龙、张平平、薛巧芸、张玲、李海鑫组员对的配合!
第三篇:学生成绩管理系统实训报告
郑州轻工业学院
实 训 报 告
实训名称:学生成绩管理系统
姓名: 任彬彬
院(系): 软件学院
专业班级: 网路管理12-0
1学号: 621213550131
指导教师:马军霞、范乃梅、徐洁、方娜、李辉、冯柳、甘琤
成绩:
时间:2013 年01 月 07 日至 2013 年 01 月11 日
目录
实训任务书…………………………………………………2 实训进度日历………………………………………………
3实训报告……………………………………………………
41.软件需求分析…
2.系统详细设计及实现
实训感想………………………………………………………
5郑州轻工业学院软件学院
学生实训任务书
一、题目
“学生成绩管理系统”设计
二、学生信息
专业 网络管理12-01学号 621213550131 姓名 任彬彬
三、用户需求及约束条件
1、用C语言实现基于Dos操作系统的“学生成绩管理系统”。
2、设计“学生成绩管理系统”的用户界面,系统启动进入后,只能通过界面菜单指令才能退出。
3、“学生成绩管理系统”具有以下功能:
1)系统启动后,弹出一个用户界面,能实现人机交互的功能。而且只能通过界面菜单命令实现各种功能(包括系统退出功能)。
2)管理班级信息(显示、增加、删除、修改)3)管理课程信息(显示、增加、删除、修改)
4)管理班级与课程之间的授课关系(显示、增加、删除、修改)5)管理班级中学生信息(显示、增加、删除、修改)6)管理班级学生成绩(显示、增加、删除、修改)7)显示一个学生的所有成绩
8)所有的数据以文本方式存储在文件中
4、已经提供已编译的样例程序以及数据读写、软件界面有关的源代码,需在已提供资源的基础上完成实训。
四、设计要求、技术参数及设计规格
1、原始成绩由老师统一给出,在 Excel表中;
2、设计的系统能够运行,提交源程序、目标文件和可执行文件;
3、提交实训报告,实训报告中列写:1)软件需求分析或软件说明;3)对数据的管理方案;4)“学生成绩管理系统”设计的思路和整体框架;5)各功能或者模块实现的思路(用文字和流程图予以说明),并交待模块之间的接口关系;6)“学生成绩管理系统”设计的结果。
实训进度日历
实训报告
软件需求分析:管理页面,如图1所示
增加课程信息,然后确认后显示所增加的课程信息
图
1实训感想
在这个星期里,我们专业的学生在专业老师的带领下进行了C语言程序实训的学习。在这之前我们已经学习了一个学期,对其有一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西感觉还是很陌生,更多的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们这次实训课程老师给我们简单的介绍了几个比较重要的实际操作。上机时间是学习程序设计语言必不可少的实习环节,特别是C语言灵活简介,更需要通过编程的实习来真正掌握它。对于程序语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习C语言程序设计除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为我们可以 有效的利用上机实验,更快的掌握C语言开发程序的能力,为今后的继续学习打下一个良好的基础。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己缩编程序是否正确,熟悉程序开发环境、学习计算机系统的操作方法。一个C语言程序从编辑、编译、连接到运行。通过上机实验,熟练的掌握C语言的开发环境,为以后真正编写计算机程序打下基础。
第四篇:java实训报告
摘要
随着自动化技术的不断发展,电子产业对工艺生产的要求越来越高。本次实训主要熟悉手工焊锡的常用工具的使用及其与修理。手工电烙铁的焊接技术,能够独立的简单电子产品的安装与焊接。熟悉电子产品的生产流程,印制电路板设计的和方法,能够读懂电路原理图,熟悉元器件实物,常用电子器件的类别、型号、规格、性能及其使用范围,并会简单的元器件测量,掌握焊接工艺的编排,电路调试过程。能够识别和选用常用的电子器件,并且能够熟练使用普通万用表和数字万用表。培养检测能力及一丝不苟的科学作风。
第一章JAVA开发环境
1.1NetBeans IDE简介
NetBeans 由Sun公司在2000年创立,它是开放源运动以及开发人员和客户社区的家园,旨在构建世界级的Java IDE。NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用。
NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C /C + +等开发语言。
由于Java的跨平台性,在任一平台中编写的Java程序可以很好的移植到其他平台上。为了运行程序,计算机上必须安装JVM,它包含Java运行时的解释器与及时编译器,二者构成Java的运行环境。如图1.1所示:
=
图1.1Java的运行环境
{
JFileChooser fc = new JFileChooser();
int r=fc.showOpenDialog(this);
if(r== JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
try{jTextArea1.read(new FileReader(file),null);}
catch(IOException e){}
}
} void saveFile()//保存文件函数 {
JFileChooser fc=new JFileChooser();
int r=fc.showSaveDialog(this);
if(r== JFileChooser.APPROVE_OPTION){
File file=fc.getSelectedFile();
try{jTextArea1.write(new FileWriter(file));}
catch(IOException e){}
}
} 2.2计算器
要求编写一个模拟计算器Applet,使用面板和网络布局,添加一个文本框,10个数字按钮(0~9),四个加减乘除按钮,一个等号,一个清除按钮。计算器效果如图2.2:
}
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt){
show(4);}
private void jButton6ActionPerformed(java.awt.event.ActionEvent evt){
show(5);}
private void jButton7ActionPerformed(java.awt.event.ActionEvent evt){
show(6);}
private void jButton8ActionPerformed(java.awt.event.ActionEvent evt){
show(7);}
private void jButton9ActionPerformed(java.awt.event.ActionEvent evt){
show(8);}
private void jButton10ActionPerformed(java.awt.event.ActionEvent evt){
show(9);}
//点击小数点按钮
private void jButton11ActionPerformed(java.awt.event.ActionEvent evt){
String text=jTextField1.getText();
if(text.lastIndexOf(“.”)==-1)//判断该数字是否已经有小数点
jTextField1.setText(text+“.”);
}
//点击运算符
private void jButton12ActionPerformed(java.awt.event.ActionEvent evt){
t1=Double.parseDouble(jTextField1.getText());//将第一个数转换成Double类型保存在t1中
jTextField1.setText(“ ”);
图3.1文件打开
图3.2文件保存
3.2计算器调试
计算器可以实现加减乘除运算,并可以清零,BACK按钮还可以一位一位清除,基本完成了计算器的基本功能。
第五篇:Java实训报告
Java实训报告
实训项目:小猪吃豆 班级:
指导老师:
一,游戏介绍:
小猪吃豆是一款简单而又经典的小游戏。游戏的玩法就是通过键盘的左右上下按键控制小猪,躲避森林动物的追击,同时把随机产生的小豆吃掉。游戏有初中高三个级别。游戏通过玩家过关所需要的时间来确定排名。
二,设计思路:
1,一开始,在玩家点击菜单栏的开始按钮后,界面会随机出现一定数量的小豆和一只小猪,同时启动时间线程,计时开始。
2,界面随机产生一些森林动物,作为小猪的障碍物。森林动物会移动,并紧跟着小猪。
3,小猪会在玩家的控制下,躲避森林动物,并吃小豆,每吃掉一颗豆,就启动音乐线程,发出声音。
4,游戏过程会随机出现大力丸,小猪吃掉大力丸后,可以增加功力,与森林动物对抗。大力丸会在一定时间后消失。5,游戏还要有一个暂停和继续的功能。
6,游戏设置有三个级别。障碍物和小豆的个数都不同,用于体现难度的不同。
三,关键问题解决:
1,游戏当中有几个核心的问题,比如:小豆,小猪,森林动物等物体的随机产生;小猪吃掉小豆,也就是他们的重叠;中途大力丸的出现等等。在老师的帮助下,我知道了Java中有个Random类,可以产生随机数。而判断小猪和小豆或者动物的重叠,也就是“被吃掉”也有相应的判断方法。
2,有关大力丸部分的问题:在游戏中,小猪吃的大力丸个数不同,对应的功力也不同。而小猪吃掉大力丸之后,功力又恢复。这需要很多的判断。后来,我就是一步步来,用一个一个的if去实现的。
3,游戏要控制大力丸出现后一定时间后消失。如果使用线程的话,那么游戏的线程太多,会影响到游戏的运行。后来老师建议使用Java的计时器。我参考了Java的帮助文档和网络上的有关资料,对计时器类timer有了一定认识和了解后,成功的将计时器加进了程序当中。
四,心得体会:
在游戏开发的整个过程,我感受最深的就是大力丸实现的部分。因为大力丸是老师要求的最后一个拓展部分,我完成前面部分的时候,曾想过不要增加大力丸,就那样就行了。可后来我觉得还是有时间,可以试试,就自己去试了。才发现,其实大力丸部分的实现也不是很难,还是可以完成的。而且是自己一个人完成的。这让我觉得:在开发过程,不应该还没有开始工作,开始尝试就选择放弃。有些功能,只要能尝试着去开发,最后是可以完成的。不要还没开始就放弃,那样就绝对没有机会完成相关内容。
在这个过程,我参考了很多资料,从老师那里来的,网上来的,还有同学那里。就拿森林动物靠近小猪这个部分来说,我曾尝试让动物的坐标与小猪的坐标关联,可发现出了很多问题,比如那样子动物的移动就不是一步步移动,而是跳动的,那样不好看。后来我问了一位同学,他说,让动物的坐标靠近小猪的坐标就行了。其实,企业中,不是以个人为单位,而是以团队为单位的。团队的合作在现代企业中显得非常重要。当然,相对应的人与人之间的沟通与协助,也就显得非常重要了。这是个人软实力的体现。
在这个过程,我发现自己对Java的很多知识还很模糊。像游戏中的时间格式问题,对键盘事件的处理等,都是从老师那里借鉴来的。自己的知识系统还不稳固,在今后的学习当中,要有针对性地加以补习。