文档库

最新最全的文档下载
当前位置:文档库 > java实训报告

java实训报告

吉林工业职业技术学院

(JA V A实训报告)

(2014 ~ 2015 学年第 2 学期)

实训地点:网站建设实训室

指导教师:刘洋、尹春宏

专业班级:软件3131

学生姓名:25号王军琦

2015年7月10日

目录

实训题目 (2)

实训内容 (2)

1需求分析 (2)

1.1功能需求分析 (2)

1.2性能需求分析 (3)

2 数据库设计 (3)

3系统实现 (7)

3.1登录窗体和系统主界面设计 (7)

3.2添加用户界面 (9)

3.3修改用户界面 (11)

3.5查询用户界面 (15)

实习心得 (18)

参考文献 (19)

实训题目

学生信息管理系统

实训内容

1需求分析

学生信息管理系统,是对学生的个人信息,课程信息,成绩信息以信息的方式进行管理,最大限度地减少各个环节可能出现的错误,有效减少人力资源局限性导致的储存信息量大,信息存储错误,混淆等问题,合理进行信息存储,是学校能够合理录入学生的个人自料,学期成绩情况,以及课程安排,为学校师生的工作提供方便。

1.1功能需求分析

学生信息管理系统在管理学生中占有重要的地位,它关系着学生信息的基本信息,其中包括学生信息,班级信息,课程信息等。对于学校来讲,学生信息管理系统是不可缺少的组成部分,他有效的管理学生档案,对学校学生的变动和统计起着重要的管理作用。

本系统根据学校管理的实际要求,结合学生信息管理的实际流程要,需实现以下功能:

(1)能够对学生的有关资料进行输入,查询,修改,删除。

(2)能够为学校提供强大的查询功能,以使管理人员了解和掌握学生的具体情况。

(3)能够对数据库和登陆记录进行清理。

(4)可以对用户进行修改密码,新增用户。

(5)超级管理员能对用户的使用权限进行设置,分为不同的用户等级。

根据需求分析中总结的用户需求可以设计系统的体系结构,系统的功能模块图,如图1所示。

java实训报告

图1 学生信息管理系统功能模块示意图

1.2性能需求分析

本系统是学生信息的重要管理软件,必将涉及到很多学生的信息,因此必须要考虑到系统的安全性和可靠性。

(1)安全性

系统安全性要求主要体现在应用软件安全性、数据库安全性和信息安全性等方面。软件设计应做到应用学生信息与数据的分离,实现数据共享,防止数据丢失或破坏;数据库的安全性除自身提供的以外,各应用系统还可通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性。

(2)可靠性

学生信息的可靠性主要体现在它的运行情况上。例如如何使学生信息管理系统在不同的系统平台上都可以稳定的运行,如何实现数据库与学生信息管理系统的合理连接,在接到非法操作后如何响应等等。这些都会影响到系统内信息的完整和项目管理的正常进行,因此要格外重视。

2 数据库设计

在这个学生信息管理系统的开发中,我们选用SQL Server2000作为系统服务数

据库。设置数据表的列名、数据类型等,如下图2所示。

java实训报告

图2学生信息数据表

数据库需求分析是数据库结构设计的第一个阶段,是非常重要的一个阶段。在这个阶段主要是收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为以后的进一步设计打下基础。

再仔细分析和调查学生信息管理过程的基础上,可以得到本系统的实体E-R 图,如图3、图4、图5、图6和图7所示。在此次程序设计中,通过对学生信息管理的内容和实体E-R 图的分析而设计的数据项和数据结果如下所示:

(1)学生个人信息记录:学号、姓名、班级、性别、生日、电话、联系地址。 (2)班级信息记录:班级编号、班级名称、所属院系、班主任、辅导员。 (3)学生课程信息记录:记录号、学号、姓名、所选课程编号。

(4)课程设置记录:课程编号、课程号、学时、学分、任课老师、上课地点。 (

java实训报告

5)学生奖励记录:记录号、学号、姓名、获奖时间、奖励名称、具体描述。 (6)学生职务记录:记录号、学号、姓名、任课时间、职务名称、具体描述。

