Sql 年级各班的前20%学生平均分

asdf13225 2016-03-30 09:20:58
年级各班平均分语句为:
Select AVG(数学) from table Group by 班级 Order by 班级 ASC
但现在我要以班排为依据(升序) ,算出每个班前 20% 的学生各班的平均分,怎么写?

Select top 20 percent AVG(数学) from table Group by 班级 Order by 班级 ASC
得到的还是班级平均分(显示的是上面结果的 20%),注意是’所有班‘,不是某一个班。
...全文
895 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
大壮vip 2017-05-15
  • 打赏
  • 举报
回复
可以的,长见识了
中国风 2016-03-31
  • 打赏
  • 举报
回复
引用 5 楼 asdf13225 的回复:
注:班排不是指 数学按从高分到低分的排名,而是总分(各科之和)按从高分到低分的排名,班排已经有数据(为1,2,3...)。
--少了WHERE 条件加上
SELECT  a.班级
       ,AVG(数学) AS 数学
FROM    ( SELECT DISTINCT
                    班级
          FROM      [table]
        ) AS a
        CROSS APPLY ( SELECT TOP 20 PERCENT
                                数学
                      FROM      [table]
					  WHERE 班级=a.班级
                      ORDER BY  数学 DESC
                    ) AS b
GROUP BY a.班级
ORDER BY 数学 DESC;
spiritofdragon 2016-03-31
  • 打赏
  • 举报
回复
引用 5 楼 asdf13225 的回复:
注:班排不是指 数学按从高分到低分的排名,而是总分(各科之和)按从高分到低分的排名,班排已经有数据(为1,2,3...)。
。。。各科之和。。。,在1楼你的sql中哪体现了还有别的科,谁都以为只用算数学,现在说“班排”的含义,不是扯乎么。。。先给你的数据结构和测试数据和想要的结果。。。不然谁知道你的问题描述全了没!!
asdf13225 2016-03-31
  • 打赏
  • 举报
回复
没有想到各位这么热心,我深受感动。谢谢大家!
spiritofdragon 2016-03-31
  • 打赏
  • 举报
回复
引用 10 楼 spiritofdragon 的回复:
[quote=引用 9 楼 asdf13225 的回复:] 对不起,是我没有说的明白,现在我列出 Table 的字段名和数据说明。 班级, 学号, 姓名, 语文, 数学, 英语,物理,化学,生物,理综, 总分,班排,三月考 班级有1,2,3...学号为1,2,3...语文等各科,班排,三月考都有数据,(表按班级,学号升序排列) 现在求每班前20%的数学平均分(即每班排名为前20%的数学平均分) 例如1班数学平均分为 108.629629(这是该班所有学生的平均分),那么1班前20% (假设该班有60人,那么20%就是班排前12名即班排=1-12名的数学平均分) 不知道说明清楚了没(啰嗦了一大堆) 我从网上看到类似的Sql语句,修改后经过验证可行。如果大家有其它的语句,也可以贴出来。
select AVG(数学) from Table t where 学号 in(select top 20 percent 学号 from Table where 班级=t.班级 order by 班排 ASC) Group by 班级
我理解不对,这是全年级所有人放一起,然后班排,取全年级前20%,然后,再各个班自己内部取平均值[/quote] 赶紧自打脸,省得别人动手。这句是对了。可以用。是每班内排20%。然后,再每班内部取数学平均值。
spiritofdragon 2016-03-31
  • 打赏
  • 举报
