为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

班级信息管理系统设计

2019-02-02 15页 doc 1MB 59阅读

用户头像 机构认证

金水文库

鑫淼网络科技有限公司主要经营:PPT设计 、课件制作,软文策划、合同简历设计、计划书策划案、各类模板等。公司秉着用户至上的原则服务好每一位客户

举报
班级信息管理系统设计毕 业 设 计 题 目: 石家庄学院班级信息管理系统 院 系: 专 业: 班 级: 姓 名: 学 号: 指导教师: 毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本...
班级信息管理系统设计
毕 业 设 计 目: 石家庄学院班级信息管理系统 院 系: 专 业: 班 级: 姓 名: 学 号: 指导教师: 毕业设计()原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作 者 签 名:       日  期:        ​​​​​​​​​​​​ 指导教师签名:        日  期:        使用授权说明 本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:        日  期:        ​​​​​​​​​​​​ 学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名: 日期: 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权      大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名: 日期: 年 月 日 导师签名: 日期: 年 月 日 注 意 事 项 1.设计(论文)的内容包括: 1)封面(按教务处制定的封面格式制作) 2)原创性声明 3)中文摘要(300字左右)、关键词 4)外文摘要、关键词 5)目次页(附件不统一编入) 6)论文主体部分:引言(或绪论)、正文、结论 7)参考文献 8)致谢 9)附录(对论文支持必要时) 2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。 3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。 4.文字、图表要求: 1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写 2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画 3)毕业论文须用A4单面打印,论文50页以上的双面打印 4)图表应绘制于无格子的页面上 5)软件工程类课题应有程序清单,并提供电子文档 5.装订顺序 1)设计(论文) 2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 石家庄学院班级信息管理系统 【摘要】石家庄学院班级信息管理系统是对班级信息的管理,其中对任课教师,班干部和所有学生的个人信息、选课信息、成绩、获奖、授课教师介绍、班级大事记等进行管理。针对班级,学生、教师、辅导员使用起来也方便,更新容易,也方便大家沟通。 系统是以Microsoft Visual C++ 6.0为开发平台,以C++为核心语言,结合SQLServer-2000采用ODBC技术开发的,主要是对班级信息的管理进行了研究,核心内容是查询功能。本系统共分为三个登录端:学生端、教师端、管理员端。其中学生端可由所有学生使用,教师端面向任课教师,管理员端可由辅导员或班长负责。 论文主要介绍了高校班级信息管理系统开发的背景及研究意义和所要完成的功能包括开发测试的具体过程。详细的介绍了系统设计的重点、方法、设计思想、难点技术和解决。 【关键词】班级信息管理;数据库;查询 College class information management system 【Abstract】College class information management system for the management of class information, including teachers, class cadres and all the personal information of students, course selection information, achievements, awards, teaching teachers, Class Events to manage. For the class, also easy to use and update easily, but also to facilitate our communication. System is based on Microsoft Visual C + + 6.0 as the development platform to C + + as the core language, combined with SQLServer-2000 using ODBC technology development, mainly on class information management studies, core content of the query. The system consists of three log end: Students end, teachers end, the administrator side. In which all students can be student-side, client-oriented Teacher of teachers, counselors or administrators can monitor for side The thesis introduces the development of information management system in university classes and research the background of the meaning and function to be accomplished by the specific process, including development and testing. Detail the focus of system design, methods, design ideas, technologies and solutions difficult. 【Key Words】Class information management; Database; Enquiries 目 录 11 绪论 1.1 课题研究背景 1 1.2 课题研究目的和任务 1 1.3 课题研究的意义 1 1.4 论文的主要内容和章节安排 2 2.1 运行环境 3 2.2 开发工具简介 3 2.2.1 Visual C++6.0基础 3 2.2.2 SQL Server2000数据库基础 3 3 需求分析与概要设计 5 3.1 系统分析 5 3.1.1 用户需求分析 5 3.1.2 系统结构图 5 3.2 数据库设计 8 3.2.1 数据库需求分析 8 3.2.2 E-R模型 8 3.3 系统基本功能 14 4 系统详细设计 15 4.1 具体的数据库逻辑结构设计 15 4.2 系统实现 19 4.2.1 管理员端的实现 19 4.2.1.1系统管理员端登录模块的设计与实现 19 4.2.1.2 添加学生界面的设计与实现 21 4.2.1.3 添加授课教师界面的设计与实现 23 4.2.1.4添加必修课程界面的设计与实现 23 4.2.1.5添加选修课程界面的设计与实现 25 4.2.1.6添加班级大事记界面的设计与实现 26 4.2.1.7添加班干部名单界面的设计与实现 27 4.2.2 教师端的实现 28 4.2.2.1授课教师信息管理界面的设计与实现 28 4.2.2.2教师修改密码界面的设计与实现 29 4.2.2.3教师选择授课界面的设计与实现 30 4.2.2.4删除已选课程界面的设计与实现 31 4.2.2.5必修课信息查询界面的设计与实现 33 4.2.2.6登记选修课成绩界面的设计与实现 34 4.2.2.7登记必修课成绩界面的设计与实现 35 4.2.2.8查询班级大事记界面的设计与实现 35 4.2.2.9查询班干部名单界面的设计与实现 37 4.2.2.10查询花名册界面的设计与实现 38 4.2.3 学生端的实现 38 4.2.3.1添加教育背景界面的设计与实现 38 4.2.3.2选修课成绩界面的设计与实现 39 4.2.3.3必修课成绩界面的设计与实现 40 4.2.3.4查询教育背景界面的设计与实现 41 4.2.3.5查询联系方式界面的设计与实现 42 4.2.3.6按学号查询学生成绩界面的设计与实现 42 4.2.3.7条件查询学生成绩界面的设计与实现 43 结论 45 参考文献 46 致谢 47 第一章 绪论 1.1 课题研究背景 随着信息时代以及我国教育产业化的飞速发展,社会对教育水平和教学管理软硬件的要求日益提高,计算机技术的应用已经普及到经济和社会生活的各个领域,使原本的旧的管理方法越来越不适应现在社会发展的需要,特别是在学校的教学和管理的过程当中,更应该适应社会的发展,体现现代化的气息。而且对于教师,班干部和所有学生而言,在大学期间总是有一些个人信息需要收集,而且往往是重复收集,比如身份证信息、学号、家庭住址、某学期某科目必修课选修课成绩、选课信息等等。这些工作繁琐、重复,也很占时间。因此可以开发班级信息管理系统。 所谓班级信息管理系统,即对授课教师,班干部和所有学生的个人信息、选课信息、成绩、获奖、授课教师介绍、班级大事记等进行管理。针对班级,使用起来也方便,更新容易,也方便大家沟通。实现了班级信息管理工作流程的系统化规范化和自动化。 1.2 课题研究目的和任务 在高校对于班级信息的管理多是人工处理,往往对一些信息多次重复收集而且特别容易出错。通过研究本系统,是班级信息管理系统化、规范化、自动化,从而达到提高班级信息管理效率的目的。具体体现在以下方面: (1)能节省班干部、辅导员的管理时间,是管理人员从复杂的工作中解脱出来。 (2)方便学生查询信息 (3)使教师的工作更集中,能很好的统计学生的成绩 石家庄学院班级信息管理系统通过添加学生,授课教师的信息和班级的信息,更加方便了学生之间及和教师之间的沟通。 1.3 课题研究的意义 班级信息管理是班级管理不可缺少的部分,它的内容对于班级的辅导员、授课教师或者学生都非常重要,所以高校班级信息管理系统应该能够为用户提供足够的信息和信息的查询手段,但长时间以来对于班级信息的的收集管理多是人工操作,工作繁琐,重复,占用了很长时间。 随着科技的发展,计算机技术日渐成熟,计算机已经普及到社会的各个领域并发挥着不可替代的作用。为方便班级信息管理,使用计算机对班级信息进行管理,具有手工管理无法比拟的优点如:仅需一次信息采集即可多次使用并且检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等 因此,开发班级信息管理系统具有非常高的价值。在下面的各章中将以开发石家庄学院班级信息管理系统为例,谈谈其开发过程和所涉及到的问题及解决方法。 1.4 论文的主要内容和章节安排 该论文主要介绍了石家庄学院班级信息管理系统的开发流程,从需求分析概要设计到详细设计,详细的阐述了研究的思路。论文的第一章为绪论介绍该系统的基本情况;第二章具体介绍了本系统的运行环境和开发工具;第三章为需求分析和概要设计,介绍了系统的结构及系统实现的思路;第四章则详细介绍了系统开发的逻辑结构,并在此章节中实现系统的编码,完成该系统的设计。最后进行总结。 第二章 运行环境开发工具 2.1 运行环境 硬件系统:Intel Pentium III以上CPU,256M以上内存。 软件系统:Windows 98/2000/XP,SQL Server2000数据库管理系统。 2.2 开发工具简介 本系统使用Visual C++6.0 为开发平台和Microsoft SQL Server 2000数据库 2.2.1 Visual C++6.0基础 Visual C++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。 Visual C++它大概可以分成三个主要的部分:Developer Studio ,MFC6.0(1998年发行),Platform SDK 本系统就是应用的MFC技术来实现的。 2.2.2 SQL Server2000数据库基础 SQL Server 是一个关系数据库管理系统,它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了。Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本;Sybase 则较专注于SQL Server在UNIX 操作系统上的应用。在本书中介绍的是Microsoft SQL Server 以后简称为SQL Server或MS SQL Server。 SQL Server 2000 是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2000 的大型多处理器的服务器等多种平台使用。 目前关系数据库管理系统都采用SQL语言作为数据库语言,SQL语言成为关系数据库的主流语言。SQL是结构化查询语言(Struture Query Language)的简称,是一种介于关系代数与关系演算之间的结构化查询语言,是一种面向数据库的通用数据处理语言规范,其功能并不仅仅是查询、修改、插入和删除数据,还具备数据定义,修改和删除数据库对象,数据库安全控制,数据库完整性及数据保护控制等功能。SQL语言具有以下特点: ·类似于英语自然语言,简单易学; ·是一种非过程语言; ·一种面向集合的语言; ·既可独立使用,又可嵌入到宿主语言中使用; ·具有查询、操纵、定义和控制一体化功能。 数据查询是关系运算理论在SQL语言中的主要体现,SELECT 语句是SQL查询的基本语句,当我们在对一个数据库进行各种各样的操作时,使用的最多的就是数据查询,在以SQL为基础的关系数据库中,使用的最多的也是SELECT查询语句。SELECT语句的完整句法如下: SELECT 目标表的列名或列表达式序列 FROM 基本表和(或)视图序列[WHERE 行条件表达式][GROUP BY 列名序列][HAVING 组条件表达式][ORDER BY列名 [ASC│DEAC]…]。 使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。 数据插入:往数据库的基本表中插入数据使用的是INSERT语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。其句法如下: INSERT INTO 基本表名(列表名)VALUES(元组值) 若要新增多个记录,可以使用INSERT INTO…SELECT,语法如下: INSERT INTO 表 [IN 外部资料库] [(字段1[,字段2[, ...]])] SELECT [表.]字段1[, 字段2[, ...] FROM 表 如果表包含一个主索引,须确定新增到主索引字段的值是唯一的且不可为Null值。 原表的字段为自动编号类型时,如果您要将新增记录重新编号,就不要在查询之中包含自动编号字段。若要保持原字段中的值,则将自动编号加在查询之中。 数据删除:从数据库的基本表中删除数据使用的是DELETE语句,其句法如: DELETE FROM 基本表名 [WHERE 条件表达式] 在此作一点说明,删除语句实际上是“SELECT * FROM 基本表名 [WHERE 条件表达式]”和DELETE操作的结合,每找到一个元组,就把它删除。此外,DELETE语句只能从一个基本表中删除元组,WHERE子句中条件可以嵌套,也可以是来自几个基本表的复合条件。 数据修改:当需要修改基本表中元组的某些列值时,可以用UPDATE语句实现,其句法如下: UPDATE基本表名SET列名=值表达式[列名=值表达式…][WHERE条件表达式]。 第三章 需求分析与概要设计 3.1 系统分析 3.1.1 用户需求分析 通过对班级信息管理的调查,了解到用户对系统的功能需求主要包括: (1)操作简单,能轻易掌握。 (2)权限分配明确,不容易泄露信息。管理员端可以添加学生,授课教师用户、添加班级大事记、班干部名单;对学生添加奖罚信息;对必修课程/选修课程进行添加、修改、删除。 (3) 教师端可以完善个人信息、选择选修课程;并对自己任教的学生的选修课和必修课登记成绩、也可以查询班级大事记、班干部名单等。 (4)学生端可以完善自己的个人信息、教育背景;选择选修课、查询生日信息、查询自己的各项科目的成绩、按条件查询所有人的成绩信息等。 (5)管理员端的对象可以是辅导员可以是班长,教师端的对象面向所有教师,学生端面向所有学生。 石家庄学院学生成绩管理系统的未来需求也要考虑,未来可能有大量的数据,所以在设计数据库时应该考虑到这方面,即采用SQL Server可以满足大量数据的需求。 3.1.2 系统结构图 根据系统功能的要求,可以将系统分解成几个功能模块来设计,学生端功能模块图3-1所示,教师端如图3-2,管理员端如图3-3 3.2 数据库设计 数据库设计(Database Design)是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。在数据库领域内,常常把使用数据库的各类系统统称为数据库应用系统。 3.2.1 数据库需求分析 在系统的开发过程中,数据库的设计非常重要。数据库的设计将直接对系统的运行效率产生影响。较好的数据库设计会使系统具有较快的响应速度。在数据库设计开始时应考虑用户的各种需求。 根据系统的结构设计图,列出以下数据项和数据结构: 用户表:用户名、密码、用户类型; 学生表:学号、姓名、入学时间、所在系别、专业、性别、出生年月、籍贯、家庭住址、联系电话、民族、政治面貌、身份证号、其他; 授课教师表:教师号、姓名、职称、所在系别、专业、性别、出生年月、籍贯、家庭住址、联系电话、民族、政治面貌、其他; 教育背景:学号、姓名、开始时间、结束时间、所在学校、证明人、备注、标识ID; 必修课表:课程号、课程名称、班级、授课教师、上课时间(星期) 、上课时段 、上课所在教学楼、所在教室、学期、标识ID; 选修课表:课程号、课程名称、上课时间、课程开始时间、课程结束时间、学分、授课教师、报选要求、课程简介; 课程成绩:学号、课程号、课程名称、分数、标记必修选修、学期、标识ID; 班级大事记:班号、发生时间、班级大事、备注、标识ID; 班干部名单:学号、姓名、电话、职位、班号、标识ID; 管理日志:操作员、日期、操作内容; 3.2.2 E-R模型  实体-联系模型(简称E-R模型)是由P.P.Chen于1976年首先提出的。它提供不受任何DBMS约束的面向用户的表达方法,在数据库设计中被广泛用作数据建模的工具。 各实体与实体之间的E-R模型: (1)学生信息实体包括:学号、姓名、入学时间、所在系别、专业、性别、出生年月、籍贯、家庭住址、联系电话、民族、政治面貌、身份证号、其他。如图3.2.2-1所示: (2) 授课教师实体包括:教师号、姓名、职称、所在系别、专业、性别、出生年月、籍贯、家庭住址、联系电话、民族、政治面貌、其他。如图3.2.2-2所示: (3) 教育背景实体包括:学号、姓名、开始时间、结束时间、所在学校、证明人、备注、标识ID。如图3.2.2-3 所示: (4) 必修课实体包括:课程号、课程名称、班级、授课教师、上课时间(星期) 、上课时段 、上课所在教学楼、所在教室、学期、标识ID。如图3.2.2-4 所示: (5) 选修课实体包括:课程号、课程名称、上课时间、课程开始时间、课程结束时间、学分、授课教师、报选要求、课程简介。如图3.2.2-5 所示: (6) 课程成绩:学号、课程号、课程名称、分数、标记必修选修、学期、标识ID。如图3.2.2-6 所示: (7) 班级大事记实体包括:班号、发生时间、班级大事、备注、标识ID。如图3.2.2-7 所示: (8) 班干部实体包括:学号、姓名、联系电话、职位、班号、标识ID。如图3.2.2-8 所示: (9)用户实体包括:用户名、密码、用户类型。如图3.2.2-9 所示: (10)管理日志实体包括:操作员、日期、操作内容。如图3.2.2-10 所示: (11)实体间的关系E-R图如图3.2.2-11 所示 3.3 系统基本功能 石家庄学院班级信息管理系统通过管理员端、学生端、教师端进入系统后对应相应的页面各有不同的功能;管理员端负责添加学生,授课教师信息;添加选修、必修课程信息;添加班级事务信息:班级大事记、班干部名单等。教师端负责登记学生成绩,查询班级事务等功能。学生端则是添加自己的教育背景,查询自己的各科目成绩,查询班级事务,查询所有人的科目成绩等。系统的具体功能描述以及实现方法详见下面部分的描述。 第四章 系统详细设计 4.1 具体的数据库逻辑结构设计 本系统采用的是SQL Server 2000数据库,数据库名称为“高校班级信息管系统”,系统数据库中包含10张表。下面是数据库表的详细内容: (1) USERS(用户表) 用户表的主要功能是用于保存登录系统的帐号和密码。用户类型1 为学生,2为教师,3为管理员。该数据表的具体结构如表1所示: 表1 USERS 字段名 数据类型 字段长度 允许空 描述 USER_ID char 20 否 用户名 USER_PASSWORD char 20 否 密码 USER_TYPE char 10 否 用户类型 (2)STUDENT_INFO(学生基本信息表) 学生信息表的主要功能是用于保存学生的基本信息。如新生入校时,管理员添加学生姓名和学号;学生的其他信息由学生自己登录系统时进行设置和修改。当学生离校时,管理员可删除此学生信息。该数据表的具体结构如表2所示: 表2 STUDENT_INFO 字段名 数据类型 字段长度 允许空 描述 STU_ID char 10 否 学生信息的学号 STU_NAME char 10 是 学生信息的姓名 ENROLLMENT_TIME datetime 8 是 入学时间 DEPARTMENT char 20 是 所在系别 MAJOR varchar 50 是 所在专业 SEX Int 4 是 性别 BIRTHDAY datetime 8 是 出生日期 HOMETOWN Varchar 50 是 籍贯 ADDRESS Varchar 50 是 家庭住址 PHONE char 20 是 联系电话 RACE char 10 是 民族信息 PARTY Int 4 是 政治面貌 PERSON_ID Char 20 是 身份证号 DIRECTION Varchar 50 是 其他 (3) TEACHER_INFO(授课教师信息表) 授课教师信息表的主要功能是用于保存授课教师的基本信息。管理员添加授课教师的初始信息,管理员添加授课教师姓名和教师编号;授课教师的其他信息由授课教师自己登录系统时进行设置和修改。当教师离校时,管理员可删除此教师信息。该数据表的具体结构如表3所示: 表3 TEACHER_INFO 字段名 数据类型 字段长度 允许空 描述 TEA_ID char 10 否 教师编号 TEA_NAME char 20 否 教师姓名 TITLE Int 4 是 职称 DEPARTMENT char 20 是 所在系别 MAJOR char 20 是 专业 SEX Int 4 是 性别 BIRTHDAY Datetime 8 是 出生日期 HOMETOWN Varchar 50 是 籍贯 ADDRESS Varchar 50 是 家庭住址 PHONE Char 20 是 联系电话 RACE Char 10 是 民族 PARTY Int 4 是 政治面貌 DIRECTION Varchar 50 是 其他 (4) COURSE(选修课程信息表) 选修课程信息表的主要功能是用于保存选修课程信息,管理员可以添加、删除和修改选修课信息;学生和教师可以根据选修课程信息进行选课或删除已选课程。具体结构如表4所示: 表4 COURSE 字段名 数据类型 字段长度 允许空 描述 COURSE_ID char 10 否 课程号唯一标识 COURSE_NAME char 10 是 课程名称 COURSE_TIME char 4 是 上午下午晚上 START_DATE Datetime 8 是 开课时间 END_DATE Datetime 8 是 结课时间 CENT Int 4 是 学分 COURSE_TEACHER Char 10 是 授课教师 REQUIRE Varchar 50 是 课程要求 INSTRUCTION Varchar 50 是 其它 (5) COURSE_LIST(必修课程信息表) 必修课程信息表的主要功能是用于保存必修课程信息,管理员可以添加、删除和修改必修课程信息;学生和教师不可以选择。数据表的具体结构如表5所示: 表5 COURSE_LIST 字段名 数据类型 字段长度 允许空 描述 COURSE_ID char 10 否 课程号 COURSE_NAME Varchar 50 否 课程名称 CLASS_ID char 10 是 班级号 COURSE_TEACHER Char 10 是 授课教师 WEEKDAY Int 4 是 星期 DAYHOUR Char 10 是 上课时间 BUILDING Char 10 是 教学楼号 ROOM Char 10 是 教室号 XUEQI Int 4 是 学期 FLAG Int 4 是 标记必修 ID Int 4 否 标识 (6) COURSE_SCORE (课程成绩表) 课程成绩表的主要功能是保存学生的选修、必修成绩,教师可以给学生登记自己任教的课程成绩,学生可以查询所有人的成绩。如表6所示: 表6 COURSE_SCORE 字段名 数据类型 字段长度 允许空 描述 STU_ID char 10 否 学号 COURSE_ID Char 10 是 课程编号 COURSE_NAME Varchar 50 是 课程名称 SCORE Int 4 是 分数 FLAG Int 4 是 标记必修选修 XUEQI Int 4 是 学期 UNIC Int 4 否 标识 (7) CLASSTHING (班级大事记信息表) 班级大事记信息表的主要功能是保存班级的大事记,管理员可以添加、修改、删除班级大事记,学生和教师可以查询。如表7所示: 表7 CLASSTHING 字段名 数据类型 字段长度 允许空 描述 ID Int 4 否 标识 XIAOBANHAO Char 10 是 小班号 SHIJIAN Datetime 8 是 时间 DASHI Varchar 50 是 班级大事记 BEIZHU Varchar 50 是 备注 (8) BANGANBU (班干部信息表) 班干部信息表的主要功能是保存每个小班级的班干部,管理员可以添加、修改、删除此信息,学生和教师可以查询。如表8所示: 表8 BANGANBU 字段名 数据类型 字段长度 允许空 描述 ID Int 4 否 标识 STU_ID Char 10 否 学号 STU_NAME Char 20 是 姓名 XIAOBANHAO Char 10 是 小班号 PHONE Char 15 是 联系电话 ZHIWEI Char 20 是 职位 (9) TEACH_BACK (教育背景信息表) 教育背景信息表的主要功能是保存每个学生的教育背景,学生可以自己添加、修改、删除此信息,也可以查询所有人的教育背景。如表9所示: 表9 TEACH_BACK 字段名 数据类型 字段长度 允许空 描述 STU_ID Char 20 否 学号 STU_NAME Char 20 是 姓名 START_TIME Datetime 8 是 开始时间 END_TIME Datetime 8 是 结束时间 SCHOOL Varchar 50 是 所在学校 PERSON Char 20 是 证明人 BEIZHU Varchar 50 是 备注 ID Int 4 否 唯一标识 (10) LOG (管理日志信息表) 日志信息表的主要功能是记录管理员的操作信息,管理员可以查看此信息。如表10所示: 表10 LOG 字段名 数据类型 字段长度 允许空 描述 MANAGER Char 10 否 操作员 DO_DATE Datetime 8 否 操作日期 DO_WHAT Varchar 50 是 操作内容 4.2 系统实现 4.2.1 管理员端的实现 4.2.1.1系统管理员端登录模块的设计与实现 因为高校班级信息管理系统是为了方便对班级信息的管理,涉及到用户的权限问题,因此用户进入系统需要进行验证是必须的,从而防止数据被恶意添加、删除或篡改,如下图1所示为系统的管理员端登录界面: 图1 登录界面 主要代码如下: if(m_usertype.Compare("学生")==0) type=1; else if(m_usertype.Compare("教师")==0) type=2; else if(m_usertype.Compare("管理员")==0) type=3; if(m_userID.GetLength()==0) { MessageBox("用户账号不能为空!"); flag = FALSE; } else if(m_userpassword.GetLength()==0) { MessageBox("用户密码不能为空!"); flag = FALSE; } else if(m_usertype.Compare("")==0) { MessageBox("用户类型未选择!"); flag = FALSE; } else { bLogin = CLoginSet::CheckDatabase(m_userID,m_userpassword,type); } if(bLogin&&flag) { m_ID = m_userID; bLogin=TRUE; EndDialog(IDOK); } else { if(flag) if(count<3) { MessageBox("用户名或密码不正确!"); m_userID = ""; m_userpassword = ""; UpdateData(FALSE); count++; } else { MessageBox("错误次数达三次以上!","本窗口即将关闭!"); EndDialog(IDCANCEL); } } 管理员端经过验证成功登录系统主界面如下图2: 图2 管理员端系统主界面 4.2.1.2 添加学生界面的设计与实现 新生入校时,管理员添加学生姓名和学号,并且可以添加、删除、修改学生的奖励和处罚信息,而且把学生的学号添加到USERS表,默认用户密码都为学号。学生以自己的学号为登录系统的用户名和密码。学生离校后管理员可删除此学生信息。 添加学生界面如下图3所示: 图3 添加学生界面 添加学生的部分代码是: strSQL.Format("select * from STUDENT_INFO where STU_ID='%s'",m_ID); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_recordset.GetRecordCount()==0) { CTime time = CTime::GetCurrentTime(); strSQL.Format("INSERT INTO STUDENT_INFO (STU_ID, STU_NAME, ENROLLMENT_TIME, DEPARTMENT, MAJOR, SEX, BIRTHDAY, HOMETOWN, ADDRESS, PHONE, RACE, PARTY, DIRECTION) VALUES(%s, \'%s\', \'%d-%d-%d\', \' \', \' \', '0', \'%d-%d-%d\', \' \', \' \', \' \', \' \', \'0\', \'%s\')",m_ID,m_name,time.GetYear(),time.GetMonth(),time.GetDay(),time.GetYear(),time.GetMonth(),time.GetDay(),m_other); m_database.ExecuteSQL(strSQL); strSQL.Format("INSERT INTO USERS (USER_ID, USER_PASSWORD, USER_TYPE) VALUES ('%s', '%s', '1') ",m_ID,m_ID); m_database.ExecuteSQL(strSQL); return TRUE;}else return FALSE; 4.2.1.3 添加授课教师界面的设计与实现 管理员可以添加和删除教师用户,并把教师的教师编号学号添加到USERS表,默认用户密码都为教师编号。添加授课教师界面如下图4所示: 图4 添加教师界面 添加授课教师的代码和上面添加学生的代码类似这里不在赘述。 4.2.1.4添加必修课程界面的设计与实现 管理员可以添加必修课程信息,其中必须制定授课教师,这些课程对于学生是必须的,具体界面如下图5所示: 图5 添加必修课程信息界面 添加必修课程信息的部分代码: void CCourseList::OnButtonAdd() { UpdateData(TRUE); CCourseListSet m_recordset; int m_i_weekday = m_C_weekday.GetCurSel(); CString mm=m_C_weekday.GetCurSel(); m_flag=1; if(m_courseID.GetLength()==0) MessageBox("课程号不能为空!"); else if(m_course_name.GetLength()==0) MessageBox("课程名不能为空!"); else if(m_class.GetLength()==0) MessageBox("小班班号不能为空!"); else if(m_teacher.GetLength()==0) MessageBox("教师不能为空"); else if(mm.GetLength()==0) MessageBox("上课时间不能为空"); else if(m_dayhour.GetLength()==0) MessageBox("上课时段不能为空!"); else if(m_building.GetLength()==0) MessageBox("教学楼不能为空!"); else if(m_room.GetLength()==0) MessageBox("上课教室不能为空!"); else if(m_xueqi.GetLength()==0) MessageBox("学期不能为空"); else { BOOL flag = m_recordset.AddDatebase(m_courseID,m_course_name,m_class,m_teacher,m_i_weekday,m_dayhour,m_building,m_room,m_flag,m_xueqi); if(flag) { MessageBox("已成功添加课表信息!"); CLogSet log; log.Addlog(m_ID,"添加课表信息"); } else { MessageBox("此课表信息已存在,请核对!"); } } initial(); } 4.2.1.5添加选修课程界面的设计与实现 管理员可以添加、修改、删除选修课程信息,教师可以选择教授选修课,学生可以选修此类课程。具体界面如下图6所示: 图6 添加选修课程信息界面 添加选修课课程信息与上面添加必修课程信息的代码类似,这里不再赘述。 4.2.1.6添加班级大事记界面的设计与实现 管理员可以添加班级的大事记信息,以提供学生和教师查询。在班级大事中可以添加发生大事的小班号,发生时间,具体的大事,和备注信息。添加后在班级大事列表里显示,在这里可以修改、删除。清空按钮的作用是把显示结果清空以方便重新添加大事。界面如下图7所示: 图7 添加班级大事记界面 添加班级大事记的部分代码如下: m_c_shijian.GetTime(m_shijian); CClassThingSet m_recordset; if(m_dashi.GetLength()==0) MessageBox("大事记不能为空!"); else { BOOL flag = m_recordset.Add(m_xiaobanhao,m_shijian,m_dashi,m_beizhu); if(flag) { MessageBox("已成功添加!"); } else MessageBox("添加失败!"); } initial();} 4.2.1.7添加班干部名单界面的设计与实现 管理员可以添加班干部名单,以提供学生和教师查询班干部的职位和联系方式。界面如下图8所示: 图8添加班干部名单界面 添加班干部名单代码和上面添加班级大事记的代码类似,这里不再赘述。 4.2.2 教师端的实现 教师端、学生端、管理员端的登录模块都是类似的,前面以介绍了管理员端的登录模块,所以以下都省去登录模块的介绍。 4.2.2.1授课教师信息管理界面的设计与实现 任课教师用户可以在此页面完善自己的个人信息,界面如下图9所示: 图9 授课教师信息管理主界面 授课教师信息页面的部分代码如下: CTeacherInfoSet m_recordset; m_recordset.GetDatabase(varValue,m_ID); m_teacherID = varValue[0].m_pstring->GetBuffer(1); m_name = varValue[1].m_pstring->GetBuffer(1); m_title = varValue[2].m_iVal; m_department = varValue[3].m_pstring->GetBuffer(1); m_major = varValue[4].m_pstring->GetBuffer(1); m_sex = varValue[5].m_iVal; m_birthday.SetTime(COleDateTime(varValue[6].m_pdate->year,varValue[6].m_pdate->month, varValue[6].m_pdate->day,0,0,0)); m_hometown = varValue[7].m_pstring->GetBuffer(1); m_address = varValue[8].m_pstring->GetBuffer(1); m_phone = varValue[9].m_pstring->GetBuffer(1); m_race = varValue[10].m_pstring->GetBuffer(1); m_party = varValue[5].m_iVal; m_other = varValue[12].m_pstring->GetBuffer(1); UpdateData(FALSE); //显示控件内容 4.2.2.2教师修改密码界面的设计与实现 教师可以修改自己的登录密码,界面如下图10所示: 图10 修改密码界面 BOOL flag = CLoginSet::CheckDatabase(m_ID,m_old); if(!flag) { MessageBox("旧密码不正确,请重新输入!"); m_old = ""; UpdateData(FALSE); } else if(m_new.GetLength==0) MessageBox("新密码能为空!"); else if(strcmp(m_new,m_new_sure)==0) { CLoginSet::UpdateDatabase(m_ID,m_new); MessageBox("密码修改已成功!"); ((CMainFrame *)AfxGetMainWnd())->m_pUserChange->DestroyWindow(); } else {MessageBox("两次输入新密码不相等,请重新输入!"); m_new = ""; m_new_sure = ""; UpdateData(FALSE); } 4.2.2.3教师选择授课界面的设计与实现 授课教师可以在此页面选择想要教授的选修课,只能选择被选课列表里面授课教师为空的课程,如下图11所示: 图11 教师选择授课界面 教师选择授课页面的部分代码如下: BOOL flag = m_recordset.UpdateDatebase(m_ID,m_courseID); if(flag==TRUE) MessageBox("已成功选择该课程!"); else MessageBox("已有其他老师选择该课程,请您重新选择!"); initial(); //同步删除已选课程子窗口 if(((CMainFrame *)AfxGetMainWnd())->m_pDelCourse!=NULL) { //先关闭已选课程子窗口 ((CMainFrame *)AfxGetMainWnd())->m_pDelCourse->DestroyWindow(); MessageBox("请注意,删除已选课程子窗口中已选课程信息将同步进行修改!","注意"); //再打开已选课程子窗口 ((CMainFrame *)AfxGetMainWnd())->OnDelCourse(); } //同步课程成绩子窗口 if(((CMainFrame *)AfxGetMainWnd())->m_pCourseScore!=NULL) { //先关闭课程成绩子窗口 ((CMainFrame *)AfxGetMainWnd())->m_pCourseScore->DestroyWindow(); MessageBox("请注意,已选课程成绩子窗口中已选课程信息将同步进行修改!","注意"); //再打开课程成绩子窗口 ((CMainFrame *)AfxGetMainWnd())->OnCourseScore(); } 4.2.2.4删除已选课程界面的设计与实现 教师可以删除已经选择了的选修课程,界面如下图12所示: 图12 删除已选课程界面 删除已选课程的部分代码如下: UpdateData(TRUE); //更新控件内容 CCourseSet m_recordset; m_recordset.DelDatebase(m_ID,m_courseID); MessageBox("已经删除此门课程!","删除课程",MB_OK); initial(); //同步其它窗口 if(((CMainFrame *)AfxGetMainWnd())->m_pCourseScore!=NULL) { ((CMainFrame *)AfxGetMainWnd())->m_pCourseScore->DestroyWindow(); MessageBox("请注意,已选课程成绩子窗口已选课程信息将同步进行修改!","注意"); ((CMainFrame *)AfxGetMainWnd())->OnCourseScore(); } //其中DelDatebase(m_ID,m_courseID)函数在CCourseSet 里面定义 4.2.2.5必修课信息查询界面的设计与实现 教师可以查询此界面查询必修课程信息,是按课程名和课程编号查询的,如下图13所示: 图13 必修课信息查询界面 必修课信息查询的的部分代码如下: BOOL flag = m_recordset.GetDatebase(varValue,m_cost,type); if(flag==FALSE) MessageBox("对不起,没有您所需要的结果,请核对后重新输入!","无此结果"); else { m_courseID = varValue[0].m_pstring->GetBuffer(1); m_course_name = varValue[1].m_pstring->GetBuffer(1); m_class = varValue[2].m_pstring->GetBuffer(1); m_teacher = varValue[3].m_pstring->GetBuffer(1); m_weekday = varValue[4].m_iVal-1; m_dayhour = varValue[5].m_pstring->GetBuffer(1); m_building = varValue[6].m_pstring->GetBuffer(1); m_room = varValue[7].m_pstring->GetBuffer(1);} 4.2.2.6登记选修课成绩界面的设计与实现 教师可以在此界面登记学生的的选修课成绩,只能登记自己任教的课程,效果如下图14所示: 图14 登记选修课成绩界面 登记学生选修成绩的部分代码如下: if(m_score.GetLength==0) MessageBox("成绩不能为空!","请重新输入"); else { int score = _ttoi(m_score); if(score>100||score<0) MessageBox("无效成绩!","请重新输入"); else { m_recordset.UpdateDatebase(score,m_stuID,m_courseID); MessageBox("成绩已成功录入!"); } } initial(); 4.2.2.7登记必修课成绩界面的设计与实现 教师可以登记自己任教的必修课的课程成绩,界面如下图15所示: 图15 登记必修课成绩界面 登记必修课成绩的代码和上面登记选修课成绩的代码类似这里不再赘述。 4.2.2.8查询班级大事记界面的设计与实现 教师可以查询由管理员添加的班级大事,同样学生具有相同的功能,后面将不再介绍学生端的此功能,管理员添加班级大事后会在教师端和学生端的查询班级大事记界面的班级大事列表中显示出来,鼠标点击显示具体的班级大事的信息,具体的查询界面如下图16所示: 图16 查询班级大事记界面 查询班级大事记的部分代码如下: strSQL.Format("select * from CLASS_THING order by SHIJIAN"); m_list_classthing.DeleteAllItems(); CClassThingSet m_recordset(&m_database); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_recordset.GetRecordCount()==0) MessageBox("班级大事记为空,请添加!","无此结果"); else{ m_recordset.MoveFirst(); while(!m_recordset.IsEOF()) {int temp = 0; m_recordset.GetFieldValue(temp,varValue); if( varValue.m_dwType != DBVT_NULL ){ sprintf(buf,"%d",varValue.m_iVal); m_list_classthing.InsertItem(i,buf);} m_recordset.GetFieldValue(1,varValue); if( varValue.m_dwType != DBVT_NULL && varValue.m_dwType !=0) m_list_classthing.SetItemText(i,1,varValue.m_pstring->GetBuffer(1)); else m_list_classthing.SetItemText(i,1,0); if( varValue.m_dwType != DBVT_NULL && varValue.m_dwType !=0){ m_recordset.GetFieldValue(2,varValue); sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month,varValue.m_pdate->day); m_list_classthing.SetItemText(i,2,buf); }else m_list_classthing.SetItemText(i,2,0); m_recordset.GetFieldValue(3,varValue); if( varValue.m_dwType != DBVT_NULL && varValue.m_dwType !=0) m_list_classthing.SetItemText(i,3,varValue.m_pstring->GetBuffer(1)); else m_list_classthing.SetItemText(i,3,0); m_recordset.GetFieldValue(4,varValue); if( varValue.m_dwType != DBVT_NULL && varValue.m_dwType !=0) m_list_classthing.SetItemText(i,4,varValue.m_pstring->GetBuffer(1)); else m_list_classthing.SetItemText(i,4,0); m_recordset.MoveNext(); i++; } m_recordset.Close(); } UpdateData(FALSE); 4.2.2.9查询班干部名单界面的设计与实现 教师可以查询班干部名单,其中包括班干部的职位、联系方式等。同样学生端也有此查询功能,以后学生端将不再介绍此功能。具体界面如下图17所示: 图17 查询班干部名单界面 查询班干部名单的代码和上面查询班级大事记的代码类似将不再赘述。 4.2.2.10查询花名册界面的设计与实现 教师可以查询整个班级学生的花名册,而且学生端也有此查询功能,到时将不再介绍。具体界面效果如下图18所示: 图18 查询花名册界面 学生花名册的代码和上面查询模块的类似,这里不再赘述。 4.2.3 学生端的实现 由于班级事务模块的查询班级大事记、班干部名单、花名册;课程管理模块的学生选课、删除已选课程、必修课信息查询;基本信息模块里的学籍管理、修改密码等界面和教师端的相当类似,前面已经介绍了教师端的实现,所以下面将不再介绍这些界面。 4.2.3.1添加教育背景界面的设计与实现 学生可以根据自己的受教育历史添加自己的教育背景,学生用户可以查询别人的教育背景,当然班级里的其他人也可以查询到自己的教育背景,在添加的时候不能修改自己的姓名和学号,可以添加修改曾经所受教育的开始/结束时间,学校名字,所在学校的证明人,和备注信息。添加的具体效果界面如下图19所示: 图19 添加教育背景界面 添加教育背景的代码和管理员端的添加学生、教师的代码类似,这里不再赘述。 4.2.3.2选修课成绩界面的设计与实现 学生可以查询浏览自己的选修课成绩,具体界面如下图20所示: 图20 选修课成绩界面 选修课成绩查询的部分代码如下: strSQL.Format("select * from COURSE where COURSE_ID in (select COURSE_ID from COURSE_SCORE where STU_ID='%s')",m_ID); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_recordset.GetRecordCount()!=0) m_recordset.MoveFirst(); while(!m_recordset.IsEOF()) { int temp = 0; m_recordset.GetFieldValue(temp,varValue); m_course.InsertItem(i,varValue.m_pstring->GetBuffer(1)); m_recordset.GetFieldValue(1,varValue); m_course.SetItemText(i,1,varValue.m_pstring->GetBuffer(1)); m_recordset.GetFieldValue(2,varValue); m_course.SetItemText(i,2,varValue.m_pstring->GetBuffer(1)); m_recordset.GetFieldValue(3,varValue); sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month,varValue.m_pdate->day); m_course.SetItemText(i,3,buf); m_recordset.GetFieldValue(4,varValue); sprintf(buf,"%d-%d-%d",varValue.m_pdate->year,varValue.m_pdate->month varValue.m_pdate->day); m_course.SetItemText(i,4,buf); m_recordset.GetFieldValue(5,varValue); sprintf(buf,"%d",varValue.m_iVal); m_course.SetItemText(i,5,buf); m_recordset.GetFieldValue(6,varValue); m_course.SetItemText(i,6,varValue.m_pstring->GetBuffer(1)); m_recordset.GetFieldValue(7,varValue); m_course.SetItemText(i,7,varValue.m_pstring->GetBuffer(1)); m_recordset.GetFieldValue(8,varValue); m_course.SetItemText(i,8,varValue.m_pstring->GetBuffer(1)); m_recordset.MoveNext(); i++;} 4.2.3.3必修课成绩界面的设计与实现 同上面功能类似,同样学生也可以查询自己的必修课成绩,具体的界面如下图21所示: 图21 必修课成绩界面 必修课成绩的代码与上面选修课成绩的代码类似,这里不再赘述。 4.2.3.4查询教育背景界面的设计与实现 学生在本界面可以按学号或姓名查询所有人的教育背景,若所查学生的教育背景还未添加则在查询结果里显示为空。具体界面信息如下图22所示: 图22 查询教育背景界面 查询教育背景的代码与上面教师端的查询班级大事记的代码类似,这里将不再赘述。 4.2.3.5查询联系方式界面的设计与实现 在查询模块中查询身份证信息、查询生日信息和本界面查询类似,故在此仅介绍此界面的实现。如下图23所示: 图23 查询联系方式界面 联系方式查询的代码和教师端的必修课程信息查询类似,这里将不再赘述。 4.2.3.6按学号查询学生成绩界面的设计与实现 学生可以查询所有同学的全部成绩,在此界面可以按学号查询,即输入同学的学号,点查询得到结果,也可以直接点击查询所有人的成绩。具体的界面信息如下图24所示: 图24 按学号查询学生成绩界面 按学号查询的代码和上面教师端的班级大事记查询的代码类似,这里将不再赘述。 4.2.3.7条件查询学生成绩界面的设计与实现 学生有时候需要特别的条件查询同学的成绩,即本界面所示按条件查询,具体的界面信息如下图25所示: 图25 条件查询学生成绩界面 按条件查询成绩的部分代码如下: int xueqi = _ttoi(m_xueqi1); if(m_subject.GetLength()==0) MessageBox("科目不能为空!"); else if(m_xueqi1.GetLength()==0) strSQL.Format("select * from COURSE_SCORE where COURSE_NAME = '%s' ",m_subject); else strSQL.Format("select * from COURSE_SCORE where COURSE_NAME = '%s' and XUEQI = '%d' ",m_subject,xueqi); m_list_all.DeleteAllItems(); CCourseScoreSet m_recordset(&m_database); m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_recordset.GetRecordCount()==0) { MessageBox("对不起,没有您所需要的结果,请核对后重新输入!","无此结果"); } else { m_recordset.MoveFirst(); while(!m_recordset.IsEOF()) { int temp = 0; //对字符串进行处理 m_recordset.GetFieldValue(temp,varValue); m_list_all.InsertItem(i,varValue.m_pstring->GetBuffer(1)); m_recordset.GetFieldValue(1,varValue); if( varValue.m_dwType != DBVT_NULL) m_list_all.SetItemText(i,1,varValue.m_pstring->GetBuffer(1)); else m_list_all.SetItemText(i,1,0); m_recordset.GetFieldValue(2,varValue); if( varValue.m_dwType != DBVT_NULL) m_list_all.SetItemText(i,2,varValue.m_pstring->GetBuffer(1)); else m_list_all.SetItemText(i,2,0); //对整型数据进行处理 m_recordset.GetFieldValue(3,varValue); if( varValue.m_dwType != DBVT_NULL){ sprintf(buf,"%d",varValue.m_iVal); m_list_all.SetItemText(i,3,buf); } else m_list_all.SetItemText(i,3,0); m_recordset.GetFieldValue(4,varValue); if( varValue.m_dwType != DBVT_NULL) { sprintf(buf,"%d",varValue.m_iVal); m_list_all.SetItemText(i,4,buf); } else m_list_all.SetItemText(i,4,0); m_recordset.GetFieldValue(5,varValue); if( varValue.m_dwType != DBVT_NULL) { sprintf(buf,"%d",varValue.m_iVal); m_list_all.SetItemText(i,5,buf); } else m_list_all.SetItemText(i,5,0); m_recordset.MoveNext(); i++; } m_recordset.Close(); } //更新界面 UpdateData(FALSE); 结论 石家庄学院班级信息管理系统主要是面向班级管理的小型系统,主要完成对班级学生的一系列管理,对班级同学的个人信息、选课信息、成绩、获奖、授课教师介绍、班级大事记等进行管理等功能。经过这段时间的学习、设计和开发工作,基本上完成了本系统的所有功能。 但是在系统设计的过程中也存在一定的不足,例如界面不够美观。在设计的过程中也曾遇到过不少问题,比如安装SQL-server2000时计算机的名称必须是大写字母开头。实现多表查询时ODBC仅仅连接一个表通过关联字段联系,若选择多个表则取数据时会出现错误(无效的描述器索引)。设计的过程其实也是一种学习的过程,经过这段时间的设计学习,更加深刻理解了要做好一件事,要多方面考虑,要有系统的思维方式和整体的设计方法。 参考文献 [1] 李春葆,曾平.数据库原理与应用:基于SQL Server2000[M].北京:清华大学出版社,2005.10 [2] 邓良松,刘海岩,陆丽娜.软件工程[M].第二版.西安:西安电子科技大学出版社,2004.6 [3] 李涛,刘凯奎,王永皎.Visual C++ SQL Server 数据库开发与实例[M].北京:清华大学出版社,2006 [4] 戴博.Visual C++程序员成长攻略[M].北京:中国水利水电出版社,2007 [5] John Paul Mueller.VISUAL C++ 6 从入门到精通[M].第二版.北京:北京希望电子出版社,2000 [6] 微软公司.Microsoft SQL Server 2000数据库编程[M].北京:北京希望电子出版社,2001 [7] 李爱中,周成云,马务充.数据库系统教程[M].北京:机械工业出版社, 2004. [8]魏亮,李春葆.Visual C++程序设计例学与实践[M].北京:清华大学出版社,2007 [9] 常玉慧,钱进,张俐.数据库原理与应用[M].北京:科学出版社,2006:244-273. [10] 张海潘.软件工程导论[M].第四版.北京:清华大学出版社.2003,1-62. [11] 梁数军,张健伟.数据库系统及应用[M].北京:中国电力出版社,2007:48-81. [12] 李博轩.Visual C++ 6.0数据库开发指南[M].第一版.北京:清华大学出版社,2000:95-113. [13] 苏中滨,杨涛,陈联成.数据库系统概念与应用[M].北京:中国水利水电出版社,2003. [14] 王珊,陈红.数据库系统原理教程[M].北京:清华大学出版社,2003. [15] 周绪等.SQL Server2000入门与提高[M].清华大学出版社,2005. [16] 谢维成,苏长明.SQL Server 2005实例精讲[M].北京:清华大学出版社,2007. [17] 肖汉,宋玉璞,邵杰,冯娜.软件工程理论与实践[M].北京:科学出版社,2006 致谢 值此论文完成之际,蓦然回顾,感觉到受益良多,在此我感谢石家庄学院,给我提供了学习的条件和做设计的机房环境,同时向关心和帮助过我的老师以及同学致以最真诚的感谢。其中,我最需要感谢的是我的指导教师张静老师,在整个过程中当我遇到各种难以解决的问题张老师都会热情的为我出谋划策,严格的督促我,时刻关系毕业设计的进展。并在撰写论文期间,为我提出了许多宝贵意见,至此,再次向张老师表示感谢。 图3-1 系统功能模块图(学生端) 石家庄学院班级信息管理系统(学生端) 系统登录模块 课程管理模块 班级事务模块 查询模块 连接 断开连接 修改密码 学生选课 删除已选课程 必修课查询 基本信息模块 学籍管理 教育背景 成绩管理模块 选修成绩 必修成绩 班级大事记 班干部名单 学生花名册 生日查询 教育背景 联系方式 学号查询成绩 条件查询成绩 身份证查询 石家庄学院班级信息管理系统(教师端) 系统登录模块 课程管理模块 班级事务模块 连接 断开连接 修改密码 删除已选课程 教师选择授课 必修课表查询 基本信息模块 教师基本信息 成绩管理模块 登记选修成绩 登记必修成绩 班级大事记 班干部名单 学生花名册 图3-2 系统功能模块图(教师端) 石家庄学院班级信息管理系统(管理员端) 系统登录模块 课程管理模块 班级事务模块 连接 断开连接 添加学生信息 选修课程管理 必修课程管理 基本信息模块 添加授课教师信息 其他模块 日志管理 修改密码 班级大事记 班干部名单 学生花名册 图3-3 系统功能模块图(管理员端) 学生实体 学号 姓名 性别 出生年月 入学时间 联系电话 所在系别 专业 民族 政治面貌 身份证号 其它 籍贯 家庭住址 图3.2.2-1 学生实体E-R图 授课教师实体 教师号 姓名 职称 所在系别 专业 性别 出生年月 家庭住址 联系电话 民族 政治面貌 其它 籍贯 图3.2.2-2授课教师实体E-R图 教育背景实体 学号 姓名 开始时间 结束时间 所在学校 备注 证明人 标识 图3.2.2-3 教育背景实体 E-R图 必修课实体 课程号 学期 教室 上课时段 授课教师 班级 课程名称 教学楼 上课时间 标识 图3.2.2-4 必修课实体 E-R图 图3.2.2-5选修课实体 E-R图 选修课实体 课程号 课程简介 报选要求 学分 开始时间 上课时间 课程名称 授课教师 结束时间 课程成绩实体 课程号 学号 标识 标记必修选修 分数 课程名称 学期 图3.2.2-6课程实体 E-R图 班级大事记实体 班号 标识 班级大事 发生时间 备注 3.2.2-7班级大事记实体 E-R图 班干部实体 姓名 联系电话 标识 职位 学号 班号 图3.2.2-8班干部实体 E-R图 用户实体 用户名 密码 用户类型 图3.2.2-9班干部实体 E-R图 管理日志实体 操作员 日期 操作内容 图3.2.2-10班干部实体 E-R图 管理员 添加 添加 日志 学生 添加 教育背景 添加 教师 选修 选修课 选课 讲授 必修课 查询 课程成绩 添加 添加 大事记 班干部名单 添加 添加 添加 查询 查询 图3.2.2-11实体间的关系E-R图
/
本文档为【班级信息管理系统设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索