Java终极大作业报告
java期末作业总结

java期末作业总结在这个Java课程的期末作业中,我经历了许多的挑战和成长。
这次作业包含了许多知识点,涉及到了面向对象编程、异常处理、文件读写等多个方面。
通过这次作业,我不仅巩固了之前学到的知识,还学到了很多新的知识点。
在这次作业中,我主要做了一个电影票售卖系统。
这个系统的主要功能包括了购票、退票、电影信息展示等。
在实现这个系统的过程中,我采用了面向对象的思想,将系统中的各个功能模块抽象为一个个类,然后通过类之间的交互来完成各种操作。
这样的设计使得代码结构清晰,易于维护和扩展。
在这次作业中,我最大的收获就是对异常处理的理解和运用。
在实现购票和退票的功能时,需要处理一些异常情况,比如座位已被占用、余票不足等。
为了应对这些异常情况,我利用Java提供的异常机制,编写了相应的异常类,并在相关的方法中进行了异常抛出和捕获处理。
这样可以使得程序在遇到异常时能够进行相应的处理,保证了程序的稳定性。
除了异常处理,我还学到了很多关于文件读写的知识。
在系统中,需要将电影信息和售票记录保存在文件中,并在需要时进行读取。
为了实现这个功能,我学习了Java中的文件操作API,并编写了相应的文件读写方法。
通过这次实践,我不仅掌握了文件读写的基本操作,还学会了如何将文件读取的数据转换为程序中的对象,并进行相应的处理。
在整个实现的过程中,我也遇到了许多的困难和问题。
比如,在实现购票功能时,我遇到了如何判断座位是否已被占用的问题。
为了解决这个问题,我经过一番思考,最终决定将座位信息保存在一个二维数组中,然后通过坐标来判断座位是否被占用。
这种解决方式既简单又高效,使得程序能够正确地处理座位冲突。
在完成这次作业的过程中,我也发现了自己的不足之处。
比如,在设计系统架构和类之间的关系时,我有时候容易陷入纠结,难以做出决策。
这使得我在一些设计上花费了较多的时间,导致了进度的延迟。
为了解决这个问题,我意识到需要多加练习,不断学习和实践。
《Java程序设计》大作业

1、查询余额:初始余额为10000元
2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
3、ATM存款:不能出现负存款。
4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
6、万年历
要求:
使用图形用户界面。
实现日期与星期的查询
7、计算器
要求:
使用图形用户界面。
实现常用的计算功能。
8、日历记事本
要求:带有日程提醒功能的日历。
1、显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。
2、定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。
《Java程序设计》大作业
要求:
最后提交打印的大作业报告,报告内容格式如下:
封面(包括姓名,学号,班级,专业,院系)
题目(把你选择的题目写在这里)
程序(程序的源代码)
运行结果(运行的结果,贴图的形式)
总结
大作业题目:
1、编写一个记事本程序
要求:
用图形用户界面实现。
能实现编辑、保存、另存为、查找替换等功能。
12、.敏感词汇分析
要求:
任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。
3、查询信息:用户可以查询到某个月的所有的提示信息。
java结课大作业 实验报告

