基于Java与SQL数据库技术的学生成绩管理系统.docx

上传人:b****3 文档编号:27561047 上传时间:2023-07-02 格式:DOCX 页数:49 大小:1.03MB
下载 相关 举报
基于Java与SQL数据库技术的学生成绩管理系统.docx_第1页
第1页 / 共49页
基于Java与SQL数据库技术的学生成绩管理系统.docx_第2页
第2页 / 共49页
基于Java与SQL数据库技术的学生成绩管理系统.docx_第3页
第3页 / 共49页
基于Java与SQL数据库技术的学生成绩管理系统.docx_第4页
第4页 / 共49页
基于Java与SQL数据库技术的学生成绩管理系统.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

基于Java与SQL数据库技术的学生成绩管理系统.docx

《基于Java与SQL数据库技术的学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《基于Java与SQL数据库技术的学生成绩管理系统.docx(49页珍藏版)》请在冰豆网上搜索。

基于Java与SQL数据库技术的学生成绩管理系统.docx

基于Java与SQL数据库技术的学生成绩管理系统

基于Java与SQL数据库技术的学生成绩管理系统

 

2015至2016第二学期期末考试

 

课程:

java语言程序设计

题目:

学生信息管理系统

类别:

论文□设计√

院系:

计算机与信息工程系

专业班级:

信息管理2013级本科1班

学号:

03,04,07,08,15

学生姓名:

邱丹丹,范柳,谭鸿儒,何婧,陆瑶

任课教师:

周方

完成时间:

2016年6月24日

 

教务处制

二○一五年九月

 

 

2.系统需求分析

2.1开发环境和软件

(1)操作系统:

Windows7

(2)数据库软件:

mysql-5.7.13-winx64

(3)Java开发工具:

Eclipse

mysql-connector-java-5(JDBC驱动包)

jdk-8u73-windows-x64(java运行环境压缩包)

2.2系统设计与功能分析

学生信息管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。

该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成学生学籍信息的添加,查询,修改,删除的操作以及成绩的录入,修改,删除等。

用ODBC驱动实现前台Java与后台SQL数据库的连接。

Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。

SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。

该系统实现的大致功能:

1.用户登陆界面。

该界面可以选择使用者的身份,“管理员,教师,学生”。

不同的身份有不同的操作界面和功能权限。

ID号和密码输入正确即可登录。

学生管理界面。

提供了学生学籍信息的查询,相关科目的成绩查询和排名,修改登录密码等功能。

2.教师管理界面。

提供了对学生学籍信息的查询,添加,修改,删除;学生成绩的录入,修改,删除,查询班级排名。

修改密码等功能。

3.管理员管理界面。

拥有最高的权限。

允许添加教师信息和课程信息等。

4.登录的用户信息分别存储在SQL数据库的“管理员信息表”,“教师信息表”,“学籍信息表”中,如果用户信息不存在则三张表中,将会无权利登录本管理系统。

保证了本学生管理系统的安全性。

2.3功能层次图

 

 

3数据库设计

3.1系统概念结构设计

 

 

实体属性表:

实体

属性

教师

教师ID,教师姓名,登录密码

课程

课程号,课程名称,教师ID

管理员

管理员ID,登录密码

班级

班级号,班级名称,总人数

学籍

学号,姓名,性别,班级号,籍贯,登录密码

成绩

学号,课程号,成绩

 

3.2系统逻辑结构设计

教师信息表:

字段名

类型

空值

约束条件

教师ID

varchar(8)

notnull

主键

教师姓名

varchar(8)

notnull

登录密码

varchar(8)

notnull

 

课程信息表:

字段名

类型

空值

约束条件

课程号

varchar(8)

notnull

主键

课程名称

varchar(12)

notnull

教师ID

varchar(8)

notnull

外键

 

班级信息表:

字段名

类型

空值

约束条件

班级号

varchar(8)

notnull

主键

班级名称

varchar(8)

notnull

所属学院

varchar(6)

