欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    成绩管理系统.docx

    • 资源ID:3525551       资源大小:44.42KB        全文页数:23页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    成绩管理系统.docx

    成绩管理系统1.2 系统功能需求 .管理员 (1).添加教师名单; (2).查询教师名单; (3).修改教师信息; (4).删除教师名单; (5).添加学生名单; (6).查询学生名单; (7).修改学生信息; (8).删除学生名单; (9).统计生源地信息; (10).修改密码; .教师 (1).查看个人信息; (2).查看每门课程平均成绩统计; (3).输入学生成绩, 自动生成该学生已修总学分; (4).查看任课信息; (5).查看学生成绩名次; (6).修改密码; .学生 (1).查看个人信息; (2).查看自己的课表; (3).查看不同班级的开课情况; (4).查询考试成绩; (5).修改密码; 1.3 其他性能需求 (1).用户输入出错时,有错误提示。 (2).给管理员,教师,学生不同的权限,提高数据安全性; (3).创建触发器,存储过程,防止数据不一致; 2、概念结构设计 3、逻辑结构设计 .教师jn .上课jn班级编号jn .授课jn .课程jn .学习jn课程编号jn .学生jn .开设jn课程编号jn,班级编号jn .班级jn .专业jn .学生账号jn(学生编号jn,学生密码jn)学生编号jn .教师账号jn(教师编号jn, 教师密码jn) 教师编号jn .管理员账号jn(管理员编号jn, 管理员密码jn) 管理员编号jn 3.2 数据类型定义 (1).教师jn 数据项名 数据类型 长度 完整性约束 备注 教师编号jn char 20 主键,唯一,非空 教师姓名jn char 20 教师性别jn char 2 教师年龄jn char 20 职称jn char 10 联系电话jn char 20 (2).上课jn 数据项名 数据类型 长度 完整性约束 备注 教师编号jn char 20 主键,唯一,非空,外键 教师编号,班级编号都是外键 班级编号jn char 20 外键 (3).授课jn 数据项名 数据类型 长度 完整性约束 备注 教师编号jn char 20 主键,唯一,非空 教师编号 课程编号jn char 20 外键 课程编号 (4).课程jn 数据项名 数据类型 长度 完整性约束 备注 课程编号jn char 20 主键,唯一,非空 课程名jn char 20 教师姓名jn char 20 开课时间jn char 20 学时jn int 10 >0 考试或考查jn char 4 学分jn int 4 >0 (5).学习jn 数据项名 数据类型 长度 完整性约束 备注 学生学号jn char 20 主键,唯一,非空 课程编号jn char 20 外键 学期jn char 10 放入教师姓名为了减少与教师表格的自然连接 课程名称jn char 20 成绩jn int 10 教师姓名 char 20 (6).学生jn 数据项名 数据类型 长度 完整性约束 备注 学生学号jn char 12 主键,唯一,非空 学生姓名jn char 10 学生性别jn char 2 学生年龄jn int 4 已修学分总数用触发器实现自动统计功能 生源所在地jn char 20 已修学分总数jn int 4 班级编号jn char 10 外键 (7).开设jn 数据项名 数据类型 长度 完整性约束 备注 课程编号jn char 20 联合主键,唯一,非空 班级编号jn char 20 班级jn 数据项名 数据类型 长度 完整性约束 备注 班级编号jn char 20 主键,唯一,非空 班级名称jn char 20 专业编号jn char 20 外键 (9).专业jn 数据项名 数据类型 长度 完整性约束 备注 专业编号jn char 20 主键,唯一,非空 专业名称jn char 20 (10).学生账号jn 数据项名 数据类型 长度 完整性约束 备注 学生编号jn char 20 主键,唯一,非空 学生密码jn char 20 (11).教师账号jn 数据项名 数据类型 长度 完整性约束 备注 教师编号jn char 20 主键,唯一,非空 教师密码jn char 20 (12).管理员账号jn 数据项名 数据类型 长度 完整性约束 备注 管理员编号jn char 20 主键,唯一,非空 管理员密码jn char 20 3.3 关系模式的优化 对关系模式进行规范化处理,对关系模式进行评价与修正。 4、物理结构设计 4.1 聚簇设计 该高校成绩管理系统数据库可建立聚簇: .教师jn(教师编号jn); .课程jn(课程编号jn); .学生jn(学生学号jn,班级编号jn); .jn(班级编号jn); 这几个聚簇设计是因为这几张表都是实体表,且聚簇中的属性都是主键或是外键,被访问的概率很高,而其他表或者这些表上的其他属性被访问的概率就相对较低。 4.2 索引设计 索引就是表中数据和相应存储位置的列表,使用索引可以大大减少数据的查询时间。 对于一个确定的关系,通常在下列情况下可以考虑建立索引。 .在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一性检查和完整性检查,而且可以加快连接查询的速度。 .以查询为主的关系可建立尽可能多的索引。 .对等值连接,但满足条件的元组较少的查询可以考虑建立索引。 .如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建立索引。 该高校成绩管理系统数据库可建立以下索引: .教师jn(教师编号jn); .课程jn(课程编号jn); .学生jn(学生学号jn,班级编号jn); .班级jn(班级编号jn); .学习jn(学号jn,课程编号jn); 4.3 分区设计 涉及到数据库文件和日志文件的分区问题。 磁盘分区设计的一般原则: .减少访问冲突,提高I/O并发性。多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。 .分散热点数据,均衡I/O负担。在数据库中数据访问的频率是不均匀的,那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。 .保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。 该成绩管理系统由于程序较小,所以不进行分区设计。 5、数据库实施 建立数据库D01jiangnan 5.1 基本表建立 教师jn SQL语句为: CREATE TABLE 教师jn ( 教师编号jn CHAR(20) PRIMARY KEY, 教师姓名jn CHAR(10), 教师性别jn CHAR(2), 教师年龄hn INT, 职称jn CHAR(20), 联系电话jn CHAR(10), ); SQL执行结果截图: 专业jn SQL语句为: CREATE TABLE 专业jn ( 专业编号jn CHAR(20) PRIMARY KEY, 专业名称jn CHAR(20), ); SQL执行结果截图: 班级jn SQL语句为: CREATE TABLE 班级jn ( 班级编号jn CHAR(20) PRIMARY KEY, 班级名称jn CHAR(20), 专业编号jn CHAR(20) constraint Major_Class foreign key(专业编号jn) references 专业jn ); SQL执行结果截图: 课程jn SQL语句为: CREATE TABLE 课程jn ( 课程编号jn CHAR(20) PRIMARY KEY, 课程名jn CHAR(20), 教师姓名jn CHAR(10), 学时jn INT, 考试或考查jn CHAR(4), 学分jn CHAR(4) ) SQL执行结果截图: 学生jn SQL语句为: CREATE TABLE 学生jn ( 学生学号jn CHAR(20) PRIMARY KEY, 学生姓名jn CHAR(10), 学生性别jn CHAR(2), 学生年龄jn int, 生源所在地jn char(20), 已修学分总数jn int, 班级编号jn CHAR(20) constraint Class_Student foreign key(班级编号jn) references 班级jn ) SQL执行结果截图: 上课jn SQL语句为: CREATE TABLE 上课jn ( 教师编号jn CHAR(20) , 班级编号jn CHAR(20) , PRIMARY KEY(教师编号jn,班级编号jn), CONSTRAINT Class_Teach1 FOREIGN KEY(教师编号jn) REFERENCES 教师jn, CONSTRAINT Class_Teach2 FOREIGN KEY(班级编号jn) REFERENCES 班级jn, ) SQL执行结果截图: 授课jn SQL语句为: CREATE TABLE 授课jn ( 教师编号jn CHAR(20) PRIMARY KEY, 课程编号jn CHAR(20), CONSTRAINT Course_Instruct FOREIGN KEY(课程编号jn) REFERENCES 课程jn CONSTRAINT Course_Instruct2 FOREIGN KEY(教师编号jn) REFERENCES 教师jn ) SQL执行结果截图: 学习jn SQL语句为: CREATE TABLE 学习jn ( 学生学号jn CHAR(20) , 课程编号jn CHAR(20), 学期jn char(10), 课程名称jn char(20), 成绩jn int, 教师姓名jn char(20), primary key(学生学号jn,课程编号jn), CONSTRAINT Course_Study FOREIGN KEY(课程编号jn) REFERENCES 课程jn ) SQL执行结果截图: 开设jn SQL语句为: CREATE TABLE 开设jn ( 课程编号jn CHAR(20) , 班级编号jn char(20), primary key(课程编号jn,班级编号jn), CONSTRAINT Class_Setup FOREIGN KEY(班级编号jn) REFERENCES 班级jn ) SQL执行结果截图: 5.2 数据输入 .班级 .教师 .开设 .课程 .上课 .授课 .学生 .专业 .学习 .管理员帐号 .教师账号 .学生账号 5.3视图的建立 学生成绩统计 create view 学生成绩统计jn as select 学习jn.学生学号jn,学生姓名jn,学习jn.课程名称jn, 班级名称jn,学习jn.教师姓名jn,学分jn,课程jn.学期jn,成绩jn from 学生jn, 课程jn, 班级jn,学习jn where 学生jn.学生学号jn = 学习jn.学生学号jn AND 学习jn.课程编号jn = 课程jn.课程编号jn AND 班级jn.班级编号jn = 学生jn.班级编号jn 每门课程平均成绩统计 create view 每门课程平均成绩jn as select avg(成绩jn) 平均成绩jn,课程编号jn from 学习jn group by 课程编号jn 学生所学课程及学分统计 create view 学生所学课程及学分统计jn as select 学生学号jn, 课程名称jn, 学分jn from 学生成绩统计jn 教师任课查询 create view 教师任课查询jn as select 教师jn.教师编号jn, 课程jn.教师姓名jn, 课程jn.课程编号jn, 课程名jn, 学时jn, 学分jn from 教师jn, 课程jn,授课jn where 授课jn.课程编号jn=课程jn.课程编号jn and 授课jn.教师编号jn=教师jn.教师编号jn 班级课程开设查询 create view 班级课程开设查询jn as select 班级jn.班级编号jn, 班级jn.班级名称jn, 课程jn.课程编号jn, 课程名jn, 学时jn,学分jn from 班级jn, 课程jn,开设jn where 班级jn.班级编号jn = 开设jn.班级编号jn AND 开设jn.课程编号jn = 课程jn.课程编号jn (6)地区学生数统计 create view 地区学生数统计jn as select 生源所在地jn,count(学生学号jn) 地区学生总数jn from 学生jn group by 生源所在地jn 5.4 索引的建立 下面根据4.2来建立索引: 1. 教师编号jn: create unique index UI_教师编号jn on 教师jn(教师编号jn) 1. 专业编号jn: create unique index UI_专业编号jn on 专业jn(专业编号jn) 1. 班级编号jn,专业编号jn: create unique index UI_班级及专业jn on 班级jn(班级编号jn,专业编号jn) 2. 课程编号jn: create unique index UI_课程编号jn on 课程jn(课程编号jn) 1. 学生学号jn,班级编号jn: create unique index UI_学号及班级号jn on 学生jn(学生学号jn,班级编号jn) 1. 学生学号jn,课程编号jn: create unique index UI_学号及课课程号jn on 学习jn(学生学号jn,课程编号jn) 5.5 触发器建立 当删除"教师jn"中的'教师编号jn'记录时,需要相应地删除"授课jn"和"上课jn"里的"教师编号jn",所以在"教师jn"上建立触发器 sql语句: create trigger TR_DELETE_教师编号jn ON 教师jn instead of delete as delete from 授课jn from deleted where 授课jn.教师编号jn = deleted.教师编号jn delete from 上课jn from deleted where 上课jn.教师编号jn = deleted.教师编号jn delete from 教师jn from deleted where 教师jn.教师编号jn=deleted.教师编号jn sql执行结果: 当更新"教师jn"中的"教师编号jn"记录时,需要相应地更新"授课jn"和"上课jn"里的"教师编号jn",所以在"教师jn"上建立触发器 sql语句为: create trigger TR_UD_教师编号jn ON 教师jn for update as if update (教师编号jn) begin update 授课jn set 教师编号jn = Ins.教师编号jn from deleted De,inserted Ins ,授课jn K where k.教师编号jn=De.教师编号jn end begin update 上课jn set 教师编号jn = Ins.教师编号jn from deleted De,inserted Ins ,上课jn K where K.教师编号jn=De.教师编号jn end sql语句执行结果: 5.6存储过程建立 建立一个输入成绩,自动生成其总学分的存储过程 sql语句如下: create procedure PRO_输入成绩自动生成学分jn 学生学号jn char(20), 课程编号jn char(20), 课程名jn char(20), 学期jn char(20), 成绩jn int, 教师姓名jn char(20) as begin update 学生jn set 学生jn.已修学分总数jn =学生jn.已修学分总数jn +(select 学分jn from 课程jn where 课程编号jn=课程编号jn ) where 学生jn.学生学号jn=学生学号jn end Sql执行结果如下: 6.系统简介 1.登陆界面 图6.1 用户进入系统首先看到这个界面 2.登入异常 图6.2没有选择用户类型 图6.3没有填写用户名或密码 图6.4 数据库中不存在相应账号 3.进入学生界面 图6.5 首先跳出一个欢迎界面 图6.6 出现一个学生信息管理界面 4.学生管理-个人信息 图6.7 按'学生信息管理界面'上的'个人信息',出现该界面 5学生管理-课程查询 图6.8 按'学生信息管理界面'上的'课程查询',出现该界面 6学生管理-班级开课 图6.9 按'学生信息管理界面'上的'班级开课',出现该界面,通过选择班级编号能查询不同班开设的课程 7学生管理-成绩查询 图6.10按'学生信息管理界面'上的'成绩查询',出现该界面,通过选择学年能查询不同学期课程成绩 8. 学生管理-修改密码 图6.11按'学生信息管理界面'上的'修改密码',出现该界面. 图6.12 修改密码成功 图6.13 修改密码失败,密码不一致 图6.14 修改密码失败,旧密码错误 9. 学生管理-注销 图6.15返回登陆界面 10.教师登陆 图6.16 登陆成功,出现欢迎界面 图6.17教师信息管理界面 11.教师管理-个人信息 图6.18 教师个人信息 12教师管理-任课查询 图6.19 通过选择不同的学年能显示教师任课信息 13.教师管理-查询自己教授不同课程的平均成绩 图6.20 查询自己教授不同课程的平均成绩,教师不能查询别的教师的课程平均成绩 14.教师管理-成绩排名 图6.21 查询自己教授不同课程的学生排名,教师不能查询别的教师的课程 15教师管理-输入学生成绩 图6.22 教师只能添加自己教授的课程的学生成绩 16教师管理-修改密码,注销(与学生管理相同) 17.管理员登陆 图6.23 出现欢迎界面 图6.24 出现管理员维护界面 18.管理员维护-管理教师信息 图6.25 支持查询所有教师,添加教师,修改教师信息,删除教师等功能. 19. 管理员维护-管理学生信息 图6.26 支持查询所有学生,添加学生,修改学生信息,删除学生等功能. 20. 管理员维护-生源地统计 图6.26 查询学生源地信息 7. 实验总结 7.1 遇到的问题和解决的办法 ER图,基本表设计问题. 开始的时候什么都不懂,上课学过的东西虽然朦朦胧胧有些听懂了,不知道如何使用。开始建E-R图的时候,先建好了教师,学生,班级的属性集,但是如何将他们结合起来,却是个大问题.后来与同学交流想明白,教师负责给班级授课,一个教师课上多门课程,一个班级可以选很多课,教师给学生打分时通过课程编号,班级编号,学号来选确定。 另外加了三张表负责记录登陆时的账号和密码,为什么不把密码这一项加入学生,教师,管理员中呢? 因为个人觉得密码一项和别的信息联系很少,独立出来更易管理。但是建的基本表越多,冗余和异常就越容易出现。 SQL视图设计问题。 首先,刚开始写软件是一直是直接连接基本表,以为视图不会用到。但后来要实现复杂功能时,才意识到要用视图来实现,于是后期才实现视图。 其次,我在设计基本表的时候,为了顾及信息的详细和全面,设计了12张基本表,为后面的设计带来了很大的麻烦。设计视图的时候,因为有很多信息的交叉,还有很多外键,需要很多自然连接 ,非常繁琐。 触发器和存储过程设计问题。 表示触发器和存储过程上课没怎么讲,自己觉得很高深,一直不敢去动这一方面的设计。后来因为管理员删除教师时,必须要删除关联的'授课表','上课表',还有教师输入某个同学成绩时,要同时修改'学生表'中的'已修学分总数'。才开始接触这一方面。但是语法还是理解了好久。 由于前期理解问题,随便写了一个触发器,导致管理员无法正常删除教师,在同学细心指导下,重新写了一个trigger,测试通过。 触发器:触发器是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。触发器可以从 DBA_TRIGGERS USER_TRIGGERS 数据字典中查到。 存储过程:存储过程是一组为了完成特定功能的SQL语句集,是利用SQL Server所提供的Transact-SQL语言所编写的程序。经编译后存储在数据库中。存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数来执行它。存储过程是由流控制和SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量。同时,存储过程可以接收和输出参数、返回执行存储过程的状态值,也可以嵌套调用。 用NETBENS设计软件。 其实刚开始比较偏爱Eclipse,因为它挑错能力很强,还可以利用快捷键实现代码自动生成。选择NETBEANS是因为同学推荐,支持可视界面设计,自动生成相应代码.显然相比于用代码将组件一个一个的add进panel,这会大大缩短设计时间,但是这些auto-generated-code,冗余度很大,举个例子 javax.swing.JButton;java.awt.event.ActionListener.而这些自动生成的代码不允许用户修改。由于很纠结这一点,于是把代码复制到Eclipse下,自己手动修改这些代码,但是很烦,每改一次界面设计,NetBeans就会重构代码,意味着前面白改了,后来就放弃这种吃力的方法。 虽然不需要敲很多代码,但是为了让界面布局合理花了好多时间去调组件参数,有时候修改一个组件的参数,相邻的组件都会改变,很复杂。 实现对jButton,jComboBox的事件监听很方便,只要求把逻辑调对就可以了。 数据库与NetBeans连接问题. 其实前期一直以为连接数据库很烦,后来在同学指导下学会如何接.Netbeans 对数据库支持很好,在netbeans的IDE可以像SQL Server一样登陆数据库D01jiangnan,查看基本表,视图,能实现select,update,delete语句.还有需要配置软件编译时的库文件,必须要把sqljdbc4.jar放到编译库中去.还有连接数据库有两种方式:jdbc或者jtds. sql语句撰写问题。 在调试软件的时候,很多时候都是sql语句写错了,但因为sql类型是String,编译时查不出来,需要运行相关代码时才会报错。 (7)体会 通过这次大型实验,真的让我学到了很多东西。以前上课时感觉都听懂的东西,放到实践中来一用,发现都不会,还得细细得找资料、问问题。在大型实验不断进行下去的途中,发现自己在每天学习着新的知识,这样的感觉很好。我发现人的求知欲一旦被激发,就会使人有源源不断的动力去做成这件事情。当然,在大型试验进行中也遇到了各种各样的问题,做事情一定要保持耐心,特别像做科研搞项目的,可能一开始拿到手的东西是你根本无法去下手的,但是你一步步的做下去,会发现其实还是可以步步跟进的,而且在层层推进的过程中,你会体验到成功的快乐。 7.2 系统设计的不足 数据库中数据量太少。 在进行数据设计的时候,只考虑了几个最简单的数据输入,可能只能用于应付作业,并不能用于实际。 界面比较丑,对于netbean使用比较生疏.而且逻辑上存在问题,修改比较繁琐.

    注意事项

    本文(成绩管理系统.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开