图3学生个人信息 E-R 图

java实训报告

图4所选课程E-R图

java实训报告

图5学生班级信息E-R图

java实训报告

图6学生奖励信息表E-R图

java实训报告

图7学生职务信息表E-R图

有了上面的数据结构。数据项和E-R实体图,就能进行数据库设计了。

在对数据项和结构分析的基础上可以形成数据库中的表格以及个人信息表、学生所选课程表、学生奖励信息学生职务信息表。为了数据记录实例的完整性,系统中包括了一些数据表:

表1学生个人信息表的结构

java实训报告

java实训报告

表2学生所选课程表

java实训报告

表3学生奖励信息表

java实训报告

表4学生职务信息表

java实训报告

表5学生班级信息表

java实训报告

java实训报告

数据库是集数据库基本知识和数据库设计技术、计算机基础知识和程设序计方法、学生信息管理的原理和方法及应用领域的知识于一身的综合科学,涉及了多学科、多领域。数据库应用系统经过试运行后即可投入正式使用。在数据库系统运行过程中必须不断地对其进行评价、修改、调整。

3系统实现

3.1登录窗体和系统主界面设计

当系统运行时,首先打开登录窗体,只有有权限的用户才能进入系统。登录成功后,将显示系统主界面。登录窗体的名称为FrmLogin,它的界面布局,如图8所示。

java实训报告

图8登陆界面

程序的运行过程如下:

判断是否输入了用户名和密码,如果没有输入,则返回,要求用户输入。

将输入的用户名和密码赋值到变量NameKey和PasswordKey中,如果通过密码验证,将当前用户信息保存到curUser对象中,以便后面使用。

关闭登录窗体。

本系统的主界面,如图9所示。

java实训报告

图9主界面

登录窗体和系统主界面设计代码如下:

class Login