班级人数

nchar(4)

 

管理员信息表:

字段名

类型

空值

约束条件

管理员ID

varchar(10)

notnull

主键

登录密码

varchar(10)

notnull

 

成绩信息表:

字段名

类型

空值

约束条件

班级号

varchar(15)

notnull

主键,外键

班级名称

varchar(8)

notnull

主键,外键

所属学院

smallint

notnull

 

学籍信息表:

字段名

类型

空值

约束条件

学号

int

notnull

主键

姓名

varchar(30)

notnull

性别

char

(2)

班级号

varchar(30)

notnull

 外键

籍贯

char(10)

 

登录密码

money

notnull

3.3数据库实现

3.3.1数据库关系图

 

3.3.2SQL语句实现

数据表的创建:

(1)教师信息表创建:

createtable教师信息表(

教师IDvarchar(8)primarykey,

教师姓名varchar(8)notnullunique,

登录密码varchar(8)notnull,

(2)课程信息表创建:

createtable课程信息表(

课程号varchar(8)primarykey,

课程名称varchar(12)notnull,

教师IDvarchar(8)notnull

foreignkey(教师ID)references教师信息表(教师ID)

 

(3)班级信息表创建:

createtable班级信息表(

班级号varchar(8)notnullprimarykey,

班级名称varchar(8)notnullunique,

所属学院varchar(8),

班级人数nchar(4)

(4)学籍信息表创建:

createtable学籍信息表(

学号varchar(15)primarykey,

姓名varchar(8)notnull,

性别varchar(4),

班级号varchar(8)notnull,

籍贯varchar(5),

登录密码varchar(6)notnull

foreignkey(班级号)references班级信息表(班级号)

(5)成绩信息表创建:

createtable成绩信息表(

学号varchar(15),

课程号varchar(8),

成绩smallint

primarykey(学号,课程号)

foreignkey(学号)references学籍信息表(学号),

foreignkey(课程号)references课程信息表(课程号)

(6)管理员信息表创建:

createtable课程信息表(

管理员IDvarchar(8)primarykey,

登录密码varchar(12)notnull

视图的创建:

(1)“教师课程详细信息”视图创建:

createview教师课程详细信息

as

SELECT教师信息表.教师ID,教师信息表.教师姓名,课程信息表.课程号,课程信息表.课程名称,

教师信息表.登录密码

FROM教师信息表

JOIN课程信息表ON教师信息表.教师ID=课程信息表.教师ID

 

(2)“学生成绩信息”视图创建:

createview学生成绩信息

as

SELECT学籍信息表.学号,学籍信息表.姓名,学籍信息表.性别,

课程信息表.课程名称,成绩信息表.成绩

FROM成绩信息表

JOIN学籍信息表ON成绩信息表.学号=学籍信息表.学号

JOIN班级信息表ON班级信息表.班级号=学籍信息表.班级号

JOIN课程信息表ON课程信息表.课程号=成绩信息表.课程号

存储过程创建:

(1)“单科成绩排名”创建:

createproc[dbo].[单科成绩排名]

@kechennamechar(8),

@classnamechar(8)

as

select学籍信息表.学号,姓名,成绩

from成绩信息表

join课程信息表on课程信息表.课程号=成绩信息表.课程号

join学籍信息表on学籍信息表.学号=成绩信息表.学号

join班级信息表on班级信息表.班级号=学籍信息表.班级号

where课程名称=@kechennameand班级名称=@classname

orderby成绩desc

 

(2)“全班排名”创建:

createproc[dbo].[全班排名]

@classchar(8)

as

select学籍信息表.学号,姓名,avg(成绩)as平均分,sum(成绩)as总分

from成绩信息表

join学籍信息表on成绩信息表.学号=学籍信息表.学号

join班级信息表on班级信息表.班级号=学籍信息表.班级号

where班级信息表.班级名称=@class

groupby学籍信息表.姓名,学籍信息表.学号

orderbyavg(成绩)desc,学籍信息表.学号

 

4.系统模块详细设计

4.1用户登录模块

 

4.2各用户操作模块

4.2.1管理员操作模块(图1)

4.2.2教师操作模块(图2)

4.2.3学生操作模块(图3)

图1

图2图3

5.系统运行与测试

5.1管理员登录

点击“管理员”按钮。

输入正确的ID和密码。

验证成功则可进入管理员管理界面。

管理员ID号和登录密码存在数据库中的管理员信息表。

表中存在的管理员才允许登录。

(1)添加教师信息。

在弹出的输入栏中输入正确的数据,点击“确认添加”。

如果输入重复的信息则会弹出。

如果某项未填则弹出。

输入的数据会分别写进“教师信息表”和“课程信息表”中。

增加的教师信息,允许让更多的教师登录本系统进行管理操作!

(2)修改教师信息

 

如果要修改的教师信息不存在,则

 

(3)删除信息修改

 

输入的教师信息不存在,则

 

(4)查询教师信息

 

5.2教师登录

在登录界面选择“教师”按钮,并输入正确的ID号和密码,即可登录成功!

输入错误则会弹出提示!

ID号输入正确,登录成功!

进入教师管理的操作界面:

 

(1)显示学生信息。

(2)添加学生信息

新添加的信息会保存在学籍信息表中!

如果输入的信息已经存在,则显示

 

如果输入的数据正确,则

 

(3)修改学生信息,输入正确则显示!

 

(4)删除学生信息,

 

(5)录入学生成绩

(6)修改学生成绩

(7)删除学生成绩

 

(8)查询学生成绩

 

(9)所有成绩排名

 

(10)单科成绩排名

 

(11)更改登录密码

修改成功后即可用新的密码进行登录!

5.3学生登录

输入正确的ID号和密码,即可正常登录!

(1)显示学生信息

(2)查询个人成绩

(3)单科成绩排名

(4)全班成绩排名

 

(5)修改密码

 

修改密码后会更新学生学籍表里面的登录密码,下次就可以用新密码登录。

点击

后,就可以安全退出学生管理系统了!

 

6.课程设计总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.本次课程设计虽然很辛苦,实在是受益匪浅。

本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。

理论和实践的相结合是学习最有效的方法。

在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

 

7.附录(代码)

由于篇幅有限,所以只附上主要功能的代码:

登陆界面与主功能界面:

publicclassLoginextendsJFrameimplementsActionListener{

JFramemm=newJFrame("您好!

请您先登录!

");

JTextFieldt2=newJTextField(null,15);

JTextFieldt4=newJPasswordField(null,15);

publicStringzh=null;

JRadioButtonb=newJRadioButton("教师");

JRadioButtonb1=newJRadioButton("学生");

JRadioButtonb2=newJRadioButton("管理员");

publicvoidjiemian(){

mm.setSize(300,340);

mm.setVisible(true);

mm.setLocation(200,300);

mm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabelt1=newJLabel("ID号:

");

JLabelt3=newJLabel("密码:

");

JButtondenglu2=newJButton("登录");

denglu2.setContentAreaFilled(false);

Containern=mm.getContentPane();

n.setLayout(null);

t1.setBounds(42,125,75,35);

t2.setBounds(80,125,150,35);

t3.setBounds(40,180,75,35);

t4.setBounds(80,180,150,35);

denglu2.setBounds(102,245,70,30);

n.add(t1);n.add(t2);n.add(t3);n.add(t4);n.add(denglu2);

b.setBounds(130,85,70,30);

b1.setBounds(70,85,70,30);

b2.setBounds(190,85,70,30);

ButtonGrouprg=newButtonGroup();

b.setSelected(false);

b1.setSelected(true);

b1.setSelected(false);

n.add(b);n.add(b2);rg.add(b2);rg.add(b);n.add(b1);rg.add(b1);

b.setContentAreaFilled(false);

b1.setContentAreaFilled(false);

b2.setContentAreaFilled(false);

denglu2.addActionListener(this);

}

publicvoidactionPerformed(ActionEvente){

JButtondenglu2=(JButton)e.getSource();

if(b.isSelected()){

zh=t2.getText();

Stringmima=t4.getText();

try{

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

Connectionc=DriverManager.getConnection("jdbc:

odbc:

学生信息系统");

Statements=c.createStatement(

ResultSet.TYPE_SCROLL_SENSITIVE,

ResultSet.CONCUR_UPDATABLE);

ResultSetr=s.executeQuery("select*from教师信息表where教师ID='"+zh+"'and登录密码='"+mima+"'");

r.last();

if(r.getRow()==1)

{mm.setVisible(false);

r.beforeFirst();

while(r.next()){

JOptionPane.showMessageDialog(null,r.getString("教师姓名")+"老师!

您好!

欢迎登录教师管理系统!

");}

JFramemmm=newJFrame();

mmm.setSize(400,420);

mmm.setVisible(true);

mmm.setLocation(200,300);

mmm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabelaaa=newJLabel("学生信息管理:

");JLabelaaa1=newJLabel("学生成绩管理:

");

JButtonb1=newJButton("显示学生信息");b1.setBounds(40,45,140,30);

JButtonb2=newJButton("添加学生信息");b2.setBounds(200,45,140,30);

JButtonb3=newJButton("修改学生信息");b3.setBounds(40,90,140,30);

JButtonb4=newJButton("删除学生信息");b4.setBounds(200,90,140,30);

JButtonb5=newJButton("录入学生成绩");b5.setBounds(40,170,140,30);

JButtonb6=newJButton("修改学生成绩");b6.setBounds(200,170,140,30);

JButtonb7=newJButton("删除学生成绩");b7.setBounds(40,215,140,30);

JButtonb8=newJButton("查询学生成绩");b8.setBounds(200,215,140,30);

JButtonb9=newJButton("所有成绩排名");b9.setBounds(40,260,140,30);

JButtonb12=newJButton("单科成绩排名");b12.setBounds(200,260,140,30);

JButtonb10=newJButton("退出系统");b10.setBounds(60,325,100,30);

JButtonb11=newJButton("修改密码");b11.setBounds(220,325,100,30);

aaa.setBounds(15,15,90,30);aaa1.setBounds(15,140,90,30);

Containern=mmm.getContentPane();

n.setLayout(null);

J_ActionListener1a1=newJ_ActionListener1();

J_ActionListener2a2=newJ_ActionListener2();

J_ActionListener3a3=newJ_ActionListener3();

J_ActionListener4a4=newJ_ActionListener4();

J_ActionListener5a5=newJ_ActionListener5();

J_ActionListener7a7=newJ_ActionListener7();

J_ActionListener8a8=newJ_ActionListener8();

J_ActionListener9a9=newJ_ActionListener9();

J_ActionListener10a10=newJ_ActionListener10();

J_ActionListener12a12=newJ_ActionListener12();

J_ActionListener11a11=newJ_ActionListener11();

n.add(b1);n.add(b2);n.add(b3);n.add(b4);n.add(b5);n.add(b6);

n.add(b7);n.add(b8);n.add(b9);n.add(b10);n.add(aaa);n.add(aaa1);

n.add(b11);n.add(b12);b1.addActionListener(a1);b2.addActionListener(a2);

b3.addActionListener(a3);b4.addActionListener(a4);b5.addActionListener(a5);

b6.addActionListener(a7);b7.addActionListener(a8);b8.addActionListener(a9);

b9.addActionListener(a10);b11.addActionListener(a1)b12.addActionListener(a12);

b10.addActionListener(newActionListener()

{publicvoidactionPerformed(finalActionEvente)

{System.exit(0);}

});

((JComponent)mmm.getContentPane()).setOpaque(false);

.URLurl=Sql.class.getResource

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

当前位置:首页 > PPT模板 > 中国风

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

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