南昌大学计算机JAVA实验实验四.docx

上传人:b****6 文档编号:7216609 上传时间:2023-01-21 格式:DOCX 页数:32 大小:159.17KB
下载 相关 举报
南昌大学计算机JAVA实验实验四.docx_第1页
第1页 / 共32页
南昌大学计算机JAVA实验实验四.docx_第2页
第2页 / 共32页
南昌大学计算机JAVA实验实验四.docx_第3页
第3页 / 共32页
南昌大学计算机JAVA实验实验四.docx_第4页
第4页 / 共32页
南昌大学计算机JAVA实验实验四.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

南昌大学计算机JAVA实验实验四.docx

《南昌大学计算机JAVA实验实验四.docx》由会员分享,可在线阅读,更多相关《南昌大学计算机JAVA实验实验四.docx(32页珍藏版)》请在冰豆网上搜索。

南昌大学计算机JAVA实验实验四.docx

南昌大学计算机JAVA实验实验四

南昌大学实验报告

学生姓名:

郑俊学号:

6100410235专业班级:

计科103

实验类型:

□验证□综合

设计□创新实验日期:

4月11日实验成绩:

实验四学生信息管理系统的实现

一、实验目的

利用Java实现一个具体工程

二、实验内容

编程:

请结合集合框架来定义一个班级成绩管理系统。

已知,一个班级有若干名学生,学生每学期要参加多门课程的考试。

其中,班级中有班长管理班级的日常事务,而由各学科的学习委员负责各学科相关的日常工作。

要求实现:

(1)班长有权限管理这个班级学员的基本信息管理;

(2)各学科的学习委员管理课程基本信息及录入学生本科目的成绩,录入、插入、删除成绩时,要求按照学生成绩的大小顺序进行排列;

(3)各学科的学习委员按照指定科目检索所有学生的成绩,以及统计指定科目的平均分以及记录学生成绩等级的百分比率;

(4)学生只能按照自己的学号实现所有成绩的查询。

三、实验环境

1、PC微机;

2、DOS操作系统或Windows操作系统;

3、Eclips环境或Jbuilder程序集成环境。

四、实验步骤

1.首先确定学生成绩档案管理信息系统的用户。

2.学生成绩档案管理信息系统的用户基本分为两类,分别是超级用户和学生用户。

不管是哪种用户都是必须经过登录才能进入学生成绩档案管理信息系统,所以该系统必须有一个登录界面,并且在该界面中能够让用户选择用户是超级用户还是学生用户。

该系统是不会对外开放的,所以也不存在注册界面。

3.因为用户分为两种,所以每一种用户进行操作的界面应该是不同的。

首先是学生界面,在其中应该只有查询成绩和个人信息查询和插入。

主要来学习如何进行学生界面开发。

4.除了学生界面外,还要有一个超级用户界面。

超级用户在超级用户界面中可以对学生信息进行管理,包括查询、修改和删除。

同样也可以对学生的成绩进行管理,包括查询和插入,由于输入错误还要能够对学生的成绩进行修改,由于学生作弊还能够将学生的成绩进行删除。

5.首先数据库中应该有超级用户和学生用户这两个表,表中应该最少有用户名和密码两项,使用表中的这两项就可以进行登录。

在学生表中还应该具有一些和学籍相关的信息,包括年龄、班级等内容,这样就可以在系统中对学生信息进行操作。

6.除此之外还需要一个成绩表,通过该表超级用户可以对学生的成绩进行查询、插入、修改和删除。

学生也可以通过该表对自己的成绩进行查询。

7.不管是超级用户和学生进入学生成绩档案管理信息系统都是从登录界面进入的。

在登录界面中应该是让用户选择自己身份的,然后系统将根据用户的选择来判断用户的身份并进行查询不同的数据库。

8.对界面设计好基本形式后,就可以进行程序开发。

首先要定义两个标签和两个文本框,分别来表示用户名和密码。

并且还需要定义一个下拉列表让用户来进行身份选择,其中选项包括“学生用户”和“超级用户”。

在程序的最后还定义了两个按钮,从而让用户输入用户名和密码后进行登录。

9.在学生界面中,学生可以对自己的信息进行查询,在第一次登录时还可以对自己的信息进行插入,并且学生能够查询自己的成绩。

10.因为学生要完成对信息和成绩的操作,所以这里的设计是在界面中定义两个菜单,分别进行信息和成绩的操作。

因为对信息的操作包括插入和查询,所以还需要在信息菜单下定义“插入”和“查询”两个子菜单。

