可乐分享

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 387|回复: 13

JSP+SQL学生考试成绩分析(源代码+论文)

[复制链接]

416

主题

2

回帖

1416

积分

管理员

Rank: 12Rank: 12Rank: 12

积分
1416
发表于 2024-9-12 10:16:39 | 显示全部楼层 |阅读模式
毕业设计说明书


毕 业 设 计 题 目

院(系)专业班级
学   生   姓   名            性别
指   导   教   师              职称

2007年月日









实现语言:JSP挂接数据库:SQLSERVER2000
设计理念
随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。学校在管理、教学、办公各个方面也在悄悄地变化。一个学校的信息化程度体现在将计算器与信息技术应用于教学与管理,以现代化工具代替传统手工作业。无疑,使用信息化管理使教学更先进、办公更高效、管理更科学,信息交流更迅速。
学生成绩分析管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情,故决定选择学生成绩分析管理系统来作为本人的毕业设计,在很短的时间里开发出一套界面友好,功能强大,使用简单的适用于各规模学院的学生成绩分析管理系统。该学生成绩分析管理系统能有效的处理在校学生的成绩管理,具有成绩输入、成绩查询、成绩统计及打印功能。
学生成绩分析管理系统可以实施应用在各中、大、小院校中,适用范围很广,应用性强。随着系统实施的日益成熟,最终会使单机作业为主的教学管理活动提高到这个平台上来,从而实现学校学生成绩信息管理的办公自动化,籍以提高办学效率和质量。使学校充分利用计算机所带来的新技术,为培养人才打下坚实的基础












系统分析
学生成绩分析管理系统的要求是能够管理学生成绩信息,主要涉及到学生的基本信息、成绩信息和学校的授课计划信息的管理。
学生的成绩是需要由人工录入的,因此系统就需要设计一个学生成绩信息录入的窗口来录入期考成绩,并且在这个窗口中放入一个数据窗口来实现录入这方面信息的功能。
系统还要求具有查询期考成绩的功能,因此为了显示查询结果,就要设计一个数据窗口,并将其放在查询期考成绩的窗口中实现查询功能。
由于查询成绩和录入成绩有区别,因此为了更好的实现相应的功能,设计的数据窗口也要不同,分别采用两种风格的数据窗口实现。
系统要求能够录入授课计划和学生基本信息,必须设计录入授课计划窗口和录入学生基本信息窗口来实现相应功能。
由于该系统是学校管理学生成绩信息的系统,因此必须具有一定的保密性,需要特定的人员才可以修改,因此需要设计一个用户登陆的窗口,使具有访问权限的用户才能登录此系统。
系统的主窗口要能够在用户选中相应操作后,调出相应的窗口来使用户在窗口中完成相应的功能。
普通用户要先成为注册用户。
如图



            是                                            否
               




登录验证流程图

主要特点:

    (一)能管理以年级为单位的各次考试档案,几年来的各种考试归并管理,可随时查阅该年级各次考试档案。
    (二)考试科目自由设定,能适应各种考试。
(三)能进行标准分转换、年级各班各科平均分、年级排名、尖子生后进生档案等统计分析工作。
    (四)能进行各种各样的查询,提供各种分数段,各种排名、各种率等等统计结果。
    (五)既满足年级各班的需要,又能满足学校的需要,还能满足学生和家长的需要。
本软件起初在window98据库环境下开发研制成功。目前,该软件已移植到WINDOWSxp、JSP数据库运行通过,并计划于近期内通过Web技术在网上运行发布。
合理的设计数据库
尽量合理地减少数据库数据的冗余,使重复的数据保持在最小限度,这样将不必要的多占用存储空间,减少产生混乱影响的危险,还能提高计算机的运行速度。
作为学生成绩分析管理系统,必须能解决以下方面的问题:能录入信息。所需录入的表有①学生成绩信息表;②学生基本信息表;③授课计划表;④学生补考信息表。
设计出友好的界面
界面的友好与否是用户评价一个软件优劣的重要方面。
因为该系统涉及到学生成绩的真实性,所以该系统要具有一定的保密性和权限控制,首先应设计一个用户的登陆窗口界面,要求只能由特定的人员对该系统进行操作。
此外还应设计登陆后系统的主窗口,要求能够显示学生成绩的基本信息,可以实现数据的录入,更新,删除、查询、统计等功能。
另外窗口界面要多用按钮和快捷键,少用菜单,窗口的各个控键布局要合理,美观。要充分的利用powerbuilder提供的强大的功能,多用窗口和控件,充分体现窗口的多元化格局。