班级:数学与应用数学01班姓名:姚其禹学号:41008040110学生管理系统用java语言设计一个基于GUI界面的单机版学生管理系统,实现学生基本信息的录入,查询,修改,删除,同时可以对学生所在学院,专业,班级信息进行添加,查询,修改,删除。
本系统是通过java+Mysql实现的。
●设计内容:用java语言设计一个基于GUI界面的单机版学生管理系统,实现学生基本信息的录入,查询,修改,删除,同时可以对学生所在学院,专业,班级信息进行添加,查询,修改,删除。
●设计要求:1.界面要求:必须先要有一个登录用的用户信息表,包含“用户名和密码”两项信息。
2.功能要求:系统里必须包括学生信息录入、修改、删除、查询等功能,还有学院信息录入、修改、删除、查询,专业信息录入,修改、删除、查询,班级信息录入、修改、删除、查询。
输入时学院代码用下拉框选择,必须是学院信息表里存在的学院名称,保存到数据库中时存学院的代码。
输入专业代码和学院代码用下拉框选择,必须是专业信息和学院信息表里存在的专业名称和学院名称,保存到数据库中时分别存专业和学院的代码。
输入班级、专业和学院用下拉框选择,必须是班级专业信息和学院信息表里存在的专业名称和学院名称,保存到数据库中时分别存班级、专业和学院代码。
●设计目标:使用JDBC驱动程序将前台浏览器与后台数据库(本系统用的是Mysql)结合位为一体。
利用Mysql语句接口来调用数据库,以存取或更新数据库中的数据,实现学生信息录入、修改、删除、查询,还有学院信息录入、修改、删除、查询,专业信息录入,修改、删除、查询,班级信息录入、修改、删除、查询功能。
类,类的方法及类的作用表类的名称类的方法类的作用LoginFrame.java public LoginFrame() 创建一个登入界面,用public void acitonperformed() 户需输入正确的用户名和密码public static void main() Frm_Main.javapublic Frm_Main()创建学生信息表,可以注册,查询,删除,修改学生的信息 public void conDB()public void acitonperformed() public static void main() FacultyFrame.javapublic FacultyFrame ()创建学生学院信息表,可以添加,查询,删除,修改学院信息 public void conDB()public void acitonperformed() SpecialtyFrame.jav apublic SpecialtyFrame ()创建学生专业信息表,可以添加,查询,删除,修改学院信息 public void conDB()public void acitonperformed() ClassFrame.java public ClassFrame()创建学生班级信息表,可以添加,查询,删除,修改班级信息public void conDB()public void acitonperformed() jtree.javapublic void valueChanged() 对该系统的相关说明jtree()数据库设计 1. 创建登入表: CREATE TABLE `admin` (`username` varchar(20) NOT NULL,`pwd` varchar(20) CHARACTER SET latin1 DEFAULT NULL, PRIMARY KEY (`username`) )表2-2 Admin 表2. 创建学生信息表:CREATE TABLE `student` ( `xueid` char(20) NOT NULL,`name` char(20) DEFAULT NULL,`sex` char(4) DEFAULT NULL,`nation` char(4) DEFAULT NULL,`ID` char(2) DEFAULT NULL,`C_ID` char(8) DEFAULT NULL,`S_ID` char(10) DEFAULT NULL,`age` char(8) DEFAULT NULL,`mail` char(20) DEFAULT NULL,`telp` char(11) DEFAULT NULL,PRIMARY KEY (`xueid`))student表3.创建学院信息表CREATE TABLE `faculty` (`ID` char(2) NOT NULL,`NAME` char(30) DEFAULT NULL,PRIMARY KEY (`ID`)表2-4 faculty表4.创建专业信息表CREATE TABLE `specialty` (`S_ID` char(10) NOT NULL,`S_NAME` char(30) DEFAULT NULL,`ID` char(2) DEFAULT NULL,PRIMARY KEY (`S_ID`))specialty表5.创建班级信息表CREATE TABLE `grade` (`C_ID` char(8) NOT NULL,`C_NAME` char(30) DEFAULT NULL, `C_DATE` char(10) DEFAULT NULL, `S_ID` char(10) DEFAULT NULL, `ID` char(2) DEFAULT NULL,PRIMARY KEY (`C_ID`))grade表6.数据库中各表之间的关系各表之间关系图源代码分析1.系统主要的类:登入窗口的类:public class LoginFrame extends JFrame主类:public class Frm_Main implements ActionListener班级信息类:public class ClassFrame implements ActionListener学员信息类:public class FacultyFrame implements ActionListener帮助文档类:public class jtree implements TreeSelectionListener专业信息类:public class SpecialtyFrame implements ActionListener2. 主要方法分析:设置文本框的位置和文本框的大小:S_NAMEL.setLocation(20,110);S_NAMEL.setSize(150,20);c.add(S_NAMEL);S_NAMET.setLocation(90,110);S_NAMET.setSize(200,20);c.add(S_NAMET);处理异常类及方法try{Class.forName("com.mysql.jdbc.Driver");conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=r oot&password=111111");Statement stmt = (Statement)conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CON CUR_UPDATABLE);ResultSet rss1 = null;String sql="select * from faculty ";rs = stmt.executeQuery(sql);while (rs.next()){f.addItem(rs.getString("NAME"));}rs.close();}catch(ClassNotFoundException e){System.err.println(e);}catch(SQLException e){System.err.println(e);}处理监听事件的方法:public void actionPerformed(ActionEvent e)主函数的运行:public static void main(String[] args)连接数据库相关语句:Class.forName("com.mysql.jdbc.Driver");conn = DriverManager.getConnection(URL, user, pswd);stmt = conn.createStatement();组件的声明:public JMenuBar menuBar;public JMenu mainMenu1;public JMenu mainMenu2;public JMenu mainMenu3;public JFrame frame;public Container c;public JMenuBar menuBar;JButton toolBarButton[] = new JButton[8];public JToolBar toolBar;Object ID=new String();String S_ID = new String();String S_NAME = new String();Connection con;ResultSet rs;Statement st;public JLabel S_IDL = new JLabel("专业代码:");public JLabel IDL = new JLabel("学院名称:");public JLabel S_NAMEL = new JLabel("专业名称:");public JTextField S_IDT = new JTextField();private JComboBox f = new JComboBox();public JTextField S_NAMET = new JTextField();该程序是一个图形界面的学生信息管理系统,使用人员能快捷简单地进行操作。
《JAVA程序设计》大作业报告模板

华北科技学院计算机系课程综合作业实验报告课程名称JAVA程序设计实验学期2010 至2011 学年第 1 学期学生所在系部计算机年级08级专业班级信管B082学生姓名学号************ 任课教师实验成绩计算机系制《JAVA程序设计》课程综合作业实验报告学生的学号,可以更新这条记录中的数据;“查询记录”,输入要查询学生学号可以查询这个学生的所有信息;选择分数信息中的“各科最高低分”菜单,可以查询所有学科中的最高分和最低分;“总分平均分”显示所有学生的总分和平均分。
3.主要代码本程序使用Java中基于SWING的图形设计,用到java中的java.awt.*内的包,控件的布局用到java.swing.border.*包,事件处理用到java.awt.event.*,连接数据库用到java.sql 登录界面主要代图1public class denglu{public static void main(String args[]){try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException e){ //11System.out.println(""+e);}new WindowBox("登录窗口"); //调用方法}}class WindowBox extends JDialog implements ActionListener{//声明Box baseBox,boxV1,boxV2,boxV3;JButton button1,button2;}}}如果出现用户名密码错误则会出现提示信息对话框图2通过调用Datawin类中的内容可以进入到主界面声明菜单中的显示、添加、删除、修改、查询、最高低分以及总分平均分菜单项和类,能过给菜单添加事件监听事件图3public void actionPerformed(ActionEvent e){if(e.getSource()==itemshow)show.setVisible(true);else if(e.getSource()==itemadd)add.setVisible(true);else if(e.getSource()==itemupdata)updata.setVisible(true);a[k][0]=rs.getString(1);a[k][1]=rs.getString(2);a[k][2]=rs.getString(3);a[k][3]=rs.getString(4);a[k][4]=rs.getString(5);a[k][5]=rs.getString(6);k++;}con.close();}catch(SQLException ee){System.out.println(ee);} //处理异常table=new JTable(a,name);getContentPane().removeAll(); //采用BorderLayout布局add(showRecord,BorderLayout.NORTH);add(new JScrollPane(table),BorderLayout.CENTER);validate();}图4构造增加类,声明组件,定义一个表名Object name[]={"学号","姓名","年龄","性别","系别","班级"};和定义一个表单Object a[][]=new Object[1][6];然后给按钮组件增加以下监听事件,通过对表单中输入数据进而增加到数据库中public void actionPerformed(ActionEvent e)//处理事件图5图6构造删除类,声明组件,在文本框中输入信息,进而可以删除数据库中相应的记录给文本框和按钮增加以下事件public void actionPerformed(ActionEvent e){if(e.getSource()==inputNumber){try{num=inputNumber.getText().trim();con=DriverManager.getConnection("jdbc:odbc:hello","","");sql=con.createStatement();rs=sql.executeQuery("SELECT * FROM 学生信息 WHERExueid='"+num+"'");boolean boo=rs.next();if(boo==false){JOptionPane.showMessageDialog(this,"学号不存在",table.repaint();//重打印表con.close();}catch(SQLException ee){JOptionPane.showMessageDialog(this,"更新失败"+ee,"失败",JOptionPane.ERROR_MESSAGE);}}//if图7构造查询方法查询这个窗体整体彩盒式布局,首先声明类和方法设计窗体的外观,给相应的组件添加事件利用SQL语句查询数据库中的信息 rs=sql.executeQuery("SELECT * FROM 学生信息WHERE xueid='"+num+"'");如果输入学号数据库中不存在提示信息“学号不存在”,否则利用table.repaint();方法将数据库中的信息输入到窗体中的table中public void actionPerformed(ActionEvent e)//处理事件{try//连接数据原 hello{num=inputNumber.getText().trim();con=DriverManager.getConnection("jdbc:odbc:hello","","");图8构造最高最低分类首先定义两个静态变量m,n;将数据库中的信息利用查询的方法显示在数字 int b[][]中,con=DriverManager.getConnection("jdbc:odbc:hello","","");sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);//只读形式rs=sql.executeQuery("SELECT * FROM 分数信息");st();利用如下方法求得语文成绩的最高分和最低分for(k=0;k<lastNumber;k++){if(m<b[k][0]){m=b[k][0];}if(n>b[k][0]){n=b[k][0];}}a[0][1]=m;a[1][1]=n;同理可以求得其它几科成绩的最高分和最低分然后,将object a[][]中的信息显示有窗体中图9构造总分平均分方法首先将数据库中的信息显示在利用SQL查询方法显示有两个数据中object a[][]和int b[][]中利用如下方法将求得总分和平均分try{con=DriverManager.getConnection("jdbc:odbc:hello","",""); sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);rs=sql.executeQuery("SELECT * FROM 分数信息");st();int lastNumber=rs.getRow();b=new int[lastNumber][4];a=new Object[lastNumber][8];int k=0;rs.beforeFirst();while(rs.next()){a[k][0]=rs.getString(1);a[k][1]=rs.getString(2);a[k][2]=rs.getByte(3);b[k][0]=rs.getByte(3);a[k][3]=rs.getByte(4);b[k][1]=rs.getByte(4);a[k][4]=rs.getByte(5);b[k][2]=rs.getByte(5);a[k][5]=rs.getByte(6);b[k][3]=rs.getByte(6);a[k][6]=b[k][0]+b[k][1]+b[k][2]+b[k][3];a[k][7]=(b[k][0]+b[k][1]+b[k][2]+b[k][3])/4;k++;}con.close();}catch(SQLException ee){System.out.println(ee);}图10四、实验结果及分析程序运行中的报告分析1、在登陆时如果输入不正确的用户和密码会提示用户名或密码错误,因为通过getText()方法无法获得正确的字符串从而提示错误2、在进行数据库相应操作时,如果无法正确连接数据库则会提示不存在所需的数据资源,可能原因是没有正确连接到数据源,即可能数据源名称不正确,或者在数据库中不存在相应的表,或者可能SQL语法错误在进行相应的查询的删除操作时,如果不存在输入的学号会提示用户,“学号学号不存在”,因为不在数据库不无法在相应的字段下找到相匹配的字符串。
java程序设计大作业报告

Java程序设计大作业报告1. 引言本报告是关于Java程序设计大作业的报告,旨在总结和描述本次大作业的设计和实现过程。
本次大作业的主题是设计一个学生成绩管理系统。
2. 需求分析在开始设计和实现学生成绩管理系统之前,首先需要明确系统的需求。
本次大作业的学生成绩管理系统需要包含以下功能: - 学生信息管理:包括学生的基本信息和成绩信息。
- 成绩录入和查询:教师能够录入学生的成绩,并能够查询和修改学生的成绩信息。
- 成绩统计和分析:系统能够对学生的成绩进行统计和分析,例如计算平均分、最高分、最低分等。
3. 系统设计根据需求分析的结果,我们可以开始进行系统设计。
以下是学生成绩管理系统的设计步骤:3.1 类设计首先,我们需要定义学生类(Student)和成绩类(Grade)来管理学生和成绩信息。
学生类包含学生的基本信息,如学号、姓名、性别等,成绩类包含学生的各科成绩信息。
此外,我们还需要设计一个教师类(Teacher),用于录入和查询学生的成绩信息。
3.2 数据结构设计在设计学生成绩管理系统时,我们需要选择适合的数据结构来存储和管理学生和成绩信息。
例如,可以使用数组、链表或哈希表等数据结构来存储学生和成绩信息,根据具体需求进行选择。
3.3 用户界面设计学生成绩管理系统需要有一个用户友好的界面,方便教师进行操作。
可以使用图形界面(GUI)或命令行界面(CLI)来实现用户界面。
4. 系统实现在完成系统设计后,我们可以开始实现学生成绩管理系统。
4.1 学生类实现首先,我们需要实现学生类。
学生类应该包含学生的基本信息和成绩信息的操作方法,例如获取学生的基本信息、添加和修改成绩等。
4.2 成绩类实现接下来,我们需要实现成绩类。
成绩类应该包含学生的各科成绩信息,并提供计算平均分、最高分、最低分等操作方法。
4.3 教师类实现然后,我们需要实现教师类。
教师类应该包含录入和查询学生成绩的操作方法,例如录入学生成绩、查询学生成绩等。
JAVA程序设计大作业报告

过程:
1、课程设计目的 2、课程设计题目描述与要求 3、课程设计报考内容 4、输出结果 5、实验总结
1、课程设计目的
用面向对象语言JAVA完成计算 器的设计和实施。通过课程设计掌 握面向对象编程技术,常用库类的 使用和应用系统的开发过程。
2、课程设计题目描述与要求
(1)完成窗口的关闭 按钮的功能; (2)完成清空键 功能;(即清空文本框中的内容) (3)完成数字按钮的功能;(即文本框显示对应数字) (4)完成基本的“+”,“-”,“*”,“/”四则运算;
3、课程设计报告内容
3.1 课程设计思路 设计的程序能完成计算器的基本功能 例如四则运算 3.2 设计过程 本次设计一个简易的计算器的界面,该计算器运行 程序后的界面如下图所示 该计算机包括了加减乘除四则运算 操作建议
3.3实验源代码
在设计这个程序的开始,我们首先设计这个计算器的 界面,我用比较简单的方法,运用GridLayout(4,5)来实 现简单的排版。然后把我需要的几个按键都依次的输入s("CE"))
{
display.setText("0"); start=true; flag=true; command="=";
} else if(start&&flag) { if(command.equals("-")) { display.setText(command); start=false; } else if((command.equals("1/x")||command.equals("sqrt"))&&flag) calculate(Double.parseDouble(display.getText()),command); else if(flag) lastCommand=command; } else { if(command.equals("Backspace")&&flag) { String s=display.getText(); char[] s1=s.toCharArray(); if(s.length()>=2) { String s2=new String(s1,0,s.length()-1); display.setText(s2); } else { display.setText("0"); start=true; } } else if(flag) { calculate(Double.parseDouble(display.getText()),command); lastCommand=command; start=true; } } } }
java实训报告总结与心得(优秀5篇)

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

Java语言程序设计展示报告学院专业组长信息组员信息1组员信息2组员信息3指导教师日期年月日目录第一章选题概述 (1)第二章完成情况 (2)第三章成果展示 (3)一、登陆注册界面展示 (3)1、效果截图 (3)2、核心代码 (4)二、客户端界面展示 (5)1、效果截图 (8)2、核心代码 (8)三、服务端界面展示 (4)1、效果截图 (3)2、核心代码 (3)四、数据库直连和文件线程 (10)第四章总结与感受 (12)第一章选题概述在一学期的Java课程学习之后,我们对Java语言有了一定的认识与了解。
在此基础上我们选择了题目一作为本组的目标,题目的相关要求如下(初期拟完成目标):设计编程实现桌面文档共享与管理系统(100%)实现以下功能--1.能够实现文件的下载与上传(客户端与服务器端)2.能够通过安全认证与别人分享文档3.能形成“圈子”,对朋友或这陌生人设置不同的安全级别4.能够共享桌面与聊天5.必须用数据库存储信息6.必须用extends 和implements 关键字7.必须用this关键字8.必须用图形用户界面9.界面设计与功能不限,充分发挥题目一比较有挑战性,题目中的要求几乎涉及到了我们学过的所有知识,除此之外还需要我们课外学习一些课堂额外的知识,比如数据库的创建于连接。
由组长XXX1负责整合所学内容与指挥,组员查阅资料并编写程序,再和组长讨论并完成各自的模块设计。
我们设计了如下的流程图:图1-1 流程图第二章完成情况经过将近一个月左右的编程设计,我们实现的桌面文档共享与管理系统(90%)实现了以下功能--1.能够实现文件的上传(客户端与服务器端)2.能够通过安全认证与别人分享文档3.能形成“圈子”,对朋友或这陌生人设置不同的安全级别4.能够聊天并截取屏幕信息5.采用了数据库存储信息6.采用了extends 和implements 关键字7.采用了this关键字8.采用了图形用户界面程序的编程设计图2-1 类成果展示图其中jp.java功能为截图;khd.java功能为建立客户端;sc.java 功能为文件上传线程;zc.java功能为实现用户登录;Main功能为总体调用;fwq.java功能为建立服务端;User.java功能为实现与数据库的连接(直连)。
大学生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程序设计与应用开发题目:登录系统与钟表实现班级:XXXXXXXXXX学号:XXXXXXXX姓名:XXXX日期:XXXXX一、大作业目的用面向对象语言JA V A完成登录系统和钟表的分析、设计和实施。
通过课程设计掌握面向对象编程技术、GUI编程、常用类库的使用和应用系统的开发过程。
二、大作业题目描述和要求1.题目设计简单的登录系统和钟表界面,掌握Java编程中的多媒体应用。
2.要求(1)登录系统是java编程中比较基础的,设计一个登录对话框,通过输入正确的用户名和密码来进入系统,系统是一个带有菜单栏的记事本程序,通过点击菜单栏上的按钮来实现相应的功能。
(2) 通过设计一个钟表程序进一步掌握java在多媒体方面的应用。
3. 开发环境Eclipce + JDK1.4.2三、系统分析1.对于登录系统,首先应该对登录界面进行设计,该对话框中包括两个标签,一个文本输入框,一个密码输入框和两个按钮,这些GUI组件被添加到一个使用了网络袋布局的面板panel中,面板panel又被添加到Text_Login的内容窗格。
设计该系统的初步思路就是首先需要定义图像生成器的界面窗口,其次就是往每个按钮上添加触发事件监听器(如ActionListener、MouseListener、MouseMotionListener),然而在实际操作的过程中,新的问题不断出现,不过最后依依解决了。
对于记事本程序中的菜单栏的实现,菜单也是一种常用的GUI组件,菜单是一种层次结构,最顶层是菜单栏,在菜单栏中可以添加若干个菜单,每个菜单又可以添加若刚菜单选项,子菜单。
当单击一个菜单选项时,会生成一个动作事件,为菜单选项添加事件侦听器就可以侦听起动作事件。
2.对于Java的多媒体应用之钟表实现,程序在窗口上显示一个表盘,时刻度和分刻度为3D样式的,分别为黑灰色和灰色时针分针秒针随着时间在走动,间隔1s。
时针和分针的样式设计为略显锥形,秒针为简单的直线形。
Java_期末大作业报告

申请:优良中及
Java 期末大作业报告
专业班级:
学号姓名:
第一部分作业选题
作业内容:
作业题目自定,并详细说明项目的功能需求。
程序要有明确的功能,调试通过并能正常运行。
程序至少要包含以下知识点:
–GUI 图形界面
程序代码在150 行以上。
作业要求:
1、规划出实现这个项目所需要的类;
2、根据设计要求作出类图及类相应的关系;
3、编写代码实现设计。
我的选题:
为了满足作业要求,我进行了如下设计:此部分写你要做一个什么东西。
第二部分程序介绍
编程工具:
设计基本方法:
类的设计:
编程中的难点:
此部分要设计要求作出类图及类相应的关系,要有相应的图示。
第三部分最终产品介绍
此部分介绍你所做软件的使用方法。
第四部分参考文献
此部分写你所参考的资料,包括书籍,期刊,网址,请不要少于五个。
第五部分关键代码
此部分请将你的代码打印于此
被选题目:
1、计算器的设计,可仿照操作系统自带的计算器
2、记事本,可仿照操作系统自带的计算器
3、某小学期末成绩管理系统
4、小游戏,比如五子棋等
5、也可自选题目
Note:如果某个题目选的人较多,那么此题目中得优的人数不超过一定比例。
《软件工程编程实践(Java)》大作业项目报告模板-学号姓名

软件工程系项目报告一、项目介绍描述项目背景、意义和功能等。
二、核心类图设计描述该项目的设计结论,主要描述系统核心类的设计,要求使用类图和表格形式描述。
要描述清楚每个类的名字、类中属性、方法的名字和说明;类图样例(必写):姓名学号班级名称辅导员课程名称软件工程编程实践(JavaEE)项目名称表格样例:类名属性/方法描述Question Long id难题编号Long surveyId难题所属问卷编号String content难题描述Long type难题类型Int orders问卷中难题排序编号List<QuestionItem>listItem难题选项列表。
addQuestion(session:HttpSession,entity:Question):Map添加难题请求处理delQuestion(questionId:Long):Map删除难题请求处理updateQuestion(session:HttpSession,entity:Question):Map更新难题请求处理delQuestionItem(questionItemId:Long):Map删除难题选项请求处理。
三、核心功能对于JDK类库的引用列表重点列举出JDK类库中常用工具类、GUI、IO、数据库等的引用情况。
引用的JDK类名核心类名描述JavaEE.util.List Question用于存储难题列表Answer用于存储答案列表。
四、项目特色1、功能特色描述软件在功能设计方面的创意特色;2、技术特色描述自主学习的新技术及其在项目中的运用情况五、运行效果截图按实现的功能描述项目完成的情况,并提供界面截图。
六、项目工作总结与学习心得体会。
java语言程序设计期末考查大作业报告 3-4

《Java语言程序设计》大作业报告2019-2020学年第一学期班级:--------自己填--------学号:--------自己填--------姓名:--------自己填--------1、设计题目⑴假设车库有3个车位(可以用boolean [ ]数组来表示车库)可以停车,使用多线程模拟多个用户开车离开、停车入库的过程。
注意:车位有车时不能停车。
⑵编写一个菜单程序,要求菜单的结构如下:文件------打开------关闭系统管理------用户管理------新增用户------删除用户------退出系统要求:对退出系统添加事件、并加入快捷键CTRL+E;对新增用户添加事件、并加入快捷键CTRL+A;当点击新增用户菜单,出现一个对话框,对话框中有两个文本框(用户名和密码),同时出现两个按钮(确定和取消)。
确定按钮要有事件功能,且将输入的用户名和密码存入到一个文件中。
取消按钮事件负责完成关闭对话框功能。
2、程序设计思路(要求分步骤写清设计思路,并画出类的UML图)2.1作业32.1.1主要模块划分Park类:里面私有属性parting为车位数量初始化为3个,成员方法into (),也就是停车方法,调用该方法车位减一。
成员方法out(),调用该方法代表车子离开,车位加一。
OutThread类:继承Thread类,重写run方法,并且调用out()方法IntoThread类:继承Thread类,重写run方法,并且调用into()方法Test类:测试类,用来测试,启动OutThread类和IntoThread类线程进行测试。
2.1.2类图2.2作业42.2.1主要模块划分addActionListener:监听事件,主要用于实现鼠标事件,完成页面的打开,关闭,调用文件流;JMenuItem :菜单下拉框列表,让页面的交互性更强,提升用户体验;KeyStroke:快捷键的加入,同JMenuItem 一样,是为了提高用户的体验;2.2.2类图Jframe 类2.2.3 流程图3、 运行结果分析(截图每个关键运行点界面)菜单页面完成添加添加失败关闭窗口取消添加打开添加用户页面作业3:第一次测试,在测试类里面启动IntoThread类的线程和OutThread线程循环调用两个线程,发现只有有车位时,其他车子才能停进去作业4:运行Main函数,run us 得到一个窗口基本菜单列表展示点击新增用户,弹出添加新用户页面(默认文字为请输入新用户名):点击取消或者按ctrl+E,关闭当前窗口,并返回到窗口页面;按照要求填好用户信息,点击确认,则提示添加成功:此时打开指定文档jfram.txt则可以查看到输入的用户名和密码:4、设计中遇到的问题,解决途径及思路,经验总结。
JAVA-课程设计(大作业)报告

课程设计(大作业)报告课程名称:面向对象程序设计课程设计设计题目:设计一个记事本院系:信息技术学院班级:设计者:学号:指导教师:设计时间:信息技术学院昆明学院课程设计(大作业)任务书简单记事本程序的设计目录一.题目分析 (5)1.1需求分析 (5)1.2功能要求设计 (5)二.总体设计 (5)2.1设计思路 (5)2.2运行界面 (6)2.3模块说明图 (6)2.4主流程图 (7)2.5 UML图 (7)2.6程序相关说明 (8)三.运行环境 (8)四.详细设计与分析 (8)4.1.初始化组件 (8)4.2.构建菜单栏及其下拉菜单 (8)4.3.“文件”菜单的事件监听 (9)4.5.异常处理 (10)五.调试分析 (12)六.总结 (13)七.参考文献 (14)附录(源代码) (14)一.题目分析1.1需求分析现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。
功能也是应有尽有,有的能改变字体,有的能改变文字颜色。
但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。
仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。
本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。
该报告中的程序是使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能,不同之处是本程序能够对文字的颜色进行设置。
该程序主要用到了Java swing和事件监听等。
1.2功能要求设计设计一个记事本,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切,查找替换等功能,可扩展功能。
本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面:5)菜单中有“文件”,“编辑”,“关于”三个主菜单。
JAVA大作业实验报告

