第一章学生考试成绩管理系统的概述1.1学生考试成绩管理系统总的概述使用计算机管理成绩,不但可以大量节省时间、人力、财力、物力,而且能更全面有效地掌握学生的基本情况,及时获取最新而又准确的资料和信息。此课程设计就是这样一个管理学生成绩的系统,其功能与实现方面有相当的针对性和实用性。软件是在Visualc++平台上开发的,采用Access2003做为数据库,按照关系数据库原理思想的有关规定,严格地进行数据库的设计。数据操作语言,是采用SQL中的有关命令,能很方便地实现对数据库的操作与管理。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能。VisualC++6.0的MFC提供了对数据库的强大支持。对于数据库的访问,MFC提供了两组类,ODBC(opendatabaseconnectivity)和DAO(databaseaccessobject)。利用这两个功能强大的类,用户可以方便地开发基于ODBC或DAO的数据库应用程序。开发一个成绩管理系统,可以实现成绩的管理,只要对数据库进行配置,就可以使用。并提供新学生成绩登记,现有学生成绩查询功能,对记录的删除修改等工作。学生成绩管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。如图1.1所示,为系统整体功能模块图,该系统分为4大子系统,分别为系统管理子系统、基础设施子系统,学生管理子系统以及成绩管理子系统。1.2系统管理子系统的描述在系统管理子系统中,其子系统的一些主要功能如下:1)用户管理,用户可以在这里添加和删除用户和管理员;2)重新登录,用户可以切换成为其他的用户;3)退出系统,用户或者管理员退出系统;其功能细化图如图1.2所示系统管理学生管理学生考试成绩管理基础设施成绩管理图1.1系统整体子系统模块图系统管理功能模块用户管理重新登录退出系统图1.2系统管理子系统功能细化图1.3基础设施管理子系统在基础设施管理子系统中,其子系统的一些主要功能如下:1)系别设置,管理员成功登录后,可以对系别进行增删改查;2)专业设置,管理员成功登录后,可以对专业进行增删改查;3)班级设置,管理员成功登录后,可以对班级进行增删改查;其功能细化图如图1.3所示1.4学生管理子系统在学生管理子系统中,其子系统的一些主要功能如下:1)学生档案管理,管理员登录后,可以对学生的档案进行管理,如增加学生,删除学生等;2)奖学金管理,对那些考试成绩优异的学生发放的奖学金进行记录和管理;3)奖惩激励管理,管理员可以对表现优异和表现较差的学生进行记录,如增加记录,修改记录等;其功能细化图如图1.3所示1.5成绩管理子系统在成绩管理子系统中,其子系统的一些主要功能如下:1)考试类别设置,管理员设置考试类别,如期中考试、期末考试等2)考试科目设置,管理员可以考试的科目进行设置,如c语言,计算机操作系统等;3)考试时间段的设置,管理员可以设置学生考试的时间段;4)学生成绩录入,考试完后,管理员可以对学生的考试成绩进行录入存储;基础设施管理功能模块系别设置专业设置班级设置图1.3基础设置管理子系统功能细化图学生管理功能模块学生档案管理奖学金管理奖惩记录管理图1.4学生管理子系统功能细化图5)学生成绩查询,管理员和普通用户都可以查询学生的成绩;6)班级成绩汇总,可以对所有同学的成绩进行汇总;7)单科名次查询,学生可以查看自己的单科名次其功能细化如图1.5所示成绩管理功能考试类别设置考试科目设置考试时间段设置学生成绩录入学生成绩查询班级成绩汇总统计学生单科名次查询图1.5成绩管理子系统功能细化图第二章数据库的设计与实现2.1E-R图这一设计阶段是在系统功能结构图的基础上进行的,设计出能够满足用户需求的各种实体以及它们之间的关系,为后面的逻辑结构设计打下基础。根据以上的分析设计结果,得到用户实体,系别实体,专业实体,班级实体,学生实体,考试科目实体,考试时间实体,考试类别实体以及奖惩实体。下面来介绍几个主要的实体的E-R图。1.用户实体用户实体包括:用户名,密码以及是否为管理员。用户实体的E-R图如图2.1.1所示。2.系别实体系别实体包括:系别代码,系别名和该系的简要说明。系别实体的E-R图如图2.1.2所示。3.专业实体专业实体包括:专业代码,专业名称,所属系别以及简要说明。专业实体的E-R图如图2.1.3所示。4.班级实体班级实体包括:班级代码,班级名称,所属系别,所属专业,辅导员以及简要说明。班级专业实体E-R图如图2.1.4所示。用户用户名是否为管理员密码图2.1.1用户实体E-R图系别简要说明系名系别代码图2.1.2系别实体E-R图专业简要说明专业名称专业代码所属系别图2.1.3专业实体E-R图班级所属专业班级代码班级名称所属系别辅导员简要说明图2.1.4班级实体E-R图5.学生实体学生实体包括:学号,姓名,班级,性别,名族,政治面貌等。学生实体E-R图如图2.1.5所示。6.考试科目实体考试科目实体包括:科目代码和科目名称。考试科目实体E-R图如图2.1.6所示。7.考试时间实体考试时间实体包括:编号和时间段。考试时间实体E-R图如图2.1.7所示。8.考试类别实体考试类别实体包括:考试类别代码以及类别名称。考试类别实体E-R图如图2.1.8所示。9.奖惩实体奖惩实体包括:ID,学号,姓名,班级,奖惩日期,奖惩内容以及简要说明。奖惩实体E-R图如图2.1.9所示。考试类别ID学号简要说明奖惩内容奖惩日期姓名班级图2.1.9奖惩实体E-R图考试科目科目代码科目名称图2.1.6考试科目实体E-R图考试时间编号时间段图2.1.7考试时间实体E-R图学生班级姓名学号名族性别政治面貌图2.1.5学生实体E-R图考试类别类别代码类别名称图2.1.8考试类别实体E-R图对以上单个的实体分析设计结果,一共有9个实体,这些实体之间的联系如下:1)一个院系可以有多个专业,一种专业只能在一个院系中,因此院系和专业具有一对多的联系。2)一个专业可以有多个班级,而一个班级只能在一个专业中,不能跑到别的专业中去,因此专业和班级具有一对多的联系。3)一个班级可以有多名学生,一名学生只能在一个班中,因此班级和学生具有一对多的联系。4)一名学生可能有多条或者没有奖惩记录,而每一种奖惩可能被多名学生记录或者没有学生,因此学生和奖惩具有多对多的联系。5)一名学生有多种考试科目,每一种考试科目可以被多名学生考,因此考试科目和学生具有多对多的联系。6)每个考试科目都只有一个考试时间和考试类型,而在同一考试时间有多门考试科目,在同一考试类型也有多门考试科目,因此考试科目和考试时间具有多对一的联系,考试类型和考试科目具有一对多的联系。下面给出此学生考试成绩管理系统的E-R图,如图2.1.10所示。院系专业班级学生奖惩考试科目考试时间考试类型拥有拥有拥有拥有成绩拥有1n1n1n0..n0..nmnn11图2.1.10学生考试成绩管理系统E-R图2.2数据库表的结构说明根据上面所介绍的本系统的各个模块及其需要实现的功能,可以在数据库中建立相应的表,其名称和功能分别为:1)用户表:用于保存用户登录的基本信息和权限。如图2.2.1所示2)系别表:用于存储各个系别的基本信息。如图2.2.2所示3)专业表:各个系别有不同的专业,该表用于存储专业名称和其隶属于的院系。如图2.2.3所示4)班级表:每个专业都有不同的班级,班级表用于管理所有的班级。如图2.2.4所示5)学生表:用于存储学生的所有信息。如图2.2.5所示6)考试科目表:对考试科目的存储。如图2.2.6所示7)考试时间表:按考试时间可以是分开存储。如图2.2.7所示8)考试类别表:考试类别可以分为期中,期末等。如图2.2.8所示9)奖惩表:记录学生的奖惩时间,事件等。如图2.2.9所示图2.2.9奖惩表图2.2.1用户表图2.2.2系别表图2.2.3专业表图2.2.4班级表图2.2.5学生表图2.2.6考试科目表图2.2.7考试时间表图2.2.8考试类别表第三章学生考试成绩管理系统的实现学生考试成绩系统的实现首先要实现的是用户能够正确的通过权限进行登录验证成功后,对管理系统的一系列操作。即系统先将用户登录信息写入日志数据表,然后显示库存管理信息系统的主窗口;如果用户登录失败,系统显示登录失败信息。实现用户登录到学生考试成绩管理系统的流程图如图3。登录成功后,管理员进入到学生考试成绩系统界面,在主界面中,一共有五个菜单项,分别为:系统管理,基础设置,学生设置,成绩管理和帮助,而在每个菜单项中又有下拉菜单项,学生考试成绩管理系统的界面如图3.0所示。3.1系统管理模块的实现3.1.1用户管理功能的实现1.界面的设计:在用户设置界面,一共分为两大块:用户列表和用户资料。用户列表时显示所有的用户,而用户资料那块是用于填写用户基本资料。当保存用户资料时,可以再用户列表显示刚刚添加进去的用户名。同样,当点击用户列表中得一个用户名,在点击删除时,可以将该用户从用户列表移除。用户设置的界面如图3.1所示。2.编程的实现开始用户点击“重新登录”填写用户名和密码用户名或密码是否为空提示信息密码是否正确N登录成功Y结束NY图3.0学生考试成绩系统界面图3学生考试成绩系统登录流程图图3.1用户设置界面在用户管理功能的实现中,用户首先登陆系统,系统查看数据库中是否有该用户,如果是,他是否为管理员,如果为管理员,则可以新增或者删除用户,当填写完用户资料后,点击“保存”,如果填写资料正确,则显示提示信息,整个用户设置的流程图如图3.2所示。【程序代码】voidCUserDlg::OnButtonDelete(){//TODO:AddyourcontrolnotificationhandlercodehereUpdateData(TRUE);if(m_strUser==){MessageBox(请选择一个用户!);return;}voidCUserDlg::OnOK(){UpdateData();if(m_ctrUser.IsWindowEnabled()){//增加新用户if(m_strUser==){MessageBox(请填写用户名!);m_ctrUser.SetFocus();return;}}else{//修改用户信息if(m_strUser==){MessageBox(请选择一个用户!);return;}}if(m_strPass==){MessageBox(密码不能为空,请输入密码!);m_ctrPass.SetFocus();return;}if(m_strPass!=m_strRePass){开始用户登录管理员?点击“新增”或选中要删除用户的用户名Y填写用户资料并点击“保存”或点击“删除”提示信息结束N图3.2用户设置流程图MessageBox(两次输入地密码不一致,请重新输入密码!);m_ctrPass.SetFocus();m_strPass=;m_strRePass=;UpdateData(FALSE);return;}3.1.2重新登录功能的实现1.界面的设计:当用户点击重新登录时,系统会弹出用户登录最开始登录系统的登录界面,在该界面中,用户需要选则用户名,此用户名是用组合框做的,可以选择,然后就是密码的填入,运用密码框填入密码。用户登录见面如图3.3所示。2.编程的实现用户选择重新登录时,系统弹出登录的界面,用户选择用户名并填写密码,如果用户名或密码为空,则显示提示信息,如果密码错误,显示登录失败的信息,整个用户重新登录的流程图如图3.4所示。【程序代码】voidCLoginDlg::OnOK(){//TODO:AddextravalidationhereCUserSetrecordset;CStringstrSQL;UpdateDat