南昌大学计算机JAVA实验实验四.docx
- 文档编号:7216609
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:32
- 大小:159.17KB
南昌大学计算机JAVA实验实验四.docx
《南昌大学计算机JAVA实验实验四.docx》由会员分享,可在线阅读,更多相关《南昌大学计算机JAVA实验实验四.docx(32页珍藏版)》请在冰豆网上搜索。
南昌大学计算机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()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南昌大学 计算机 JAVA 实验