JAVA 连接sqlserver 学生成绩管理系统DOC.docx

上传人:b****5 文档编号:6007722 上传时间:2023-01-02 格式:DOCX 页数:27 大小:43.63KB
下载 相关 举报
JAVA 连接sqlserver 学生成绩管理系统DOC.docx_第1页
第1页 / 共27页
JAVA 连接sqlserver 学生成绩管理系统DOC.docx_第2页
第2页 / 共27页
JAVA 连接sqlserver 学生成绩管理系统DOC.docx_第3页
第3页 / 共27页
JAVA 连接sqlserver 学生成绩管理系统DOC.docx_第4页
第4页 / 共27页
JAVA 连接sqlserver 学生成绩管理系统DOC.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

JAVA 连接sqlserver 学生成绩管理系统DOC.docx

《JAVA 连接sqlserver 学生成绩管理系统DOC.docx》由会员分享,可在线阅读,更多相关《JAVA 连接sqlserver 学生成绩管理系统DOC.docx(27页珍藏版)》请在冰豆网上搜索。

JAVA 连接sqlserver 学生成绩管理系统DOC.docx

JAVA连接sqlserver学生成绩管理系统DOC

《学生成绩管理系统》课程设计

实验报告

题目学生成绩管理系统

学院数学与信息工程学院

专业计算机科学与技术

班级

同组成员

编写日期

一、

课程设计目的

做这个小的学生成绩管理系统来加深对JAVA所学知识的巩固,以及学习JAVA与数据库的连接和JAVA的GUI图形界面。

二、需求分析

此系统实现如下系统功能:

(1)使得学生的成绩管理工作更加清晰、条理化、自动化。

(2)通过用户名和密码登录系统,查询学生基本资料,学生所学课程成绩,等功能。

容易地完成学生信息的查询操作。

(3)设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。

三、系统模块设计

此系统可分为2个模块,教师管理模块和学生操作模块,期中教师又包括学生信息输入与学生成绩录入等;学生模块则包括学生成绩查询与学生信息录入查询操作等。

系统流程图:

四、数据库

1、学生表:

Field

Type

Null

Key

Comment

ID

Varchar(10)

——

PRI

用户名(学号)

Pwd

Varchar(10)

——

——

密码

Name

Char(10)

——

——

姓名

Sex

Char(10)

——

——

性别

Class

Char(10)

——

——

班级

Collage

Char(10)

——

——

学院

2、教师表

Field

Type

Null

Key

Comment

ID

Varchar(10)

——

PRI

用户名

Pwd

Varchar(10)

——

——

密码

3、成绩表

Field

Type

Null

Key

Comment

Sid

char(10)

——

PRI

学号

计算机网络

char(10)

——

——

课程

Linux操作系统

char(10)

——

——

课程

计算机专业英语

char(10)

——

——

课程

计算机信息技术

char(10)

——

——

课程

Java程序设计

char(10)

——

——

课程

数据库应用实训

char(10)

——

——

课程

高等数学

char(10)

——

——

课程

XML

char(10)

——

——

课程

五、E-R图

六、心得体会

通过本次课程设计,成功的完成了这个小型简单的系统的设计,在整个设计过程中我对JAVA使用和它强大的作用有了一个更深刻的认识,尽管这个系统很简单,但是它让我综合运用了这个学期所学的JAVA的很多内容,在此基础上,对JAVA的基础知识得到了更好的巩固。

在制作的过程中我也学到很多思想:

首先,要学会统筹全局,合理规划,例如在制作整个框架的时候提前就要做全面考虑,要把整个结构图画出来,并且要对数据库表里的东西做全面规划。

同时在编写程序的时候也要想好先实现什么功能,再实现什么功能,这样做出来的东西才有条理性,更容易实现和理解。

其次,要细心仔细。

Java程序虽然容易理解,但在写的过程中一不留心就会出现错误。

当然出错是在所难免的,与性质有关的错误可以经过思考讨论后进行改正,但如果粗心大意,出现输入上的错误就很难发现和修改,会耽误很多时间。

我认为最大的收获是提高了自己的动手能力。

