资源描述
《数据库系统原理》
课程设计汇报
学生成绩管理系统
设计组员
所在专业
所在班级
指导老师
提交时间
目 录
卷首语:读书笔记 4
1、课程设计目标 6
2、课题组组员设计任务 7
3、学生信息管理系统概述 8
4、系统需求分析 10
5、数据库设计 12
6、系统模块具体设计 17
7、课程设计设计总结 21
8、程序源代码 22
参考文件 50
学生信息管理系统
班级: 制作组员:
指导老师:
卷首语:
I、 读书笔记
相关网上花店管理系统读书笔记:
在网上购物逐步平民化今天,网上购物人数不停增加,现代IT技术和互联网结合。给了市场发明了无限商机!我阅读了一片“网上花店管理系统”论文。该论文关键研究网上花店管理系统。该系统以MySQL作为后台数据库,JSP作为前台开发工具,经过Java中JDBC连接数据库。提供给用户网上浏览,购置,支付等功效,同时.管理员对能够该系统进行维护和管理!
SQL Server安全可靠,性能好,易用性强,JSPWeb利用跨平台,系统底层采取Java开发。Java语言简单,面向对象,安全性高特点,利用Serlvet模式和Tomcat服务器。这几点综合搭配使得该系统灵活方便易用,简化了动态网站开发。
网上花店管理系统实现了用户注册,网上订购支付,留言,购物车,鲜花资料管理和用户管理,订单管理等功效。SQl数据库实现了用户注册登记信息存放,和网站资料维护,更新等使得数据管理愈加便利,高效…JSP则为用户提升动态图形界面,简化了操作,提升了易用性。 论文还具体介绍了系统逻辑结构设计,逻辑图,总功效设计,和数据库设计等。该系统即使是不懂web技术人也能够熟悉利用。
开发工具和数据库工含有很多,各有各优势。在互联网大行其道时代,电脑技术顺应着时代发展,只有我们把握利用好各类技术,相互结合和利用,才能制作出愈加好软件和程序。
在现在信息化高速发展时代,信息只有快,准,精才能发挥其价值。所以机器替换人力是肯定历史发展趋势,人工操作必将被计算机替换。计算机在我们日常生活中使用越来越不可或缺,计算机进行信息管理,不仅提升了工作效率,而且大大提升了其安全性.尤其对于复杂信息管理,计算机能够充足发挥它优越性.
数据库技术,已经成为优异信息技术关键组成部分,是现代计算机信息系统和计算机应用系统基础和关键。数据库技术从诞生到现在,在不到半个世纪时间里,形成了坚实理论基础、成熟商业产品和广泛应用领域,吸引越来越多研究者加入。数据库诞生和发展给计算机信息管理带来了一场巨大革命。三十多年来,中国外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活基础设施。同时,伴随应用扩展和深入,数据库数量和规模越来越大,数据库研究领域也已经大大地拓广和深化了。计算机技术不停应用到各行各业,大量企业数据存放于数据库中,并经过数据库进行快速查询,获取比传统方法更高效率。而学生成绩交由数据库进行保留、管理,则是一个教育单位不可缺乏部分,它内容对于学校决议者和管理者来说全部至关关键。
1、 课程设计目标
(1) 加深对数据库系统、软件工程、程序设计语言理论知识了解和应用水平;
(2) 在理论和试验教学基础上深入巩固已学基础理论及应用知识并加以综合提升;
(3) 学会将知识应用于实际方法,提升分析和处理问题能力,增强动手能力;
(4) 为毕业设计和以后工作打下必需基础。
(5)了解和掌握该课程中相关基础概念,程序设计思想和方法。
(6)培养综合利用所学知识独立完成课题能力。
(7)培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应含有素质。
(8)掌握从资料文件、科学试验中取得悉识能力,提升学生从她人经验中找四处理问题新路径悟性,初步培养工程意识和创新能力。
2、课题组组员设计任务
课题由三人共同协作完成,系统组成和功效关键包含:
2.1 系统组成 :
数据表组成:成绩表
查询组成:查询学生、查询成绩
菜单组成:主菜单由查询、删除、添加组成
2.2系统功效 :
本系统关键功效分别经过主菜单中以下各项来实现:
· 经过系统维护菜单实现学生成绩查询、删除、添加等模块功效
· 经过学生成绩管理菜单实现对学生成绩录入、查询学生成绩、删除学生成绩
· 经过基础数据管理菜单实现对姓名、学号、课程设置,录入学生统计,查询学生统计和退出系统;
3、学生信息管理系统概述
3.1 研究背景
90年代中期,因为Internet 快速普及,使Intranet成为Internet技术在企业管理信息系统中应用和延伸,形成了集计算机,计算机网络、数据库、分布式计算等于一体信息技术综合体,它打破了时间和地域界限,使信息交流变得快捷、正确,为建立现代企业管理信息系统提供了充足条件。企业信息管理系统在此基础上延伸、扩展,使之上下、内外全方面贯通。伴随Internet技术兴起,对C/S结构一个改变或改善结构。在这种结构下,用户界面完全经过WWW浏览器实现,一部分事务逻辑在前端实现,不过关键事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构,关键是利用了不停成熟WWW浏览器技术,结合浏览器多个Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现强大功效,并节省了开发成本,是一个全新软件系统结构技术。伴随Windows 98/Windows 将浏览器技术植入操作系统内部,这种结构更成为当今应用软件首选体系结构。显然B/S结构应用程序相对于传统C/S结构应用程序将是巨大进步。
学生信息管理系统是学校管理关键工具,是学校不可或缺部分。 伴随在校大学生人数不停增加,教务系统数量也不停上涨,。学校工作繁杂、资料众多,人工管理信息难度也越来越大,显然是不能满足实际需要,效率也是很低。而且这种传统方法存在着很多弊端,如:保密性差、查询不便、效率低,极难维护和更新等。然而,本系统针对以上缺点能够极大地提升学生信息管理效率,也是科学化、正规化管理,和世界接轨关键条件。所以怎样自动高效地管理信息是这些年来很多人所研究。
3.2 开发意义
伴随这些年电脑计算机速度质提升,成本下降,IT互联网大众趋势发展。我们使用电脑高效率才处理数据信息成为可能。 学生学籍管理系统出现,正是管理人员和信息数据,计算机进入互动时代表现。友好人机交互模式,清楚简明图形界面,高效安全操作使得我们对成千上万信息管理得心应手。经过这个系统,能够做到信息规范管理,科学统计和快速查询,从而降低管理方面工作量。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提升学校教学质量和办学水平有着显著意义。
在现在信息化高速发展时代,信息只有快,准,精才能发挥其价值。所以机器替换人力是肯定历史发展趋势,人工操作必将被计算机替换。计算机在我们日常生活中使用越来越不可或缺,计算机进行信息管理,不仅提升了工作效率,而且大大提升了其安全性.尤其对于复杂信息管理,计算机能够充足发挥它优越性.
数据库技术,已经成为优异信息技术关键组成部分,是现代计算机信息系统和计算机应用系统基础和关键。数据库技术从诞生到现在,在不到半个世纪时间里,形成了坚实理论基础、成熟商业产品和广泛应用领域,吸引越来越多研究者加入。数据库诞生和发展给计算机信息管理带来了一场巨大革命。三十多年来,中国外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活基础设施。同时,伴随应用扩展和深入,数据库数量和规模越来越大,数据库研究领域也已经大大地拓广和深化了。计算机技术不停应用到各行各业,大量企业数据存放于数据库中,并经过数据库进行快速查询,获取比传统方法更高效率。而学生成绩交由数据库进行保留、管理,则是一个教育单位不可缺乏部分,它内容对于学校决议者和管理者来说全部至关关键。
4、系统需求分析
4.1 开发环境和软件
(1) 操作系统:Windows 7
(2) 数据库软件:MySQL
(3) Java开发工具:Eclipse
4.2 系统设计和功效分析
学生信息管理系统,可用于学校等机构学生信息管理,查询,更新和维护,使用方便,易用性强,图形界面清楚明了。该软件用java语言编写,用MySQL数据库作为后台数据库进行信息存放,用SQL语句完成学生学籍信息添加,查询,删除操作和成绩录入,查询,删除等。用ODBC驱动实现前台Java和后台SQL数据库连接。Java语言跨平台性强,能够在windows,linux,ubuntu等系统下使用,方便简单,安全性好。MySQL数据库高效安全,二者结合可相互利用各自优势。
学生成绩管理系统设计目标分析
(1)管理员能够实现对整个学生信息添加,修改,删除,查询等操作,对老师用户添加,删除,修改等操作,对留言信息添加,删除,修改查询等操作.
(2),能够将学生成绩数据库公布到网上,老师信息公布网上,方便学生老师进行查询,达成资源共享目标.
(3)老师能够在一定权限内对全部学生成绩查询,全部老师信息查询,留言信息添加,删除,修改是,查看等,正确自己联络信息进行更新,登录密码修改.
(4)学生能够在自己权限内对对自己成绩查询,和个人信息查询,登录密码修改,留言查看,提交留言信息相关操作.
学生成绩管理系统功效需求分析
学生成绩管理系统关键提供成绩查询,方便管理网上信息查阅平台, ,查看留言,提交留言.老师能够经过成绩管理系统查阅学生成绩信息,老师信息,查看老师留言,学生留言,提交留言,留言管理等相关操作.系统管理员能够学生能够经过该系统查阅和自己相关信息实现以上全部功效,还有对学生添加,删除,修改,老师添加,删除,修改,数据库备份,数据库还原等相关操作.
系统功效分析
学生成绩管理系统是用MySQl数据库+SQL查询语言编句,系统是基于网络在线学生成绩管理系统,在系统中分为大二个方面:一是老师登录页面,二是学生登录页面.
(1)系统管理员进入学生成绩管理系统关键功效是:实现老师添加,老师修改,老师删除,老师查询,数据库恢复,数据库备份,学生添加,学生修改,学生查询,学生成绩录入,学生成绩添加,学生成绩修改,学生成绩删除,留言查询,留言提交,留言删除,留言修改等基础功效.
(2)老师进入学生成绩管理系统关键功效是:实现学生查询,学生成绩查询,留言删除,留言查询,留言查询,密码修改,老师查询,老师登陆密码更改,老师个人信息修改等基础功效.
(3)学生进行学生成绩管量系统关键功效是:实现学生自己怕成绩查询,自己登录密码修改,个人信息查询,留言查看,提交留言基础功效.
本系统实现大致功效:
1. 管理员登陆界面。本系统设计经过管理员身份登录获取操作界面和功效权限。管理员账号和密码输入正确即可登录。学生管理界面。提供了学生成绩信息查询,相关科目标成绩查询,添加,删除等功效。管理员拥有最高权限。
2. 操作界面。提供了对学生学籍信息查询,添加,,删除;学生成绩录入,修改,查询等功效。
5、 数据库设计
5.1 系统概念结构设计
系统登录界面
管理员登录
查询成绩
添加信息
删除信息
输入学号
显示:ID、学号、姓名、出生、各科成绩
输入学号
删除:ID、学号、姓名、出生、各科成绩
输入学号
添加:ID、学号、姓名、出生、各科成绩
5.2 系统逻辑结构设计
管理员信息表:
字段名
类型
空值
约束条件
管理员账号
varchar(8)
not null
主键
登录密码
varchar(8)
not null
成绩信息表:
字段名
类型
空值
约束条件
ID
int
学号
int
主键
姓名
varchar(8)
not null
出生
varchar(8)
not null
数学成绩
int
英语成绩
int
5.3 数据库实现
创建数据库:
Create database 翰林学院学生成绩管理系统;
创建成绩表:
create table 成绩表(
ID int,
number int primary key,
name varchar(8),
birthday varchar(8),
math int,
english int
)
向数据库中添加信息:
insert into 成绩表(ID,number,name,birthday,math,english)
values('1','11','刘产','19210306','90','59')
insert into 成绩表(ID,number,name,birthday,math,english)
values('2','12','范剑','1902','58','85')
insert into 成绩表(ID,number,name,birthday,math,english)
values('3','13','夏建仁','1906','90','99')
insert into 成绩表(ID,number,name,birthday,math,english)
values('4','14','史珍香','1907','83','75')
insert into 成绩表(ID,number,name,birthday,math,english)
values('5','15','范统','19210518','80','97')
insert into 成绩表(ID,number,name,birthday,math,english)
values('6','16','秦寿生','19220806','52','55')
insert into 成绩表(ID,number,name,birthday,math,english)
values('7','17','杜子腾','19190404','81','88')
insert into 成绩表(ID,number,name,birthday,math,english)
values('8','18','楚中天','19210306','46','77')
显示存放数据:
Select * from 成绩表;
6、系统模块具体设计
6.1 登录模块
6.2 管理员操作模块
6.2.1 查询成绩
6.2.2 添加信息
6.2.3 删除信息
7、课程设计总结
一周多课程设计,最终成功验收了,即使有些疲惫,但还是有很多收获,我又一次巩固了所学到知识,之前学习只是停留在理论基础上,现在自己动手操作试验后,才是真正了解及体会。数据库也学了近四个月,有很多知识全部是似懂非懂,经过平时上机操作,自己也了解了部分,但让我有了更深了解和愈加好认识,则是在这次课设上,之前迷惑也经过这次课设处理了部分,即使还是不能够全方面了解,不过有进步就很快乐。
在课程设计之前,因为有了综合试验经验和教训,明白了写代码这一步是很关键,因为当你把代码输进去以后,并编译让其运行,发觉经过不了,再来检验出问题,是很费费力事情,所以分析和计划代码是很关键,最关键是要把逻辑结构写好,这么就不会出现大问题,写代码就要先找出关键内容,用多个方法来实现关键部分,这么能够尽可能避免发觉逻辑或编译不支持错误。
经过此次论文设计,我初步学会了论文设计基础方法,学会了怎样去借鉴她人方法和经验,知道了怎样整合资料和处理这些资料能力,这位以后做毕设论文打下了基础,使我感觉比很好是有一个成功喜悦,即使在编译时候会常常因为部分小错误而心烦意乱,不过也不失为一件好事,失败越多积累经验越丰富,对人考验也比较多,那么在最终编译成功时喜悦就越浓烈,也是自己能力有了深入提升。因为知识和经验不足,这个程序编写不是很尽如人意,不过融合了自己心血,就认为是最好,所以在以后还是需要较多努力,还是会在以后学习过程中不停地提升和改善。
8、程序源代码
主窗口源程序设计:
//zhuchuangkou.java
package com.test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class Zhuchuangkou extends Frame implements ActionListener{
Button button1,tuichu;
Panel p1,p2,p3;
Label l1,l2,l3;
TextField a1,a2;
Box b1,b2,b3,b4,b5;
Chaxun s;
public static void main(String[] args) {
Zhuchuangkou test1=new Zhuchuangkou();
}
public Zhuchuangkou(){
button1=new Button("登陆");
tuichu=new Button("退出");
p1=new Panel();
p2=new Panel();
p3=new Panel();
l1=new Label("翰林学院学生成绩管理系统",Label.CENTER);
l1.setFont(new Font("宋体",Font.BOLD,60));
l1.setBackground(Color.green);
l2=new Label("管理员登录");
l3=new Label("登录密码");
a1=new TextField(10);
a2=new TextField(10);
a2.setEchoChar('*');
b1=Box.createVerticalBox();
b1.add(l2);
b1.add(Box.createVerticalStrut(8));
b1.add(l3);
b2=Box.createVerticalBox();
b2.add(a1);
b2.add(Box.createVerticalStrut(8));
b2.add(a2);
b4=Box.createHorizontalBox();
b4.add(button1);
b4.add(Box.createHorizontalStrut(10));
b4.add(tuichu);
b3=Box.createHorizontalBox();
b3.add(b1);
b3.add(Box.createHorizontalStrut(10));
b3.add(b2);
b5=Box.createVerticalBox();
b5.add(b3);
b5.add(Box.createVerticalStrut(8));
b5.add(b4);
button1.addActionListener(this);
p1.add(l1);
p2.add(b5);
add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.CENTER);
add(p3,BorderLayout.PAGE_END);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
}
});
setBackground(Color.blue);
setBounds(10, 10, 1000, 500);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==tuichu){
System.exit(0);
}
if(e.getSource()==button1){
if(a1.getText().equals("旷华勇")&&a2.getText().equals("111")||a1.getText().equals("刘佳宇")&&a2.getText().equals("111")||a1.getText().equals("刘丹丹")&&a2.getText().equals("111")){
new Chuangkou();
System.out.println("请选择操作");
dispose();
}
else{
System.out.print("输入错误");
}
}
}
}
窗口模块程序设计:
//chuangkou.java
package com.test;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
public class Zhuchuangkou extends Frame implements ActionListener{
Button button1,tuichu;
Panel p1,p2,p3;
Label l1,l2,l3;
TextField a1,a2;
Box b1,b2,b3,b4,b5;
Chaxun s;
public static void main(String[] args) {
Zhuchuangkou test1=new Zhuchuangkou();
}
public Zhuchuangkou(){
button1=new Button("登陆");
tuichu=new Button("退出");
p1=new Panel();
p2=new Panel();
p3=new Panel();
l1=new Label("翰林学院学生成绩管理系统",Label.CENTER);
l1.setFont(new Font("宋体",Font.BOLD,60));
l1.setBackground(Color.green);
l2=new Label("管理员登录");
l3=new Label("登录密码");
a1=new TextField(10);
a2=new TextField(10);
a2.setEchoChar('*');
b1=Box.createVerticalBox();
b1.add(l2);
b1.add(Box.createVerticalStrut(8));
b1.add(l3);
b2=Box.createVerticalBox();
b2.add(a1);
b2.add(Box.createVerticalStrut(8));
b2.add(a2);
b4=Box.createHorizontalBox();
b4.add(button1);
b4.add(Box.createHorizontalStrut(10));
b4.add(tuichu);
b3=Box.createHorizontalBox();
b3.add(b1);
b3.add(Box.createHorizontalStrut(10));
b3.add(b2);
b5=Box.createVerticalBox();
b5.add(b3);
b5.add(Box.createVerticalStrut(8));
b5.add(b4);
button1.addActionListener(this);
p1.add(l1);
p2.add(b5);
add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.CENTER);
add(p3,BorderLayout.PAGE_END);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
dispose();
}
});
setBackground(Color.blue);
setBounds(10, 10, 1000, 500);
setVisible(true);
validate();
}
public void actionPerformed(ActionEvent e){
if(e.getSource()==tuichu){
System.exit(0);
}
if(e.getSource()==button1){
if(a1.getText().equals("旷华勇")&&a2.getText().equals("111")||a1.getText().equals("刘佳宇")&&a2.getText().equals("111")||a1.getText().equals("刘丹丹")&&a2.getText().equals("111")){
new Chuangkou();
System.out.println("请选择操作");
dispose();
}
else{
System.out.print("输入错误");
}
}
}
}
查找模块程序设计:
//chazhao.java
package com.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Vector;
import javax.swing.table.*;
public class Chazhao extends AbstractTableModel{
Vector rowData,columnNames;
PreparedStatement ps=null;
Connection ct=null;
ResultSet rs=null;
public void init(String sql)
{
if(sql.equals(""))
{
sql="select * from 成绩表";
}
//中间
columnNames=new Vector();
//设置列名
columnNames.add("ID");
columnNames.add("学号");
columnNames.add("姓名");
columnNames.add("出生");
columnNames.add("数学");
columnNames.add("英语");
rowData=new Vector();
try {
Class.forName( "org.gjt.mm.mysql.Driver" );
ct=DriverManager.getConnection( "jdbc:mysql://127.0.0.1:3306/翰林学院学生成绩管理系统","root","111111");
ps=ct.prepareStatement(sql);
rs=ps.executeQuery();
while(rs.next())
{
Vector hang=new Vector();
hang.add(rs.getInt(1));
hang.add(rs.getString(2));
hang.add(rs.getString(3));
hang.add(rs.getString(4));
hang.add(rs.getInt(5));
hang.add(rs.getString(6));
//加入rowdata
rowData.add(hang);
}
}catch (Exception e) {
e.printStackTrace();
}finally{
//关闭
try {
if(rs!=null) rs.close();
if(ps!=null) ps.close();
if(ct!=null) ct.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
public Chazhao(String sql)
{
this.init(sql);
}
public Chazhao()
{
this.init("");
}
public int getColumnCount() {
return this.columnNames.size();
}
public int getRowCount() {
return this.rowData.size();
}
public Object getValueAt(int row, int column) {
return ((Vector)this.rowData.get(row)).get(column);
}
@Override
public String getColumnName(int arg0) {
return (String) this.columnNames.get(arg0);
}
}
查询模块程序设计:
//chaxun.java
package com.test;
import javax.swing.*;
import javax.swing.table.AbstractTableModel;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class Chaxun extends JFrame implements ActionListener{
JPanel jp1;
JLabel jl1;
JButton jb1,jb2,jb3,jb4;
JTable jt;
JScrollPane jsp;
JTextField jtf;
public static void main(String[] args) {
Chaxun test=new Chaxun();
}
public Chaxun()
{
jp1=new JPanel();
jtf=new JTextField(10);
jb1=new JButton("查询");
jb1.addActionListener(this);
jl1=new JLabel("请输入学号");
jp1.add(jl1);
jp1.add(jtf);
jp1.add(jb1);
Chazhao cz=new Chazhao();
jt=new JTable(cz);
展开阅读全文