在实际的学生成绩信息管理系统中,班名项的内容是系统事先给出的。课程是学校事先安排好的,学校的数据库中一定有课程的资料,也就是相当于后台的数据库,而对于我们在前台设计应用程序时应该考虑到这一点,因此在设计录入授课计划窗口时,我多采用了下拉列表框和单行编辑框,因为可以从已知的数据项中选择适当的项目来实现该窗口的功能。
由前面列出的设计要求来看,系统要具有删除课程、修改课程、录入课程、浏览课库、返回主菜单等功能。因此,考虑到这些功能的需要,我设置了相应的命令按钮,删除课程、修改课程、浏览课库和返回。对这五个按钮,设计相应的代码使它们能够完成相应的功能。
根据前面设计的数据库中表的数据项,设计了六个下拉列表框(班名、学期(2)、课程名称、课程类别、考试方式),11个单行单行编辑框(课名、课号、学分、学时、每周学时、讲课学时、实验学时、课程设计、面授学时、任课老师、备注)。这样设计的原因是,根据系统检索数据的要求,系统要求我们根据班名,学期等数据项进行检索数据,因此我们把预先给出的班名等信息都存放在下拉表框中,这样便于查询并进行一些修改、删除等操作。
需要说明的是,考试方式一项是根据我国考试记分方式的不同设计的,这样会使系统应用面更广,好的系统应该具有适应面广的特点。
同时设计了2个组框(删除课程、进入/修改课程),18个静态文本框(课号、学分、学时、每周学时等)。这样做的好处是使界面清晰,使用者使用意图明显。

窗口open事件脚本:
string str
integer ch,i
DECLARE banming CURSOR FOR  
  SELECT "banming"."banming"  
    FROM "banming"  ;                        //建立游标建立查询
select count("banming"."banming")into :ch  FROM "banming"  ;
open banming;
for i=1 to ch
        fetch banming into :str;
        ddlb_1.additem(str)
        sle_1.additem(str)        //将班名值赋给ddlb_1和sle_1
end for
close banming;
SELECT "c_kechengku"."keming",   
         "c_kechengku"."xueshi",   
         "c_kechengku"."xuefen",   
         "c_kechengku"."xueqi",   
         "c_kechengku"."kehao",   
         "c_kechengku"."jiangshi",   
         "c_kechengku"."kechengleibie",   
         "c_kechengku"."kaoshifangshi",   
         "c_kechengku"."mianshi",   
         "c_kechengku"."shishi",   
         "c_kechengku"."zhoushi",   
         "c_kechengku"."laoshi",   
         "c_kechengku"."beizhu",   
         "c_kechengku"."kechengsheji"  
    INTO :sle_2.text,   
         :sle_5.text,   
         :sle_4.text,   
         :ddlb_4.text,   
         :sle_3.text,   
         :sle_7.text,   
         :ddlb_5.text,   
         :ddlb_6.text,   
         :sle_10.text,   
         :sle_8.text,   
         :sle_6.text,   
         :sle_11.text,   
         :sle_12.text,   
         :sle_9.text  
    FROM "c_kechengku"  
   WHERE ( "c_kechengku"."banming" = :ddlb_1.text ) AND  
         ( "c_kechengku"."keming" = :ddlb_3.text )   ;
        //以班名和课名为检索条件从c_kechengku中查找相应的学分、学期、课时、任课老师等项附给对应的单行编辑框。
ddlb_2.text=ddlb_4.text
sle_1.text=ddlb_1.text

        录入授课计划按规定班名、课名、考试方式不能为空,这样在保存数据时针对漏输的情况设计了一个提示窗口。
messagebox("注意","班名 、课名、考试方式不允许为空值!")
成绩分析图形显示:






4.5.2.2         创建录入成绩窗口
根据系统要求:按班级、专业等方式录入成绩。特设计了按班级和专业查询的功能,从实际情况出发考虑,把这两种查询方式作成单选按钮,一次只可以以一种方式检索。根据表的数据设计了如上图选项,这都是在设计表的时候就计划了的,设计了什么样的表就决定了要用什么样的查询检索方法。
更进一步,添加了两个下拉列表框(学期、课名),这是从方便特定的查询出发的,设计者应该考虑到用户可能需要什么样的查询方式和数据,因此添加了此项功能。
本窗口还要添加一个数据窗口控件,该控件是前面创建数据窗口时创建的录入成绩数据窗口。
同时,根据系统的要求也设计了五个按钮,分别时录入成绩、修改成绩、删除成绩、打印、返回。
还有五个单行文本框用来显示当前课程的信息,包括课程类型、考试方式、学分、任课老师、总人数。
1)班级下拉框

select事件脚本:
ddlb_4.reset()
string str,xh,xm
int ch3,i,ch
DECLARE keming CURSOR FOR  
  SELECT "c_kechengku"."keming"  
    FROM "c_kechengku"
         where "c_kechengku"."banming"=:ddlb_2.text;
                //建立以班名为条件检索的游标
select count("c_kechengku"."keming")
into :ch3
FROM "c_kechengku"
where "c_kechengku"."banming"=:ddlb_2.text;
open keming;
for i=1 to ch3
        fetch keming into :str;
        ddlb_4.additem(str)
end for
close keming;
chengji_ban[1]=ddlb_2.text
chengji_shu=1
2)班级单选按钮

cliked事件
ddlb_1.enabled=true                //使ddlb_1可选
ddlb_4.enabled=false
ddlb_5.enabled=false
ddlb_6.enabled=false
ddlb_7.enabled=false  //使ddlb_4、ddlb_5、ddlb_6、ddlb_7不可选

4.5.2.3          其它输入数据窗口
见附件。