在平时的上机中大多数是根据书上的思想和布局来写程序的。

这次的课程设计要自己思考自己写,考虑的东西比平时上机考虑的要多的多。

在整个设计过程中写代码不是最难的,最难的是构思和布局。

这次课程设计也是一次很好的实践活动,让我们体会到了java的神奇作用。

附录:

源代码

1、用户登录界面

importjava.awt.*;

importjavax.swing.*;

importjava.sql.*;

publicclassSystemsextendsJFrameimplementsActionListener

{

staticSystemsss;

JPanelpanel=newJPanel();

JLabellabel1=newJLabel("输入姓名:

");

JTextFieldname=newJTextField();

JLabellabel2=newJLabel("密码:

");

JPasswordFieldpwd=newJPasswordField();

JButtonEnter=newJButton("登录");

JButtonExit=newJButton("退出");

Stringurl="E:

\\mysql\\TM1.jpg";

ButtonGroupbgp=newButtonGroup();

JRadioButtonstu=newJRadioButton("学生");

JRadioButtontch=newJRadioButton("教师");

publicSystems()

{

super("登录系统");

this.setResizable(false);

JLabelimg=newJLabel(newImageIcon(url));

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

panel.add(img);

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

tch.setBounds(265,210,70,20);

bgp.add(stu);

bgp.add(tch);

panel.add(stu);

panel.add(tch);

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=newString(pwd.getPassword());

try

{

}

catch(ClassNotFoundExceptionce)

{

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

}

if(stu.isSelected())

{

try

{

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

shujuku","sa","");

Statementstmt=con.createStatement();

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

while(rs.next())

{

if(rs.getString("ID").equals(username))

if((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(tch.isSelected())

{

try

{

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

shujuku","sa","");

Statementstmt=con.createStatement();

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

while(rs.next())

{

if(rs.getString("ID").equals(username))

if((rs.getString("Pwd").equals(password)))

{

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

Teacherstch=newTeachers();

}

else

{

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

}

}

}

catch(SQLExceptionse)

{

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

}

}

}

else

{

System.exit(0);

}

}

publicstaticvoidmain(String[]args)

{

Systemssys=newSystems();

}

}

2、学生登录界面:

importjava.awt.*;

importjavax.swing.*;

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();

}

}

3、教师登录界面:

importjava.awt.*;

importjavax.swing.*;

publicclassTeachersextendsJFrameimplementsActionListener

{

JMenuBarbar=newJMenuBar();

JMenumenu1=newJMenu("信息");

JMenumenu2=newJMenu("成绩");

JMenuItemitem1=newJMenuItem("录入信息");

JMenuItemitem2=newJMenuItem("录入成绩");

JPaneljpl=newJPanel();

publicTeachers()

{

super("教师界面");

this.setSize(500,300);

this.setResizable(false);

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

this.setJMenuBar(bar);

this.add(jpl);

jpl.setLayout(null);

bar.add(menu1);

bar.add(menu2);

menu1.add(item1);

menu2.add(item2);

item1.addActionListener(this);

item2.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente)

{

if(e.getSource()==item1)

{

AddMsgmsg=newAddMsg();

}

else

{

Addscoreas=newAddscore();

}

}

publicstaticvoidmain(String[]args)

{

Teacherstch=newTeachers();

}

}

4、学生用户添加界面:

importjava.awt.*;

importjavax.swing.*;

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

{

}

catch(ClassNotFoundExceptionce)

{

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

}

try

{

Connectioncon=DriverManager.getConnection("jdbc:

odbc:

shujuku","sa","");

Statementstmt=con.createStatement();

Stringstr="insertintoSTU(ID,Pwd,Name,Sex,Class,Collage)values('"+num.getText()+"','"+"123','"+nam.getText()+"','"+sex+"','"+clas.getText()+"','"+scl.getText()+"')";

//

inta=stmt.executeUpdate(str);

if(a==1)

{

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

}

else

{

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

}

stmt.close();

}

catch(SQLExceptionse)

{

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

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

当前位置:首页 > 自然科学 > 天文地理

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

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