3.1开发与设计的总体思想
3.1.1系统的组成
整个系统使用的是jsp+servlet+javabean的mvc模式建立的,所以在其中,jsp部分负责用户的可视部分,servlet负责处理用户提交的数据,javabean则负责由servlet进行处理后所使用的功能。
3.1.2jsp部分
数据流图是对系统数据流向的一种描述,并从本质上让程序的使用者,大致了解系统的使用方法。本登录系MVC是三个单词的缩写,分别为: 模型(Model),视图(View)和控制Controller)。 MVC模式的目的就是实现Web系统的职能分工。 Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。 View层用于与用户的交互,通常用JSP来实现。 Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
3.4.3 register.jsp
此页面与login.jsp页面基本一样,负责将用户输入的数据送给registerservlet处理。
<%String notice = (String) request.getAttribute("notice");%>
<% if (notice != null) {%> <font color="red"><%=notice%></font> <% }%>用于将servletservlet中对用户输入的数据进行处理后的结果通过notice的文字表达方式送回本页面中来提示所输入的数据是否可用。
JAVA大作业报告

JAVA大作业报告√课题2 □课题3课题代号(单选)□课题1 □课题名称:通用源代码编辑器√3人□4人小组成员人数(单选)□1人□2人□小组成员名单(学号和姓名):(1)学号 B0904 姓名(2)学号___ ____ 姓名(3)学号姓名课题实现采用的工具(如为其他,请填写具体工具名称)√Eclipse □JDK命令行□其他______________□NetBeans□课题实现采用的操作系统(如为其他,请填写操作系统名称)√Windows □Unix □ Linux □其他______________ MicroSoft □课题完成时间:___________________2011.6.21________________对应提交的电子文档打包文件名称(准确填写):________________B09040119_B09040121_B09040220.zip===================以下部分为教师填写区,请勿填写==================评阅编号:()-()成绩评定:软件运行______软件基本功能_______软件提高功能______ 软件部分成绩________文档结构______文档理论___________文档撰写__________ 文档部分成绩________ 总成绩____________备注____________________________________________________________________一、需求分析课题要求:基本要求:设计用于软件开发时编写源代码的编辑器,可以完成文本方式的源程序的文件打开,编辑和文件保存操作。
提高要求:实现对包括Java语言在内的编程语言集合(如Java, C,C++,ASM等)的关键词语法加亮功能;实现剪贴板的功能;实现搜索定位关键字段的功能;实现搜索替换关键字段的功能;实现二进制文件的打开以及编辑功能(一般用16进制方式进行)。
Java大作业实验报告