4.5.3   创建查询窗口
4.5.3.1 创建成绩查询窗口
成绩查询窗口是负责按不同的要求查询成绩的,根据系统的要求设计了此窗口。这个窗口和前面的录入/修改成绩的窗口有些类似,这是因为系统要求的查询依据是一样的,所以才有两个窗口的相似。
此窗口只安排了两个按钮,因此此窗口的要求只是查询,并没有修改的要求,因此只有打印和返回两个按钮。
此窗口中放置了一个数据窗口控件,即查询成绩数据窗口,也是为了显示结果和打印检索数据结果而设计。根据不同的实际需要此窗口中的其它项,比如总人数、院系等项与前面的录入/修改成绩窗口不同,这也是实际系统的功能要求。
此窗口中有2个单选按钮、7个下拉框、4个单行编辑框、11个静态文本框、2个按钮。

1.2.3  实现基本功能和一些特殊功能的操作
该系统要求除了能实现信息的录入,删除,插入,更新,打印等基本功能之外,还要求能够根据用户的需要进行操作。例如要查询学生成绩,要求可以按照专业、班级等多种方式查询。这些功能基本上能满足用户操作的需要,这样用户操作起来就更简单方便。
1.2.4    尽量减少用户的键盘输入
这样可减少用户的工作量,提高用户的工作效率。
功能调查
(1)基本功能的调查
此系统能及时完成数据的添加、删除、修改、查询、统计等功能,必须还具有打印报表功能。
(2)特殊功能的调查
该系统由特定人员使用,应具有一定的保密性。系统还具有维护功能,如数据备份与恢复、用户密码修改等。
(3)功能显示及显示格式
用窗口的形式来显示信息。
2.1.3         结果输出的格式
系统的数据有两种格式,一种是屏幕显示,另一种打印报表。

2..2   调查结果
2.2.1     功能需求
1)        完成学生成绩和授课计划的管理,具有查阅、添加、删除、修改、统计等基本功能。
2)        完成按照指定条件查询。
3)        完成所需报表的打印。
4)        非管理员不能使用本系统。
5)        具有帮助使用该系统的功能。

2.2.2    数据字典
(1)学生基本情况表(学号、姓名、性别、生日、地址、总成绩、民族、录取号、是否超前、年级、院系、班名、专业、录取时间、毕业时间、备注)。
(2)成绩信息表(学号、姓名、课名、学期、班名、成绩、备注)。
(3)课程信息表(班名、课名、学期、课号、课程类别、考试方式、讲课学时、面授学时、实习学时、每周学时、老师、课程设计、备注)。
(4)班名信息表(科类、专业名、办学形式、办学层次、学制、年级、办学层次、学制、年级、所属院系、班名)
(5)考试情况表(考试)
(6)补考表(姓名、学号、课名、成绩、班名、日期、标志、记号)。
(7)民族信息表(民族)。
(8)科类信息表(科类)。
(9)院系名信息表(代码、院系名)。
        (10)专业名信息表(代码、专业名 、专业方向、院系名)。
(11)密码表(用户名、密码)。

表的选取
        根据该系统的要求以及可能将来和其它学生 信息管理系统结合,本系统需要有一个管理学生的基本信息的表;作为成绩管理系统,要有成绩表;需要包括课程的信息表,这就要建立一个课程表;鉴于学校考试制度,本系统应设计一个补考表主要用来存放全校各班补考人名单和补考科目及其成绩;成绩管理系统与考试密切相关,完整的考试数据要包括缺考、缓考、作弊情况的记录,因此需要建立一个情况表;为避免输入信息出错和减少键盘的使用量,可统一建立院系名表、班名表、民族信息表、科类信息表;由于系统只有指定用户才可以修改使用,因此要设计一个用户登录的密码表。

3.1.2        表的规范化
表的规范化是一系列能够应用到数据库结构上的测试,通过这些测试可以消除数据的冗余程度,使数据库结构处于一种优化形式,测试方法有:对于每一行和列的交叉点,是否仅有一个值;是否所以非主码列依赖全部主码;表中是否有依赖其它非主码列的非主码列。

3.1.3        表的具体设计
根据实现学生成绩管理所涉及的数据,设计的表的结构如下:(注:带有‘P’标记的列为主码列)
(1)        学生基本情况表(xueshengku)
主要存放学生的基本信息。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
Xuehao        char        6        No        none        p
Xingming        Char        8        No        none       
Xingbie        Char        2        Yes        None       
Shengri        Date        /        Yes        None       
Dizhi        Char        40        Yes        None       
Zongchengji        Numeric        5-1        Yes        None       
Minzu        Char        8        Yes        None       
Luquhao        Char        6        Yes        none       
Chaoqian        Char        6        Yes        None       
Nianji        Char        2        Yes        None       
Yuanxi        Char        20        Yes        None       
Banming        Char        16        Yes        None       
Zhuanye        Char        30        Yes        None       
Biyebianhao        Char        30        Yes        None       
Xiuxue        Char        1        Yes        None       
Biaozhi        Char        1        Yes        None       
Luqushijian        Char        /        Yes        None       
Biyeshijian        Char        /        Yes        None       
Luqudiaqu        Char        20        Yes        None       
beizhu        Char        40        Yes        None       

(2)        成绩信息表(c_chengjiku)
主要存放学生各门课程的成绩。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
Xuehao        char        6        No        none        p
Xingming        Char        8        No        none       
Keming        Char        20        Yes        None       
Xueqi        char        10        Yes        None       
Banming        Char        20        Yes        None       
Chengji        char        6        Yes        None       
beizhu        Char        40        Yes        None       