11.对界面进行设计后,就可以进行程序开发。

同样首先是创建一个窗口,在窗口中要创建两个菜单,并且在信息菜单下还要创建“插入”和“查询”两个子菜单。

12.在学生界面中单击“信息”菜单下的“插入”子菜单,就会进入学生插入界面,在该界面中学生可以输入自己的信息。

13.学生第一次插入信息后,超级用户是可以对学生的信息进行修改和删除的。

除此之外,学生还可以查询自己被修改后的信息,在信息菜单下有一个查询子菜单,单击该菜单就触发事件,从而进入查询学生信息界面。

14.在学生界面中还有一个“成绩”菜单,在学生的界面该菜单下只有一个“查询”子菜单。

单击“查询”子菜单,将触发事件,进入到查询成绩界面。

主要源程序:

登陆界面

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.sql.*;

publicclasssystemsextendsJFrameimplementsActionListener

{

staticsystemsss;

JPanelpanel=newJPanel();

JLabellabel1=newJLabel("输入姓名:

");

JTextFieldname=newJTextField();

JLabellabel2=newJLabel("密码:

");

JPasswordFieldpwd=newJPasswordField();

JButtonEnter=newJButton("登录");

JButtonExit=newJButton("退出");

Stringurl="D:

\\java\\创新杯\\title.jpg";

ButtonGroupbgp=newButtonGroup();

JRadioButtonstu=newJRadioButton("学生用户");

JRadioButtonadmin=newJRadioButton("超级用户");

publicsystems()

{

super("学生成绩档案管理信息系统");

this.setResizable(false);

JLabelimg=newJLabel(newImageIcon(url));

img.setBounds(0,0,500,100);

panel.add(img);

stu.setBounds(165,210,80,20);

admin.setBounds(265,210,80,20);

bgp.add(stu);

bgp.add(admin);

panel.add(stu);

panel.add(admin);

Enter.setBounds(150,250,80,20);

Exit.setBounds(270,250,80,20);

Enter.addActionListener(this);

Exit.addActionListener(this);

panel.add(Enter);

panel.add(Exit);

panel.setLayout(null);

this.add(panel);

label1.setBounds(135,130,100,25);

panel.add(label1);

name.setBounds(265,130,100,25);

panel.add(name);

label2.setBounds(135,165,100,25);

panel.add(label2);

pwd.setBounds(265,165,100,25);

panel.add(pwd);

this.setBounds(100,100,500,350);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==Enter)

{

Stringusername,password;

username=name.getText();

password=pwd.getText();

try

{

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

}

catch(ClassNotFoundExceptionce)

{

JOptionPane.showMessageDialog(ss,ce.getMessage());

}

if(stu.isSelected())

{

try

{

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

sysdb","sa","");

Statementstmt=con.createStatement();

ResultSetrs=stmt.executeQuery("select*fromSTU");

while(rs.next())

{

if((rs.getString("ID").equals(username))&&(rs.getString("Pwd").equals(password)))

{

JOptionPane.showMessageDialog(ss,"登陆成功");

Studentsstu=newStudents();

}

else

{

JOptionPane.showMessageDialog(ss,"登录失败");

}

}

rs.close();

stmt.close();

}

catch(SQLExceptionse)

{

JOptionPane.showMessageDialog(ss,se.getMessage());

}

}

elseif(admin.isSelected())

{

try

{

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

sysdb","sa","");

Statementstmt=con.createStatement();

ResultSetrs=stmt.executeQuery("select*fromADM");

while(rs.next())

{

if((rs.getString("ID").equals(username))&&(rs.getString("Pwd").equals(password)))

{

JOptionPane.showMessageDialog(ss,"登陆成功");

Adminadmin=newAdmin();

}

else

{

JOptionPane.showMessageDialog(ss,"登录失败");

}

}

}

catch(SQLExceptionse)

{

JOptionPane.showMessageDialog(ss,se.getMessage());

}

}

}

else

{

System.exit(0);

}

}

publicstaticvoidmain(String[]args)

{

systemssys=newsystems();

}

}

(1)学生界面

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

publicclassStudentsextendsJFrameimplementsActionListener

{

JMenuBarjmb=newJMenuBar();

JMenuMessage=newJMenu("信息");

JMenuScore=newJMenu("成绩");

JMenuItemItem1=newJMenuItem("插入");

JMenuItemItem2=newJMenuItem("查询");

JMenuItemItem3=newJMenuItem("查询");

publicStudents()

{

super("学生界面");

this.setSize(500,400);

this.setVisible(true);

this.setResizable(false);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setJMenuBar(jmb);

jmb.add(Message);

jmb.add(Score);

Message.add(Item1);

Message.add(Item2);

Score.add(Item3);

Item1.addActionListener(this);

Item2.addActionListener(this);

Item3.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==Item1)

{

AddMsgad=newAddMsg();

}

elseif(e.getSource()==Item2)

{

Serchser=newSerch();

}

else

{

Scoreso=newScore();

}

}

publicstaticvoidmain(String[]args)

{

Studentsstu=newStudents();

}

}