XX大学2012-2013学年第2学期《JAVA面向对象程序设计》课程大作业报告课题名称:Java斗地主纸牌游戏小组成员人数5人小组成员名单(学号和姓名):自己:班级学号____姓名_______其他组员:课题实现采用的工具___eclipse(jdk 1.7.01)________课题完成时间:__2013/05/20____________________________对应提交的电子文档打包文件名称(准确填写):____斗地主.rar_________________________________一.大作业目的通过对斗地主纸牌游戏的程序设计,能更加深入了解面向对象的编程思想。
也对JA V A 这门语言能了解更多,能够正确并较为熟练的运用java进行图像化编程和使用java中的ui 控件。
二.题目与要求斗地主,基本上要有抢地主,出牌,托管功能,整个打牌过程尽量快速简介,尽量不出,规则参照QQ斗地主。
开发过程分工:1.首先列出程序所包含的功能,给出相应所需要的类包(规则;牌类)。
2.设计主窗体布局及菜单栏()登入窗口()。
3.设计抢地主事件及游戏过程中出牌时间的控制()4.设计电脑发牌()电脑判断并出牌()电脑代出()5.添加背景音乐及游戏主题环境的设计()6.包中各个类的整理及程序调试()7.程序中错误的修改以及对于程序的改进()代码编写:详见斗地主.rar(已发至gude@)四:希望达到的效果、1.将其他同学负责的部分添加到同一个工程下,并实现运行。
首先是将不同的文件导入到同一个包中,因为这份斗地主是参考一份网上下载的斗地主源码,所以每个人都是对相应的java代码文件进行相应的编译,所以工程的整体性没有大的问题。
只是不同的人设置了不同的变量名造成了系统的报错,在统一了变量名之后解决了这个问题。
2.设定游戏的主题环境原本的决定是参照传统的纸牌类游戏的界面进行设计,在窗口界面设计好之后我觉得传统的纸牌背景只是桌布背景过于呆板无趣,所以决定网上寻找合适的背景图做为背景。
Java大作业报告