(3)        课程信息表(c_kechengku)
主要用来存放全校各班各个学期的课程计划。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
Banming        char        16        No        none       
Keming        Char        20        yes        none       
Xueshi        numeric        5-1        Yes        None       
Xuefen        numeric        4-1        Yes        None       
Xueqi        Char        8        Yes        None       
Kehao        char        10        Yes        None        p
kechengleibie        Char        6        yes        none       
Kaoshifangshi        Char        6        Yes        None       
Jiangshi        Numeric        5-1        Yes        None       
Mianshi        Numeric        5-1        Yes        None       
Shishi        Numeric        5-1        yes        none       
Zhoushi        Numeric        5-1        Yes        None       
Laoshi        Char        8        Yes        None       
kechengsheji        Char        40        Yes        None       
beizhu        numeric        5-1        yes        none       

(4)        班名信息表(banming)
主要存放各个班级信息。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
Kelei        varchar        6        No        none       
Zhuanye        varchar        30        yes        none       
Xingshi        varchar        4        Yes        None       
Cengci        varchar        6        Yes        None       
Xuezhi        numeirc        3        Yes        None       
Nianji        varchar        6        Yes        None       
Yuanxi        varchar        20        yes        none       
banming        varchar        16        Yes        None        p

(5)        补考表(c_bukaoku)
主要存放全校各班补考人名单和补考科目及其成绩。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
Xingming        Char        8        No        none       
Xuehao        Char        6        yes        none        p
Keming        Char        20        Yes        None       
Chengji        Numeric        5-1        Yes        None       
Banming        Char        20        Yes        None       
Riqi        Date        10        Yes        None       
Biaozhi        Integer        /        Yes        None       
jihao        integer        /        Yes        None       

(6)        考试情况表(c_kaoshi)
主要存放考试情况,例如缺考、缓考、作弊等情况。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
Kaoshi        Char        4        No        none        p


(7)        民族信息表(minzu)
主要存放民族信息,例如汉族、藏族、回族等信息。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
Minzu        varchar        10        No        none        p

(8)        科类信息表(kelei)
主要存放学科类别,例如工科、理科、文科等类别。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
kelei        varchar        6        No        none        p

(9)        院系名信息表()
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
ydaima        varchar        6        No        none        p
Yuanximing        Varchar        20        No        none       

(10)        专业名信息表(专业名
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
zdaima        Varchar        6        No        none        P
Zhuanye        Varchar        30        No        None       
Zhuanyefangxiang        Char        10        Yes        none       
Yuanximing        Varchar        20        No        none       

(11)用户密码表(password)
主要存放用户登陆的用户名和用户密码。
Column name
字段名        Data type
数据类型        Width
长度        Null
空        Default
默认值        备注
Name        Char        10        No        None        p
Password        Char        10        No        none       

3.2    模块设计
模块化就是把程序分为若干个模块,每个模块完成一个子功能,把这些模块集中起来组成一个整体,可以完成指定的功能并满足问题的要求。开发具有独立功能而且和其他模块之间没有相互作用的模块,就可以做到模块独立。模块的独立程度可以由两个定性的标准来度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此间相互依赖的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。设计时,应力求提高模块的内聚程度,降低模块间的耦合程度。
学生成绩分析管理系统此标准可分为用户登陆、输入数据、查询数据、统计数据、系统维护等五个子模块。后四个模块下各有相应的子模块。
如下图。







        3.2.1  数据输入子模块功能设计
        学生成绩信息量很大,不定期都会有新的数据产生,同时有报废的数据淘汰,根据这些要求,数据输入子模块应具有插入、删除、修改等功能。输入数据子模块如下:

1)        院系备案
完成院系名数据的添加、删除,并具有翻页阅览功能。
2)        专业备案。
完成专业名数据的添加、删除,并具有翻页阅览功能。
3)        杂项备案
完成科类名、民族、专业层次数据的添加与删除。
4)        班名备案
完成班名数据的添加与删除,并具有翻页阅览功能。
5)        新生备案
完成学生基本信息的添加与删除,并具有翻页阅览功能。
6)        学生档案修改
按专业、班级、院系的组合或按姓名、学好的任选一的单一条件筛选,显示要修改的学生档案,并修改。
7)        授课计划备案
完成课程的录入、修改、删除,并可浏览课程库。
8)        期考成绩备案
按班级或专业输入学生成绩,并可修改、删除,打印报表。
9)        补考成绩备案
按班名、课名来输入补考成绩,并可修改、删除。
10)        毕业成绩备案
按班名输入学生毕业设计题目及成绩,并可删除、修改,打印报表。
如下图:
3.2.2        数据查询子模块功能设计
当学生成绩管理员需要查询有关成绩信息时,就可以进入查询模块,此模块具备单一查询和组合查询功能,并且可以将结果输出报表打印。其基本功能如下:
1)        浏览授课计划
按班名或浏览或浏览全校的授课计划,结果可打印。
2)        查询期考成绩
按班名或专业与学期、课名相组合查询学生指定学期的考试成绩,结果可打印。
3)        查询补考成绩
按班名查询学生所有补考成绩,并可打印结果。
4)        查询补考名单;
按班名查询补考名单,结果可打印。
5)        学生个人成绩
按学生姓名或学好、学期的组合条件来查学生所有课程的成绩,结果可打印。
6)        学生毕业成绩
按专业或班名查询学生的毕业成绩并打印。
如下图:















3.2.3     数据统计子模块功能设计
当学生成绩管理员需要统计有关成绩信息时,就可以进入统计模块,其基本功能如下:
1)        全校单科班平均分
统计指定课程的班级考试情况,如应考人数、实考人数、不及格人数、班平均分,并按平均分高低排名,结果可打印。
2)        全班单科成绩排名
按班级、课名筛选学生成绩,并可按学号或成绩排序,结果可打印。
3)        全班个人平均分排名
指定班级、学期的学生所有课程平均分排名,结果可打印。
4)        全班各科分数段统计
统计全班指定学期各科分数段的人数。
5)        全班各科考试情况统计
统计全班各科考试情况,如应考人数、实考人数、不及格人数、平均分,结果可打印。
6)        全校单科成绩统计
统计指定课程的各个班级分数段的人数,结果可打印。
7)        补考情况统计
统计全班或全校所有补考次数。













3.2.4   系统维护子模块的功能设计
在系统维护模块里,学生成绩管理员可以修改当前年度,备份数据,修改用户密码,并可使用系统自带计算器随时处理运算,使用帮助命令更好的使用此系统。
1)        修改年度
修改系统默认年度,如02年度春季下学期。
2)        备份成绩数据
按班名、专业名备份成绩数据。
3)        删除成绩数据
可以删除整个班级或班里某一个学生的成绩数据。
4)        计算器
调用计算器,完成计算功能。
5)        修改密码
修改当前用户的登录密码。
6)        使用帮助。
7)        退出系统。
如下图:










在JSP的应用中,一般用户对数据的操作和管理均在DataWindow中进行,JSP之所以功能这么强大并受到数据库客户应用程序开发者的广泛欢迎,其关键因素之一也是它拥有数据窗口技术,因此我们首先就数据窗口管理数据的机制和原理以及具体数据窗口对象的实现过程进行讨论。数据窗口是JSP的高级结构,它将数据访问封装到功能强大、智能、以数据为中心的对象中。DataWindow形式上就好像用作切菜的菜板一样可以在上面自由灵活地操作和管理数据。通过它,不但可以对每个数据库的表进行查询、检索,而且还可以对数据进行插入、删除和更新,甚至可以定义它的列显示格式及编辑风格,定义它的检索条件、过滤条件、有效规则等等。DataWindow是如何实现对数据的操作的呢?首先,当操作光标在DataWindow中移动时,JSP就在光标所在的当前单元上放置了一个编辑控件,此时编辑控件中的内容为文本,文本还没有被DataWindow控件所接受。在文本中输入的数据也还没有成为DataWindow缓冲区中的数据,只是编辑控件中一窜字符。当用户改变了编辑控件的内容,按回车或离开该单元(按TAB键、使用鼠标或按上移键、下移键等)时,JSP将处理编辑控件中数据,判断该数据是否成为有效数据。若有效则接受,编辑控件中的数据写入DataWindow当前缓冲区当前行当前列中;若无效,则被拒绝,编辑控件中的数据不会写入DataWindow当前缓冲区的当前行当前列中。
对于数据窗口对象的具体实现过程为:第一步是根据所要建立的数据窗口对象定义数据源,数据源的选择限定了即将生成的数据窗口的功能;第二步是定义数据窗口的表现风格,表现风格的不同也取决于用户如何使用数据窗口对象,如Freeform风格比较适合数据的录入、修改和删除,Crosstab与Graph风格的数据窗口则常用于数据的分析与统计;第三步是对初始生成的数据窗口的默认属性的重新定义或其他有关属性的设置,以及向数据窗口中添加和修改各种不同的对象。
其他的各个功能模块都用同样的方法实现,在需要对数据进行操作的时候,首先要根据需求建立建立相应的数据窗口对象,然后通过数据窗口控件对其进行操作。





可以进入系统,其代码实现过程为:
        确定按钮的cliked事件脚本:
int ms
string vpw,vname
if sle_3.text="" or sle_1.text="" then
messagebox("提示","请输入用户和密码!")       
        return
end if        //如果没有输入用户和密码则会出现提示“请输入用户和密码”窗口
vname=sle_1.text
select "passwd"."name","passwd"."password" into :vname,:vpw from "passwd" where "passwd"."name"=:vname;       
//从密码表中读入用户和密码值赋给变量vname、vpw
        if sle_3.text=vpw then
        open(w_main)                //密码对进入应用程序
        timer(0.1,w_main)
else
        ms=messagebox("警告","您输入的密码有误,是否重试?",Question!,YesNo!)                //密码错出现提示窗口
        if ms=1 then
                 sle_3.text=""
                sle_3.setfocus()        //重试将清空用户和密码输入框
并光标重新定位
        else
                close(parent)                //不重试退出
                end if               
end if