回复
引用 9 楼 asdf13225 的回复:
对不起,是我没有说的明白,现在我列出 Table 的字段名和数据说明。 班级, 学号, 姓名, 语文, 数学, 英语,物理,化学,生物,理综, 总分,班排,三月考 班级有1,2,3...学号为1,2,3...语文等各科,班排,三月考都有数据,(表按班级,学号升序排列) 现在求每班前20%的数学平均分(即每班排名为前20%的数学平均分) 例如1班数学平均分为 108.629629(这是该班所有学生的平均分),那么1班前20% (假设该班有60人,那么20%就是班排前12名即班排=1-12名的数学平均分) 不知道说明清楚了没(啰嗦了一大堆) 我从网上看到类似的Sql语句,修改后经过验证可行。如果大家有其它的语句,也可以贴出来。
select AVG(数学) from Table t where 学号 in(select top 20 percent 学号 from Table where 班级=t.班级 order by 班排 ASC) Group by 班级
我理解不对,这是全年级所有人放一起,然后班排,取全年级前20%,然后,再各个班自己内部取平均值
asdf13225 2016-03-31
  • 打赏
  • 举报
回复
对不起,是我没有说的明白,现在我列出 Table 的字段名和数据说明。 班级, 学号, 姓名, 语文, 数学, 英语,物理,化学,生物,理综, 总分,班排,三月考 班级有1,2,3...学号为1,2,3...语文等各科,班排,三月考都有数据,(表按班级,学号升序排列) 现在求每班前20%的数学平均分(即每班排名为前20%的数学平均分) 例如1班数学平均分为 108.629629(这是该班所有学生的平均分),那么1班前20% (假设该班有60人,那么20%就是班排前12名即班排=1-12名的数学平均分) 不知道说明清楚了没(啰嗦了一大堆) 我从网上看到类似的Sql语句,修改后经过验证可行。如果大家有其它的语句,也可以贴出来。
select AVG(数学) from Table t where 学号 in(select top 20 percent 学号 from Table where 班级=t.班级 order by 班排 ASC) Group by 班级
道玄希言 2016-03-30
  • 打赏
  • 举报
回复
引用 4 楼 asdf13225 的回复:
KanzakiOrange:完全看不懂,估计也不行。(有tb,tb1,tb2)?
KanzakiOrange 采用的是先将数据分片, 然后再统计, 不过他的SQL语句中,有个地方, 应该是笔误了, tb1 写成了 tb2 估计楼主你还是在 SQL 2000 吧, 所以看不懂4楼的代码了。 2005 以及以后的版本, 都能这么写的。 第一个 tb , 是造了个模拟的数据; 第二个 tb1, 是将 tb 的数据分片; 不明白请查 NTILE 函数 SELECT 班级,AVG(数学) FROM tb1 WHERE tb1.RNr = 1 GROUP BY 班级 这句就是查询分片中,第一片数据的平均值。
Ginnnnnnnn 2016-03-30
  • 打赏
  • 举报
回复
取20%,我这里投了一个机。但是版主那个比较合理
;WITH tb(班级,学生,数学) AS
(
	SELECT 1,'A',80
	UNION ALL
	SELECT 1,'B',90
	UNION ALL
	SELECT 1,'C',60
	UNION ALL
	SELECT 1,'D',70
	UNION ALL
	SELECT 1,'E',85
	UNION ALL
	SELECT 2,'F',80
	UNION ALL
	SELECT 2,'G',80
	UNION ALL
	SELECT 2,'H',80
	UNION ALL
	SELECT 1,'I',90
	UNION ALL
	SELECT 1,'J',60
	UNION ALL
	SELECT 1,'K',70
	UNION ALL
	SELECT 1,'L',85
	UNION ALL
	SELECT 1,'M',80
),tb1 AS(
SELECT *,
		NTILE(5) OVER (PARTITION BY 班级 ORDER BY 数学) AS RNr
	FROM tb)
SELECT 班级,AVG(数学)
	FROM tb2
		WHERE tb1.RNr = 1
	GROUP BY 班级
    
中国风 2016-03-30
  • 打赏
  • 举报
回复
SELECT a.班级,AVG(数学) AS 数学 FROM (SELECT DISTINCT 班级 FROM [table] )AS a CROSS APPLY(SELECT top 20 PERCENT 数学 FROM [table] ORDER BY 数学 DESC) AS b GROUP BY a.班级 ORDER BY 数学 DESC
中国风 2016-03-30
  • 打赏
  • 举报
