15161数据库原理与应用课程设计任务书.docx

上传人:b****7 文档编号:23393139 上传时间:2023-05-16 格式:DOCX 页数:26 大小:971.33KB
下载 相关 举报
15161数据库原理与应用课程设计任务书.docx_第1页
第1页 / 共26页
15161数据库原理与应用课程设计任务书.docx_第2页
第2页 / 共26页
15161数据库原理与应用课程设计任务书.docx_第3页
第3页 / 共26页
15161数据库原理与应用课程设计任务书.docx_第4页
第4页 / 共26页
15161数据库原理与应用课程设计任务书.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

15161数据库原理与应用课程设计任务书.docx

《15161数据库原理与应用课程设计任务书.docx》由会员分享,可在线阅读,更多相关《15161数据库原理与应用课程设计任务书.docx(26页珍藏版)》请在冰豆网上搜索。

15161数据库原理与应用课程设计任务书.docx

15161数据库原理与应用课程设计任务书

郑州轻工业学院

课程设计任务书

题目:

JavaEE/MySQL学生成绩管理系统

姓名:

时玉莹

院(系):

数学与信息科学学院

专业班级:

信科13-1班

学号:

541310010133

指导教师:

时海亮,裴云霞

时间:

2016年1月11日至2016年1月17日

一、基本要求及主要内容

课程设计基本要求如下:

(1)每个同学从下面题目中任选一个作为课程设计的题目,调查分析一个具体的或模拟的实例,完成课程设计报告;

(2)需求分析,描述所选实例的业务内容和信息管理系统的需求;

(3)概念设计,画出E-R图,指出实体、联系,及相应的属性;

(4)逻辑结构设计,将E-R图转换成关系模式;

(5)物理结构设计,用MySQL创建数据库和创建相应的表;

(6)根据题目的要求写出查询、存储过程、触发器等(可选项)。

(7)利用之前学习过的C、C++或Java等程序设计语言开发相应的信息管理系统(对于题目1~6,开发控制台应用程序即可)。

(8)信息管理系统的运行与测试。

课程设计可选题目如下:

1.学生成绩分析系统

(1)基本要求。

a)通过键盘输入各学生的多门课程的成绩,创建并保存为相应的数据库文件。

b)对数据库文件中的数据进行处理,要求具有如下功能:

按各门课程成绩排序;计算每个人的平均成绩,按平均成绩排序;求出各门课程的平均成绩、最高分、最低分、不及格人数、60~69分人数、70~79分人数、80~89分人数、90分以上人数;根据姓名或学号查询某人的各门课成绩。

c)任选一种程序设计语言开发该系统,界面美观。

(2)测试数据,如下表所示。

表1测试数据

学号

姓名

数学

英语

计算机

01

王芳

78

77

90

02

张强

89

67

88

03

李浩

56

66

78

04

黄鹏

89

86

85

05

尚校

67

88

76

06

赵鹏

45

54

67

07

蒋泽

78

76

70

2.班级管理系统

可对班级进行添加、删除、修改、查找和报表输出等功能,班级属性有:

名称、班主任、当前学生人数、建班日期和备注等属性。

3.学生管理系统

可对学生进行添加、删除、修改、查找和报表输出等功能,学生属性有:

学号、姓名、性别、所属班级、相片、出生日期和备注等属性。

4.课程管理系统

可对每一个班级的上课科目进行添加、删除、修改、查找和报表输出等功能,课程属性有:

所属班级、授课老师、开课日期、结课日期和备注等属性。

5.成绩管理系统

可对每一个班级的上课科目的学生成绩进行添加、删除、修改、查找和报表输出等功能,成绩属性有:

学生姓名、所属班级、课程名、成绩、备注等属性。

6.通讯录管理系统

通讯录管理系统一般包括通讯者结点信息的插入、查询、删除、更新以及通讯录信息的输出等功能。

通讯者的信息一般包括编号、姓名、性别、电话以及地址等。

7.PHP/MySQL学生成绩管理系统

基于PHP脚本语言实现的学生成绩管理系统,后台数据库是用MySQL。