4.5.2  创建输入数据窗口
4.5.2.1         创建录入授课计划窗口
在实际的学生成绩信息管理系统中,班名项的内容是系统事先给出的。课程是学校事先安排好的,学校的数据库中一定有课程的资料,也就是相当于后台的数据库,而对于我们在前台设计应用程序时应该考虑到这一点,因此在设计录入授课计划窗口时,我多采用了下拉列表框和单行编辑框,因为可以从已知的数据项中选择适当的项目来实现该窗口的功能。
由前面列出的设计要求来看,系统要具有删除课程、修改课程、录入课程、浏览课库、返回主菜单等功能。因此,考虑到这些功能的需要,我设置了相应的命令按钮,删除课程、修改课程、浏览课库和返回。对这五个按钮,设计相应的代码使它们能够完成相应的功能。
根据前面设计的数据库中表的数据项,设计了六个下拉列表框(班名、学期(2)、课程名称、课程类别、考试方式),11个单行单行编辑框(课名、课号、学分、学时、每周学时、讲课学时、实验学时、课程设计、面授学时、任课老师、备注)。这样设计的原因是,根据系统检索数据的要求,系统要求我们根据班名,学期等数据项进行检索数据,因此我们把预先给出的班名等信息都存放在下拉表框中,这样便于查询并进行一些修改、删除等操作。
需要说明的是,考试方式一项是根据我国考试记分方式的不同设计的,这样会使系统应用面更广,好的系统应该具有适应面广的特点。
同时设计了2个组框(删除课程、进入/修改课程),18个静态文本框(课号、学分、学时、每周学时等)。这样做的好处是使界面清晰,使用者使用意图明显。

窗口open事件脚本:
string str
integer ch,i
DECLARE banming CURSOR FOR  
  SELECT "banming"."banming"  
    FROM "banming"  ;                        //建立游标建立查询
select count("banming"."banming")into :ch  FROM "banming"  ;
open banming;
for i=1 to ch
        fetch banming into :str;
        ddlb_1.additem(str)
        sle_1.additem(str)        //将班名值赋给ddlb_1和sle_1
end for
close banming;
SELECT "c_kechengku"."keming",   
         "c_kechengku"."xueshi",   
         "c_kechengku"."xuefen",   
         "c_kechengku"."xueqi",   
         "c_kechengku"."kehao",   
         "c_kechengku"."jiangshi",   
         "c_kechengku"."kechengleibie",   
         "c_kechengku"."kaoshifangshi",   
         "c_kechengku"."mianshi",   
         "c_kechengku"."shishi",   
         "c_kechengku"."zhoushi",   
         "c_kechengku"."laoshi",   
         "c_kechengku"."beizhu",   
         "c_kechengku"."kechengsheji"  
    INTO :sle_2.text,   
         :sle_5.text,   
         :sle_4.text,   
         :ddlb_4.text,   
         :sle_3.text,   
         :sle_7.text,   
         :ddlb_5.text,   
         :ddlb_6.text,   
         :sle_10.text,   
         :sle_8.text,   
         :sle_6.text,   
         :sle_11.text,   
         :sle_12.text,   
         :sle_9.text  
    FROM "c_kechengku"  
   WHERE ( "c_kechengku"."banming" = :ddlb_1.text ) AND  
         ( "c_kechengku"."keming" = :ddlb_3.text )   ;
        //以班名和课名为检索条件从c_kechengku中查找相应的学分、学期、课时、任课老师等项附给对应的单行编辑框。
ddlb_2.text=ddlb_4.text
sle_1.text=ddlb_1.text

        录入授课计划按规定班名、课名、考试方式不能为空,这样在保存数据时针对漏输的情况设计了一个提示窗口。
messagebox("注意","班名 、课名、考试方式不允许为空值!")
结果如图:

4.5.2.2         创建录入成绩窗口
根据系统要求:按班级、专业等方式录入成绩。特设计了按班级和专业查询的功能,从实际情况出发考虑,把这两种查询方式作成单选按钮,一次只可以以一种方式检索。根据表的数据设计了如上图选项,这都是在设计表的时候就计划了的,设计了什么样的表就决定了要用什么样的查询检索方法。
更进一步,添加了两个下拉列表框(学期、课名),这是从方便特定的查询出发的,设计者应该考虑到用户可能需要什么样的查询方式和数据,因此添加了此项功能。
本窗口还要添加一个数据窗口控件,该控件是前面创建数据窗口时创建的录入成绩数据窗口。
同时,根据系统的要求也设计了五个按钮,分别时录入成绩、修改成绩、删除成绩、打印、返回。
还有五个单行文本框用来显示当前课程的信息,包括课程类型、考试方式、学分、任课老师、总人数。
1)班级下拉框

select事件脚本:
ddlb_4.reset()
string str,xh,xm
int ch3,i,ch
DECLARE keming CURSOR FOR  
  SELECT "c_kechengku"."keming"  
    FROM "c_kechengku"
         where "c_kechengku"."banming"=:ddlb_2.text;
                //建立以班名为条件检索的游标
select count("c_kechengku"."keming")
into :ch3
FROM "c_kechengku"
where "c_kechengku"."banming"=:ddlb_2.text;
open keming;
for i=1 to ch3
        fetch keming into :str;
        ddlb_4.additem(str)
end for
close keming;
chengji_ban[1]=ddlb_2.text
chengji_shu=1       


