论文.docx
《论文.docx》由会员分享,可在线阅读,更多相关《论文.docx(14页珍藏版)》请在冰豆网上搜索。
论文
本科毕业论文
院系:
教育学院
专业:
教育技术学
班级:
教育技术学班
作者:
XX
指导教师:
XXX
完成时间:
2011年4月
基于VC++6.0的学生成绩管理系统的设计与实现
摘要计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。
学校也不例外,近来由于学生数量的急速增加,学生的各种信息量也海量增长,导致学校学生成绩管理的工作量空前增加。
为了能快速、高效、准确的解决这一问题,就必须借助信息管理系统(MIS)来实现,从而达到科学统计、规范管理,减少人工操做,提高工作效率的目的。
该系统是使用VisualC++6.0开发的面向对象的数据库信息管理系统,采用Access2003作为数据库开发工具,系统开发环境是Windowsxp。
该系统界面友好,操作简单,易学易用。
关键字学生成绩管理系统VisualC++6.0Access2003
studentmanagementsystem’sdesignandrealizationbasedontheVC++6.0
ABSTRACTThecomputertechnology’sfastdevelopment,enabledthevarioustradesandoccupationstoobtainthewidespreadpopularizationandtheuseinthecomputertechnologyapplicationaspect.Theschoolisnotexceptional,withrecentlystudentquantity'sincreaserapidly,student'seachkindofinformationcontentalsomagnanimouslygrows,causestheschoolstudentachievementmanagementtheworkincreaseunprecedentedly.Forcanfast,highlyeffective,accuratesolutionthisquestion,mustdrawsupportfromtheinformationmanagementsystem(MIS)torealize.thusachievesthesciencestatistics,thestandardmanagement,reducesartificiallyandraisestheworkingefficiencythegoal.
Thesystemisanobject-orienteddatabaseinformationmanagementsystemdevelopedbyVisualC++6.0andAccess2003,thesystemdevelopmentenvironmentisWindowsxp.Thissystemcontactsurfaceisfriendly,thesimplicityofoperator,easytostudyeasilytouse.
keywordsStudentManagementSystemVisualC++6.0Access2003
目录
第一章引言4
1.1.课题背景及意义4
第二章关键技术介绍5
2.1.VC++6.0和面向对象技术5
2.2.Access2003和ODBC数据库技术5
第三章需求分析6
3.1.系统需求分析6
第四章概要设计7
4.1.系统功能结构设计7
4.2.系统流程图设计9
4.3.数据库设计9
第五章详细设计9
5.1.主界面设计9
5.2.系统管理子模块设计10
5.3.班级管理子模块11
5.4.信息查询子模块设计11
5.5.信息打印子模块设计12
5.6.帮助子模块设计12
结束语12
参考文献13
第一章引言
为方便对学生的信息、成绩等进行高效的管理,编写该程序以提高学校的管理效率。
使用该程序之后,工作人员不仅可以录入学生的信息,查询某位学生成绩情况,还可以对当前学生成绩情况进行一些统计,并能对其进行打印输出。
该系统集信息录入、查询、打印于一体,全方位多功能实现对学生信息的管理,极大的提高了工作效率。
1.1.课题背景及意义
开发一个学生成绩管理系统,采用计算机对学生成绩进行管理,进一步提高了办学效益和现代化水平。
为广大教师和学生提高工作效率,实现学生成绩信息管理工作流程的系统化,规范化和自动化。
现在我国的大中专院校的学生成绩档案管理水平普遍都不是很高,有的还停留在全用纸介质基础上,这种管理方式已不能适应时代的发展,社会的需求,因为它浪费了大量的人力物力,也存在着许多不足的因素。
在今天信息时代这种传统的管理方法必然会被计算机为基础的信息管理系统所代替,一个高效的学生成绩管理系统可以存储历届的学生成绩档案,不需要大量的人力,只需要几名专门录入员即可操作系统,节省大量人力,可以迅速查到所需信息、高效、安全、学生在能方便的查看自己的成绩。
第二章关键技术介绍
2.1.VC++6.0和面向对象技术
VisualC++是功能最为强大可视化开发工具,它不仅支持传统的软件开发方法,更重要的是它能支持面向对象、可视化的开发风格。
因此VisualC++又称作是一个集成开发工具,它提供了软件代码自动生成和可视化资源编辑功能。
VisualC++具有的优点:
提供了面向对象的应用程序框架MFC,简化了程序员的编程工作,提高了模块的重要性;提供了基于CASE技术的可视化软件的自动生成和维护工具AppWizard、ClassWizard、VisualStudio、WizardBar等,实现了直观、可视的程序设计风格,方便地编程和管理各种类,维护程序的源代码封装了Windows的API函数、USER、DERNEL、GDI函数,简化了编程创建、维护窗口的许多复杂的工作。
面向对象技术(OOP)它强调直接以问题域(即现实世界)中的事物为中心来考虑和认识问题,并按照这些事物的本质特征把它们抽象为对象,作为软件系统的基础。
在00P方法中,将对象作为系统中最基本的运行实体,对象中封装了描述该对象的特殊属性(数据)和行为方式(方法)。
整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过一定的方式相互作用。
面向对象技术强调在软件开发过程中面向客观世界或问题域中的事物,采用人类在认识客观世界的过程中普遍运用的思维方法,直观、自然地描述客观世界中的有关事物。
面向对象技术的基本特征主要有抽象性、封装性、继承性和多态性。
2.2.Access2003和ODBC数据库技术
Access2003是微软公司推出的基于Windows的桌面关系数据库管理系统(RDBMS),是Office系列应用软件之一。
它不仅具有界面友好、易操作的特性,同时它还能很好的支持ODBC技术,实现与外界程序的数据交换。
Access2003最主要的特点是它的数据库文件(.mdb)能脱离ACCESS环境,在未装ACCESS的机器上被其他软件调用于用户的操作和管理,从而使得数据不用依赖于数据库软件而可以单独使用,这极大的增强了数据的可移植性。
ODBC(开放数据库互连)是微软公司开放服务结构中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。
也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBCAPI进行访问。
由此可见,ODBC接口的最大优点是其互操作能力,理想情况下,每个驱动程序和数据源应支持完全相同的ODBC函数调用和SQL语句,使得ODBC应用程序可以操作所有的数据库系统。
第三章需求分析
3.1.系统需求分析
功能需求具体分析如下:
(1)系统登录
用户输入用户名和密码,系统查询数据库中的信息对密码进行验证。
如果密码不正确将不能进入系统。
如果密码正确,系统会自动根据用户所具有的权限进入不同界面。
(2)系统管理
修改密码:
对于任何用户,包括学生、教师和系统管理员都可以对自己的密码进行重新设置。
用户管理:
只针对管理员才能进行操作,管理员可以查看用户状态,当教师或学生忘记密码时能够找回其密码,并且能添加、删除用户,修改用户权限。
(3)信息管理
学生管理:
能够对学生的一些基本信息进行添加、修改、删除等操作。
学生的基本信息包括学生编号、姓名、性别、年龄、电话号码和地址等。
班级管理:
能够对班级的一些基本信息进行添加、修改、删除等操作。
班级的基本信息包括教班级名、年级、班级人数、班主任、专业、学制、备注等。
课程管理:
能够对课程的一些基本信息进行添加、修改、删除等操作。
课程的基本信息包括课程编号、课程名称、该门课的学时及学分。
成绩管理:
能够对学生成绩进行管理。
包括添加、修改、删除等操作。
学生成绩的基本信息包括成绩编号、学生名、课程名、分数。
(4)信息查询
成绩查询:
可以按照学生查询,查询某个学生参加所有课程的成绩,并且可以进一步查询该学生成绩情况,如所有及格的课程和不及格的课程,学生还能够查询出所有成绩,以及统计该门课的最高分、最低分、平均分以及通过率、优秀率等信息。
授课查询:
可以查询某个教师所教授的所有课程情况,也可以查询某门课都有哪些教师教授过。
(5)信息打印
学生信息打印:
能够对学生的一些基本信息进行打印、预览操作。
学生的基本信息包括学生编号、姓名、性别、年龄、电话号码和地址等。
学生成绩打印:
能够对学生成绩进行打印、预览操作。
学生成绩的基本信息包括成绩编号、学生名、课程名、分数、备注。
(6)帮助
对本系统的作者情况的一些介绍和说明,方便用户对该系统存在的问题提出意见和建议。
第四章概要设计
4.1.系统功能结构设计
系统的模块将系统划分为5个大模块,每个模块负责的功能相对专一。
其中,用户身份验证模块提供对用户身份的验证,同时读取用户所具有的权限,只有具有管理员权限的用户才可以使用系统的所有功能。
本系统采用MFCODBC数据库访问技术实现对开数据库的访问操作。
系统的最底层是数据库,本系统采用MicrosoftAccess作为后台数据库。
学生成绩管理系统功系统功能结构图
4.2.系统流程图设计
系统流程图
4.3.数据库设计
本系统的数据库由用户表、班级表、课程表、成绩表、学生表、授课表、教师表
第五章详细设计
5.1.主界面设计
先建立一个对话框文件作为主界面,然后添加菜单和背景资源,在关联一个类即可。
主界面如下图所示:
5.2.系统管理子模块设计
新建一个用户管理窗口关联一个CUserDlg的类和一个从CRecordset继承过来的数据库记录集类CUserSet。
并选择ODBC数据源userinfo表,这样将其与表项相关联。
加个头文件#include“UserSet.h”.
这里用到了CUserSet这个类,注意一定不能把大小写弄错了,要不然很麻烦的。
做的过程中出现过errorLNK2001:
unresolvedexternalsymbol"public:
__thiscall这种错误,原因是工程中相关的文件没有加入道project中,手动加入即可
该窗口包含主要函数有:
RefreshList()更新中的数据
ResetButton()设置按钮的初始状态
OnInitDialog()初始化里CList控件和header
OnUserAdd()“添加”按钮方法
OnUserEdit()“修改”按钮方法
OnUserDel()“删除”按钮方法
OnUserOk()“确定”按钮方法
OnCancel()“取消”按钮方法
5.3.班级管理子模块
班级管理窗口用树形控件来实现,其关键技术就是对树形三级展开列表的实现,这里用if语句解决,核心代码如下:
CStringstr,str1;
if(child==NULL)//如果是第三层,直接显示本层记录
{
str=m_ctlTree.GetItemText(cur);
m_classSet.Open();
//设置查询条件CStringstr1;
str1.Format(TEXT("class_name='%s'"),str);//格式化输出,必须将str转化为可变串m_classSet.m_strFilter=str1;
}elseif(parent==NULL)//如果是第一层,显示全部记录
{
//str=m_ctlTree.GetItemText(cur);
m_classSet.Open();
//设置查询条件CStringstr1;
//str1.Format(TEXT("class_name='%s'"),str);//格式化输出,必须将str转化为可变串m_classSet.m_strFilter.Empty();//用empty()将字符串m_strFilter设置为空,以便于打开或者重新查询该记录集时能够得到表中所有的记录
m_classSet.m_strSort="class_name";//按class_name的升序排列记录
}
else//第二层
{
str=m_ctlTree.GetItemText(cur);
m_classSet.Open();
//设置查询条件CStringstr1;
str1.Format(TEXT("class_type='%s'"),str);//格式化输出,必须将str转化为可变串
m_classSet.m_strFilter=str1;
}
5.4.信息查询子模块设计
新建一个成绩查询窗口的资源和一个名为CQueryScoreDlg的类
包含函数
OnInitDialog()初始化
OnRadioBystudent()单击“按学生”查询单选按钮事件
OnRadioBycourse()单击“按课程”查询单选按钮事件
OnScoreQuery()“查询”单选按钮事件
m_comby.InsertString(0,"<");
m_studentno.GetWindowText(m_sno);将当前文本框中的值赋给
m_list.InsertColumn(0,"课程名");
5.5.信息打印子模块设计
学生打印信息模块用到的类及其功能如下:
CPreviewDemoDlg--------主界面列表对话框
CPrvParent-------------预览、打印对话框的容器
CPreView--------------打印预览
CPreGoto--------------预览页面跳转
5.6.帮助子模块设计
帮助模块主要是版权申明以及作者的一些基本信息和联系方式。
帮助界面如下图:
结束语
到此为止,毕业设计和论文初稿也算基本完成了,前前后后大约花了两个星期的时间,这期间遇到无数的程序Bug和不少技术上的难题,这让我费劲了心思,还好,运气不错,问题一一化解,最终作品差强人意的完成了。
期间遇到的困难让人苦不堪言,有时候因为一个头文件没加上,就出现满屏的提示错误,这让你一眼看上去有点晕眩的感觉,你不得不静下心来一个一个的调试;有时候因为一个技术难题无法攻克,你必须放弃之前的努力,重新寻找新的方法,比如在实现打印模块的时候我开始就用的DOC/View框架,后来发现这样做太过麻烦,而且技术难以实现,于是重新改用其它方法实现;有时候出现的问题不管你怎么想也想不出错误的原因,即使你查遍各类书籍,视频,搜遍XX、Google,问遍各大论坛,你依然难以解决,直到你想放弃的时候,却突然灵光一现想出新办法的时候,那种兴奋、激动,无以言表。
我想也正是这种完成解决问题的成就感一直激励着自己勇往直前,永不放弃吧。
设计论文虽然完成了,但中间依然存在很多问题,比如界面不够美观,系统功能不够强大,程序设计的方法的流程不够科学等问题,由于时间和能力的限制,这些问题不能很好的解决,但我相信只要坚持不断的学习和完善自我,相信这些问题都能在将来得到很好的解决。
参考文献
[1]郑阿奇.VisualC++教程.北京:
机械工业出版社,2004.9.
[2]谭浩强.C程序设计(第二版).北京:
清华大学出版社,2000.2.
[3]求是科技.VisualC++数据库通用模块及典型系统开发实例导航.北京:
人民邮电出版,2006.3.
[4]严蔚敏.数据结构(C语言版).北京:
清华大学出版社,2008.2.