Java大作业报告课程名称:Java2面向对象程序设计设计题目:淘金者的游戏一、实验目的1、加深对Java相关语法以及程序编写的认识与理解。
2、更好地熟悉JDK和J2ME。
3、初步建立自我开发Java程序的意识和概念,增强进一步学习Java的兴趣。
二、摘要说明对于初学者而言,这是一个比较大的程序,极具挑战性。
它是由八个子程序(Ghost/GhostCanvas/GhostMIDlet/Man/Monster/Prop/svPoint/TollGate)和一个图片文件(res)组成。
由于临近期末,时间紧张,所以我只挑选了其中的一个主程序的主要部分来研究。
因为我想Java程序的学习重在精,不在多。
这一点还请老师见谅。
这是一个“淘金者”的游戏。
原先我从网上下载来的是一个“抓鬼”游戏。
我觉得这个主题太恐怖,所以就想给它换个主题。
最后,我通过一些方法把游戏界面换成了“淘金”。
三、主程序主要代码的分步详述1)游戏状态的设置int status=0; //主菜单被选中项 0-百宝箱显示 1-主菜单 2-游戏中 3-重新开始 4-分数排行 5-游戏帮助 6-退出游戏int g_status=0; //游戏状态int p_status=0; //子状态int s_status=0; //子状态下的状态int sta=0;//下一个状态int g_sta=0;int p_sta=0;int i_status=0;//装载状态public static boolean playPause=false;// boolean是关键字,其缺省值是false2)主面布相关boolean conti; //游戏运行标志Random random=new Random();//产生随机数public static svPoint svp=null;//svPoint是另一个class的名称,用于控制得分的记录与保存boolean keyPre=false;//是否有键按下3)游戏相关//--------------------主菜单-------------------------public Image menuImg=null;public String[]menuSelPng={"/res/m0.png","/res/m1.png","/res/m2.png","/res/m3.png","/res/m4.png"};public Image[] menuSelImg=new Image[5];//m0,m1,m2,m3,m4,这五张图片分别是“游戏开始”“重新游戏”“分数排行”“游戏帮助”“退出游戏”//--------------------游戏中-------------------------public Image panelImg=null;static boolean g_pause=false; //游戏暂停标志public static Man man=null; //Man是另一个class的名称,用于控制小人的走路、中招、淘到金子等状态public static Vector mons=null;//Monster是另一个class的名称,用于控制牛头、马面、夜叉、僵尸这四种怪物的移动方向以及范围public static Prop prop=null; //Prop是另一个class的名称,用于控制游戏中溜冰鞋、面罩、蜡烛、蔓藤、鼠夹、鬼火这些道具的出现时间与位置public Image gameOverImg=null;public static int gateTime=1000;//本关关卡时间public String[]gateNumPng={"/res/n0.png","/res/n1.png","/res/n2.png","/res/n3.png","/res/n4.png","/ res/n5.png","/res/n6.png","/res/n7.png","/res/n8.png","/res/n9.png"};public Image[] gateNumImg=new Image[10];//这10张图片分别是0-9的数字,用来表示所闯的关数public Image gateImg=null;int t_gate=0;int t_point=0;int showWinTime=0;Image winImg=null;Image congImg=null;//--------------------帮助文字-----------------------String[] helpMe=null;//===================================================int i,j;GhostCanvas() {super(false);setFullScreenMode(true);//设置全屏模式init();start();}public void start() {Thread t=new Thread(this);//多线程t.start();}public static int rate=200;//每帧播放时间为1/10秒public static long startTime=0;//记录开始游戏经过的时间4)根据当前状态时的按键调整游戏状态(用了多个switch语句,嵌套)private void control() {int keystate=getKeyStates();switch(status) {//主菜单被选中项 0-百宝箱显示 1-主菜单 2-游戏中 3-重新开始 4-分数排行 5-游戏帮助 6-退出游戏case 0://百宝动画status=1;g_status=0;break;case 1://主菜单switch(g_status){ //游戏状态case 0:menuInit();//菜单初始化g_status=1;p_status=0; //子状态break;case 1://菜单选择界面if (v_GameCode==Canvas.UP && keyPre){// 游戏操作Canvas类的up属性p_status--;//子状态if (p_status<0){p_status=4;}} else if (v_GameCode==Canvas.DOWN && keyPre){p_status++;if (p_status>4){p_status=0;}}if (v_GameCode==Canvas.FIRE && keyPre){unMenu();switch(p_status){case 0://开始游戏status=2;g_status=0;case 1://重新开始status=3;break;case 2://分数排行status=4;g_status=0;break;case 3://游戏帮助status=5;g_status=0;break;case 4://退出游戏exit();status=-1;break;}}break;}break;case 2: //游戏画面switch(g_status){ //游戏状态case 0://载入游戏gameInit(10);g_status=4;p_status=0;break;case 1://载入本关startGate();g_pause=false;if (i_status>10){g_status=3;i_status=0;}break;case 3://游戏中if(v_keyCode==-7 && keyPre) {endGate();unGame();status=1;g_status=0;p_status=0;} else if(v_keyCode==-6 && keyPre) {} else{int s_status=isEndGate();if (s_status!=0){if (s_status==1){//淘到所有的金子if (t_gate==17){//通关man.point=man.point+(TollGate.curTollGate+1)*1000; //基本分man.point=man.point+GhostCanvas.gateTime/1000*100; //提前完成的分数t_point=Man.point;t_gate=TollGate.curTollGate;g_sta=6;p_sta=0;g_status=-3;p_status=0;} else{//过关man.point=man.point+(TollGate.curTollGate+1)*1000; //基本分man.point=man.point+GhostCanvas.gateTime/1000*100; //提前完成的分数TollGate.curTollGate++;g_sta=4;p_sta=0;endGate();g_status=-3;p_status=0;}} else if(s_status==2 || s_status==3){//时间到或被怪物碰到t_point=Man.point;t_gate=TollGate.curTollGate;g_status=5;p_status=0;}}case -3://胜利switch(p_status){case 0:showWinTime=0;if (winImg==null){winImg=Image.createImage("/res/win.png");//显示胜利的图片 }catch(Exception e){}}p_status=1;break;case 1:showWinTime+=rate;if (showWinTime>1500){p_status=2;}break;case 2:winImg=null;g_status=g_sta;p_status=p_sta;}break;case 4://过关画面操作switch(p_status){case 0://gateImgInit(TollGate.curTollGate+1);p_status=1;break;case 1://if(keyPre){UnGateImg();g_status=1;}break;}break;case 5://GameOverswitch(p_status){case 0:endGate();unGame();if (gameOverImg==null){try{gameOverImg=Image.createImage("/res/gameover.png"); }catch(Exception e){}}p_status=1;case 1:if(keyPre){congImg=null;p_status=2;}break;case 2:if (t_point>Man.MaxPoint){svp.inputing=true;GhostMIDlet.mainMIDlet.disp.setCurrent(svp.frm); }p_status=3;break;case 3:if (!svp.inputing && keyPre){gameOverImg=null;status=1;g_status=0;p_status=0;}break;}break;case 6://通关switch(p_status){case 0://装载通关画面endGate();unGame();if (congImg==null){try{congImg=Image.createImage("/res/cong.png"); }catch(Exception e){}}p_status=1;break;case 1:if (keyPre){p_status=2;}break;case 2:if (t_point>Man.MaxPoint){svp.inputing=true;GhostMIDlet.mainMIDlet.disp.setCurrent(svp.frm); }p_status=3;break;case 3:if (!svp.inputing){status=1;g_status=0;p_status=0;}break;}break;}break;case 3://重新开始svp.readTollGate();TollGate.curTollGate=svp.gate;Man.point=0;gameInit(TollGate.curTollGate);status=2;g_status=4;p_status=0;break;case 4://分数排行switch(g_status){case 0://装载排行榜if (svp.isExistRs("point")){svp.getPointList();}g_status=1;break;case 1://显示排行榜if (keyPre){status=1;g_status=0;}break;}break;case 5://游戏帮助switch(g_status){case 0://装载帮助文字helpMe=new String[]{"1.在游戏规定的关卡中淘到所有的金子"," 就可以获得胜利。
Java程序设计大作业实验总结报告