制作完成测试
学生成绩分析管理系统开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。
单独对系统的测试主要从以下几方面入手:
(1)功能测试:测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。
(2) 强度测试及性能测试:测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。
(3) 安全测试:验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。
经过上述的测试过程对学生成绩分析管理系统进行测试后,学生成绩分析管理系统基本满足开发的要求,测试宣告结束。
通过两个月来,在老师和同学的帮助下,校园学生成绩分析管理系统基本实现了预定的功能。通过这次毕业设计,我也学到了很多的东西。掌握了一些软件的功能。但由于时间的仓促和自己对一些东西的不太了解,学生成绩分析管理系统没有做到尽善尽美,还要很多需要完善的地方,我会在今后的工作和学习中总结经验,逐步改进自己存在的不足。   实践证明,校园学生成绩分析管理系统有着很好的发展前景,经测试运行。本文所制作的校园学生成绩分析管理系统界面友好、使用灵活、操作简单、功能齐全、表现方式独特,已基本具备了成熟的技术理论。
由于时间仓促,本次设计由我完成网络通讯录管理系统的制作,对我这样一个JSP新手而言所制作的模块还有不完善的地方。数据库的设计也比较简单。还有很多毕业设计中用到JSP语言的知识也不够全面,还有很多地方不能够作到完全的理解和掌握。通过这次毕业论文的设计制作使本人受益匪浅。首先,由于毕业设计所用的JSP技术和其中用到JSP语言的其他部分是在课堂上没有接触过的,要用它来做设计必须通过大量自学来掌握,在这个过程中,不仅大大提高了我的自学能力而且让我对JSP的学习有了进一步的认识 。由于是独立完成在毕业设计的过程遇到了很多的困难,我求教了不少老师和同学,在这个过程中让我体会到了,一个团队的重要性。
软件安装与调试
软件的安装与配置
(1)软件安装:操作系统Windows  XP
          Microsoft SQLServer2000
  JDK安装:
JDK安装特别简单,和安装其他的软件没什么区别。
  JDK的配置:
设置JAVA_HOME环境变量:JDK 安装目录 例:C:\j2sdk1.4;
设置CLASSPATH环境变量:JDK安装目录\lib\tools.jar 例:
C:\j2sdk1.4\lib\tools.jar;.
设置PATH环境变量:JDK 安装目录\bin;例:C:\j2sdk1.4\bin;
服务器的安装:Tomcat 5.0
设置TOMCAT_HOME环境变量:Tomcat安装目录  例:C:\Tomcat 5.0;
(2)安装Tomcat5.0 安装时注意在选择Java虚拟机路径是一定要选择安装的JSDK的目录,然后再开始安装。
(3)安装完毕后,启动TOMCAT,然后再浏览器中输入http://localhost:8080时可以看见TOMCAT的欢迎页面,这时表示配置成功了。
软件调试
  系统调试的目的是发现程序和系统中的错误并及时予以纠正。在学生成绩管理系统中用的调试方法也包括这些:
(1) 程序调试
包括语法调试和逻辑检查,测试数据除采用正常数据外,还应用一些异常资料,用来考验程序的正确性。
①用正常资料调试。
②用异常资料调试。
③用错误资料调试。
软件测试:
软件的测试是系统开发周期中一个十分重要的环节,其重要性体现在它是保证系统质量与可靠性的最后关口,是对整个系统开发过程的最终审查,如果错误不能在测试阶段被发现并纠正,就可能会造成不堪设想的后果。
在网上手机专卖电子商务平台中,我们以黑盒测试为主,白盒测试为辅。对关键模块采用白盒测试。
测试结果:
★中文乱码问题,从数据库中取出的中文数据出现乱码。
★参数传递出错,无法传递数据。
★当大量用户同时对数据库进行访问时,效率低,有的用户访问失败。
主要的解决方法:
☆我使用如下方法来解决乱码问题:
request.getParameter("choose").getBytes("8859_1"),"GB2312"
<%@ page contentType="text/html;charset=GB2312"%>
☆        对于各个模块接参数的格式进行了统一
☆        本程序以中小型为基础,采用JDBC数据源进行连接数据库这就决定了本系统的先天缺陷。纯正的电子商务网站均采用连接池,出于技术难度大和资料缺乏放弃此最佳方案。


结束语
经过十个月的不懈努力,和指导老师的谆谆教导,以及同组同学的团结协作,充分利用大学四年所学的专业知识,通过大量阅读与设计相关的专业参考文献,我终于完成了本次毕业设计,已经基本上实现了学生成绩管理系统的各项功能。

通过这次毕业设计,我掌握了SQLServer2000这种大型数据库的编程方法,掌握了JAVA语言和JSP技术。了解到电子商务的理论以及平台开发的模式,掌握了网络开发的方法与模式。对团队的协作,对软件开发方法和手段,有了一定的认识,丰富了我的软件开发的经验,提高了程序编写的水平,并加深理解了许多课程中、手机本上学到的知识和理论。同时,通过编写毕业设计论文,我还基本掌握了软件文档的手机写方法和手机写格式。
鲁迅说,世上倘若有完全的人,那么配活的也就相当有限。本系统尽管有自己的特色,如聊天室,游戏。但缺陷也是明显的,如安全性,效率问题等等。由于时间,能力,国内JAVA,JSP技术资料有限等原因,有些功能实现的并不完美,在已经完成的程序中,也存在许多不尽人意的算法,也没有统一优化,系统有待进一步改善,而这些问题也让我充分认识到了软件开发的困难。
通过毕业设计,我学会了如何去了解一种新型的技术,去掌握一种技术。以及软件开发的基本流程。在学习过程中,我们遇到问题经常上网求助,去手机查询资料,扩大了自己的知识面。
总之,这次毕业设计为我今后继续学习、深造奠定了基础,我非常感谢各位老师、同学的支持与帮助。