本系统的功能包括学生信息的输入、学生信息查询、成绩信息录入、学生成绩查询等功能。

8.JavaEE/MySQL学生成绩管理系统

运用JavaEE等对学生信息实现增删改查等功能。

9.VC/MySQL学生成绩管理系统

利用MFC、ADO等技术实现学生成绩管理系统的GUI程序的开发。

二、主要参考文献

[1]郑阿奇,MySQL实用教程(第二版),北京:

电子工业出版社,2014年.

完成期限:

2016年1月17日

指导教师签名:

时海亮,裴云霞

课程负责人签名:

时海亮

2016年9月15日

摘要

现在随着学校的学生人数越来越多、科目越来越多、校区分散等情况,学校的教务处管理学生成绩的任务越来越重。

科学技术的不断发展,使得计算机科学技术进入人们的日常生活并不断发挥重要作用。

作为计算机应用的一部分,借助计算机来管理成绩具有手工管理成绩无可比拟的优点。

运用软件进行管理成绩,可以大大提高工作效率,节省开支。

学生成绩管理系统检索迅速、查找方便、可靠性高、存储量大、保密性强、寿命长、成本低。

使用软件管理学生的信息和成绩已经成为一种必然。

本项目是基于Javaweb设计的javaEE+Mysql实现的学生成绩管理系统,运用了JDBC技术连接了数据库、JavaWeb技术设计网页界面等,该系统提供了对学生信息、成绩、课程的信息进行录入、查询、删除、更改等功能。

系统功能齐全,基本满足了学校的需求。

 

关键词:

学生信息成绩管理,MYSQL,JavaEE

目录

课程设计任务书1

一、基本要求及主要内容2

1.学生成绩分析2

2.班级管理3

3.学生管理3

4.课程管理3

5.成绩管理4

6.通讯录管理系统4

7.PHP/MySQL学生成绩管理系统4

8.JavaEE/MySQL学生成绩管理系统4

9.VC/MySQL学生成绩管理系统4

二、主要参考文献5

摘要6

目录7

1需求分析8

2概念结构设计9

3逻辑结构设计10

4物理结构设计11

5编码12

6系统测试与维护13

7总结与展望14

8参考文献15

1需求分析

1.系统需求

成绩管理成为学校教学管理中十分重要又相当复杂的管理工作之一,单纯的采用传统的手工处理已经不符合教育和管理的要求,而计算机具有运算速度快,处理能力强等特点,很自然地进入到这一应用领域中。

因此为了保证学校的信息流畅,工作高效,有必要设计一个学生成绩管理系统。

这不但能使教务人员从复杂的成绩管理中解脱出来,而且对于推动教学的发展也起到非常重要的作用。

学校学生成绩管理工作都是采用传统的手工管理,这各传统人工的管理方式存在着许多缺点,如:

效率低,保密性差,一方面导致教师,学生成绩情况不了解,教师对成绩管理工作倍感头痛,因为时间一长,将产生大量的文件和数据,这对于查找,更新和维护都带来了不少的困难,耗费大量劳动力,难于避免错误的产生。

需求的收集及分析:

学生成绩管理系统应该完成以下三个方面的内容:

学生信息的管理、学生成绩的管理、课程信息的管理,每个内容均需要提供添加、修改和查询的功能。

2.功能需求

管理员可以添加、修改和查询学生的信息,同时可以添加、修改和查询学生的成绩记录,添加、删去、查询、修改课程信息,有对学生成绩信息开放度的管理权;

学生可以查看课程信息、个人信息、成绩。

3.数据需求

所需的基本数据如下所示:

(1)学生信息

包括:

学号、学生姓名、性别、出生日期、班级、照片等。

(2)课程信息

包括:

课程编号、课程名称、开课日期、学时、学分等。

(3)成绩信息

包括:

课程号、学号、成绩等。

4.性能需求

通过分析,系统性能需求如下:

 

1. 系统的高速性、稳定性、安全性。

 

2. 系统的体系结构能够方便添加功能模块,适应业务、办公的发展。

 

3. 系统人机界面友好,易学易用。

 

4. 系统维护成本较低。

功能描述图如下图1.1所示:

图1.1学生成绩管理系统功能描述图

2概念结构设计

根据需求分析,我们可以得出需要规划的实体有:

学生实体,课程实体,成绩实体。

实体具有的E-R图如下图3.1-3.4所示:

1.学生实体

图2.1学生实体图

2.课程实体

图2.2课程实体图

3.成绩实体

图2.3成绩实体图

4.学生成绩管理系统E-R图

图3.4学生成绩管理E-R图

3逻辑结构设计

学生信息管理系统一共采用了3张表,分别为学生信息表(student_mes),课程信息表(kc_mes),学生成绩表(student_score)。

如下图3.1-3.3所示:

表3.1学生信息表(student_mes)

字段名

字段类型

是否为空

长度

说明

xh

characters

6

学号

xm

vailblechar

10

姓名

zym

vailblechar

10

专业名

xb

Byte

1

性别

cssj

Date

出生日期

zxf

Integer

总学分

zp

Byte

照片

bz

vailblechar

30

备注

表3.2课程信息表(kc_mes)

字段名

字段类型

是否为空

长度

说明

kch

vailblechar

10

课程号

kcm

vailblechar

20

课程名

kxxq

Integer

开学日期

xs

Integer

学时

xf

Integer

学分

表3.3学生成绩表(student_score)

字段名

字段类型

是否为空

长度

说明

xh

characters

6

学号

kch

vailblechar

10

课程号

cj

Integer

成绩

4物理结构设计

为了使学生信息管理系统能在更多的计算机系统上稳定的运行,对于已经设计好的数据库要进行部分优化,从而确定合理的存储结构和存取方法。

使得设计出的物理数据库占用较少的存储空间,又能对数据库的操作具有尽可能高的速度。

1.对于学生信息表(student_mes),

xb

Byte

1

性别

其中的性别设置默认为男

(1),对性别建立索引从而使得运行速度更快。

学号按照升序进行排列,建立索引。

2.对于课程信息表(kc_mes),可以对日期建立索引,根据日期、学期的不同,从而加快查询速度。

3.确定数据库的存取方法,就是确定建立哪些存储路径以实现快速存取数据库中的数据。

现行的DBMS一般都提供了多种存取方法,如索引法、HASH法等。

其中,最常用的是索引法。

4.在主关键字上建立索引。

5.  在经常用于连接的列上建立索引,即在外键上建立索引。

6. 在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的。

7.  在经常需要排序的列上建立索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询的时间。

8.  在经常成为查询条件的列上建立索引。

也就是说,在经常使用在WHERE子句中的列上面建立索引。

9.同样,对于某些列不应该创建索引。

这时候应该考虑下面的指导原则:

对于那些在查询中很少使用和参考的列不应该创建索引。

因为既然这些列很少使用到,有索引并不能提高查询的速度。

相反,由于增加了索引,反而降低了系统的维护速度和增大了空间需求。

建立数据库以及表的SQL语句如下图4.1所示:

createdatabasexscj;

usexscj;

createtablexs

(xhchar(6)notnull,

xmchar(10)notnull,

zymchar(10)notnull,

xbchar

(1)notnulldefault'1',

cssjdatenotnull,

zxfintegernotnull,

zpblob(100),

bzchar(30),

primarykey(xh)

);

createtablekc

(kchchar(10)notnull,

kcmchar(20)notnull,

kxxqintegernotnull,

xsintegernotnull,

xfintegernotnull,

primarykey(kch)

);

createtablexs_kc

(xhchar(6)notnull,

kchchar(10)notnull,

cjintegernotnull,

primarykey(xh)

);

图4.1SQL语句

5编码

学成成绩录入、添加、查询、删除代码实现,以学生成绩添加为例

1)建立Student的值对象

Student.java

packageorg.vo;

importjava.util.Date;