{

void Login()

{

final JFrame loginframe=new JFrame("登陆界面");

loginframe.setBounds(200,200,400,500);

loginframe.setVisible(true);

loginframe.setResizable(true);

loginframe.setLayout(null);

final JTextField text1=new JTextField(10);

final JPasswordField text2=new JPasswordField(10);

JButton btn1=new JButton("登陆");

JButton btn2=new JButton("取消");

JLabel label1=new JLabel("用户名");

JLabel label2=new JLabel("密码");

public void actionPerformed(ActionEvent event)

{

String name=text1.getText();

String password=text2.getText();

{JOptionPane b=new JOptionPane();

b.showMessageDialog(null,"账号有误" ,"消息对话框

",http://www.wendangku.net/doc/a46e390dc8d376eeafaa3149.htmlRMATION_MESSAGE);

}

else

{

st.executeUpdate("INSERT INTO LoginVALUES('"+username+"','"+pass+"')");

loginframe.dispose();

JOptionPane b=new JOptionPane();

b.showMessageDialog(null,"登录成功" ,"消息对话框

",http://www.wendangku.net/doc/a46e390dc8d376eeafaa3149.htmlRMATION_MESSAGE); }

3.2添加用户界面

点击使用里面有管理员登陆、超级管理员登陆、普通学生登陆。鼠标右键单击普通学生登陆,单击再次确认登陆。

点击用户管理里面有添加用户、删除用户、更改用户、修改密码。如图10所示。

java实训报告

图10用户管理界面

如上图界面所示,选择用户管理里面的添加用户,进行对新用户的添加,如果

出现问题右键点击帮助,进行调解,也可以选择退出,重新进入界面,填写学号、姓名、性别、籍贯、年龄和电话右键单击确定,在进行添加新用户如图11所示。

java实训报告

java实训报告

图11添加学生信息界面

添加学生信息代码如下:

class AddStu

{

String sage;

String ssex;

String sno;

String saddress;

String sphone;

String sname;

void AddStu()

{

JFrame addframe=new JFrame("添加学生信息窗体");

addframe.setDefaultCloseOperation(2);

addframe.setBounds(400,200,400,500);

addframe.setVisible(true);

addframe.setResizable(true);

addframe.validate();

JLabel no=new JLabel("学号");

JLabel name=new JLabel("姓名");

JLabel age=new JLabel("年龄");

JLabel sex=new JLabel("性别");

JLabel address =new JLabel("籍贯");

JLabel phone=new JLabel("电话");

JLabel title=new JLabel("需要添加的基本信息 ",JLabel.CENTER);

JButton addbtn=new JButton("添加");

{

JOptionPane b=new JOptionPane();

b.showMessageDialog(null,"添加成功" ,"消息对话框

",http://www.wendangku.net/doc/a46e390dc8d376eeafaa3149.htmlRMATION_MESSAGE);

}

while(rs.next())

{

String no=rs.getString(1);

String name=rs.getString(2);

String age=rs.getString(3);

String sex=rs.getString(4);

String address=rs.getString(5);

String phone=rs.getString(6);

System.out.println(no+" "+ name+" "+age+" "+sex+" "+address+" "+phone);

}

con.close();

}

3.3修改用户界面

录入学生的相关信息后,如果你不满意,可以对相关信息进行修改如图12所示。

java实训报告

图12修改界面

修改学生信息代码如下:

class AlterStu

{

void AlterStu()

{

JFrame deleteframe=new JFrame("更改学生信息");

deleteframe.setLayout(null);

JLabel label=new JLabel("需要修改的学生学号",JLabel.CENTER); deleteframe.setVisible(true);

deleteframe.setBounds(350,350,450,350);

JButton btn=new JButton("确定");

if(rs==null)

{

JOptionPane b=new JOptionPane();

b.showMessageDialog(null,"该学生不存在" ,"消息对话框

",http://www.wendangku.net/doc/a46e390dc8d376eeafaa3149.htmlRMATION_MESSAGE);

}

else

{

JFrame addframe=new JFrame("修改学生信息");

addframe.setDefaultCloseOperation(2);

addframe.setBounds(400,200,450,600);

addframe.setVisible(true);

addframe.setResizable(true);

addframe.validate();

addframe.setLayout(new BorderLayout());

Box basebox,box1,box2,box3,box4;

basebox=Box.createHorizontalBox();

box1=Box.createVerticalBox();

box2=Box.createVerticalBox();

box3=Box.createVerticalBox();

box4=Box.createVerticalBox();

JLabel no=new JLabel("学号");

JLabel name=new JLabel("姓名");

JLabel age=new JLabel("年龄");

JLabel sex=new JLabel("性别");

JLabel address =new JLabel("籍贯");

JLabel phone=new JLabel("电话");

JLabel title=new JLabel("所要修改学生的基本信息",JLabel.CENTER); JButton addbtn=new JButton("修改");

if(ok==1)

{

JOptionPane b=new JOptionPane();

b.showMessageDialog(null,"修改成功" ,"消息对话框

",http://www.wendangku.net/doc/a46e390dc8d376eeafaa3149.htmlRMATION_MESSAGE);

}

3.4删除用户界面

在界面输入要删除用户的学号,右键单击“确定”,用户删除成功,如图13所

示。

java实训报告

图13删除界面

删除学生信息,输入学生学号,右键单击确定,学生信息就会删除,代码如下:class DeleteStu

{

void DeleteStu()

{

JFrame deleteframe=new JFrame("删除学生信息");

JLabel label=new JLabel("请输入要删除学生的学号",JLabel.CENTER);

deleteframe.setVisible(true);

deleteframe.setBounds(300,300,400,300);

JButton btn=new JButton("确定");

deleteframe.add(label);

label.setForeground(Color.black);

final JTextField text=new JTextField(15);

text.setSize(100,60);

deleteframe.add(text);

deleteframe.add(btn);

btn.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent event)

{

Connection con;

Statement st;

ResultSet rs;

String sno=text.getText();

try

{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}

catch(ClassNotFoundException e)

{

System.out.println(e);

}

try

{

con=DriverManager.getConnection("jdbc:odbc:pan","","");

st=con.createStatement();

int ok= st.executeUpdate("DELETE FROM student WHERE sno='"+sno+"'");

if(ok==1)

{

JOptionPane b=new JOptionPane();

b.showMessageDialog(null,"删除成功" ,"消息对话框

",http://www.wendangku.net/doc/a46e390dc8d376eeafaa3149.htmlRMATION_MESSAGE);

}

3.5查询用户界面

可以通过学生信息管理系统进行查询学生的信息如图14所示。

java实训报告

图14学生信息界面

学生信息代码如下:

class ShowStu

{

void ShowStu()

{

JFrame frame1=new JFrame("学生信息窗口");

frame1.setBounds(300,300,500,400);

frame1.setDefaultCloseOperation(2);

JTable table;

Object a[][]=null;

Object name[]={"学号","姓名","年龄","性别","籍贯","电话"};

Connection con;

Statement st;

ResultSet rs;

try

{

con=DriverManager.getConnection("jdbc:odbc:pan","","");

st=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CON CUR_READ_ONLY);

rs=st.executeQuery("SELECT * FROM student");

http://www.wendangku.net/doc/a46e390dc8d376eeafaa3149.htmlst();

int lastnumber=rs.getRow();

a=new Object[lastnumber][6];

int i=0;

rs.beforeFirst();

while(rs.next())

{

a[i][0]=rs.getString(1);

a[i][1]=rs.getString(2);

a[i][2]=rs.getString(3);

a[i][3]=rs.getString(4);

a[i][4]=rs.getString(5);

a[i][5]=rs.getString(6);

i++;

}

con.close();

}

catch(SQLException e)

{

System.out.println(e);

}

table=new JTable(a,name);

frame1.setLayout(new BorderLayout());

frame1.add(new JScrollPane(table),BorderLayout.CENTER); frame1.setVisible(true);

frame1.validate();

}

}

在本学期的最后两周,我们在学校机房进行了为期两周的JAVA实训。现在即将结束了,回首本学期的java学习,重点还是在学习概念等一些常识性的东西,当然学知识可不能凭自己的爱好和一时兴趣,要一步一个脚印,认认真真,踏踏实实,理论与实践相结合,在扎实掌握课本实例和内容之后,有一定的扩展阅读和课外学习,充分全面的了解JAVA的应用和扩展运用。

在我所学的语言当中,我自认为JAVA是一门比较强大的面向对象的编程语言,不仅仅因为它的跨平台性,更多的是因为它的灵活多变和实用性较强,可以说比较的经典和强悍。

所以学好java语言有很大的用处,这次实训,面对一道陌生的题目和要求时,不应慌张和无措,首先应该想到这和课本上的哪些知识具有结合点,回忆和分析这种结构的算法和具体实施方法,综合考虑其他的方面,例如:该题的易写性和易懂性及其他的问题的可利用性。在编写时,一个小小的符号,一个常量变量的设定,这都无不考量着我们的细心和严谨,所以学习JAVA,不仅对我们以后学习其他语言有很大的好处,而且也让我们知道了和理解了作为一个编程人员首先应具有的良好心理素质,那就是冷静思考和专心致志。对待学术知识应该是严谨和认真。

这次实训,我们更多学到的是不懂就问和自己应该尽自己的全力去尝试,哪怕失败,只要自己尽自己的全力,和身边同学一起探讨而不是抄袭,团结合作,发挥团队意识,最后在自己的努力下,终于运行成功,这种成就感美不可言,心情愉悦至极。

最后终于要结束了,大家都有种释怀的感觉,当然我想我更多的是兴奋和自己掌握了知识之后的饱满感,学知识就像吃东西一样,吃饱了就应该好好的消化。要不断的温习和运用,做到举一反三,将所学知识充分融入到平时的学习生活中去,为以后的工作做好坚实的基础。感谢学校和老师能够为我们提供这次机会,让我们更好的掌握和了解JAVA这门语言。谢谢!