附 录

致谢
在本次毕业设计过程中,得到了指导老师的指导与支持。在此特别感谢XX老师的大力帮助。指导老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,同时根我们提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我们小组顺利完成这次毕业设计起到了关键性的作用。
另外和我同组同学大家始终团结协作,努力拼搏,增强了我的团队意识,并且我们接下了深厚的友谊,我们自始至终在一种愉快的气氛中学习工作。此次毕业设计对提高我的编程技术、协调团队成员的关系等方面都由许多益处。在此我一并向他表示感谢。以及在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业设计我还明白了作为一名计算机专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。




参考文献
[1]孙卫琴,李洪成.《Tomcat 与 Java Web 开发技术详解》.电子工业出版社,2003年6月:1-205
[2]BruceEckel.《Java编程思想》. 机械工业出版社,2003年10月:1-378
[3]FLANAGAN.《Java技术手册》. 中国电力出版社,2002年6月:1-465
[4]孙一林,彭波.《Java数据库编程实例》. 清华大学出版社,2002年8月:30-210
[5]LEE ANNE PHILLIPS.《巧学活用HTML4》.电子工业出版社,2004年8月:1-319
[6]飞思科技产品研发中心.《JSP应用开发详解》.电子工业出版社,2003年9月:32-300
[7]耿祥义,张跃平.《JSP实用教程》. 清华大学出版社,2003年5月1日:1-354
[8]孙涌.《现代软件工程》.北京希望电子出版社,2003年8月:1-246
[9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月:3-460
[10]Brown等.《JSP编程指南(第二版)》. 电子工业出版社 ,2003年3月:1-268     
[11]清宏计算机工作室.《JSP编程技巧》. 机械工业出版社, 2004年5月:1-410   
[12]朱红,司光亚.《JSP Web编程指南》.电子工业出版社, 2001年9月:34-307      
[13]赛奎春.《JSP工程应用与项目实践》. 机械工业出版社, 2002年8月:23-294      


JSP SQL学生考试成绩分析(源代码 论文).zip

2.72 MB, 下载次数: 0

售价: 20 金币  [记录]  [购买]


可乐分享 - 免责声明1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关
2、本站信息来自网络,版权争议与本站无关
3、本站发布的相关帖子文章仅限用于学习和研究目的,不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负
4、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
5、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
6、可乐分享管理员和版主有权不事先通知发贴者而删除本文

回复

使用道具 举报

0

主题

590

回帖

894

积分

高级会员

Rank: 6Rank: 6

积分
894
发表于 2024-10-13 21:24:28 | 显示全部楼层
信春哥,得永生!keleshare.cn
回复

使用道具 举报

0

主题

514

回帖

777

积分

高级会员

Rank: 6Rank: 6

积分
777
发表于 2024-11-7 23:27:43 | 显示全部楼层
水B楼主,经验拿好
回复

使用道具 举报

0

主题

562

回帖

852

积分

高级会员

Rank: 6Rank: 6

积分
852
发表于 2024-11-14 12:58:49 | 显示全部楼层
你有没有见过这么整齐的十五字啊
回复

使用道具 举报

0

主题

594

回帖

900

积分

高级会员

Rank: 6Rank: 6

积分
900
发表于 2024-11-20 00:10:35 | 显示全部楼层
闪瞎了我的钛合金狗眼
回复

使用道具 举报

0

主题

590

回帖

894

积分

高级会员

Rank: 6Rank: 6

积分
894
发表于 2024-11-22 06:59:41 | 显示全部楼层
你有没有见过这么整齐的十五字啊
回复

使用道具 举报

0

主题

594

回帖

900

积分

高级会员

Rank: 6Rank: 6

积分
900
发表于 2024-11-29 01:53:15 | 显示全部楼层
今天没吃药感觉自己萌萌哒
回复

使用道具 举报

0

主题

502

回帖

762

积分

高级会员

Rank: 6Rank: 6

积分
762
发表于 2025-1-26 01:40:43 | 显示全部楼层
楼主你知道的太多了。
回复

使用道具 举报

0

主题

522

回帖

792

积分

高级会员

Rank: 6Rank: 6

积分
792
发表于 2025-1-30 23:15:26 | 显示全部楼层
今天没吃药感觉自己萌萌哒
回复

使用道具 举报

0

主题

590

回帖

894

积分

高级会员

Rank: 6Rank: 6

积分
894
发表于 2025-2-2 22:21:22 | 显示全部楼层
吊炸天的xx,调皮会死人的
回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【可乐分享www.keleshare.cn】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|可乐分享,站长交流 ( 苏ICP备2024109924号 )|网站地图

GMT+8, 2025-5-7 02:45 , Processed in 0.169197 second(s), 25 queries .

Powered by 可乐分享

© 2023-2024 keleshare.cn.

快速回复 返回顶部 返回列表