回复
SELECT AVG(数学) FROM (Select top 20 percent 数学 from [table] Group by 班级 Order by 班级 ASC) AS T
asdf13225 2016-03-30
  • 打赏
  • 举报
回复
注:班排不是指 数学按从高分到低分的排名,而是总分(各科之和)按从高分到低分的排名,班排已经有数据(为1,2,3...)。
asdf13225 2016-03-30
  • 打赏
  • 举报
回复
回复:首先,谢谢大家这么热心,快速的解答。我验算了一下,发现有以下问题: roy_88 1楼:(执行的返回结果是): 消息 8120,级别 16,状态 1,第 1 行 选择列表中的列 'Table.数学' 无效,因为该列没有包含在聚合函数或 GROUP BY 子句中。 roy_88 2楼: 没有报错,但得到的结果,所有班数据都是一样的。并且也不是班排前20%的平均值。 KanzakiOrange:完全看不懂,估计也不行。(有tb,tb1,tb2)?
1.简介说明: 3.1.学生基本信息: 由班主任输入,包括如下内容:姓名(有可能达到10个字)、民族、性别、出生年月、家庭住址、所学专业、宿舍地址、联系方式、家庭情况简介、家庭联系方式。 3.2.分学期基本信息:学期名:XXXX—XXXX学年第X学期(比如2006—2007学年第2学期) 3.3.智育素质部分:由班主任输入课程信息包括任课教师姓名,任课教师联系方式,每学期包含至少10门课程包含课程名称、平时成绩、总评成绩。然后自动算出所有课程的平均成绩以及不及格门数填入下表: 3.4.身心素质部分 3.5.能力素质部分 3.6.附加分部分 3.7.学生请销假纪录表格。由班主任填写有请假时间,原因、销假时间。 3.8.系统应该能够从上述表格中选择数据自动生成如下公示表: 1、XXXX—XXXX学年第X学期 XXXX学院综合测评成绩公示表 2、xx大学XX学院专业奖学金、生活补助费审批表(3号字) 3.9.智育素质部分不及格门数栏必须为0,填入的学生人数不超过总人数的70%。)奖学金等级、金额、是否交学费、是否核发都由班主任手动填入。此表格单独一张A4 纸打印 3.10.未享受奖学金、生活补助费名册 后台管理:学院信息设置 班主任信息管理(专业 年级名称 班级名称 用户名 班主任姓名 联系方式 密码 是否管理 操作 ) 民族设置 专业设置 年级设置 班级设置(专业名称 年级名称 班级名称 操作 ) 学生基本信息查看(专业 年级 班级 学号 姓名 操作 成绩 假条 出勤 ) 新增学生信息 学生信息查看 学生成绩录入 学生成绩查询 学生素质信息添加 学生信息查看 2.系统升级: 2.1以系统管理员登陆后,管理员页面不需要科目信息管理功能、班级课程安排功能这两项。每个班级的课程名称,代课老师等信息应该放到办主任的班级管理里面去。将科目信息管理功能放到班主任的具体班级的管理功能中去。 2.2办主任功能中,学生素质添加—卫生检查记录—“表现”下拉菜单中只有优秀和差。应该有优秀、良好、一般、差四个选项 2.3我在“学生素质信息添加”里,添加了每一项内容,但是在学生信息察看——个素质详细 2.4录入成绩在IE6下不能录下的问题。 2.5学生管理应该有两种用户类型: 1、 学生管理办公室。可以添加修改学院名称(输入学院名称后,网页界面上的学生信息管理平台字样的面应该出现学院的名称)、班级名称、班级所属专业、班级所属年级(2位年)、班主任姓名、班主任联系方式班主任初始用户名和密码这几项每个班级的基础信息。这些信息每个班级都应该是单独的。该用户还应该可以查看每一个班的“学生信息查看”和“学生成绩查询”部分 2、 班主任。班主任用自己的用户名登录后应该自动打开自己的班级。其需要的功能就是现在测试的功能。 2.6把“新增科目信息”放到“科目信息管理”里面。 科目信息中应该包括学年学期。科目信息管理的操作应该包括修改和删除。每条记录中还应该包括任课教师的“联系电话” “新增学生信息”部分中,专业一栏应该自动填入该班级的所属专业。 2.7“民族”一栏中下拉菜单应该包括“汉族、维吾尔族、哈萨克族、回族、蒙古族、柯尔克孜族、塔吉克族、”以及“其他”。“其他”中应该可以自行填入。 “年级”一栏的下拉菜单项目中应该还包括“预科”。 “家庭联系方式”应该放在“家庭情况简介”的面。 2.8“学生成绩录入”中能否做到一次把所有的课程都列出来,一次添加所有成绩一次统一保存 2.9综合素质总分:(自动计算出来) 3.配置说明: 1.新建数据库collegeburse 通过备份文件collegeburse(public)还原数据库 或者新建数据库collegeburse 在数据库collegeurse的查询分析器里执行sql脚本 完成数据库的构建 2.将发布网站的所有文件放到要发布的文件夹下 如果服务器没有安装ajax 先安装ajax 程序 ,ASPAJAXExtSetup.msi压缩包里自带. 3.修改数据库配置文件 用记事本打开发布网站里的web.config文件 然后修改该节点的信息(用于连接配置数据库) 各节点说明: Connectionstring 里 Server= 数据库服务器地址(ip 或 网址) User id=连接数据库的用户名 Password=连接数据库的密码 Initial catalog=数据库名字 然后保存。 管理员登录帐号25175密码123456 运行环境:.net2.0+sql2000+Windows 2003 / 2000 / XP /vista +iis5.0以上+ASPAJAXExtSetup.msi(2.0)
软件工程实践报告 教务管理系统 第一章 问题定义 随着学校规模的扩大,人员的不断增加、复杂程度逐渐增强,学校中,教务是一项繁 琐的事,每年都有新生入学、老生毕业,以及其他各种人事变动。每学期的考试成绩都 需要分析,纵、横向比较,能及时反应信息,还要对教师的教学成绩考核提供数据。如 何有效地管理、分析、处理这些信息,帮助学校和教师掌握学生的情况,这就是教学信 息管理系统需要完成的功能。以简单的用Excel来打印几X报表的人机作坊再也无法适 应当今学校的教学管理了,比方用Excel虽然能简单管理学生的学籍、成绩等,但用户界 面简单,管理起来难度大,修改和查找学生的信息都比较麻烦,并且在操作过程中没有 用户权限,只要能翻开计算机的人就能翻开数据进展任意的修改,大大的降低了信息的 平安性和XX性,效率低,,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对 于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟 ,其强大的功能已为人们深刻认识,它已进入各个领域并发挥着来越重要的作用。 作为计算机应用的一局部,使用计算机对学校的各类信息进展管理,具有着手工管理所 无法比较的优点.例如:检索迅速、查询方便、效率高、可靠性好、存储量大、XX性好、 寿命长、本钱低等。这些优点能够极大地提高学校信息管理的效率。 1.1问题定义 1.所需资源: 硬盘>80G,内存>256,处理器一般以上水平即可。 2.系统名为:教务管理系统 〔1〕,本处理的信息主要有三大类:学生信息、教师信息、成绩数据。本系统主要着 手于以上三大局部,建立数据库以及对数据的各种操作功能。 对于学生信息,由于需要经常性地进展各种查询。例如:查询一个班级中团员的人数 ,男女生的人数等等。教诲处在每一届学生进校时必须进展分班,设置学号;每一届学 生毕业,要进展学生信息备份; 对于教师信息,学校教诲处跟据教师所教班的成绩对教师的成绩成行考核,可以进展 同科的纵横向比较。〔由于对教师方面不太了解只有这些〕 对于成绩管理,课任教师要进展本科目成绩登记,计算平均分、优秀率、及格率;教 诲处要分段统计学生人数及所占比列,每学期进展学生成绩备份;学校领导那么可通过 查询工具来了解学生成绩情况。 〔2〕,以上各类信息目还处于手工或半手工的管理状态,效率低,可靠性差。如 果采用计算机进展以上各类信息的管理,必将大大提高工作效率,对各类信息的维护及 了解起到积极的作用。因此一个功能完备的学校信息管理系统的开发都非常有必要。 第二章 可行性研究 2.1系统概述 本系统将采用面向对象的软件开发方法,以SQL 2000作为后台数据库,配合功能强大的SQL查询语句,用Delphi便捷地开发教学管理信息 系统的应用程序。 2.2.1可行性分析 A 技术可行性:对Delphi能够运用自如,对SQL语句熟练掌握运用。 B 经济可行性:开发费用合理 C 操作可行性:能够良好的解决用户需要的问题 第三章 总体设计 3.1系统功能描述 本系统的主要任务是实现对学校的学生信息管理、成绩管理、教师考核信息管理、课 程信息管理及相关查询。其主要功能包括: 1.学生信息管理功能 添加学生.以班级为单位,进展学生入库。其中分为单个添加和成批添加。单个添 加学生供数量较少的学生信息入库;学籍变更。提供学生转学、休学、复学、退学、留 级及毕业信息。 删除学生。当学生毕业后,学生信息转移备份数据库中,系统的根本数据库中需要 删除学生信息。该功能主要进展成批地删除学生信息,如连续学号区段的多位学生信息 删除,整个班级的删除,所有学生信息的删除。 学生信息备份。在学生信息删除,将其按班级为单位保存到备份数据库 2.学生成绩管理功能 分数录入。以班级为单位,录入成绩。 分数段统计。以班为单位,根据成绩统计各科各分数段的人数,总分各分数段的人数。 成绩备份。为指定班级及指定的学期数的学生成绩保存到备份数据库中。 3.教师信息管理功能 添加新教师。 教师信息的修改。 教师成绩考核。 4.课程信息管理功能 1.课程管理。提供本学期各年级各专业所开课程名称的录入、修改、删除。它是学生 成绩管理的根底。用以保证数据库中一致性原那么。 2.教师与课程。供录入课任教师与课程、班级的联系情况。是排课系统的根底。 5.查询功能。 学生信息查询。根据用户的要求,查询学生数据库的所有可能的信息,其中包括成绩查 询。 教师信息查询。根据用户的要求,查询相关教师信息。 备份成绩查询。按班级为单位查询备份数据库的学生信息。 3.2 数据流图与数据字典 3.2.1数据流图 根据以上的系统功能描述,设计出数据流图如下: 1. 根本数据流图与功能级数据流图〔图3-1至图3-2〕 3.2.2查询功能流程图 总分表成绩表 学生信息查询要求查询
3.1.学生基本信息: 25175大学生综合素质管理系统最新官方版,由班主任输入,包括如下内容:姓名(有可能达到10个字)、民族、性别、出生年月、家庭住址、所学专业、宿舍地址、联系方式、家庭情况简介、家庭联系方式。3.2.分学期基本信息:学期名:XXXX—XXXX学年第X学期(比如2006—2007学年第2学期) 3.3.智育素质部分:由班主任输入课程信息包括任课教师姓名,任课教师联系方式,每学期包含至少10门课程包含课程名称、平时成绩、总评成绩。然后自动算出所有课程的平均成绩以及不及格门数填入下表: 3.4.身心素质部分 3.5.能力素质部分 3.6.附加分部分 3.7.学生请销假纪录表格。由班主任填写有请假时间,原因、销假时间。 3.8.系统应该能够从上述表格中选择数据自动生成如下公示表: 1、XXXX—XXXX学年第X学期 XXXX学院综合测评成绩公示表 2、xx大学XX学院专业奖学金、生活补助费审批表(3号字) 3.9.智育素质部分不及格门数栏必须为0,填入的学生人数不超过总人数的70%。)奖学金等级、金额、是否交学费、是否核发都由班主任手动填入。此表格单独一张A4 纸打印 3.10.未享受奖学金、生活补助费名册 后台管理:学院信息设置 班主任信息管理(专业 年级名称 班级名称 用户名 班主任姓名 联系方式 密码 是否管理 操作 ) 民族设置 专业设置 年级设置 班级设置(专业名称 年级名称 班级名称 操作 ) 学生基本信息查看(专业 年级 班级 学号 姓名 操作 成绩 假条 出勤 ) 新增学生信息 学生信息查看 学生成绩录入 学生成绩查询 学生素质信息添加 学生信息查看 3.配置说明: 1.新建数据库collegeburse 通过备份文件collegeburse(public)还原数据库 或者新建数据库collegeburse 在数据库collegeurse的查询分析器里执行sql脚本 完成数据库的构建 2.将发布网站的所有文件放到要发布的文件夹下 如果服务器没有安装ajax 先安装ajax 程序 ,ASPAJAXExtSetup.msi压缩包里自带. 3.修改数据库配置文件 用记事本打开发布网站里的web.config文件 然后修改该节点的信息(用于连接配置数据库) 各节点说明: Connectionstring 里 Server= 数据库服务器地址(ip 或 网址) User id=连接数据库的用户名 Password=连接数据库的密码 Initial catalog=数据库名字 然后保存。 管理员登录帐号25175密码123456 运行环境:.net2.0+sql2000+Windows 2003 / 2000 / XP /vista +iis5.0以上+ASPAJAXExtSetup.msi(2.0)
一.系统模块的实现 在系统中包括以下功能:系统管理、学籍信息管理、课程信息管 理、成绩信息管理、帮助。分为以下几个模块 主窗体 标 题 名 称 系统管理 sysMenu ……用户管理 Control ……退出系统 Exit 学籍管理 sInfo 课程管理 cInfo 成绩管理 rInfo 帮助 help ……使用说明 howto ……关于 about 1.1登录模块 为了系统的安全,在进入系统之首先会出现一个登录模块,用户只有在输入正确的用户名和正确的密码之后,才能进入系统。 用户登录窗体中放置了两个文本框(Textbox),用来输入用户名和密码;两个按钮(CommandButton)用来确定或者取消登录。 设置一个SSTab控件,供不同用户登录时选择用户权限,超级用户拥有一切权限(包括添加删除和修改以及对用户的管理),普通用户拥有受限制的权限(查询及修改密码),提高了数据库的安全性。 1.2系统管理模块 1.2.1添加用户窗体的创建 进入系统后,将会出现一个主窗体,选择系统管理模块下的添加用户,就可以进入添加用户窗体,可以通过该窗体增加新的用户。 在这个窗体中放置了三个文本框,用来输入用户名和密码;两个按钮用来确定是否添加用户;三个标签用来标示文本框的提示。 1.2.2修改密码窗体的创建 在系统管理模块下,进入修改密码窗体,用户可根据需要修改自己的密码。 在这个窗体中放置了两个文本框,用来输入密码和确认密码;两个按钮用来确定是否修改密码;两个标签用来标示文本框的内容。 1.3学籍管理模块 1.3.1添加学籍信息功能 选择主窗体中学籍管理模块下的添加学籍信息,就可进入添加学籍信息的窗体,在该窗体中我们可以对学生的学号、姓名、性别、出生日期、班号等学生的信息进行添加。设计时我尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,当输入的信息满足这些边界条件时,将会弹出一个提示框提醒用户,以便用户能及时地做出修改。添加的信息将全部存储到数据库中。 在窗体上放置多个文本框和下拉式文本框,用来输入学籍信息;两个按钮用来确定是否输入学籍信息;一个按钮用来退出窗体;多个标签用来提示文本框中需要输入的内容。 1.3.2修改学籍信息功能 点击学籍管理模块下的修改学籍信息,就进入修改学籍信息的窗体,在该窗体中我们可以对面添加的学籍信息进行修改。由于用户的需求不同,有的是要对学生的信息做个别的改动,有的是需要删除该条记录,所以该窗体同时包括了修改记录的功能和删除记录的功能。又考虑到用户的误操作,为了方便,我在该窗体中增添了取消修改的功能,可一次性把输入文本框的内容全部置空。 1.3.3查询学籍信息功能 进入学籍管理模块下的查询学籍信息窗体,在该窗体中可以对学生的信息进行查询,有三种查询方式。我在设计时,一方面考虑到简洁的因素,用户可以只设置一种查询方式进行查询;另一方面又为了避免数据的重复,用户可以输入详细的信息,也就是同时设置多种查询方式进行查询。进入查询窗体时,myflexgrid中会显示出所有学生的学籍信息,如果不设置查询方式就进行查询,是无效查询,系统会给出提示。在设置好查询方式后,便开始查询,将在myflexgrid中显示出用户所需的学生的学籍信息。 1.4课程管理模块 1.4.1课程信息浏览功能 点击主窗体中课程管理模块下的课程信息浏览,可进入课程信息浏览窗体。为了用户的使用方便,我使用了SSTab控件,故在该窗体中同时包含了课程信息的添加和修改的功能。并且我还在窗体上设置了myflexgrid控件。添加和修改记录后,对于数据有何变化都可以在myflexgrid中显示出来,使用户对所做的操作一目了然。 1.4.2年级课程设置功能 进入课程管理模块下的年级课程设置窗体,可以对每一个年级的课程进行设置。 1.5成绩管理模块 1.5.1成绩信息管理功能 点击成绩管理模块下的成绩信息浏览,进入成绩信息浏览窗体,考虑到美观和实用性,界面设置如下图。用Frame控件在窗体中划定一个可浏览成绩信息地方,再在Frame中添加MSFlexGrid控件,运行时将在MSFlexGrid中显示所有学生的成绩信息。使用Toolbar来建立工具条。点击工具条中的修改、添加和查询按钮就可分别进入修改成绩信息窗体、添加成绩信息窗体和查询成绩信息窗体。这三个窗体的界面设置分别类似于学籍管理下修改学籍信息窗体、添加学籍信息窗体和查询学籍信息窗体。 1.6其它 操作人员在遇到困难时即可进入帮助菜单寻求帮助。帮助菜单下的“使用说明”将解答你的疑问。帮助菜单下的“关于”详细地列出了关于作者的一些情况,关于版权的一些情况和关于系统的一些情况。进入打印菜单栏,可对你所需要的信息进行打印。 二 系统后期工程 在开发这个软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,在本次设计过程中,我采用循环测试法,力求在每个阶段结束之通过严格技术审查,即每完成一个功能,就进行测试,尽可能早的发现并纠正差错,完成模块测试之后再进行系统测试。 在该设计中,我偏重考虑了当用户输入的信息出错时,系统就会出现提示,以便让用户知道出错的原因,并能及时做出修改,所以我站在用户的角度考虑,尽可能设想各种边界条件,如记录为空,输入为空,输入出错等,以此来发现错误,纠正错误,取得了一定的效果。 当然,该学生信息管理系统也存在一些不足之处。在成绩管理界面,当3次改变成绩为不同的内容时,程序会出错。虽然尝试了很多方法,仍不能解决。再一点就是关于打印和年级课程信息设置都未能实现,这有待于以后的进一步提高。 一个应用系统性能的优劣,效率的高低始终应当由用户来做出判决,应用系统在运行过程中,用户会提出一些新的需求和建议,我就会根据用户需求的变化,对本系统做出一定的修改,使其进一步地得到完善和提高。 1. 概述 1.1. 目的 为了彻底解决了长期困扰教学信息化工作当中安全性、可靠性的问题;为了使管理人员可以随时看到更新的数据,极大地提高信息传递的速度;为了管理者再也不必为聘用专门的操作人员来给众多教师编辑学生成绩资料而殚精竭虑,在此,设计了学生课程成绩查询管理信息系统,使得各个使用者在操作上,从此变得那么从容简单,省时又省心。 1.2. 参考文档 [1] 张海藩.软件工程导论[M].第4版.北京:清华大学出版社.2007.25-63. [2] 赵洋,张丽,王恩东,李玉红.基于B/S结构学生成绩管理系统设计与实现[J].沈阳化工学院学报.2007,21(2).140-142. [3] 游应德.基于Intemet的学生信息管理系统—学生成绩管理系统[D].电子科技大学.成都:电子科技大学,2007. [4]郑若忠,王鸿武.数据库原理与方法.湖南科学技术出版社.  2. 总体结构设计 2.1. 层次图 2.2结构图 2.3 功能设计 学生成绩单录入部分可以对某一个学生进行成绩录入,但是一次只能录入一条成绩记录,同时可对缺考、免考、补考学生成绩进行录入。 学生成绩显示/修改部分可以对已录入的成绩进行显示和修改,但是只能对系统默认的当学期的记录进行修改。 学生成绩显示/删除部分可以对已录入的成绩进行显示和删除,但是也只能对系统默认的当学期的记录进行删除。 2.3. 运行环境设计 2.3.1. 硬件设计 1.服务器: CPU:P4 2.0G以上 内存:512M 硬盘:60G以上 网络:100M /1000M Ethenet 2.客户机: CPU:500Mz 内存:64M以上 硬盘:1G以上 网络:10M Ethenet 2.3.2. 软件设计 1.服务器: 操作系统:Windows 2000/XP/2003 WEB服务:IIS5.0 数据库:SQL Server 2000(建议打Service Pack 3补丁) 2.客户机: 操作系统:Windows系列之一 浏览器:IE6.0以上版本 2.3.3.网络设计 采用sql server2000网络关系型数据库,存储读取数据将同步进行。 3.详细设计 用判定树表示教师端模块 4. 数据结构设计 4.1. 数据分析 第一层:基础数据及基础数据库分析 此类报表主要反映学校教师、学生和课程等的资料情况。 此类报表是将系统中较为常用的学生、教师和课程等基础资料以报表的形式予以反映。 在本层需要设计三个主表,分别用来存储学生资料、教师资料和课程资料。 第二层:业务流程数据及业务流程数据库分析 在编辑此类表单时,可以点击相应的下拉按钮,这时所有的选项资料都会显 来,您可以根据实际情况来编制表单,使整个过程更加清晰,操作更加简便。 在本层需要设计一个学生成绩主表,用来存储学生的平时成绩表。 4.2. 数据库设计 4.2.1. 设计原则 1.密码管理:学生修改学生查询密码;教师可以修改查询密码。 2.每个教师可以查看所有学生的成绩,包括每门课程的成绩、每门课程的平均成绩、每个分数段的成绩。 3.学生根据自己的学号查询本人的成绩。 4.教师可以登记、修改、查询自己所讲授课程的学生的成绩、该课程的总分、平均成绩、各分数段成绩人数统计、不及格学生的名单、成绩等等。 4.2.2. 数据库组成 数据表3个: 学生表(5个字段: xh, xm, xb, csrq, bj),其中有各班学生的记录 课程表(4个字段:kch,kcm, js, xf),其中有课程的记录; 成绩表(3个字段:xh, kch, cj),其中有学生成绩的记录。 学生基本信息表(Student)描述如下: 学生期末成绩表(Grade)描述如下: 学生的课程管理(Course)描述如下: 4.2.3. 面向对象数据库设计方法 1)考虑对象的静态和动态属性 对象属性决定了数据库或包含具有相同类型对象的表的内容。 2)描述数据实体及其属性 包含所有静态属性的单个对象被称作数据实体。每个单独的数据实体必须唯一,这样可以与其他实体区分。包含在数据实体中的对象的性质被称作为属性。(attribute) 3)用方法来说明对象的行为 关系数据库对象的行为决定了数据对象参与事务的特征。事务的发生对应着事件,通过使用响应事件的方法来实现事务。 4)在单个表中合并不同实体 可以在单个表中包含不同对象类型的说明,只要可以按照相同方式描述属性和行为,以及区分不同对象类型即可。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