ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:2.45MB ,
资源ID:22367606      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22367606.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统Word文档格式.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统Word文档格式.docx

1、1、所用的数据库是:sQlite2、开发的环境是:QT4二、 需求分析2.1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。 容易地完成学生信息的查询操作。(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。2.2 系统模块设计成绩管理系统大体可以分成二大模块如, 一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块, 在该模块中应该包含有对学生成绩信息的查

2、询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信息的模块;可以得到系统流程图:2.3 数据字典 数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。利用SQlite建立“学生选课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:数据库表名关系模式名称备注Student学生学生学籍信息表Course课程课程基本信息表Score成绩选课成绩信息表Student基本情况数据表,结构如下:字段名字段类型Not Null说明Student _snoCharPrimary key学号Student _

3、snchar学生姓名Student _sex男或女性别Student _dept系别Student_age年龄Student_address地址course数据表,结构如下:约束控制course_cno主键(primary key)课程号course_cnamenot null课程名称course_hourint课时course_scorenumeric(2,1)学分score情况数据表,结构如下:主键,外部键student_snoscoreNot null三、 概念模型设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,籍贯,年龄,专业。(2)课程基本信息:

4、 课程名,课程号,分数,学时,学分。 这些实体间的联系包括:(1)每位学生可以学习多门课程,每门课程可供多位学生学习。由上述分析可得到系统的ER图四 、逻辑和物理结构设计4.1由系统ER图转化而得到的关系模式如下:(1)学生(学号,姓名,性别,年龄,地址,系别),其主关键字为学号;(2)课程(课程名,课程号,学时,学分),其中主关键字为课程号;(3)成绩(课程号,学号,分数)其中主关键字为学号和课程号。可以与学生关系模式合并为:学生(学号,姓名,性别,年龄,地址,系别,成绩,课程号)。4.2 确定关系模型的存取方法在将概念模型转换成物理模型之后,我们可以对物理模型进行设计,双击物理模型的关系,

5、可以对该关系的名称、注释等信息进行查询。可对该关系的属性列进行设计,可分别设置其名称、码、数据类型以及主码、是否为空等。在实际设计中最常用的存取方法是索引发,使用索引可以大大减少数据的查询时间,在建立索引时应遵循:在经常需要搜索的列上建立索引; 在主关键字上建立索引;在经常用于连接的列上建立索引,即在外键上建立索引;在经常需要根据范围进行搜索的列上创建索引,因为索引已经排序,其指定的范围是连续的等规则。才能充分利用索引的作用避免因索引引起的负面作用。4.3 确定数据库的存储结构确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结构,以及确定

6、系统存储参数的配置。因为该成绩管理系统的数据量小,所以我们只用把数据存储在使用的电脑硬盘上,不用作更多的安排。(1)创建学生基本信息表:create table Student ( 学号 varchar(11) not null, 系别 varchar(5) not null, 姓名 varchar(6) not null, 性别 varchar(2) not null, 年龄 char(2) not null, 地址 varchar(20) not null, constraint PK_STUDENT primary key (学号)goexecute sp_addextendedprop

7、erty MS_Description, 学生基本信息描述,user, tableStudentsInfo(2)创建课程表:create table Course ( cno varchar(5) not null, cname varchar(10) null, xueshi smallint null, xuefen int null, constraint PK_COURSE primary key (课程号)(3)创建学生与课程的成绩表create table SC ( sno varchar(11) not null,cno varchar(5) not null,chengji v

8、archar(4) not null constraint PK_SC primary key (学号, 课程号)在SC表上创建索引SC_FK与SC2_FKcreate index SC_FK on SC (学号 ASC)Gocreate index SC2_FK on SC (课程号 ASC)建立课程号索引create index TC_FK on TC (课程号 ASC五、系统实现5.1、系统的模块层次结构5.2、用户登录模块5.2.1、用户登录界面5.2.2、用户登录的具体分析:当用户填写正确的的用户和密码是就进入选择模块。以下是按登录时实现的代码。5.3、学生基本信息模块5.3.1、学

9、生个人基本信息的界面。5.3. 2、学生基本信息的查找具体实现。void Studentxxb:on_pushButton_clicked() QString studentno = ui-lineEdit-text(); model-setFilter(QObject:tr(sno = %1).arg(studentno); /根据学号进行筛选select(); /显示结果 ui-clear();setFocus();这里面主要运用到:QT4里面提供API函数来实现的。如上:5.3. 3、学生基本信息的添加具体实现。on_pushButton_4_clicked() int rowNum =

10、 model-rowCount(); /获得表的行数 int id = 10;insertRow(rowNum); /添加一行setData(model-index(rowNum,0),id);5.3. 4、学生基本信息的排序具体实现。这里面主要是通过点击构件(tableView)的水平标题来选择那一列进行排序的。当点击的时候就会产生一个信号会连接排序的函数的信号。如;sortByColumn(int)就是排序的函数。5.3. 5、学生基本信息的删除具体实现。/删除on_pushButton_8_clicked() int curRow = ui-tableView-currentIndex(

11、).row(); /获取选中的行removeRow(curRow);/删除该行 int ok = QMessageBox:warning(this,tr(删除当前行!),tr(你确定删除当前行吗?), QMessageBox:Yes,QMessageBox:No); if(ok = QMessageBox:No) revertAll(); /如果不删除,则撤销 else model-submitAll(); /否则提交,在数据库中删除该行这里面的删除工作也是主要用到QT的API函数来实现的。5.4、课程基本信息模块5.4.1、课程基本信息的界面5.4.2、课程基本信息添加具体实现。5.4.3、

12、课程基本信息删除具体实现。5.4.4、课程基本信息排序具体实现。5.4.5、课程基本信息查找具体实现。以上的添加,删除,排序,查找的具体实现,方法与在学生基本信息的添加,删除,排序,查找都一样的。5.5.1、成绩基本信息的界面图5.5.1(成绩基本信息的界面)5.5.2、成绩基本信息的添加、删除、排序。分析 :成绩基本信息的添加、删除、排序用的法与学生基本信息的添加、删除、排序的都一样。5.5.3、成绩基本信息的查找。(查找的操作界面)可以在如上图5.5.1的右边所显示的表格中的姓名,学号进行查找。/这是查找void score:on_pushButtonFind_clicked() QStr

13、ing country; else if(ui-radioButtonsno-isChecked()/根据学号进行筛选sno= else if(ui-radioButtonsname-isChecked()/根据姓名进行筛选 QSqlQuery query; query.exec(QObject:select sno from student where sname= query.next(); country= query.value(0).toString() ;).arg(country);5.5.3、每个同学的总分和平均分。代码实现如下:界面如下所示:5.5.4、各班的总分和下平均分。

14、代码和操作的界面如下:/-计算各班的总成绩,平均成绩,按各班平均成绩进行排序on_pushButtoClassSumAvg_clicked() QSqlQuery qurery1; qurery1.exec(drop view if exists classAvgSum); create view classAvgSum as select student.major as 班级,sum(degree) as 总分 ,avg(degree) as 平均分 from score1,student where student.major in (select major from student

15、) and student.sno=score1.sno group by student.major order by 平均分 descsetTable(classAvgSum5.5.5、所有学生的各科平均分。代码和操作后显示界面如下:/-所有学生单科平均成绩on_pushButtonViewall_2_clicked() QSqlQuery qurery2; qurery2.exec(drop view if exists Allavg create view Allavg as select ame as 科目 ,o as 科目编号, avg(degree)as 平均分 from sco

16、re1,course where o in(select o from score1 ) and o=o group by o model-Allavg5.5.6、总分最高的学生。/单科成绩最高的学生on_pushButtonViewall_4_clicked()QSqlQuery qurery3;qurery3.exec(drop view if exists danAllSum create view if not exists danAllSum as select ame as 科目 ,student.sname as 姓名,student.sno,H.highter as 分数 fr

17、om course,student,(select o as highcno, max(degree)as highter, sno from score1 group by o) as H where student.sno=H.sno and o=H.highcno hi5.5.7、单科成绩最高的学生。5.5.8、不及格的考生信息。/不及格的考生信息on_pushButtonViewall_5_clicked() QSqlQuery qurery4; qurery4.exec(drop view if exists failure create view failure as select

18、 student.* ,ame as 科目,degree as 成绩 from score1 ,student,course where score1.degree60 and student.sno=score1.sno and o=o failure5.5.9、学生获奖情况。/这是获奖情况 QSqlQuery qurery5; qurery5.exec(drop table if exists jlcreate table jl (姓名,班级平均分奖金) ;insert into jl () select student.sname,student.major,avg(degree) as

19、 avgdegree,10000元(特等奖) from score1,student where student.sno=score1.sno group by score1.sno order by avgdegree desc limit 0 , 18000元(一等奖) from score1,student where student.sno=score1.sno group by score1.sno order by avgdegree desc limit 1 , 15000元(二等奖) group by score1.sno order by avgdegree desc lim

20、it 2 , 3)2000元(三等奖) group by score1.sno order by avgdegree desc limit 5 , 5jl 问题1:通过一个接口去用姓名或学号对在构件(tableview)中显示的数据进行查找。注意在tableView构件中显示的内容可以不同在表的切换。怎样实现呢?答:可以利用QT4的API函数来实现的。因为可以通过 /根据学号进行筛选.如果是通过姓名查找,首先在学生的信息表中通过姓名来查找相对应的学号,再用上面方法来查找。心得:对于这个系统设计。最主要的是对数据库设计。数据库设计好就可以对后面的高级语言的设计和操作比较容易。还有要具有良好SQL语言的数据库。

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

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