基于visual c++实现的学生信息管理系统的设计与实现.pdf
《基于visual c++实现的学生信息管理系统的设计与实现.pdf》由会员分享,可在线阅读,更多相关《基于visual c++实现的学生信息管理系统的设计与实现.pdf(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、上饶师范学院优秀本科毕业论文1基于基于基于基于VisualVisualVisualVisualC+C+C+C+实现的学生信息管理系统的设计与实现实现的学生信息管理系统的设计与实现实现的学生信息管理系统的设计与实现实现的学生信息管理系统的设计与实现李卓锐02 数(3)指导老师:陈齐荣 摘摘 要要:本文根据软件工程的原理,详细阐述了一个小型的系统软件设计,设计本软件的目的主要有两个,一是开发出一个功能相对完善,有一定实用价值的软件产品,二是提高自己的编程能力,扩展自己的知识。特别是一个完整的软件项目,可以看成是一个软件产品,也是一个对自己所学知识的一次综合,这就是我的毕业设计的意义和价值所在。在这
2、个作品中,先对软件做了需求分析,得出这个系统必须做什么,必须具备哪些功能。在总体设计中,主要分成两大块,一个系统的功能模块的设计,一个是数据库的设计。详细设计的过程中,对每一个模块,对于一些重要的代码,都摘抄出来进行了必要的解释说明。最后是对这个系统进行了适当的评价。关键词关键词:Visual C+;Access 2000;ODBC;信息管理1 1 引言引言学校的学生的信息管理是学校一项重要的工作,特别是对于高中,学习紧张,考试比较频繁,通过使用学习信息管理系统可以大大的提高这项工作的效率,减少在成绩统计以及分析中的失误。学校可以通过该软件很直观对各班成绩的比较,来督促学校整体的学习质量,学生
3、也可以通过对成绩的查询,了解自己的成绩走向。另外,我通过设计制作这个软件,学习到很多 VC+的知识,对软件的开发有了更深的理解。因此这个软件既有很强的实用性,又使我增长了不少知识,这就是这个毕业设计的意义所在。在这个毕业设计里,运用一些最新的开发工具和技术,对于以下介绍的工具和技术,在网上和图书馆都有大量的资料介绍。1.11.1 C/C+C/C+语言语言C/C+语言并非起源于 Microsoft 公司,在 Windows 3.0 出现之前,最好的 C/C+编程工具是 Borland公司的 Turbo C/C+系列。随着 Windows 3.0,Microsoft 推出了 Microsoft C
4、/C+7.0,首次采用了 MFC(Microsoft Foundation Class Library,微软基础类库)。正是由于 MFC 的出现,让 C+程序员的工作变得更加高效,也使得今天的 Visual C+得以成为优秀的主流编程工具。1.21.2 VisualVisual C+C+Microsoft 出品的 Visual C+是一个功能非常强大的可视化编程工具,可以说是目前功能最为强大的程序开发平台之一。VC+以 C+语言为基础,作为一个开发平台,不仅在开发环境,调试环境等方面对 C+有很大的支持此编译器提供了大量的控件,可用来实现本软件的很多功能,但也会对本软件的实现造成一定的制约。由
5、于同为 Microsoft 公司的产品,在 Windows 操作系统有力的支持下,Visual C+6.0 的执行速度和对操作系统的访问权限之高,是其他许多编程工具所无法比拟的。因此,Visual C+成为众多程序员在 Windows 下编程的首选工具。本系统要涉及到数据库,数据库是变成人员经常使用到的内容,在 Visual C+数据库开发中包含了多种多样的数据库开发技术ODBC API,MFC ODBC,DAO,OLE DB 和 ADO 等,这些技术各有各自己的特点,提供了简单,灵活,访问速度快,可扩展性好的服务特性。1.31.3 数据库数据库 AccessAccess 20002000Ac
6、cess 2000 是 Office 系列软件中的一个专门用来开发数据库的软件。虽然不像 SQL Server 一样的强大,但它能胜任学生管理系统的数据存取工作,另外,Access 环境要求配置不高,界面友好,使用方便,只需一些简单的操作就能完成一个结构完整,高效的数据库对支持数据量不会很大,访问不台频繁的桌面运用软件,Access 有它自身很强的优势。1.41.4 数据库访问技术数据库访问技术 ODBCODBC(开放性数据连接)(开放性数据连接)开放性数据连接提供了一个通用的编程借口,允许程序与多种不同的数据库连接。它为 Oracle,SQLServer 等都提供了驱动程序,用户可以使用 S
7、QL 语句对数据库进行直接的底层功能操作。其特点是功能强上饶师范学院优秀本科毕业论文2大,提供了异步操作,事务处理等高级功能。ODBC 只能访问关系型数据库。在 VC+中,MFC 的 ODBC 数据库类 CDatabase(数据库类),CRecordset(记录集类),和 CRecordView(记录集视图类)为用户管理提供了切实可行的解决方案。CDatabase 类:表示一个到数据源的连接,通过它可以操作数据源。CDecordset 类:代表一个从数据源选择的一组记录的集合记录集。CRecordView 类:是在空间中显示数据库记录的一个视图类。CDBException 类:反映了对数据库操
8、作的异常。2 2 总体设计总体设计2.12.12.12.1系统功能描述系统功能描述系统针对高中学校的教务管理,分为两个模块,学生信息模块,教师管理模块;各模块功能如下:学生模块:可以查看自己最近的考试成绩以及班级里的成绩情况,查看自己历史成绩查询,查看自己的基本资料,提交自己的资料,并且值得注意的是还提供了成绩走向图的功能,很直观的学生成绩的起落。教师管理模块:主要是针对班主任班主任,班主任可以查看本班的整体成绩,查看全年级的整体成绩,进行班级中学生间成绩的比较,进行年级中班级间成绩的比较,对学生成绩的添加,对考试名称的添加,对单个学生的成绩进行查询,修改,删除,输入成绩后,可以进行班级中学生
9、的排名,年级中前五十名排名。2.22.2 功能模块划分功能模块划分每个功能模块都有一个相应的对话框为载体,本系统也是基于对话框的。各功能模块既相互独立,又有一定的联系。学生登录之后,他的学号,姓名及所在班级将会成为全局变量,在以后的每个学生模块的操作中,都只是针对这个学生的操作,和其他学生无关,体现了软件的紧密和功能的划分的优点。2.32.3 系统流程分析系统流程分析系统的开始是一个基于对话框的界面,这有两个好处,一是设计简单,而是操作直观,任何用户都很容易上手,没有其他烦琐的步骤。总体设计阶段的基本目的好似用比较抽象概括的方式确定系统如何完成预定的任务,也就是说,应该确定系统的物理配置方案,
10、并且进而确定组成系统的每个程序的结构 数据库设计数据库设计3.13.1 建数据库建数据库EduDB.mdb,详见表;建的表中,每个表都有相对独立的功能,但又要做到有一定的联系,要方便查询,学生信息管理系统学生信息管理系统学生信息管理系统学生信息管理系统学生模块教师模块最近一次的成绩查询基本资料查看基本资料的修改历次成绩查询全班学生成绩查询密码修改历次成绩的图象表示本班及全年级成绩查询本班学生成绩的输入成绩的修改对输入的成绩进行排名次上饶师范学院优秀本科毕业论文3但表不能太多,每个表的属性也要完善。3.23.2 数据库的具体设计数据库的具体设计共 12 个表,分别如下classclass 班级信
11、息coursecourse:课程表信息classTypeclassType 班级类型信息examtypeexamtype:考试类型表teachingteaching:教师授课表studentinfostudentinfo:学生资料信息表scorescore:分数表studentstudent:学生表上饶师范学院优秀本科毕业论文4teacherteacher:教师表examexam:考试表3.33.3 数据库表之间的关系数据库表之间的关系4 4 详细设计详细设计4.14.1 注册数据源注册数据源1,打开控制面板管理工具数据源(ODBC);2,在用户 DSN 面板,选添加,3,驱动程序选择 Mic
12、rosoft Access Drive(*.mdb);4,数据源名写:EduDatabase;5,数据库选择本毕业设计的安装目录下的:EduDB.ldb;注册好的数据源如图:上饶师范学院优秀本科毕业论文54.24.2 登录模块的设计登录模块的设计分两类用户登录,分别为老师和学生,当输入不正确的密码超过三次,将会自动退出系统,界面如下:关于登录时访问数据库和判断的代码如下:void CEducationalDlg:OnLogin()UpdateData();if(m_flag=0)CSetStudent*m_stuset=new CSetStudent(&m_database);/定义stati
13、c int count=0;/设置计数器UpdateData();if(strlen(m_user)8)MessageBox(你的学号似乎有 8 位,别急,想好了再输入!);return;if(strlen(m_pass)Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);/打开记录集if(m_stuset-GetRecordCount()=0)if(count IsOpen()scoreset-Close();上饶师范学院优秀本科毕业论文7CString strSQL;CString strSQLe;int n;int a;strSQL.Format(select*fr
14、omscorewherestuno=%sANDeximno=%d,stuno,examno);scoreset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);/打开学生成绩表if(scoreset-IsEOF()MessageBox(很抱歉!最近的一次成绩大概老师还没有录入,n你只能查看到以前的成绩。);scoreset-Close();elseif(scoreset-GetRecordCount()!=0)scoreset-MoveFirst();while(!scoreset-IsEOF()scoreset-MoveNext();/统计学生成绩数n=scores
15、et-GetRecordCount();if(scoreset-GetRecordCount()!=0)scoreset-MoveFirst();for(int i=0;im_courseno;switch(a)/对应课程号,获得成绩case 1:m_yuwen=scoreset-m_fscore;case 2:m_shuxue=scoreset-m_fscore;case 3:m_yingyu=scoreset-m_fscore;case 4:m_wuli=scoreset-m_fscore;case 5:m_huaxue=scoreset-m_fscore;case 6:m_shengwu
16、=scoreset-m_fscore;case 7:m_lishi=scoreset-m_fscore;case 8:m_zhengzhi=scoreset-m_fscore;case 9:m_dili=scoreset-m_fscore;scoreset-MoveNext();上饶师范学院优秀本科毕业论文8m_total=m_yuwen+m_shuxue+m_yingyu+m_wuli+m_huaxue+m_shengwu+m_lishi+m_zhengzhi+m_dili;m_average=m_total/n;/计算总分和平均成绩CSetExim*eximset=new CSetExim
17、(&m_database);/建立考试表集if(eximset-IsOpen()eximset-Close();strSQLe.Format(select*fromexamwherestuno=%sANDexamno=%d,stuno,examno);eximset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQLe);/打开考试表if(eximset-IsEOF()eximset-Close();elseif(eximset-GetRecordCount()!=0)/查找学生班级名次m_mingci=eximset-m_place;UpdateData(FALSE);其
18、中班级成绩视图的代码如下:void CStuMscore:RefreshClass(int examno)m_scorelist.DeleteAllItems();/清空列表试图CString strSQLe;CString strSQLs;int j=0;CString s;CSetStudent*m_stuset=new CSetStudent(&m_database);/分配记录集空间CSetExim*m_eximset=new CSetExim(&m_database);CSetScore*m_scoreset=new CSetScore(&m_database);m_stuset-O
19、pen(AFX_DB_USE_DEFAULT_TYPE,m_query);/打开学生表记录集if(m_stuset-GetRecordCount()!=0)m_stuset-MoveFirst();while(!m_stuset-IsEOF()strSQLe.Format(select*from exam where stuno=%s AND examno=%d order bystuno,m_stuset-m_stuno,examno);strSQLs.Format(select*from score where stuno=%s AND eximno=%d order bystuno,m_
20、stuset-m_stuno,examno);m_scorelist.InsertItem(j,m_stuset-m_stuno);/插入到试图列表m_scorelist.SetItemText(j,1,m_stuset-m_stuname);m_eximset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQLe);/打开考试表记录集上饶师范学院优秀本科毕业论文9if(!m_eximset-IsEOF()s.Format(%d,m_eximset-m_place);/继续插入m_scorelist.SetItemText(j,2,s);s.Format(%4.1f,m_e
21、ximset-m_total);m_scorelist.SetItemText(j,4,s);s.Format(%2.3f,m_eximset-m_average);m_scorelist.SetItemText(j,5,s);if(m_scoreset-IsOpen()m_scoreset-Close();m_scoreset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQLs);/打开成绩表if(m_scoreset-GetRecordCount()!=0)m_scoreset-MoveFirst();int i=14;while(!m_scoreset-IsEOF(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于visual c+实现的学生信息管理系统的设计与实现 基于 visual c+ 实现 学生 信息管理 系统 设计
限制150内