(2)添加学生信息

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.sql.*;

publicclassAddMsgextendsJFrameimplementsActionListener

{

staticAddMsgs;

/*添加学生信息控件*/

JPaneljpl=newJPanel();

JLabellabel1=newJLabel("添加基本信息",JLabel.CENTER);

JLabellabel2=newJLabel("学号:

",JLabel.CENTER);

JLabellabel3=newJLabel("姓名:

",JLabel.CENTER);

JLabellabel4=newJLabel("性别:

",JLabel.CENTER);

JLabellabel5=newJLabel("班级:

",JLabel.CENTER);

JLabellabel6=newJLabel("学院:

",JLabel.CENTER);

JTextFieldnum=newJTextField

(2);

JTextFieldnam=newJTextField(4);

ButtonGroupbgp=newButtonGroup();

JRadioButtonman=newJRadioButton("男");

JRadioButtonwomen=newJRadioButton("女");

JTextFieldclas=newJTextField();

JTextFieldscl=newJTextField();

JButtonreset=newJButton("重置");

JButtonaddmsg=newJButton("添加");

publicAddMsg()

{

super("添加学生信息");

this.setResizable(false);

this.setSize(500,400);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.add(jpl);

jpl.setLayout(null);

addmsg.addActionListener(this);

reset.addActionListener(this);

/*插入面板*/

label1.setBounds(100,20,300,20);

jpl.add(label1);

label2.setBounds(100,50,70,20);

jpl.add(label2);

num.setBounds(190,50,140,20);

jpl.add(num);

label3.setBounds(100,90,70,20);

jpl.add(label3);

nam.setBounds(190,90,140,20);

jpl.add(nam);

label4.setBounds(100,130,70,20);

jpl.add(label4);

man.setBounds(190,130,60,20);

women.setBounds(270,130,60,20);

jpl.add(man);

jpl.add(women);

bgp.add(man);

bgp.add(women);

label5.setBounds(100,170,70,20);

jpl.add(label5);

clas.setBounds(190,170,140,20);

jpl.add(clas);

label6.setBounds(100,210,70,20);

jpl.add(label6);

scl.setBounds(190,210,140,20);

jpl.add(scl);

reset.setBounds(120,250,90,20);

addmsg.setBounds(240,250,90,20);

jpl.add(reset);

jpl.add(addmsg);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==addmsg)

{

Stringsex;

if(man.isSelected())

{

sex="男";

}

else

{

sex="女";

}

try

{

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

}

catch(ClassNotFoundExceptionce)

{

JOptionPane.showMessageDialog(s,ce.getMessage());

}

try

{

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

sysdb","sa","");

Statementstmt=con.createStatement();

inta=stmt.executeUpdate("insertintoSTU(ID,Pwd,Name,Sex,Class,Collage)values('"+num.getText()+"','"+"123456','"+nam.getText()+"','"+sex+"','"+clas.getText()+"','"+scl.getText()+"')");

if(a==1)

{

JOptionPane.showMessageDialog(s,"已成功添加");

}

else

{

JOptionPane.showMessageDialog(s,"添加失败");

}

stmt.close();

}

catch(SQLExceptionse)

{

JOptionPane.showMessageDialog(s,se.getMessage());

}

}

else

{

num.setText("");

nam.setText("");

clas.setText("");

scl.setText("");

num.requestFocus();

}

}

publicstaticvoidmain(String[]args)

{

AddMsgamg=newAddMsg();

}

}

(3)添加学生成绩

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.sql.*;

publicclassAddscoreextendsJFrameimplementsActionListener

{

staticAddscoress;

JLabel[]label={newJLabel("学号:

"),newJLabel("计算机网络:

"),newJLabel("操作系统:

"),newJLabel("计算机组成与结构:

"),newJLabel("计算机信息技术:

"),newJLabel("Java程序设计:

"),newJLabel("数据库概论:

"),newJLabel("高等数学:

"),newJLabel("嵌入式设计:

")};

JTextField[]txt={newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField(),newJTextField()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1