publicclassStudentimplementsjava.io.Serializable{

privateStringxh;//学号;

privateStringxm;//姓名

privateStringzy;//专业名

privatebytexb;//性别

privateDatecssj;//出生日期

privateintzxf;//总学分

privatebyte[]zp;//照片,字节数组

privateStringbz;//备注

publicStudent(){

}

publicStudent(Stringxm,Stringzy,bytexb,Datecssj,intzxf,byte[]zp,Stringbz){

this.xm=xm;

this.zy=zy;

this.xb=xb;

this.cssj=cssj;

this.zxf=zxf;

this.zp=zp;

this.bz=bz;

}

publicStringgetXh(){//获取学号的值

returnthis.xh;

}

publicvoidsetXh(Stringxh){//给学号赋值

this.xh=xh;

}

publicStringgetXm(){

returnthis.xm;

}

publicvoidsetXm(Stringxm){

this.xm=xm;

}

publicStringgetZy(){

returnthis.zy;

}

publicvoidsetZy(Stringzy){

this.zy=zy;

}

publicbytegetXb(){

returnthis.xb;

}

publicvoidsetXb(bytexb){

this.xb=xb;

}

publicDategetCssj(){

returnthis.cssj;

}

publicvoidsetCssj(Datecssj){

this.cssj=cssj;

}

publicintgetZxf(){

returnthis.zxf;

}

publicvoidsetZxf(intzxf){

this.zxf=zxf;

}

publicbyte[]getZp(){

returnthis.zp;

}

publicvoidsetZp(byte[]zp){

this.zp=zp;

}

publicStringgetBz(){

returnthis.bz;

}

publicvoidsetBz(Stringbz){

this.bz=bz;

}

}

2)建立JSP文件和添加图片

addStudent.jsp

<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%>

<%

Stringpath=request.getContextPath();

StringbasePath=request.getScheme()+":

//"+request.getServerName()+":

"+request.getServerPort()+path+"/";

%>

DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN">

">

MyJSP'addStudent.jsp'startingpage

--

-->

请填写学生信息

textfieldname="student.xh"lable="学号">

textfield>

textfieldname="student.xm"lable="姓名">

textfield>

textfieldname="student.zy"lable="专业名">

textfield>

textfieldname="student.xb"value="1"list="#{1:

'男',0:

'女'}"lable="性别">

textfield>

textfieldname="student.cssj"lable="出生日期">

textfield>

textfieldname="student.zxf"lable="总学分">

textfield>

filename="zpfile"lable="照片">

file>

textareaname="student.bz"lable="备注">

textarea>

3)实现控制器

addStudent.jsp

packageorg.action;

importjava.io.File;

importjava.io.FileInputStream;

importcom.opensymphony.xwork2.ActionContext;

importcom.opensymphony.xwork2.ActionSupport;

importorg.vo.*;

importorg.jdbc.*;

importorg.apache.struts2.ServletActionContext;

importjava.sql.SQLException;

importjava.util.List;

importjava.util.Map;

importjavax.servlet.http.HttpServletResponse;

importjavax.servlet.ServletOutputStream;

publicclassStudentActionextendsActionSupport{

privateStudentstudent;

privateFilezpfile;

publicFilegetZpfile(){

returnzpfile;

}

publicvoidsetZpfile(Filezpfile){

this.zpfile=zpfile;

}

publicStudentgetStudent(){

returnthis.student;

}

publicvoidsetStudent(Studentstudent){

this.student=student;

}

privateListstudentList;

publicStringexecute()throwsException{

StudentJdbcstudentJ=newStudentJdbc();

student.setXh(student.getXh());

student.setXm(student.getXm());

student.setZy(student.getZy());

student.setXb(student.getXb());

student.setCssj(student.getCssj());

student.setZxf(student.getZxf());

if(this.getZpfile()!

=null){

FileInputStreamfis=newFileInputStream(this.getZpfile());

byte[]buffer=newbyte[fis.available()];

fis.read(buffer);

student.setZp(buffer);

}

student.setBz(student.getBz());

studentJ.addStudent(student);

returnSUCCESS;

}

/***查询所有学生*/

publicStringshowAllStudent(){

Studentstudent1=newStudent();

StudentJdbcstudentJ=newStudentJdbc();

try{

studentList=studentJ.showStudent();

}catch(SQLExceptione){

e.printStackTr

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

当前位置:首页 > 工程科技 > 信息与通信

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

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