目录一、前言 (2)二、需求分析 (3)三、系统总体设计 (3)3.1系统总体设计系统思路 (3)3.2数据库设计 (4)3.2.1 login1表的设计和数据 (4)3.2.2 student表的设计和数据 (5)3.2.3 course表的设计和数据 (5)3.2.4 score表的设计和数据 (6)3.3系统功能模块设计 (6)四、系统详细设计 (7)4.1登录模块 (7)4.2 学生模块 (7)4.3 教师模块 (8)4.4 管理员模块 (8)五、系统测试及运行结果 (9)5.1 主界面 (9)5.2 学生管理中心界面 (9)5.3 教师管理中心界面 (10)5.4 管理员管理中心界面 (10)5.5 查询课表界面 (11)5.6 查询成绩界面 (11)5.7 查询教学情况界面 (11)5.8 查询所有学生成绩界面 (12)5.9 学生信息管理界面 (12)5.10 学生成绩管理界面 (13)5.11 用户管理界面 (13)六、实验总结 (14)七、参考文献 (14)一、前言随着计算机在人们生活中的普及和网络时代的来临,对信息的要求日益增加,学生信息管理业务受到了较为强烈的冲击,传统的手工管理方式传统的手工管理方式已不能适应现在的信息化社会。
如何利用现有的先进计算机技术来解决学生信息管理成为当下的一个重要问题,学生信息管理系统是典型的信息管理系统,其开发主要就是针对前台的页面展示以及后台数据的管理。
对于前者,要求应用程序功能完备,易于使用,界面简单;而对于后者,则要求数据库具有一致性、完整性,并能够依据前台的操作来对应操作后台数据库达到一定的安全性。
本学生信息管理系统主要采用的纯JAVA代码实现图形界面系统的开发,以及数据库知识进行数据的查询,删除,插入和更新。
本系统主要分为三个部分:学生模块、教师模块、管理员模块。
其中学生模块实现的功能:查询课表信息和查询成绩。
教师模块实现的功能:查询课表信息、查询教学情况和查询所有学生的各科成绩。
java实训个人总结报告5篇

