数据库学生成绩管理系统
数据库-学生成绩管理系统
学生成绩管理系统课程设计设计报告题目:学生成绩管理系统数据库学号: 2014221119200100学生姓名: 张坤学号: 2014221119200138学生姓名: 张豪学号: 2014221119200057学生姓名: 王潜指导教师:王雷春提交时间: 2016/12/24目录第1章需求分析 (1)1.1 需求调查 (1)1.2 系统功能分析 (2)1.3 面对用户需求分析 (3)第2章数据库概念模型设计 (4)第3章逻辑结构设计 (4)3.1 类和对象向关系模式转换 (11)3.2 关系模式优化 (15)第4章数据库物理结构设计 (18)4.1 存取方法设计 (18)4.2 存储结构设计 (18)4.3 物理设计 (18)第5章数据库完整性设计 (22)5.1 主键及唯一性索引 (22)5.2 参照完整性设计 (22)5.3 Check约束 (22)5.4 Default约束 (23)5.5 触发器设计 (24)第6章数据库视图设计 (25)第7章数据库存储过程设计 (31)第8章权限设计 (36)总结 (37)参考文献: (37)教务管理系统后台数据库第1章需求分析1.1 需求调查通过对各个用户的调查,该学生成绩管理系统有如下需求:1)系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码,数据备份,数据还原,注销,系统开关等功能。
2)成绩管理:实现教师对学生选修课程打分,成绩审核,学生查看成绩。
3)信息维护:学生,管理员和老师以及课程的基本信息(包括学生学籍信息和学生所修课程信息,教师基本信息,课程基本信息,密码基本信息)查看以及修改。
4)选课:学生选择课程,老师选课。
5)查询:包括实现学生查询,老师查询。
学生查询包括自己的基本信息,自己的课程,课表,成绩等,老师查询包括查询自己的信息,自己所带课程的学生,自己的课表以及学生成绩等。
6)服务器配置:对它进行配置可以使得在其他电脑上也照常使用。
学生成绩管理系统数据库设计
学生成绩管理系统数据库设计一、需求分析学生成绩管理系统是一个重要的教育管理系统,它主要用于学生的成绩管理和统计。
该系统需要具有以下功能:1. 学生信息管理:包括学生的基本信息(如姓名、性别、年龄、身份证号码等)和学籍信息(如班级、学号、入学时间等)。
2. 课程信息管理:包括课程的基本信息(如课程名称、授课教师、上课时间等)和课程成绩录入。
3. 成绩查询与统计:可以按照班级或个人查询成绩,并进行成绩统计分析。
二、概念结构设计在需求分析的基础上,我们可以根据实际情况设计出该系统的概念结构模型。
该模型包括以下实体:1. 学生(Student):包括学生的基本信息和学籍信息。
2. 课程(Course):包括课程的基本信息。
3. 教师(Teacher):包括教师的基本信息。
4. 成绩(Score):包括每个学生在每门课程中所获得的成绩。
三、逻辑结构设计在概念结构模型确定后,我们需要将其转化为逻辑结构模型。
根据实际情况,我们可以设计出以下数据库表:1. 学生表(Student):包括学生的基本信息和学籍信息,如姓名、性别、年龄、身份证号码、班级、学号、入学时间等。
2. 课程表(Course):包括课程的基本信息,如课程名称、授课教师、上课时间等。
3. 教师表(Teacher):包括教师的基本信息,如姓名、性别、年龄等。
4. 成绩表(Score):包括每个学生在每门课程中所获得的成绩,如学号、课程名称、成绩等。
四、物理结构设计在逻辑结构模型确定后,我们需要将其转化为物理结构模型。
根据实际情况,我们可以设计出以下数据库表:1. 学生表(Student):包括学生的基本信息和学籍信息,如姓名(varchar(20))、性别(char(2))、年龄(int)、身份证号码(varchar(20))、班级(varchar(20))、学号(varchar(20))、入学时间(date)等。
其中,身份证号码和学号应该设为主键。
数据库课程设计--学生成绩管理系统
数据库课程设计--学生成绩管理系统一、引言学生成绩是教育领域中最重要的数据之一。
为了有效地管理和分析学生的成绩数据,学生成绩管理系统应运而生。
本文将介绍一个基于数据库的学生成绩管理系统的设计。
二、系统概述学生成绩管理系统主要功能包括学生信息管理、课程管理、成绩录入与查询等。
通过该系统,教师可以方便地管理学生成绩,学生可以随时查询个人成绩,而管理员可以对系统进行维护和权限管理。
三、数据库设计1. 实体-关系模型在学生成绩管理系统中,主要的实体包括学生、课程、教师和成绩。
它们之间的关系如下:- 学生与课程之间是多对多的关系,一个学生可以选修多门课程,一门课程也可以有多个学生参加。
- 学生与成绩之间是一对多的关系,一个学生可以有多个成绩记录,但一个成绩只能对应于一个学生。
- 课程与成绩之间是一对多的关系,一门课程可以有多个成绩记录,但一个成绩只属于一个课程。
2. 数据库表设计基于上述实体-关系模型,我们设计了以下数据库表:- 学生表(Student):包括学生编号、学生姓名、性别、年级等信息。
- 课程表(Course):包括课程编号、课程名称、学分等信息。
- 教师表(Teacher):包括教师编号、教师姓名、职称等信息。
- 成绩表(Score):包括学生编号、课程编号、成绩等信息。
四、系统功能设计1. 学生信息管理教师和管理员可以对学生信息进行增、删、改和查操作。
包括学生的基本信息和选课情况等。
2. 课程管理教师和管理员可以对课程信息进行增、删、改和查操作。
包括课程的基本信息和授课教师等。
3. 成绩录入与查询教师可以根据课程和学生信息录入成绩,同时学生和管理员可以根据课程和学生信息查询成绩。
五、系统界面设计学生成绩管理系统应具有用户友好的界面,便于用户操作和信息浏览。
界面设计应符合人机工程学的原则,以实现良好的用户体验。
六、系统安全设计为了确保学生成绩的保密性和完整性,学生成绩管理系统应具备一定的安全措施。
数据库课程设计_学生成绩管理系统
1。
概述1.1 简单介绍本系统实现的内容该学生成绩管理系统,实现简单的密码修改、成绩查询、课程查询、学生查询等操作,并能实现简单的数据统计。
此系统主要完成用户密码登录、用户密码的修改、成绩查询、课程查询、学生查询、具体成绩查询等基本功能.(一)用户密码登录:在登录程序之前会先弹出一个登录对话框,在正确的输入了数据库中存储的用户和密码后才能登录程序.(二)用户密码的修改在成功登录了程序之后用户可以根据自己的需要修改当前密码.(三)成绩查询1。
成绩修改前选中要修改的成绩信息,然后进行修改。
2.成绩添加直接弹出添加对话框,然后进行添加。
3.成绩删除前选中要删除的成绩信息,然后直接删除。
(四) 课程查询1。
课程修改实现对课程名、学时、学分的修改。
2.课程添加对一门新开设的课程进行录入,并存入数据库。
3。
课程删除对一门不再开设的课程进行删除,并从数据库中删除。
(五)学生查询1。
学生信息修改修改选中当前学生的信息。
2。
学生信息添加增加新学生的信息。
3。
学生信息删除删除选中当前学生信息。
1。
2 开发环境简介1)Microsoft visual c++ 6。
0Visual C++是一个功能强大的可视化软件开发工具。
自1993年Microsoft公司推出Visual C++1。
0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具.Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。
Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具. 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。
2)Microsoft SQL Server 2000和与系统相关的SQL 语言介绍数据定义DDL(data definition language)数据定义语言是指对数据的格式和形态下定义的语言,他是每个数据库要建立时候时首先要面对的,举凡数据分哪些表格关系、表格内的有什么栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的.2。
学生成绩在线管理系统数据库课程设计mysql+java
学生成绩在线管理系统数据库课程设计mysql+java以下是一个学生成绩在线管理系统的数据库设计示例,使用MySQL数据库和Java 编程语言:1. 学生表(students)-学生ID(student_id):主键,自增-学生姓名(student_name):varchar类型,最大长度为50-学生年龄(student_age):整数类型-学生性别(student_gender):varchar类型,最大长度为10-学生班级(student_class):varchar类型,最大长度为502. 课程表(courses)-课程ID(course_id):主键,自增-课程名称(course_name):varchar类型,最大长度为503. 成绩表(scores)-成绩ID(score_id):主键,自增-学生ID(student_id):外键,关联到学生表的学生ID-课程ID(course_id):外键,关联到课程表的课程ID-分数(score):浮点数类型通过以上表的设计,你可以实现以下功能:-添加学生信息-添加课程信息-添加学生成绩-查询学生信息-查询课程信息-查询学生的成绩-更新学生信息-更新课程信息-更新学生成绩-删除学生信息-删除课程信息-删除学生成绩在Java中,你可以使用JDBC(Java Database Connectivity)来连接MySQL数据库并执行SQL语句来实现对数据库的操作。
你需要配置数据库连接信息,并编写相应的Java代码来执行查询和更新操作。
这只是一个简单的数据库设计示例,你可以根据你的具体需求进行调整和扩展。
数据库学生成绩管理系统ER图
系统需求分析:该学生成绩管理系统主要用于管理高校学生的考试成绩,提供学生成绩的录入、修改、查询、等各种功能。
成绩由各系的任课老师录入,或教务处人员统一录入。
学生成绩录入后由各系系秘书签字确认,只有教务处拥有对学生成绩的修改权限。
用户的具体需求分析:(1)教师:负责成绩的录入,能够在一定的权限内对学生的成绩进行查询,可以对自己的登录密码进行修改以及个人信息的修改等基本功能。
(2)系统管理员:与老师的功能相似(每个系都设有一管理员)另外管理员具有用户管理功能,能够对新上任的老师和新注册的学生行进添加,并能删除已经毕业和退休的老师。
用户分为管理员、教师用户、学生用户三类。
不论是管理员或教师用户,还是学生用户都需要通过用户名和口令进行登录。
用户名采用学生的学号和教师的教号,所以规定只能包括数字。
密码也只能是数字,用户只有正确填写用户名和密码才可以登入,进行下一步操作。
用户名被注销后,用户将不再拥有任何权限,并且从数据表中删除该用户的信息。
(3)学生:能够实现学生自己成绩和个人信息的查询、登录密码的修改等基本功能。
概念模型设计:由前面的系统需求分析得到实体主要有5个:教师、学生、管理员、课程、成绩。
学生有属性:学号、姓名、性别、系名、专业、出生日期教师有属性:教师号、姓名、性别、院系、联系电话管理员属性:用户名、密码课程有属性:课程号、课程名、学分、教师成绩有属性:学号、姓名、课程号、课程名、成绩、授课老师1)教师与课程之间的关系:教师与课程之间是1: n的关系,即一个老师只能教一门课程,一门课程可以由多个老师讲授。
(教师与学生E-R图)2)学生与教师之间的关系:学生与教师之间是n:m的关系,即一名老师可以教授多个学生,而一个学生可以由多个教师来教。
教师与学生的E-R图3)学生与课程之间的关系:学生与课程之间是n:m的关系,即一个学生可以选修多门课程,一门课程可以被多个学生选学。
学生与课程的E-R图4)学生与成绩之间的关系是n:m的关系:5)管理员与用户的关系:学生成绩管理全局E-R 图。
数据库课程设计学生成绩管理系统
可以进一步加强系统的 安全性设计,如增加用 户权限管理、数据备份 与恢复等功能,确保数 据的完整性和安全性。
THANKS
感谢观看
情况下的容错处理。
性能测试用例
设计针对不同用户数量和不同数据量 的测试用例,以验证系统的性能和稳
定性。
安全测试用例
设计针对系统安全性的测试用例,如 用户权限验证、数据加密传输等。
测试执行与结果分析
测试执行
按照测试计划和测试用例进行测试,记录测试结果和发现的问题 。
问题跟踪与修复
对发现的问题进行跟踪,确保问题得到及时修复,并重新进行测试 验证。
测试方法
采用黑盒测试和白盒测试相结合的方法,包括功能测试、 性能测试、安全测试等。
测试范围
包括系统的所有功能模块,如学生信息管理、课程管理、 成绩录入与查询、报表生成等。
测试资源
包括测试人员、测试环境、测试数据等。
测试用例设计
功能测试用例
针对系统的每个功能模块设计测试用 例,包括正常情况下的操作以及异常
系统功能实现
课程信息管理
实现课程基本信息的录入、修 改、查询和删除功能。
报表生成
根据需求生成各类报表,如学 生成绩单、课程统计表等。
学生信息管理
实现学生基本信息的录入、修 改、查询和删除功能。
成绩录入与查询
实现学生成绩的录入、修改、 查询和删除功能,支持批量导 入成绩数据。
权限管理
实现不同用户角色的权限管理 ,确保系统的安全性和稳定性 。
常见问题与解决方案
数据库连接问题
检查数据库连接配置是否正确,确保数据库服务 正常运行,并尝试重新启动数据库服务或修复连 接问题。
系统性能下降
基于SQL数据库设计的学生成绩管理系统
基于SQL数据库设计的学生成绩管理系统随着教育信息化的不断深入,学生成绩管理系统在学校教务管理中扮演着越来越重要的角色。
为了更好地管理学生成绩信息,提高教学效率,设计一个基于SQL数据库的学生成绩管理系统显得尤为重要。
本文将从数据库设计的角度出发,探讨如何构建一个高效、稳定的学生成绩管理系统。
1. 数据库设计在设计学生成绩管理系统的数据库时,首先需要考虑的是数据库的表结构。
一般来说,可以设计以下几张表:学生表(Student):包含学生的基本信息,如学号、姓名、性别、年龄等字段。
课程表(Course):包含课程的信息,如课程编号、课程名称、学分等字段。
成绩表(Score):记录学生的成绩信息,包括学生学号、课程编号、成绩等字段。
2. 数据库关系在学生成绩管理系统中,不同表之间存在着一定的关系。
一般来说,可以建立以下几种关系:学生与成绩之间是一对多的关系,即一个学生可以有多条成绩记录。
课程与成绩之间是多对一的关系,即多个学生可以选择同一门课程。
3. SQL查询设计完数据库结构和关系后,接下来就是编写SQL查询语句来实现对学生成绩信息的增删改查操作。
以下是一些常用的SQL查询语句示例:查询某个学生的所有成绩:SELECT * FROM Score WHEREstudent_id = 'xxx';查询某门课程的平均成绩:SELECT AVG(score) FROM Score WHERE course_id = 'xxx';查询某个学生某门课程的成绩:SELECT score FROM Score WHERE student_id = 'xxx' AND course_id = 'xxx';4. 数据库优化为了提高系统性能和查询效率,需要对数据库进行优化。
可以采取以下措施:添加索引:对经常用于查询条件的字段添加索引,加快查询速度。
规范化设计:避免数据冗余和不一致,提高数据存储效率。
网络数据库课程设计(学生成绩管理系统)
目录第一章系统概述1.1系统开发的背景和意义 (1)1.2系统所要实现功能 (1)1.3系统开发工具 (1)1.4系统模块分析 (1)第二章系统需求分析2.1系统目标分析 (3)2.2系统数据描述 (3)2.3系统数据流图 (5)2.4系统数据字典 (6)2.5系统数据库概念设计 (8)第三章系统总体设计3.1系统功能模块设计 (11)3.2系统主要功能描述 (11)3.3系统流程分析 (12)第四章系统详细设计4.1程序流程设计 (13)4.2系统结构的实现 (14)第五章系统界面设计及代码实现5.1系统登陆窗口界面 (17)5.2系统主程序窗口界面 (18)5.3住宿管理设计 (20)5.4客人信息查询 (27)5.5 系统管理 (29)5.6订房信息管理 (31)5.7结算信息管理 (34)第六章系统测试6.1 测试目的 (38)6.2 测试方法 (38)6.3 测试记录与运行结果 (38)总结参考文献第一章系统概述及可行性分析1.1系统开发的背景在信息时代,能够代表一个国家信息产业水平和竞争能力的就是软件产业。
作为21世纪的朝阳产业,软件是全球最具发展前景与开发潜力的产业之一,已成为全球经济新的增长点,而且也逐渐成为世界各国竞相占领的战略制高点。
软件市场大致可以分为应用软件、系统软件和工具软件。
应用软件仍是软件市场的主流,约占69%。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对学生成绩信息进行管理,具有手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高学生成绩管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。
因此,开发这样一套管理软件成为很有必要的事情。
成绩管理系统,在国内外早已有着成熟的研究成果和广泛的社会应用。
基于mysql的学生成绩管理系统毕业设计
基于mysql的学生成绩管理系统毕业设计题目:基于MySQL的学生成绩管理系统毕业设计在现代信息技术飞速发展的时代,数据库管理系统已经成为了各行各业不可或缺的一部分。
特别是在教育领域,学生成绩管理系统的建设对于学校和教师来说至关重要。
在这篇文章中,我将围绕着基于MySQL的学生成绩管理系统毕业设计展开一番讨论。
一、引言MySQL作为世界上最流行的开源关系数据库管理系统,其稳定性和高效性备受赞誉。
结合学生成绩管理系统的需求,借助MySQL数据库的特性,可以实现学生成绩的高效管理和统计分析。
接下来,我将从数据库设计、系统功能和使用体验三个方面,对基于MySQL的学生成绩管理系统毕业设计进行详细探讨。
二、数据库设计1. 数据库表结构设计在设计学生成绩管理系统数据库时,需要考虑如何构建合理的表结构,以便存储学生信息、课程信息和成绩信息等。
对于学生成绩管理系统而言,一般情况下包括学生表、课程表、成绩表等几个核心表。
其中,学生表包括学生ID、尊称、性别等字段;课程表包括课程ID、课程名称、学分等字段;成绩表包括学生ID、课程ID、成绩等字段。
通过合理的表结构设计,可以实现数据的高效存储和查询。
2. 索引和约束设计在数据库设计中,索引和约束的设计也是至关重要的。
通过对关键字段添加索引,可以提高数据的检索速度;利用约束来保证数据的完整性和一致性。
可以通过主键约束来保证学生ID和课程ID的唯一性;通过外键约束来建立表与表之间的关联关系。
这些都是数据库设计中不可或缺的一部分。
三、系统功能基于MySQL的学生成绩管理系统,其功能应该覆盖学生信息管理、课程信息管理、成绩录入和成绩查询等方面。
通过一个直观的用户界面,教师可以方便地录入学生成绩,并进行统计分析;学生和家长也可以通过系统进行成绩查询和学习进度跟踪。
在毕业设计中,需要考虑系统的易用性、稳定性和安全性,以确保其能够满足实际应用的需求。
四、使用体验从用户角度来看,基于MySQL的学生成绩管理系统应该具有良好的使用体验。
学生成绩管理系统数据库设计
学生成绩管理系统数据库设计一、引言学生成绩管理系统是现代教育系统中必不可少的一部分。
数据库作为该系统的核心组成部分,用于存储和管理学生的个人信息和学业成绩数据。
本文将介绍学生成绩管理系统数据库设计的方案,包括数据库的结构、关系和各个表的字段及其类型。
二、数据库结构学生成绩管理系统数据库包含多个表,每个表对应一个实体或关系。
以下是数据库的主要结构:1. 学生表(Student)该表存储学生的个人信息,如学生ID、姓名、年龄、性别、班级等。
表结构如下:- 学生ID(StudentID):主键,用于唯一标识学生。
- 姓名(Name):学生的姓名。
- 年龄(Age):学生的年龄。
- 性别(Gender):学生的性别。
- 班级(Class):学生所在的班级。
2. 课程表(Course)该表存储所有开设的课程信息,如课程ID、课程名称、学分等。
表结构如下:- 课程ID(CourseID):主键,用于唯一标识课程。
- 课程名称(CourseName):课程的名称。
- 学分(Credit):课程的学分。
3. 成绩表(Grade)该表存储学生的成绩信息,包括学生ID、课程ID、成绩等。
表结构如下:- 学生ID(StudentID):外键,与学生表中的学生ID相关联。
- 课程ID(CourseID):外键,与课程表中的课程ID相关联。
- 成绩(Score):学生在某一门课程中的成绩。
三、关系说明学生成绩管理系统数据库中的表之间存在以下关系:1. 学生与课程的多对多关系一个学生可以选择多门课程,而一门课程也可以被多个学生选择。
这种关系可以通过成绩表来连接学生表和课程表。
2. 学生与成绩的一对多关系一个学生可以有多门课程的成绩,而一门课程只对应一个学生的成绩。
这种关系可以通过成绩表中的学生ID字段来建立。
3. 课程与成绩的一对多关系一门课程可以有多个学生的成绩,而一个学生只对应一门课程的成绩。
这种关系可以通过成绩表中的课程ID字段来建立。
数据库学生成绩管理系统课程设计
课程设计报告•1问题描述1.1 背景1)某大学有学生若干万名,每个学生每学期必须学习若干门课程。
2)每个学生有学号、姓名、性别、班级、出生日期等基本信息。
3)每门课程有课程号,课程名称、任课教师、学分等信息。
4)学校需要对每个学生的基本信息、所学课程、成绩进行统一管理,以便于对信息进行查询、浏览和修改。
1.2 数据需求学生成绩管理系统主要用于学生成绩信息管理,据分析学生成绩管理系统的数据表可浓缩为:学生基本信息表、课程基本信息表和学生成绩信息表。
根据学校的情况,可按下面的步骤来分析:(1)确定学生所在的院系、所学的专业以及所在的班级。
(2)确定学生所在班级的课程以及该课程学生的成绩;另外还需要知道学生所在班级、学号和学期。
(3)分析学生的基本信息,如姓名、性别、出生年月、家庭住址、联系电话。
(4)用户信息分析,通常包括用户名和密码。
• 2 解决方案 ( 或数据库系统设计 )2.1 E-R 模型设计根据E—R图,将其转化为如下数据实体,数据库:学生成绩管理系统.dbc,包括如下的表和视图:1)学生登记表——学生表.dbf。
字段名称字段类型字段宽度xh 字符型 10xm 字符型 6xb 字符型 2csrq 日期型 8bj 字符型 42)课程登记表——课程表.dbf。
字段名称字段类型字段宽度kch 字符型 2kcm 字符型 10js 字符型 10xf 字符型 103)成绩登记表——成绩表.dbf字段名称字段类型字段宽度xh 字符型 10kch 字符型 2cj 数值型 34) 借书视图(lyxview)。
为了进行浏览总表的需要,需要设计了一个总表浏览视图,该视图从学生表.dbf等3个表中提取了10个字段的数据:学生表.xh学生表.xm学生表.xb学生表.csrq学生表.bj课程表.kch课程表.kcm课程表.js课程表.xf成绩表.cj其视图关系可由以下SQL语句定义:SELECT 学生表.*, 课程表.*, 成绩表.cj;FROM 学生成绩管理系统!学生表, 学生成绩管理系统!课程表,;学生成绩管理系统!成绩表;WHERE 学生表.xh = 成绩表.xh;AND 课程表.kch = 成绩表.kch所建数据库如下图所示:2.2 数据表•3系统实现3.1 开发环境本系统由SQL语言编写,在Visual Foxpro 6.0软件环境下可以正常运行3.2 系统流程图系统流程图模块主要由刘龙洋同学设计,而系统的功能设计主要由李江滨同学完成,我主要负责程序主要功能界面的设计,下面是部分流程图:3.3 程序主要功能界面1、登录界面的设计:第一步:在表单上单击鼠标右键,并在弹出菜单中选择“数据环境”项,打开数据环境设计器,添加数据表mm.dbf;第二步:创建表单并保存为“登录”;第三步:添加lable1,并设置其caption属性为“欢迎使用学生成绩管理系统!”;第四步:添加lable2和text1并设置相关属性;第五步:添加timer控件,并设置其Enabled属性为“真”,用于设计窗口动画。
pythonmysql实现学生成绩管理系统
pythonmysql实现学⽣成绩管理系统这学期在学python,感觉想写⼀个东西来巩固⾃⼰的基础,因为⼤⼆的时候我看过python,所以还是⼀共花了⼏个⼩时写了⼀个基于mysql的成绩管理系统,这个东西其实拿不出⼿,不过就当复习基本了。
1 、⾸先如果你python中没安装mysql的驱动,还是要打开cmd命令⾏安装⼀下才可以使⽤:pip3 install PyMySQL2 、创建数据库studentdb,你可以在图形化界⾯sqlyog中创建:3 、然后在数据库中创建表st4 、python连接数据库的核⼼代码:db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb')cursor = db.cursor()user就是你⾃⼰设置的⽤户名,password就是你⾃⼰设置的密码,database就是你刚刚设置的数据库5 、另外你也可以选择mysql命令⾏创建数据库以及数据表都是可以的6 、完整代码如下:import pymysqldef menu():print("\t\t学⽣信息管理系统\t\t")print("\t\t1 添加学⽣\t\t")print("\t\t2 删除学⽣\t\t")print("\t\t3 修改学⽣\t\t")print("\t\t4 按成绩降序排序:\t\t")print("\t\t5 按成绩升序排序:\t\t")print("\t\t6 查询:\t\t")print("\t\t7 退出程序\t\t")passdef insert():print("插⼊学⽣信息")name = input("请输⼊学⽣姓名:")sex = input("请输⼊学⽣性别:")snum = input("请输⼊学⽣学号:")chinese = int(input("请输⼊学⽣语⽂成绩:"))math = int(input("请输⼊学⽣数学成绩:"))stotal = int(input("请输⼊学⽣总成绩:"))db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb')cursor = db.cursor()sql = "insert into st(sname,ssex,snum,chinese,math,stotal) values('%s','%s','%s',%d,%d,%d)"%(name,sex,snum,chinese,math,stotal)try:cursor.execute(sql)mit()except:db.rollback()print("error")db.close()passdef delete():while 1:print("删除学⽣信息")choose1 = int(input("请输⼊您的删除⽅式:1 按姓名 2 按学号: "))if choose1 == 1:print("按姓名删除")strname = input("请输⼊删除学⽣的名字:")db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb')cursor = db.cursor()sql1 = "select *from st where sname='%s'"%(strname)cursor.execute(sql1)if cursor.rowcount>0:try:sql = "DELETE FROM st WHERE sname = '%s'" % (strname) cursor.execute(sql)mit()print("删除姓名为%s的学⽣信息成功" % (strname))breakexcept:db.rollback()print("error")db.close()else:print("没有这个学⽣的信息,输⼊错误")breakelif choose1 == 2:print("按学号删除")strnum = input("请输⼊删除学⽣的学号:")db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb')cursor = db.cursor()sql1 = "select *from st where snum='%s'"%(strnum)cursor.execute(sql1)if cursor.rowcount>0:sql = "DELETE FROM st WHERE snum = '%s'" % (strnum)try:cursor.execute(sql)mit()print("删除学号为%s学⽣的信息成功" % (strnum))breakexcept:db.rollback()print("error")db.close()else:print("没有这个学⽣的信息,输⼊错误")breakelse:print("输⼊错误,重新输⼊")breakpasspasspassdef change():while 1:print("改变学⽣信息")myname = input("请输⼊改变学⽣的名字:")db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb')cursor = db.cursor()sql1 = "select *from st where sname='%s'"%(myname)cursor.execute(sql1)results = cursor.fetchall()name12='0'for row in results:name12 = row[0]if myname == name12:try:sex = input("请输⼊学⽣性别:")snum = input("请输⼊学⽣学号:")chinese = int(input("请输⼊学⽣语⽂成绩:"))math = int(input("请输⼊学⽣数学成绩:"))stotal = int(input("请输⼊学⽣总成绩:"))#有问题解决不了sql3 = "update st set ssex ='%s',snum='%s',chinese=%d,math=%d,stotal=%d where sname='%s'"%(sex,snum,chinese,math,stotal,name12) cursor.execute(sql3)mit()print("修改姓名为%s学⽣的信息成功"%(myname))breakexcept:db.rollback()print("error")db.close()breakelse:print("没有这个学⽣的信息,输⼊错误")breakpasspasspassdef sortbyscoredesc():print("按成绩降序")db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb')cursor = db.cursor()sql = "select * from st order by stotal desc"try:cursor.execute(sql)results = cursor.fetchall()for row in results:name1 = row[0]sex1 = row[1]num1 = row[2]chinses1 = row[3]math1 = row[4]total1 = row[5]# 打印结果print("学⽣姓名:%s\t,学⽣性别:%s\t,学⽣学号:%s\t,语⽂成绩:%d\t,数学成绩:%d\t,总成绩:%d\t" % \(name1, sex1, num1, chinses1, math1, total1))mit()except:db.rollback()print("error")db.close()passdef sortbyscore():print("按成绩升序排序")db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb')cursor = db.cursor()sql = "select * from st order by stotal asc "try:cursor.execute(sql)results = cursor.fetchall()for row in results:name1 = row[0]sex1 = row[1]num1 = row[2]chinses1 = row[3]math1 = row[4]total1 = row[5]# 打印结果print("学⽣姓名:%s\t,学⽣性别:%s\t,学⽣学号:%s\t,语⽂成绩:%d\t,数学成绩:%d\t,总成绩:%d\t" % \(name1, sex1, num1, chinses1, math1, total1))mit()except:db.rollback()print("error")db.close()passdef select():print("查询学⽣信息")db = pymysql.connect(host='localhost',user='root',password='333',database='studentdb')cursor = db.cursor()sql = "select * from st"try:cursor.execute(sql)results = cursor.fetchall()for row in results:name1 = row[0]sex1 = row[1]num1 = row[2]chinses1 = row[3]math1 = row[4]total1 = row[5]# 打印结果print("学⽣姓名:%s\t,学⽣性别:%s\t,学⽣学号:%s\t,语⽂成绩:%d\t,数学成绩:%d\t,总成绩:%d\t" % \(name1,sex1,num1,chinses1,math1,total1))mit()except:db.rollback()print("error")db.close()passdef exitexe():while 1:print("确定要退出系统吗?退出(y) 不退出(n)")c = input("请输⼊您的选择aaaa:\t")if c == 'y':exit()elif c == 'n':breakelse:print("输⼊有误重新输⼊")passpassif __name__ == '__main__':while True:menu()choose = int(input("请输⼊您的选择:\t"))if choose == 1:insert()elif choose == 2:delete()elif choose == 3:change()elif choose == 4:sortbyscoredesc()elif choose == 5:sortbyscore()elif choose == 6:select()elif choose == 7:exitexe()passpass7 、运⾏结果如下:8 、总结:在这个案例中,我遇到的问题就是在sql语句和python间,有时候忘记commit,就要测试⼗⼏分钟来解决,然后就是如何设置⽤户输⼊错误指令的问题,我⽤了while循环和break pass来解决,总体上这个项⽬不难,对初学python的⼈很有⽤,我仅⽤了最基本的语法,元组,列表集合基本没⽤,如果你有更好的想法私信我,下⼀步我将它开发为⼀个图形化界⾯的系统。
数据库课程设计--学生成绩管理系统
数据库原理与应用课程设计说明书题目:学生成绩管理系统院系:专业班级:学号:学生姓名:指导教师:2008年12 月22 日一概述1.1目的与要求随着科技的发展,基本上所有的具有一定数量数据的机构都开始使用计算机数据库来做管理。
几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学生成绩管理的工作量。
该课程设计要求设计一个学生成绩的数据库管理系统,数据库中要求包含学生的基本信息,学科基本信息,以及学生所学课程的考试成绩。
要方便学生进行成绩查询,通过该课程设计,应该达到把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。
1.2设计环境① Microsoft SQL Server 2000② Microsoft Visual C++ 6.0二需求分析2.1 系统功能要求设计此系统实现如下系统功能:(1)使得学生的成绩管理工作更加清晰、条理化、自动化。
(2)通过用户名和密码登录系统,查询课程基本资料,学生所选课程成绩,修改用户密码等功能。
容易地完成学生信息的查询操作。
(3) 设计人机友好界面,功能安排合理,操作使用方便,并且进一步考虑系统在安全性,完整性,并发控制,备份和恢复等方面的功能要求。
2.2 系统模块设计成绩管理系统大体可以分成二大模块如,一是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是课程管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有教师、课程等相关信2.3 数据字典数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称、数据类型、长度、取值能否为空。
利用SQL Server 2000建立“学生选课”数据库,其基本表清单及表结构描述如下:数据库中用到的表:三概念模型设计由需求分析的结果可知,本系统设计的实体包括:(1)学生基本信息:学号,姓名,性别,地址,年龄,专业。
数据库学生管理管理系统
数据库学生管理管理系统在当今数字化的时代,学校和教育机构对于学生信息的有效管理变得至关重要。
数据库学生管理系统作为一种强大的工具,为学校的管理工作带来了极大的便利和效率提升。
学生管理工作涉及到众多方面,包括学生的基本信息、课程选择、成绩记录、考勤情况等等。
传统的纸质管理方式不仅效率低下,而且容易出现信息丢失、错误等问题。
数据库学生管理系统则能够很好地解决这些问题,实现学生信息的集中化、规范化和自动化管理。
首先,让我们来了解一下数据库学生管理系统的基本架构。
它通常由数据库服务器、应用服务器和客户端三个部分组成。
数据库服务器用于存储学生的各种信息,应用服务器负责处理业务逻辑和数据交互,客户端则提供给管理员和教师等用户进行操作的界面。
在数据库设计方面,需要精心规划各种数据表。
例如,学生基本信息表应包含学生的姓名、性别、出生日期、家庭住址等字段;课程表则要涵盖课程名称、课程代码、授课教师等信息;成绩表则记录学生的课程成绩以及对应的学期等。
通过合理设计数据表之间的关联关系,可以确保数据的一致性和完整性。
对于学生信息的录入和更新,系统提供了便捷的操作界面。
管理员可以通过表单一次性输入多个学生的信息,也可以对单个学生的信息进行修改和补充。
同时,系统还支持批量导入和导出数据,方便与其他系统进行数据交换。
课程管理是学生管理系统中的一个重要模块。
教师可以通过系统安排课程的时间、地点、授课班级等,学生则能够在系统中进行课程的选择和退选。
系统会自动检查课程的冲突情况,避免学生选择到时间冲突的课程。
成绩管理是另一个关键部分。
教师可以在系统中录入学生的考试成绩、平时成绩、作业成绩等,系统会根据设定的权重自动计算总评成绩。
学生和家长可以通过系统查询成绩,了解学习情况。
考勤管理也是不可忽视的。
教师可以在系统中记录学生的出勤情况,如迟到、早退、旷课等。
系统会自动统计学生的考勤数据,为学校的纪律管理提供依据。
除了以上功能,数据库学生管理系统还具备强大的查询和统计分析功能。
学生成绩管理系统数据库设计全(一)
学生成绩管理系统数据库设计全(一)学生成绩管理系统数据库设计全随着教育信息化的不断推进,学生成绩管理系统逐渐成为学校教育管理的重要组成部分。
本文将从数据库设计角度,介绍学生成绩管理系统数据库的全面设计。
一、需求分析学生成绩管理系统需要支持以下功能:1.录入学生、课程、教师、班级、成绩信息2.查询学生、课程、教师、班级、成绩信息3.修改学生、课程、教师、班级、成绩信息4.删除学生、课程、教师、班级、成绩信息5.统计成绩信息、排名6.计算平均分、总分、最高分、最低分7.生成成绩单、班级报告等报表二、数据库设计基于需求分析结果,我们可以设计以下数据库模型:1.学生信息表(student_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增name | varchar(20) | 姓名gender | varchar(2) | 性别birthday | date | 出生日期class_id | int | 外键,班级ID2.班级信息表(class_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增name | varchar(20) | 班级名称3.教师信息表(teacher_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增name | varchar(20) | 姓名gender | varchar(2) | 性别4.课程信息表(course_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增name | varchar(20) | 课程名称5.成绩信息表(score_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增course_id | int | 外键,课程ID student_id | int | 外键,学生ID teacher_id | int | 外键,教师ID score | int | 分数6.报表信息表(report_info)字段名 | 数据类型 | 备注--------|--------|--------id | int | 主键,自增student_id | int | 外键,学生ID course_id | int | 外键,课程ID teacher_id | int | 外键,教师ID score | int | 分数mean_score | float(2) | 平均分top_score | int | 最高分low_score | int | 最低分rank | int | 排名三、系统架构学生成绩管理系统的整体架构如下:1.数据采集模块该模块用于录入、修改、删除学生成绩信息。
数据库学生成绩查询与管理系统课程设计
数据库学生成绩查询与管理系统课程设计数据库原理课程设计任务书班级:学号:姓名:成绩:电子与信息工程学院计算机科学系1设计题目名称"电信学院学生成绩管理系统" 2系统功能模块设计学生信息管理:学生对自己的信息进行查询,学生基本信息包括:学号、姓名、性别、年龄、专业、班级、密码、各科成绩等。
教师信息管理:老师自己信息的管理,教师基本信息包括:教师号、姓名、课程号、性别、电话、密码等,可以对学生成绩进行录入、修改等。
再者便是课程管理,在该模块中应该包含有对学生成绩信息的查询和处理,如包括各科成绩单、获奖学金信息查询统计、补考名单,及格率、优秀率、平均分统计等。
电信学院学生成绩管理系统基本信息管理选课及成绩管理查询统计学生信息各科成绩单获奖学金信息查询补考名单及格率优秀率平均分统计课程信息教师信息专业班级信息成绩信息的录入选课信息修改学生成绩课程学号班级密码专业姓名性别课程号学分教师号课程名教师选择分数教师号姓名性别课程号密码MNNP年龄电话将E-R图转换为关系模型实体型转换为关系模式。
实体的属性就是关系的属性,实体的码就是关系的码。
对于实体间的联系则有以下不同的情况:一个m:n联系转换为一个独立的关系模式。
与该联系相联的个实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。
如果转换为一个独立的关系模式,则与该联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。
一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。
3个或3个以上实体间的一个多元联系可以转换为一个关系模式。
与该多元联系相联的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同的关系模式可合并。
具体的基本E—R图向关系模式的转化如下:(1)学生(学号,姓名,性别,年龄,专业,班级,密码),其主关键字为学号;(2)课程(课程号,课程名,教师名,学分),其中主关键字为课程号;(3)成绩(学号,课程号,分数),其中主关键字为学号和课程号;(4)教师(教师号,姓名,课程号,性别,电话,密码),其中主关键字为教师号;5数据库物理设计数据库中用到的表数据库表名关系模式名称备注Student 学生学生学籍信息表Course 课程课程基本信息表Score 成绩选课成绩信息表Teacher 教师教师基本信息表Student基本情况数据表字段名字段类型长度备注Student _sno Char 10 学号(主键)Student _sname char 10 姓名Student _sex char 4 性别Student_age int 2 年龄Student_ major char 10 专业Student_ classes char 10 班级Student_password char 10 密码Course数据表字段名字段类型长度备注Course_cno char 10 课程号(主键)Course_cname char 10 课程名Teaher_sno char 10 教师号Course_score int 2 学分Score情况数据表字段名字段类型长度备注Student_sno char 10 学号(主键)Course_cno char 10 课程号(主键)Score int 4 分数Teacher基本情况数据表字段名字段类型长度备注Teaher_sno char 10 教师号(主键)Teaher_name char 10 教师姓名Course_cname char 10 课程名Teaher _sex char 4 性别Teaher _password char 10 密码Teaher _telephone char 10 电话6程序运行环境和开发环境Micsoft SQL Server 20007主要模块程序流程图电信学院学生成绩管理系统学生教师查询学生信息返回学生信息查询教师信息返回教师信息返回选课信息查询选课信息查询选课信息返回选课信息查询成绩信息查询成绩信息查询成绩信息返回成绩信息查询学生信息返回学生信息查询教师信息返回教师信息8主要功能实现的程序段8.1创建基本表(1)学生信息表的建立。
学生选课成绩管理系统数据库设计
学生选课成绩管理系统数据库设计一、引言学生选课成绩管理系统是一个用于管理学生选课和成绩的系统,其核心是数据库设计。
本文将介绍该系统的数据库设计,包括数据库表的设计、表之间的关联关系以及常用的查询操作。
二、数据库表设计1. 学生表(students)•学生ID(student_id)•姓名(name)•年级(grade)•班级(class)2. 课程表(courses)•课程ID(course_id)•课程名称(course_name)•学分(credits)3. 选课表(enrollments)•记录ID(record_id)•学生ID(student_id)•课程ID(course_id)•成绩(grade)三、表之间的关联关系1.学生表和选课表:学生表和选课表通过学生ID进行关联,一个学生可以选多门课程,一个课程也可以被多个学生选修。
2.课程表和选课表:课程表和选课表通过课程ID进行关联,一个课程可以被多个学生选修,一个学生也可以选修多门课程。
四、常用查询操作1. 查询学生选修的课程及成绩SELECT , courses.course_name, enrollments.gradeFROM studentsJOIN enrollments ON students.student_id = enrollments.student_idJOIN courses ON courses.course_id = enrollments.course_id2. 查询某门课程的选修学生及其成绩SELECT courses.course_name, , enrollments.gradeFROM coursesJOIN enrollments ON courses.course_id = enrollments.course_idJOIN students ON students.student_id = enrollments.student_idWHERE courses.course_name ='XXXX'五、总结通过以上的数据库设计和常用查询操作,我们可以实现学生选课成绩管理系统的基本功能,方便学校对学生选课和成绩的管理与查询。
数据库学生成绩管理系统
学生成绩管理系统目录一、课程设计的目的: (1)二、课程设计任务与要求 (3)1引言 (3)2 系统开发的需求分析 (3)2.1背景: (3)2.2必要性 (4)2.3处理要求 (4)2.4安全性与完整性要求 (4)3 系统设计 (4)3.1开发设计思想: (4)3.2系统功能分析: (5)3.3系统功能模块设计 (6)3.4数据字典 (11)3.5E-R图:12一、课程设计的目的:数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程,对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。
通过本实验达到以下目的:(1)培养学生具有数据库应用软件系统的设计和开发能力。
(2)熟练掌握一种数据库系统(如SQL SERVER)的使用。
(3)通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。
二、课程设计任务与要求1引言随着人类信息化进程的加快,信息技术发挥的作用越来越大,对社会的政治,经济,军事,文化等领域产生越来越深刻的影响,也正在改变人们的工作,生活学习,交流方式。
2 系统开发的需求分析2.1背景:现在,随着考试规模的不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长,而且每个信息的数据都在不断变化着,尤其是学生的考试成绩数据。
面对庞大的学生的成绩,传统的人工方式管理会可能会导致学生成绩上的混乱,一天的工作量,足以让人觉得比较繁琐,吃不消。
因此,必须制定一套合理、有效、规范和实用的学生成绩管理系统,对学生成绩等信息进行统一的管理。
2.2必要性随着科学技术的飞速发展,计算机在人们的生活中起着越来越重要的作用,得到了更广泛的应用。
采用手工管理的方法不仅效率低,易出错、手续繁琐,而且耗费大量的人力。
为了满足管理员和学生对学生成绩等的管理,提高管理效率,必须制定和开发学生成绩管理系统。
学生成绩管理系统的开发运用,实现了学生成绩管理的自动化,不仅把广大教师从繁重的成绩管理工作中解脱出来、把学校从传统的成绩管理模式中解放出来,而且对学生成绩的判断和整理更合理、更公正,同时也给教师提供了一个准确、清晰、轻松的成绩管理环境。
学生成绩管理系统数据库表结构说明
否
学号
StuID
char(12)
否
否
课程编号
CourseID
char(8)
否
否
考试成绩
ExamGrade
Tinyint(1)
否
否
平时成绩
ParTGrade
Tinyint(1)
期评
Grade
Tinyint(1)
11、学生奖惩表 tb_StuRewardPun
字段描述
字段名
数据类型
与否主键
与否为空
自动编号
字段名
数据类型
与否主键
与否为空
教师编号
TeacherID
char(10)
是
否
姓名
TeacherName
varchar(8)
否
否
性别
Sex
char(2)
否
否
出生日期
BirthDate
datetime(8)
否
否
政治面貌
PoliticalFace
varchar(8)
否
否
籍贯
Native
varchar(40)
字段描述
字段名
数据类型
与否主键
与否为空
自动编号
Automati.um
Char(10)
是
否
教师编号
TeacherID
Char(12)
否
否
职称
ZhiCh
Vchar(12)
否
否
获得职称时间
GetZhiChTime
Varchar(20)
否
否
现所在单位
NowUnit
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生成绩管理系统课程设计设计报告题目:学生成绩管理系统数据库学号: 2014221119200100学生姓名: 张坤学号: 2014221119200138学生姓名: 张豪学号: 2014221119200057学生姓名: 王潜指导教师:王雷春提交时间: 2016/12/24目录第1章需求分析 (1)1.1 需求调查 (1)1.2 系统功能分析 (2)1.3 面对用户需求分析 (3)第2章数据库概念模型设计 (4)第3章逻辑结构设计 (4)3.1 类和对象向关系模式转换 (11)3.2 关系模式优化 (15)第4章数据库物理结构设计 (18)4.1 存取方法设计 (18)4.2 存储结构设计 (18)4.3 物理设计 (18)第5章数据库完整性设计 (22)5.1 主键及唯一性索引 (22)5.2 参照完整性设计 (22)5.3 Check约束 (22)5.4 Default约束 (23)5.5 触发器设计 (24)第6章数据库视图设计 (25)第7章数据库存储过程设计 (31)第8章权限设计 (36)总结 (37)参考文献: (37)教务管理系统后台数据库第1章需求分析1.1 需求调查通过对各个用户的调查,该学生成绩管理系统有如下需求:1)系统管理:实现系统管理人员对系统的管理,包括添加删除用户,更改密码,数据备份,数据还原,注销,系统开关等功能。
2)成绩管理:实现教师对学生选修课程打分,成绩审核,学生查看成绩。
3)信息维护:学生,管理员和老师以及课程的基本信息(包括学生学籍信息和学生所修课程信息,教师基本信息,课程基本信息,密码基本信息)查看以及修改。
4)选课:学生选择课程,老师选课。
5)查询:包括实现学生查询,老师查询。
学生查询包括自己的基本信息,自己的课程,课表,成绩等,老师查询包括查询自己的信息,自己所带课程的学生,自己的课表以及学生成绩等。
6)服务器配置:对它进行配置可以使得在其他电脑上也照常使用。
这样不必每次都到数据库中去更改。
7)帮助系统:帮助系统为用户指明方向。
1.2 系统功能分析1)系统管理:主要用于系统开关,教师选课开关,学生选课开关等。
2)学籍管理:用于对学生学籍基本信息的录入、查询、修改、维护、删除等常用功能,并提供学号编排、学生照片输入显示、学籍变动(留级、休学、跳级、转班、转学、退学等)、奖惩登记、毕业情况等功能。
3)选课管理:用于对课程的排布和选择。
对于选课课程、采用教师选课方式,教师先选课,学生再选课。
4)教师管理:用于管理教师的基本信息,其所在院系、所授课程,所带的班级,教师平时上课的时数,并记录教师的考评情况。
5)成绩管理:用于发布学生一个学期所修课程所获得的成绩,是否挂科、参加补考,补考的成绩等。
6)课程管理:用于管理课程的基本信息,包括添加,删除,修改课程。
7)管理员管理:用于对管理员的权限进行修改,以及添加,删除管理员,更新管理员信息等。
8)数据备份:用于保存删除或更新之前的数据,防止管理员误操作,以及数据找回等。
9)即时事务管理:用于发布和管理学校及学院的相关通知,便于相关人员了解学校及学院的近期动态。
1.3 面对用户需求分析在学生选课系统中,最主要的功能就是进行一系列的查询和各类数据的管理。
因此,可以将学生选课系统分为管理系统(有数据变化)和查询系统两个子系统。
而在所设计的学生选课系统中,主要有四类用户,即学生用户,老师用户,教务管理员和系统管理员。
各类用户在该系统中的需求不同,权限也不同。
因此,为了更明确,更系统的了解用户需求,我们还可以将管理系统再细分为学生管理系统,老师管理系统,教务管理员管理系统,系统管理员管理系统。
同样,将查询系统也按用户职能进行细分,即学生查询系统,老师查询系统,教务管理员查询系统,系统管理员查询系统。
这样细分后,看似把系统需求繁杂化了。
其实不然,细分后使各用户需求更加明确了,并且能更好的把握系统需求。
下面从细分后的各个子系统分析子系统的需求:1)学生管理系统。
学生用户在使用该系统时,首先必须通过账号和密码登录系统。
因此,对密码的设置和修改是最基本的需求。
由于所有用户在使用该系统时都需要账号和密码,所以在后面的用户需求分析时不再重复对此需求进行描述。
在登录系统后,学生用户的最主要的需求就是通过该系统进行选课、退课。
其次,学生用户还要求可以通过系统进行个人信息的维护(包括添加、删除、修改信息)以及学生评教和各类报名。
2)学生查询系统。
学生用户在该系统中是最低级的用户,所以可以查询的数据也是有限的,主要有个人信息查询,成绩查询(个人成绩),即时事物查看,学业预警查看。
在进行选课的时候还要对课程信息进行查询,课程选完后要查询课表。
3)老师管理系统。
该系统中,老师用户当然也有维护个人信息的需求。
除此之外,更重要的一个需求是要进行学生成绩的录入。
4)老师查询系统。
老师用户不仅要有查询自己的个人信息的功能,还要有查询学生信息的功能。
当学生用户进行选课完毕后,老师用户有对选课、任课信息、课表的查询以及花名册的查看的需求。
当课程结束后,老师在录入学生成绩的时候,也要对课程信息、学生信息进行查询。
老师用户的另一个需求是对学生成绩的查询,这个成绩查询不仅可以查询学生用户的个人成绩,还可以查询所带课程的成绩和所有学生的成绩。
5)教务管理员管理系统。
首先当然个人信息的维护。
对于教务管理员来说,该系统应该可以帮助他进行开课信息的维护,人才培养方案管理;在学生由于种种原因而有选课异常时,教务管理员还有重选、补选、退选的需求;课程结束老师录入学生成绩后,教务管理员还有利用系统进行成绩的审核,有时还要对某些学生的成绩进行修改。
6)教务管理员查询系统。
教务管理员首先要具有学生查询系统,老师查询系统的所有需求。
除了这些需求外,教务管理员还应该可以查询开课信息,学生评教查询和学生成绩查询(包括学生个人成绩,班级成绩,某课程成绩以及全院学生的成绩)。
7)系统管理员管理系统。
作为系统挂了管理员,是该系统中最高级的用户,因此该用户的需求相对比较的多。
第一,要通过系统对院系进行管理:院系的设置,院系的调整以及院系的总体规划。
第二,进行专业的设置,专业的添加、删除、修改,专业的调整。
第三,要对学期进行设置和教室的管理。
第四,对各学院的教师管理,其中就包括了老师在系统中的权限设置。
第五,学生的学籍的管理(学籍的异动)。
第六,通过各学院上报的课程信息进行全面的排课以及课程的停开和增开,这也是学生选课系统中很重要的一个需求。
最后,系统管理员管理系统还应该可以利用该系统进行用户的管理和维护,包括用户的添加、删除,修改等。
8)系统管理员查询系统。
该子系统的需求首先要包括前三类用户查询系统中的所有需求,即可以查询前三类用户能进行的所有查询。
其次,要包括院系的查询,专业的查询,教室的查询。
第三,通过系统查询学生、教师的基本信息,查询老师的任课情况以及教学情况(评教情况)。
第四,在对学生学籍管理时要对学生学籍的查询。
第五,对课程信息及选课信息的查询。
此外,还有对该系统中所有学生用户的学生成绩查询和该系统中所有老师用户的评教结果查询的需求。
第2章数据库概念模型设计2.1数据库实体以及关系设计本系统主要有9个实体:A.学生实体B.教师实体C.管理员实体D.课程实体E.职称实体F.政治面貌实体G.院系实体H.专业实体I.新闻公告实体实体关系图:图2.1院系专业实体关系图图2.2教师课程实体关系图图2.3学生课程实体关系图图2.4学生政治面貌实体关系图图2.5教师职称实体关系图图2.6管理员新闻公告实体关系图图2.7学生专业实体关系图图2.7总实体关系图2.2面向类和对象分析设计类和对象设计如下:第3章 数据库逻辑结构设计3.1 E-R 图局部E-R 图3.1职称编号E-R 图3.2政治面貌E-R图3.3新闻公告E-R图3.4学生E-R图3.5教师E-R图3.6管理员E-R图3.7课程E-R图3.8专业E-R图3.9院系E-R图全局E-R图:图3.10全局E-R图3.2 类和对象向关系模式转换学生信息(姓名、学号、性别、出生年月、政治面貌、、学院、专业名称、培养层次、籍贯、民族、家庭地址、、联系电话、)成绩信息(学生姓名、学号、专业名称、课程名、课程号、分数、绩点、学分、所获学分、)课程(课程名、课程号、任课老师、选课班级、学时、学分、开课年度、开课学期、学院、上课地点、上课时间、限制人数)选课信息(学生姓名、学号、学院、教学班号、课程名、课程号、任课老师、上课地点、上课时间)专业信息(专业名称、专业编号、所授学位、培养方案、所属学院)教师信息(教师姓名、教职工号、性别、出生年月、学历、职称、所属学院、籍贯、民族、家庭地址、邮政编码、联系电话、身份证号码)新闻公告(通知标题、通知内容、发布单位、发布时间、有效期限)开关表(系统开关,选课开关)3.3 关系模式优化通过对用户需求和实体之间的关系的分析,结合范式考虑,本系统建立以下表1).院系表2).专业表3).学生表4).教师表5).管理员表6).登录表7).新闻公告表8).课程表9).教师课程表10).学生课程表11).职称表12).政治面貌表13).开关表14).登录日志表第4章数据库物理结构设计4.1存取方法设计数据库系统是多用户共享的系统,对同一个关系要建立多条存储路径才能满足多用户的多种应用要求。
对于教务管理系统来说,为了提高某些属性(如:学生学号,教职工号,课程号,学生成绩,选课信息等)的查询速度,可以选择聚簇存取的方法,即把这些属性上具有相同值的元组集中放在连续的物理块上。
这样在查询某个学院或是查询某个专业或某学年等的学生成绩或选课等时就会大大提高查询速度。
因此,该系统中选择聚簇存取方法。
4.2 存储结构设计教务管理系统是一个大型复杂的计算机网络信息系统,采用基于浏览器/服务器(B/S),客户端/服务器(C/S)混合的应用体系结构来建设教务管理系统。
数据库管理系统采用Microsoft 公司推出的SQL Server 2014,并用SQL进行数据库的建立和数据库中数据的维护和查询。
4.3 物理设计实现该设计的环境为Windows 10+ MS SQL Server2014 或以上版本。
1、建立学生成绩管理系统数据库use mastercreate database 学生成绩管理系统数据库on (name='学生成绩管理系统数据库主文件',filename='D:\student system of grades\student system of grades.mdf', size=5,maxsize=50,filegrowth=10%)log on (name='学生成绩管理系统数据库日志文件',filename='D:\student system of grades\student system of grades.ldf', size=2mb,maxsize=10mb,filegrowth=1mb)Go2.建立职称表create table 职称(职称代号 int primary key,职称 varchar(50),预留字段 varchar(50))3.建立政治面貌表create table 职称(职称代号 int primary key,职称 varchar(50),预留字段 varchar(50))4.建立院系表create table 院系(院系代号 int primary key,名称 varchar(50),预留字段 varchar(50))5.建立专业表create table 专业(专业代号 int primary key,名称 varchar(50),所属院系代号 int,预留字段 varchar(50))6.建立专业表create table 新闻公告(编号 int primary key,标题 varchar(50),内容 varchar(100),类别 varchar(50),发布人 int,预留字段 varchar(50))7.建立学生表create table 学生(学号 int primary key,姓名 varchar(50),性别 char(2) default '男' check (性别 = '男' or 性别 = '女')), 年龄 int,政治面貌代号 int,专业代号 int,联系方式 varchar(50),入学年份 int,预留字段 varchar(50))8.建立教师表create table 教师(工号 int primary key,姓名 varchar(50),性别 char(2) default '男' check(性别='男' or 性别='女'),年龄 int,职称代号 int ,院系代号 int,联系方式 varchar(50),教龄 int,预留字段 varchar(50))9.建立管理员表create table 管理员(管理号 int primary key,姓名 varchar(50),性别 char(2) default '男' CHECK (性别 ='男' or 性别 ='女'),职务 varchar(50),联系方式 varchar(50),地址 varchar(50),预留字段 varchar(50))10.建立课程表create table 课程(课程号 int primary key,课程名 varchar(50),任课教师 int,学分 int,上课时间 char(5) default '1-18' check(上课时间 ='1-16' or 上课时间 ='1-14' or 上课时间 ='1-12' or 上课时间 ='1-6' or 上课时间 ='1-18'),考试时间 datetime,限选人数 int,已选人数 int,开课学院代号 int,预留字段 varchar(50))11.建立学生课程表create table 学生课程(学号 int,课程号 int,分数 float default'0',预留字段 varchar(50),primary key(学号,课程号))12.建立教师课程表create table 教师课程(工号 int,课程号 int,预留字段 varchar(50))13.建立登录表create table 登录(账号 int primary key,密码 varchar(50),级别 char(6) default '学生' check(级别 ='学生'or 级别 ='教师' or 级别 ='管理员'),预留字段 varchar(50))第5章数据库完整性设计5.1 主键及唯一性索引5.2参照完整性设计--1、新闻公告表中将属性发布人设计为外键alter table 新闻公告 add foreign key (发布人) references 管理员(管理号) --2、教师表中将属性职称代号和院系代号设计为外键alter table 教师 add foreign key (职称代号) references 职称(职称代号)alter table 教师 add foreign key (院系代号) references 院系(院系代号)--3、学生表中将属性政治面貌代号属性和专业代号设计为外键alter table 学生 add foreign key (政治面貌代号) references 政治面貌(政治面貌代号)alter table 学生 add foreign key (专业代号) references 专业(专业代号)--4、专业表中将属性所属院系代号设计为外键alter table 专业 add foreign key (所属院系代号) references 院系(院系代号) --5、学生课程表中将属性课程号和学号设计为外键alter table 学生课程 add foreign key (学号) references 学生 (学号)alter table 学生课程 add foreign key (课程号) references 课程 (课程号)--6、教师课程表中将属性工号和课程号计为外键alter table 教师课程 add foreign key (工号) references 教师 (工号)alter table 教师课程 add foreign key (课程号) references 课程 (课程号)--7、课程表中将属性任课教师和开课学院代号计为外键alter table 课程 add foreign key (任课教师) references 教师 (工号)alter table 课程 add foreign key (开课学院代号) references 院系 (院系代号)5.3 Check约束1、学生,教师表和管理员表中将性别进行check约束:check (性别='男' or性别='女')2、课程表中将上课时间进行check约束:check (上课时间='1-18' or 上课时间='1-16' or 上课时间='1-14' or 上课时间='1-12' or '1-16')3、登录表中将开课学期进行check约束:check (级别=’管理员’ or 级别= ‘学生’ or 级别= ‘教师’)4、学生表中将分数check约束:check (分数>0 and 分数<100)5.登录日志表将操作类型check约束check (操作类型=’删除数据’ or 操作类型= ‘修改数据’ or 操作类型= ‘添加数据’) 5.4 Default约束1、教师表和学生表中性别默认值设为:男。