java实训个人总结报告5篇篇1一、引言本次Java实训旨在提升个人在Java编程语言方面的能力,通过系统地学习和实践,加深对Java基础语法、面向对象编程、常用数据结构与算法、网络编程、数据库操作等方面的理解和掌握。
在为期一个月的实训中,我积极参与,认真完成每一个任务,不仅巩固了理论知识,还提高了实际操作能力。
二、主要收获1. 深入理解了Java基础语法:通过学习Java的基础语法,如变量、数据类型、运算符、流程控制等,我能够熟练编写基本的Java程序,为后续的学习奠定了坚实的基础。
2. 掌握了面向对象编程的思想:Java是一种面向对象的语言,通过学习和实践,我逐渐掌握了面向对象编程的思想,包括类的定义、对象的创建、封装、继承、多态等概念,能够运用这些思想来解决实际问题。
3. 熟悉了常用数据结构与算法:在Java中,提供了丰富的数据结构和算法库,通过学习这些内容,我能够熟练运用数组、列表、集合等数据结构,并掌握了一些常用的排序、查找等算法。
4. 了解了网络编程的基本原理:在网络编程方面,我学习了Java 中的Socket编程、HTTP通信等基本原理,并能够运用这些原理来编写简单的网络应用程序。
5. 学会了数据库操作的基本方法:在数据库操作方面,我学习了Java中的JDBC技术,并能够运用这种技术来连接数据库、执行SQL 语句、处理结果集等基本操作。
三、个人感受通过本次Java实训,我不仅巩固了理论知识,还提高了实际操作能力。
在学习的过程中,我感受到了Java语言的强大和灵活,同时也意识到了自己的不足和需要改进的地方。
在未来的学习和工作中,我会继续努力,不断提高自己的编程能力。
四、存在的问题及改进措施在本次Java实训中,我发现自己在某些方面还存在不足,如对一些高级特性和优化技巧的了解不够深入,在实际应用中还需要进一步学习和掌握。
此外,在编程实践中,我还需要加强自己的代码规范性和可读性,避免出现一些低级错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java语言程序设计展示报告学院专业组长信息组员信息1组员信息2组员信息3指导教师日期年月日目录第一章选题概述 (1)第二章完成情况 (2)第三章成果展示 (3)一、登陆注册界面展示 (3)1、效果截图 (3)2、核心代码 (4)二、客户端界面展示 (5)1、效果截图 (8)2、核心代码 (8)三、服务端界面展示 (4)1、效果截图 (3)2、核心代码 (3)四、数据库直连和文件线程 (10)第四章总结与感受 (12)第一章选题概述在一学期的Java课程学习之后,我们对Java语言有了一定的认识与了解。
在此基础上我们选择了题目一作为本组的目标,题目的相关要求如下(初期拟完成目标):设计编程实现桌面文档共享与管理系统(100%)实现以下功能--1.能够实现文件的下载与上传(客户端与服务器端)2.能够通过安全认证与别人分享文档3.能形成“圈子”,对朋友或这陌生人设置不同的安全级别4.能够共享桌面与聊天5.必须用数据库存储信息6.必须用extends 和 implements 关键字7.必须用this关键字8.必须用图形用户界面9.界面设计与功能不限,充分发挥题目一比较有挑战性,题目中的要求几乎涉及到了我们学过的所有知识,除此之外还需要我们课外学习一些课堂额外的知识,比如数据库的创建于连接。
由组长XXX1负责整合所学容与指挥,组员查阅资料并编写程序,再和组长讨论并完成各自的模块设计。
我们设计了如下的流程图:图1-1 流程图第二章完成情况经过将近一个月左右的编程设计,我们实现的桌面文档共享与管理系统(90%)实现了以下功能--1.能够实现文件的上传(客户端与服务器端)2.能够通过安全认证与别人分享文档3.能形成“圈子”,对朋友或这陌生人设置不同的安全级别4.能够聊天并截取屏幕信息5.采用了数据库存储信息6.采用了extends 和 implements 关键字7.采用了this关键字8.采用了图形用户界面程序的编程设计图2-1 类成果展示图其中jp.java功能为截图;khd.java功能为建立客户端;sc.java功能为文件上传线程;zc.java功能为实现用户登录;Main功能为总体调用;fwq.java功能为建立服务端;User.java 功能为实现与数据库的连接(直连)。
第三章成果展示一、登录注册界面展示1.效果截图经过我们的编程设计,实现了用户的登录,其运行效果如图3-1所示、登陆成功效果如图3-2示、登陆未成功效果如图3-3示。
注册效果如图3-4所示,注册后数据库数据改变效果如图3-5示图3-1 登陆界面运行成功效果图图3-2 登陆成功效果图图3-3 登陆未成功效果图图3-4 注册界面效果图2.核心代码相关核心代码及其详细注解如下:package ceshi;import java.awt.*;import java.awt.event.*;import java.io.PrintWriter;import javax.swing.*;public class zc extends JFrame{User login_user=new User();JTextField j1=new JTextField();//用户名的文本框JPasswordField jpw=new JPasswordField();//密码的文本框 JButton jb1=new JButton("登录");JButton jb2=new JButton("注册");private Container a = getContentPane();public zc(){setLayout(null);setVisible(true);setBounds(600,320,400,160);setTitle("登录窗口");setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//控制窗口关闭//添加登录和注册的按钮jb1.setBounds(270,10,60,30);j1.setBounds(100,15,100,20);jpw.setBounds(100,60,100,20);a.add(j1);a.add(jpw);jb1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String name1=j1.getText();String password1=new String(jpw.getPassword());String password2=login_user.getPWD(name1);String security1=login_user.getSCT(name1);if(password2.trim().equals(password1.trim())){if(security1.trim().equals("管理员")){//System.out.println("3" +login_user.getPWD(name1));setVisible(false);JOptionPane.showMessageDialog(null, "恭喜您登陆成功!", "消息", RMATION_MESSAGE);new fwq();}else{setVisible(false);JOptionPane.showMessageDialog(null, "恭喜您登陆成功!", "消息", RMATION_MESSAGE);new khd();}}else{JOptionPane.showMessageDialog(null, "对不起您的用户名或密码错误!", "错误",JOptionPane.ERROR_MESSAGE);}}});jb2.setBounds(270,55,60,30);a.add(jb1);a.add(jb2);jb2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){Register c=new Register();}});//添加用户名和密码的标签JLabel jl1=new JLabel("用户名");jl1.setBounds(40,10,60,30);JLabel jl2=new JLabel("密码");jl2.setBounds(40,55,60,30);a.add(jl1);a.add(jl2);}public static void main(String argsp[]){ new zc();}}class Register extends JFrame{User Login_user = new User();JTextField jt1=new JTextField();JTextField jt2=new JTextField();JTextField jt3=new JTextField();JTextField jt4=new JTextField();JTextField jt5=new JTextField();JButton jb1=new JButton("注册");JButton jb2=new JButton("退出");JLabel jl1=new JLabel("用户名");JLabel jl2=new JLabel("密码");JLabel jl3=new JLabel("重新输入密码");JLabel jl4=new JLabel("邮箱");JLabel jl5=new JLabel("身份");JPanel jp=new JPanel();private Container a = getContentPane();public Register(){setLayout(null);setVisible(true);setTitle("注册");setBounds(750,320,300,250);jb1.setBounds(10,150,60,30);jb2.setBounds(140,150,60,30);jl1.setBounds(10,10,100,30);jl2.setBounds(10,35,100,30);jl3.setBounds(10,60,100,30);jl4.setBounds(10,85,100,30);jl5.setBounds(10,110,100,30);jt1.setBounds(120,15,130,20);jt2.setBounds(120,40,130,20);jt3.setBounds(120,65,130,20);jt4.setBounds(120,90,130,20);jt5.setBounds(120,115,130,20);a.add(jb1);a.add(jb2);a.add(jl1);a.add(jl2);a.add(jl3);a.add(jl4);a.add(jl5);a.add(jt1);a.add(jt2);a.add(jt3);a.add(jt4);a.add(jt5);jb1.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){String name1=jt1.getText();String password1=new String(jt2.getText());String rpassword1=new String(jt3.getText());String gender1=new String(jt4.getText());String security1=new String(jt5.getText());if (Login_user.jiancha(name1)==1){JOptionPane.showMessageDialog(null, "对不起您的用户名已被注册!", "错误",JOptionPane.ERROR_MESSAGE);return;}else if(name1.length()>10){JOptionPane.showMessageDialog(null,"用户名不能大于10位");return;}else if(password1.length()<6){JOptionPane.showMessageDialog(null,"密码不能小于6位");return;}else if (password1.equals(name1)){JOptionPane.showMessageDialog(null,"密码不能与用户名一致");return;}else if (!password1.equals(rpassword1)){JOptionPane.showMessageDialog(null,"两次输入的密码不一样 ");return;}Login_user.insert(name1,password1,rpassword1,gender1,security1);JOptionPane.showMessageDialog(null, "注册成功!");setVisible(false);}});jb2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){setVisible(false);}});}}二、客户端界面展示1.效果截图经过我们的编程设计,实现了客户端的相关操作,其运行效果如图3-6所示,能够实现连接服务端、断开,选择文件并上传文件、发送、截屏等操作图3-6 客户端界面图2.核心代码核心代码如下:package ceshi;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.TitledBorder; import ceshi.wjsc;import java.awt.*;import java.awt.event.*;import java.io.*;import .Socket;import java.util.HashMap;import java.util.Map;import java.util.StringTokenizer;public class khd extends JFrame{User Login_user=new User();JButton jb1=new JButton("发送");JButton jb2=new JButton("文件");JButton jb3=new JButton("连接");JButton jb4=new JButton("断开");static JButton jb5=new JButton("上传");JButton jb6=new JButton("截屏");static JTextArea jt1=new JTextArea(1,1);JTextArea jt2=new JTextArea(1,1);JTextField jt3=new JTextField("127.0.0.1");JTextField jt4=new JTextField("6999");JTextField jt5=new JTextField("d");JTextField jt6=new JTextField();JTextField jt7=new JTextField();JLabel jl1=new JLabel("聊天窗口");JLabel jl2=new JLabel("写消息");JLabel jl3=new JLabel("服务器IP");JLabel jl4=new JLabel("端口");JLabel jl5=new JLabel("昵称");JFileChooser j1 = new JFileChooser();static File fileFlag = new File("");static File file;private Socket socket;private Socket socket2;private PrintWriter writer;private BufferedReader reader;private MessageThread messageThread;// 负责接收消息的线程private Map<String, User> onLineUsers = new HashMap<String, User>();// 所有在线用户private boolean isConnected = false;private Container a = getContentPane();public khd(){setLayout(null);setVisible(true);setTitle("聊天室");setBounds(600,150,460,600);jl1.setBounds(10,50,100,20);JScrollPane js1 = new JScrollPane(jt1);jt1.setEditable(false);js1.setBounds(10,80,420,280);a.add(js1);a.add(jl1);jl2.setBounds(10,420,100,20);JScrollPane js2 = new JScrollPane(jt2);js2.setBounds(10,440,420, 80);a.add(jl2);jb1.setBounds(250,370,60,30); a.add(jb1);jb3.setBounds(310,370,60,30); a.add(jb3);jb4.setBounds(370,370,60,30); a.add(jb4);jb5.setBounds(190,370,60,30); a.add(jb5);jb6.setBounds(10,370,60,30); a.add(jb6);jb2.setBounds(70,370,60,30); a.add(jb2);jt6.setBounds(130,370,60,30); a.add(jt6);jt3.setBounds(60,10,100,20); a.add(jt3);jl3.setBounds(10,10,100,20); a.add(jl3);jt4.setBounds(200,10,100, 20);a.add(jt4);jl4.setBounds(168,10, 100, 20);a.add(jl4);jt5.setBounds(330,10,100, 20);jl5.setBounds(300,10, 100, 20);a.add(jl5);//按钮控制jb1.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {send();}});jb2.addActionListener(new ActionListener(){public void actionPerformed(ActionEvent e){int n = j1.showOpenDialog(null);String filename = j1.getSelectedFile().toString();if (n == JFileChooser.APPROVE_OPTION) {jt6.setText(filename);fileFlag = new File(filename);file = j1.getSelectedFile();System.out.println(""+file);}}});jb3.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {int port;if (isConnected) {JOptionPane.showMessageDialog(null, "已处于连接上状态,不要重复连接!","错误", JOptionPane.ERROR_MESSAGE);return;}try {try {port = Integer.parseInt(jt4.getText().trim()); } catch (NumberFormatException e2) {throw new Exception("端口号不符合要求!端口为整数!");}String hostIp = jt3.getText().trim();String name = jt5.getText().trim();if (name.equals("") || hostIp.equals("")) {throw new Exception("、服务器IP不能为空!"); }boolean flag = connectServer(port, hostIp, name); if (flag == false) {throw new Exception("与服务器连接失败!");}setTitle(name);JOptionPane.showMessageDialog(null, "成功连接!"); } catch (Exception exc) {JOptionPane.showMessageDialog(null,exc.getMessage(),"错误", JOptionPane.ERROR_MESSAGE);}}});jb4.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {if (!isConnected) {JOptionPane.showMessageDialog(null, "已处于断开状态,不要重复断开!","错误", JOptionPane.ERROR_MESSAGE);return;}try {boolean flag = closeConnection();// 断开连接if (flag == false) {throw new Exception("断开连接发生异常!");}JOptionPane.showMessageDialog(null, "成功断开!"); } catch (Exception exc) {JOptionPane.showMessageDialog(null,exc.getMessage(),"错误", JOptionPane.ERROR_MESSAGE);}}});jb6.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {new jp();RectD rd = new RectD();GraphicsDevice gd =GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();gd.setFullScreenWindow(rd);}});}public synchronized boolean closeConnection() {try {sendMessage("CLOSE");// 发送断开连接命令给服务器 messageThread.stop();// 停止接受消息线程// 释放资源if (reader != null) {reader.close();}if (writer != null) {writer.close();}if (socket != null) {socket.close();}isConnected = false;return true;} catch (IOException e1) {e1.printStackTrace();isConnected = true;return false;}}public void sendMessage(String message) {writer.println(message);writer.flush();}public void send() {if (!isConnected) {JOptionPane.showMessageDialog(null, "还没有连接服务器,无法发送消息!", "错误",JOptionPane.ERROR_MESSAGE);return;}String message = jt2.getText().trim();if (message == null || message.equals("")) {JOptionPane.showMessageDialog(null, "消息不能为空!", "错误",JOptionPane.ERROR_MESSAGE);return;}sendMessage(getTitle() + "" + "ALL" + "" + message);jt2.setText(null);}public static void main(String args[]){new khd();}class MessageThread extends Thread {private BufferedReader reader;private JTextArea textArea;// 接收消息线程的构造方法public MessageThread(BufferedReader reader, JTextArea textArea) {this.reader = reader;this.textArea = textArea;}// 被动的关闭连接public synchronized void closeCon() throws Exception { // 清空用户列表// listModel.removeAllElements();// 被动的关闭连接释放资源if (reader != null) {reader.close();}if (writer != null) {writer.close();}if (socket != null) {socket.close();}isConnected = false;// 修改状态为断开}public void run() {String message = "";while (true) {try {message = reader.readLine();StringTokenizer stringTokenizer = new StringTokenizer(message, "/");String command = stringTokenizer.nextToken();// 命令if (command.equals("CLOSE"))// 服务器已关闭命令{textArea.append("服务器已关闭!\n");closeCon();// 被动的关闭连接return;// 结束线程} else if (command.equals("ADD")) {// 有用户上线更新在线列表String username = "";String userIp = "";if ((username =stringTokenizer.nextToken()) != null&& (userIp =stringTokenizer.nextToken()) != null) {User user = new User(username, userIp);onLineUsers.put(username, user);//listModel.addElement(username);}} else if (command.equals("DELETE")) {// 有用户下线更新在线列表String username =stringTokenizer.nextToken();User user = (User)onLineUsers.get(username);onLineUsers.remove(user);} else if (command.equals("USERLIST")) {// 加载在线用户列表int size = Integer.parseInt(stringTokenizer.nextToken());String username = null;String userIp = null;for (int i = 0; i < size; i++) {username =stringTokenizer.nextToken();userIp = stringTokenizer.nextToken();User user = new User(username, userIp);onLineUsers.put(username, user);//listModel.addElement(username);}} else if (command.equals("MAX")) {// 人数已达上限textArea.append(stringTokenizer.nextToken()+ stringTokenizer.nextToken() + "\n");closeCon();// 被动的关闭连接JOptionPane.showMessageDialog(null, "服务器缓冲区已满!", "错误",JOptionPane.ERROR_MESSAGE);return;// 结束线程} else {// 普通消息textArea.append(message + "\n");}} catch (IOException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}}}public boolean connectServer(int port, String hostIp, String name){// 连接服务器try {socket = new Socket(hostIp, port);// 根据端口号和服务器ip建立连接socket2=new Socket(hostIp,port);writer = new PrintWriter(socket.getOutputStream());reader = new BufferedReader(newInputStreamReader(socket.getInputStream()));// 发送客户端用户基本信息(用户名和ip地址)sendMessage(name + "" +socket.getLocalAddress().toString());// 开启接收消息的线程messageThread = new MessageThread(reader, jt1);messageThread.start();new wjsc(socket2).start();//new Input(socket2).start();isConnected = true;// 已经连接上了return true;} catch (Exception e) {jt1.append("与端口号为:" + port + " IP地址为:" + hostIp+ " 的服务器连接失败!" + "\n");isConnected = false;// 未连接上return false;}}}三、服务端界面展示1.效果截图经过我们的编程设计,实现了服务端的相关操作,其运行效果如图3-5所示,能够实现通过自己的IP地址创造一个服务端。