学生档案管理系统毕业论文_第1页
学生档案管理系统毕业论文_第2页
学生档案管理系统毕业论文_第3页
学生档案管理系统毕业论文_第4页
学生档案管理系统毕业论文_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.PAGE.学科代码:学号:XX师范大学〔本科毕业论文题目:学生档案管理系统学院:数学与计算机科学学院专业:计算机科学与技术年级:2007级____指导完成时间:2011年3月2学生档案管理系统摘要[摘要]随着办学规模的扩大,学校的学籍档案管理工作则变得更加复杂,档案的完整性、安全性等问题也显得更加重要,日益引起了人们的关注。面对庞大的信息量,需要有学籍档案管理系统来提高学籍档案管理工作的效率。学生档案管理系统使用VisualC++6.0开发了一个简单的管理系统,通过该系统,可以对学生的基本档案信息进行管理。另外,本系统的另一个重要功能是能够实现对学生的考试成绩进行管理,同时也能对成绩进行各种统计查询工作。关键词:学生档案管理数据库VisualC++6.0AccessAbstractWiththeexpansionofthescaleofrunningschool,theenrollmentfilesmanagementisbecomingmorecomplex,fileintegrity,securityproblemsalsoappearsmoreimportant,increasinglydrawnpeople'sattention.Facingthehugeamountofinformation,needhasenrollmentfilesmanagementsystemtoimprovetheefficiencyofenrollmentfilesmanagementwork.ThesystemofmanagingstudentfileusingVisualc++6.0developedasimplemanagementsystem,throughthissystem,canonstudents'basicfileinformationmanagement.Inaddition,thissystemisanotherimportantfunctioncanbemetonstudents'examinationresultforthemanagement,andatthesametimealsocancarryoutvariousstatisticalinquirestotheresult.Keywords:studentsarchivesmanagementdatabaseVisualc++6.0Access目录1引言41.1开发背景42系统分析52.1需求分析53系统设计73.1绘制用例图设计系统功能73.2绘制系统流程图73.3开发工具和开发技术的选择94数据库分析与设计104.1数据可分析104.2数据库概念设计10图4-9登录用户实体图124.3数据库逻辑结构设计134.4数据库的创建155公共类〔数据记录类设计185.1创建ODBC数据源185.2创建数据记录类186登录模块与界面设计216.1登录模块设计216.2主界面设计227学生档案管理模块设计257.1系、专业、班级的管理设计257.2学生档案信息管理设计288学生成绩管理模块设计308.1考试课程信息设置308.2考试成绩查询设计328.3考试成绩录入设计338.4班级成绩的汇总统计设计338.5学生总分名次统计设计348.6学生单科名次统计设计359系统管理模块设计379.1用户注册设计379.2备份/恢复数据库38参考文献40致谢411引言1.1开发背景学生档案管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生档案管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。使用计算机对学生档案信息进行管理,具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率。作为一般小型的教育机构,以往对学生档案的管理采用的是人工的方式管理文件档案,无论是效率还是准确性都受到很大的限制。因此,开发一套学生档案管理软件成为很有必要的事情。同时,通过本系统的开发,数据的整理,也为学校将来接入Inter网作好先期的准备工作。2系统分析2.1需求分析对学生档案的管理,目前最主要的需求有两部分,一是学生基本信息的管理,另一个就是学生成绩的管理与统计。对学生的基本档案,按照系、专业、班级和学生的四级模式进行管理,要包含学生的基本信息,如姓名、性别、民族、年龄、入学、毕业时间等等。要求便于档案的录入和管理,同时有灵活、快捷的查询功能。学生成绩的管理与统计,则要求能对学生所有科目的考试成绩进行入档,重要的是具有查询统计功能。如用户按照班级统计学生的平均成绩、及格率、优秀率等,统计学生个人的总成绩及排名,统计学生个人的单科成绩排名等。2.2功能分析为了维护数据系统的安全性和数据的准确性,设置了两种用户角色:管理员和普通用户。普通用户可以在现有班级设置的基础上,对学生基本信息进行管理,另外,还可以查询统计学生成绩。具体功能如下:查询学生基本信息,可以查看现有系、专业、班级的所有学生个人信息添加、修改现有系、专业、班级的所有学生个人信息查询学生的成绩对成绩进行统计汇总系统管理员角色,则可以对整个系统进行管理操作,其在普通用户功能的基础上,还增加了如下功能:行政设置,包括设置系、系下属的专业以及专业下属的班级考试科目的设置,包括设置考试类型、时间段以及科目名称学生成绩的录入与管理数据库的管理,包括数据库的备份与恢复用户的管理,包括新用户的注册以及用户角色的设置3系统设计3.1绘制用例图设计系统功能 学生档案管理系统一共包含两种用户角色,分别是普通用户和管理员。 普通用户只具有基本的学生信息管理和学生成绩查询功能。该角色只可以在现有的班级中查询、添加、删除、修改学生的基本信息,查询、统计所有学生的考试成绩。图3-1管理员角色相比普通用户,还具有设置院系、设置考试信息、录入成绩、用户管理和数据库管理功能。图3-23.2绘制系统流程图本系统需要对用户身份进行验证,验证通过后再判断用户是管理员还是普通用户,根据角色判断用户可以使用系统中的相应操作功能。 另外,对操作者的操作顺序也有一定的要求。如,要添加学生记录,首先需要查看该学生所在的系、所学专业以及所在班级在数据库中是否存在,如果不存在,则首先需要添加设置这些信息。同样,要录入学生成绩,其前提是该学生的基本信息在系统中已经存在。这里以管理员角色为例,其系统功能模块图如图3-3:图3-33.3开发工具和开发技术的选择 本系统的设计是在WindowsXP中文版操作系统环境下,使用VisualC++6.0中文版开发成功的。 VisualC++是一种可视化的、面向对象和使用事件驱动方式的结构化高级程序设计,可用于开发Windows环境下的各种应用程序。它简单易学、效率高,且功能强大,可以与Windows的专业开发工具SDK相媲美。 数据库系统采用的是Micorsoft的Access,采用Access2003开发工具3.4系统的运行环境 系统可以直接在Win98、Win2000、WinXP环境下运行。注意,系统运行时,不必手工设置ODBC数据源,只需将该数据库文件"StudentInfoManage.mdb"拷贝到与系统的可执行文件"StudentInfoManage.exe"同一目录下即可。3.5系统类库设计 学生档案管理系统的系统类库设计如下:数据库操作类:数据库中的每一个表都定义了一个操作类,包括CDepartmentSet、CExamSubjectSet等。他们从CRecordSet类继承而来。对话框类:用户与系统的交互、数据的显示都是通过对话框窗口来实现,因此需要定义一些对话框类,与相应的对话框资源进行关联,包括CClassDlg、CDepartmentDlg、CExamSubjectDlg等。系统本身提供的框架类:因为系统采用的是MFC单文档工程框架,因此其包括的系统类有CMainFrame、CStudentInfoManageApp等。4数据库分析与设计4.1数据可分析考虑到系统的数据量较少,为了便于项目开发和维护,这里后台的数据库系统设计采用的是Micorsoft的Access数据库系统。Access2000就是关系数据库开发工具,数据库能汇集各种信息以供查询、存储和检索。Access的优点在于它能使用数据表示图或自定义窗体手机信息,数据表示图提供了一种类似于Excel的电子表格,可以使数据库一目了然。另外,Access允许创建自定义报表用于打印或输出数据库中的信息。Access也提供了数据存储库,可以使用左面数据库文件把数据库文件置于网络文件服务器,与其他网络用户共享数据库。Access是一种关系数据库工具,关系数据库使以开发的最通用的数据库之一。4.2数据库概念设计数据库需要存储的主要是两方面的内容,学生的基本档案和学生的成绩。为了维护数据完整性和准确性,将学生基本信息实体中的系别,专业和班级提取出来,用单独的表来存储这些信息。系统涉及实体图如下:系的代码系的代码系的名称系别的描述学院的系图4-1系别实体图学生所在的专业学生所在的专业专业的代码专业的名称专业所在的系专业的描述图4-2专业实体图学生所在的班级学生所在的班级班级的代码班级的名称班级所在专业班级所在的系班级的辅导员班级的描述图4-3班级实体图学生的基本信息学生的基本信息学号姓名所在的系班级专业性别名族籍贯入学时间、、、、、、图4-4学生信息实体图科目代码考试科目科目代码考试科目考试科目考试类型类型代码考试类型图4-5考试类型实体图图4-6考试科目实体图时间段代码时间段代码考试时间段考试时间段图4-7考试时间段实体图编号编号学生姓名学号班级考试类型考试科目考试时间段补考成绩缺考指示考试成绩考试成绩考试成绩图4-8考试成绩实体图登录用户登录用户是否为管理员用户名用户密码图4-9登录用户实体图4.3数据库逻辑结构设计系别信息表用来记录学院中所有系的基本信息,包括代码、名称及简介等信息,该表的逻辑结构如表4-1表4-1department表专业信息表用来记录学院中各系设置的专业信息,包括代码、名称、简介及所属系的信息,该表的逻辑结构如表4-2表4-2major表班级信息表用来记录各专业所分班级信息,包含代码、名称、简介及所属专业的信息,该表的逻辑结构如表4-3表4-3class表学生信息表用了记录学生的基本档案,包括学生的姓名、学号、性别、出生年月、家庭地址的基本信息。另外,还必须包含学生所在的班级、所的专业及所在的系,该表的逻辑结构如表4-4表4-4student表考试类型信息表用来记录所有的考试类型,如期中考试、期末考试、平日测试、过级考试等。包含类型代码和考试类型两个字段,其逻辑结构如表4-5表4-5examtype表考试科目信息表用来记录所有的考试科目,包含科目代码和考试科目两个字段,其逻辑结构如表4-6表4-6examsubject表考试时间段信息表用来记录所有的考试时间段,如2009上学期、2009下学期,包含代码和考试时间段两个字段,其逻辑结构如表4-7表4-7examtime表考试成绩信息记录表记录了所有的学生所有科目的考试成绩,搞好记录代码、学号、姓名、所在班级、考试类型、考试科目、考试时间段、考试成绩、补考成绩,以及是否缺考等字段,其逻辑结构如表4-8表4-8score表用户登录信息表用来记录系统的所有使用用户信息,包含用户名、密码及权限三个字段,其逻辑结构如表4-9表4-9user表4.4数据库的创建各表设计完毕后就可以创建数据库。在Access2000中,新建数据库,名称为"StudentInfoManage.mdb",然后通过创建向导创建各表,如图4-10:图4-10创建完毕后,即得到了数据库文件:"StudentInfoManage.mdb"。为了维护数据库中数据的准确性和完整性,对表中一些字段做了一定的限制。对student表而言,其class字段〔所属班级的记录必须在class表中存在。同样,class表中的major字段〔所属专业必须在major表中存在,而major表中的department字段〔所属专业必须在department表中存在。对score表而言,其subject字段〔考试科目、type字段〔考试类型、time字段〔考试时间段的记录必须在examsubject、examtype和examtime中存在,而code〔学号、name〔姓名、class〔班级字段,必须在student表中存在。各表的关系图如下图4-11:5公共类〔数据记录类设计程序开发中,对数据库访问与操作时通过MFCODBC类来实现的。从CRecordSet类继承了CDepartmenfSet、CExamSubjectSet、CExamtimeset、CExamtypeSet、CmajorSet、CScoreSet、和CUserSet类,分别用于操作数据库中对应的表。5.1创建ODBC数据源要创建这些类,首先要定义ODBC数据源,可以通过手工方式"控制面板"→"管理工具"→"数据源〔ODBC"来设置,也可以在程序中通过编程来实现。这里使用后者,类系统类CStudentImfoManageSpp的InitInstance函数中,添加如下代码:BOOLCStudentInfoManageApp::InitInstance<>{ AfxEnableControlContainer<>; SQLConfigDataSource<NULL,ODBC_ADD_DSN, "MicrosoftAccessDriver<*.mdb>", "DSN=StudentInfoManage\0" "Description=Student\0""FileType=Access\0""DBQ=.\\StudentInfoManage.mdb\0">; //数据库文件、、、在第4行代码中通过API函数SQLConfigDataSource设置ODBC数据源,第5~9行代码分别设置相关参数,第9行代码将数据库文件的路径设置为默认目录,即VC工程所在的目录。因此,编译运行程序前,需要将是数据文件"StudentInfoManage.mdb"复制到工程的根目录下,程序运行后,即实现了ODBC数据源的自动设置。5.2创建数据记录类设置了ODBC数据源后,就可以创建数据记录类。以CScoreSet类为例,它与数据库中的表score表关联,具体创建过程如下:在VC窗口中,执行"Insert"→"NiwClass"菜单命令,在弹出的对话框中,选择CRecordset作为基础,如图5-1:图5-1单击"确定"按钮,弹出"DatabaseOptions"对话框,在ODBC下拉列表框中,会发现新创建的数据源"StudentInfoManage",如图5-2:图5-2选择数据源,单击"OK"按钮,弹出"SelectDatabaseTables"对话框,其中列出了数据库中的所有表,如图5-3:图5-36登录模块与界面设计系统启动首先进入登录模块,即创建"用户登录"对话框,在下拉列表框中选择登录用户名,只有输入正确的密码偶,才能进入系统界面。6.1登录模块设计登录对话框的关联类为CLoginDlg,在对话框的初始化函数OnInitDialog中,读取user表中的所有用户记录,将用户名添加到登录对话框的下拉列表中,代码如下:BOOLCLoginDlg::OnInitDialog<>{ CDialog::OnInitDialog<>; CUserSetrecordset; CStringstrSQL; UpdateData<TRUE>; strSQL="select*fromuser"; if<!recordset.Open<AFX_DB_USE_DEFAULT_TYPE,strSQL>> { MessageBox<"打开数据库失败!","数据库错误",MB_OK>; returnFALSE; } while<!recordset.IsEOF<>> { m_ctrUser.AddString<recordset.m_user>; recordset.MoveNext<>; } recordset.Close<>; returnTRUE;//returnTRUEunlessyousetthefocustoacontrol //EXCEPTION:OCXPropertyPagesshouldreturnFALSE}在第7、8行代码中通过CUwerSet对象实现查询user表的所有记录,第13——17行代码实现遍历查询结果记录集,将用户名添加到下拉组合框中。6.2主界面设计系统主界面为标准的Windows窗口界面,所有操作通过菜单项来实现。为了美好界面,在视图窗口添加了图片,该图片的大小可以随着视图窗口的大小的改变而缩放,具体在视图类CStudentInfoManageView的OnPaint函数中实现,代码如下:voidCStudentInfoManageView::OnPaint<>{ CPaintDC*pDC=newCPaintDC<this>;//创建设备上下文 CBitmapbmp; RECT Rect; RECT RectView; POINT ptSize; CDC dcmem; BITMAP bm; intb=bmp.LoadBitmap<IDB_BITMAP_BG>;//将位图取出; dcmem.CreateCompatibleDC<pDC>;//创建兼容设备上下文。 dcmem.SelectObject<&bmp>;//用设备上下文选择位图; dcmem.SetMapMode<pDC->GetMapMode<>>;//设置映射方式; GetObject<bmp.m_hObject,sizeof<BITMAP>,<LPSTR>&bm>;//映射位图; GetClientRect<&Rect>; ptSize.x=bm.bmWidth; ptSize.y=bm.bmHeight; pDC->DPtoLP<<LPPOINT>&ptSize,1>;//设备单元to逻辑单元; GetClientRect<&RectView>; CRectRectBmp=RectView; //当位图宽度容纳不下的处理 if<<RectView.right-RectView.left>>bm.bmWidth> { RectBmp.left=RectView.left+<RectView.right-RectView.left-bm.bmWidth>/2; RectBmp.right=bm.bmWidth; } else { RectBmp.left=RectView.left; RectBmp.right=RectView.right-RectBmp.left; } //当位图高度容纳不下的处理 if<<RectView.bottom-RectView.top>>bm.bmHeight> { RectBmp.top=RectView.top+<RectView.bottom-RectView.top-bm.bmHeight>/2; RectBmp.bottom=bm.bmHeight; } else { RectBmp.top=RectView.top; RectBmp.bottom=RectView.bottom-RectBmp.top; } //加载视图到设备上下文中 pDC->StretchBlt<RectBmp.left,RectBmp.top,RectBmp.right,\ RectBmp.bottom,&dcmem,0,0,bm.bmWidth,bm.bmHeight,\ SRCCOPY>; //删除设备上下文 dcmem.DeleteDC<>;}7学生档案管理模块设计学生档案管理模块包括基础信息〔如系、专业、班级等的管理和档案信息的管理。7.1系、专业、班级的管理设计要添加学生档案首页需要一次设置系、专业和班级信息,它们都是通过对话框窗口来实现。这里以设置专业为例,说明其实现过程。当用户执行"基础设置"→"专业设置"菜单命令后,会弹出如图7-1所示的"专业设置"对话框,其中可以添加、修改和删除专业记录。图7-1在CMainFrame类中为"专业设置"菜单项添加ON_COMMAND响应函数,实现创建专业设置对话框,同时为"专业设置"菜单项添加ON_UJPDATE_COMMAND_UI响应函数,带么如下:voidCMainFrame::OnUpdateBaseDepartment<CCmdUI*pCmdUI>{ //TODO:AddyourcommandupdateUIhandlercodehere CStudentInfoManageApp*ptheApp=<CStudentInfoManageApp*>AfxGetApp<>; pCmdUI->Enable<ptheApp->m_bIsAdmin>;}函数在第3行代码获取主程序对象,然后根据主程序对象中记录的用户权限设置菜单选项是否可用〔第4行代码。专业设置对话框对应的对话框类为CMajorDlg。在对话框的初始化函数OnInitDialog中,首先读取数据库department表中的数据,将数据库中现有的系别记录添加到对话框系别下拉列表框中,即用户只能在数据库中现有系中添加专业。然后,读取数据库major表中的数据,将数据库中现有的专业记录添加到对话框的列表框中显示。当用户单击"增加"按钮,用户就可以在对话框中添加新的专业记录,任何点击"保存"按钮,即将该专业信息添加到数据库中。"保存"按钮的想要函数为OnButtonSave,代码如下:voidCMajorDlg::OnButtonSave<>{ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData<>; if<m_strName==""> { AfxMessageBox<"请输入专业名称!">; return; } if<m_strCode==""> { AfxMessageBox<"请输入专业代码!">; return; } if<m_strDepartment==""> { AfxMessageBox<"请输入所属系别!">; return; } CStringstrSQL; strSQL.Format<"select*frommajorwherecode='%s'",m_strCode>; if<!m_recordset.Open<AFX_DB_USE_DEFAULT_TYPE,strSQL>> { MessageBox<"打开数据库失败!","数据库错误",MB_OK>; return; } if< m_recordset.GetRecordCount<>!=0> { AfxMessageBox<"当前编码已经存在!请重新输入!">; m_strCode=""; UpdateData<FALSE>; m_recordset.Close<>; return; } m_recordset.AddNew<>; m_recordset.m_name=m_strName ; m_recordset.m_code=m_strCode ; m_recordset.m_department= m_strDepartment; m_recordset.m_brief=m_strInfo; m_recordset.Update<>; m_recordset.Close<>; RefreshData<>; }7.2学生档案信息管理设计当用户执行"学生管理"→"学生档案管理"菜单命令后,菜单命令响应函数会创建学生档案信息管理对话框。在该对话框中,用户可以查询,添加,修改,删除学生档案信息。学生档案管理对话框对应的对话框类为CStudentDlg,下面以添加新的用户档案管理为列,解释其代码开发。添加按钮响应函数为OnButtonNew,函数代码如下:voidCStudentDlg::OnButtonNew<>{ //TODO:Addyourcontrolnotificationhandlercodehere CStudentInfoDlgDlg; if<IDOK==Dlg.DoModal<>> {//添加新记录 if<!m_recordset.Open<AFX_DB_USE_DEFAULT_TYPE>> { AfxMessageBox<"打开数据库失败!">; return; } m_recordset.AddNew<>; m_recordset.m_class=Dlg.m_strClass ; m_recordset.m_department=Dlg.m_strDept ; m_recordset.m_sex =Dlg.m_strSex; m_recordset.m_major=Dlg.m_strMajor; m_recordset.m_birthday =Dlg.m_tmBirth ; m_recordset.m_enroll_date=Dlg.m_tmEnroll; m_recordset.m_graduate_date=Dlg.m_tmGraduate ; m_recordset.m_address =Dlg.m_strAddress; m_recordset.m_edu_sys =Dlg.m_strEdusys; m_recordset.m_family=Dlg.m_strFamily; m_recordset.m_folk=Dlg.m_strFolk ; m_recordset.m_IDCard =Dlg.m_strIDCard; m_recordset.m_native=Dlg.m_strNative; m_recordset.m_oldname =Dlg.m_strOldName ; m_recordset.m_phone=Dlg.m_strPhone; m_recordset.m_political =Dlg.m_strPolitical ; m_recordset.m_postcode=Dlg.m_strPostCode ; m_recordset.m_code=Dlg.m_strCode ; m_recordset.m_name=Dlg.m_strName ; m_recordset.Update<>; m_recordset.Close<>; CStringstrSQL="select*fromstudent"; RefreshData<strSQL>; }}函数的第3、4行代码首先创建学生信息对话框,供用户输入相关的学生档案信息,然后在第6—17行代码将对话框输入的学生档案添加到数据库的student表中,在第18、19行代码实现将student表中的所有记录添加到列表控件中显示。8学生成绩管理模块设计学生成绩管理模块包括基本考试课程信息的设置,考试成绩查询,考试成绩录入及考试成绩的统计汇总等几个子模块。8.1考试课程信息设置在录入学生成绩之前,首先需要设置考试课程信息。考试课程信息设计包括考试类型,考试科目和考试时间的设计。这里以考试科目设计为例,介绍开发过程。当用户执行"成绩管理"→"基础设置"→"考试科目设置"菜单后,会弹出如图8-1所示对话框,通过该对话框用户可以添加,修改,和删除考试科目信息。图8-1在"考试科目设置"对话框中,单击"增加"按钮,在编辑框中输入科目信息,单击"保存"按钮,即完成了考试科目的添加设置。"保存"按钮在对话框类CExamSubjectDlg中响应函数为OnButtonSave,代码如下:voidCExamSubjectDlg::OnButtonSave<>{ //TODO:Addyourcontrolnotificationhandlercodehere UpdateData<>; if<m_strName==""> { AfxMessageBox<"请输入考试科目!">; return; } if<m_strCode==""> { AfxMessageBox<"请输入科目代码!">; return; } CStringstrSQL; strSQL.Format<"select*fromexamsubjectwherecode='%s'",m_strCode>; if<!m_recordset.Open<AFX_DB_USE_DEFAULT_TYPE,strSQL>> { MessageBox<"打开数据库失败!","数据库错误",MB_OK>; return; } if< m_recordset.GetRecordCount<>!=0> { AfxMessageBox<"当前编码已经存在!请重新输入!">; m_strCode=""; UpdateData<FALSE>; m_recordset.Close<>; return; } m_recordset.AddNew<>; m_recordset.m_name=m_strName ; m_recordset.m_code=m_strCode ; m_recordset.Update<>; m_recordset.Close<>; RefreshData<>; }首先判断用户输入信息的有效性,然后将其写入数据库对应的表中,最后更新显示对话框列表中记录。8.2考试成绩查询设计系统用户可以查询学生的所有考试成绩。当用户执行"成绩管理"→"学生成绩查询"菜单项后,会弹出如图8-2所示对话框。通过该对话框,用户可以选择班级,查看班级中学生的各科成绩,也可以直接按姓名搜索学生的沉寂。图8-2在"成绩查询"对话框中,通过班级下拉列表框选择班级,单击"显示学生列表"按钮,在对话左侧的列表中,显示该该班级所有学生的信息。在列表框中选择学生,在右侧列表框中将列出该学生的所有考试成绩。在"成绩查询"对话框类CScoreQueryDlg的初始化函数OnInitDialog中,查询数据库中所有班级,并添加到班级列表框中,另外对列表框做一些基本的初始化工作。在"显示学生列表"按钮响应函数OnButtonList中,从数据库中查询所选班级的学生记录,并添加到左侧窗口的列表控件中。8.3考试成绩录入设计系统管理员可以录入学生成绩。当执行"成绩管理"→"学生成绩录入"菜单项后,会弹出如图8-3所示的对话框。通过该对话框,用户选择班级,考试类型,考试时间段,以及考试科目等信息后,单击"开始录入"按钮,在列表框中会列出该班级所有学生的该科目成绩〔初始为0。鼠标左键双击每条记录,会弹出学生成绩录入对话框,供管理员录入或修改成绩。图8-3在成绩录入对话框类CScoreInputDlg的初始化函数OnINetDialog中,查询数据库中的所有班级,考试类型,考试时间段和考试类型记录,并添加到相应的列表框中。在"开始录入"按钮响应函数OnButtonInput中,根据用户输入的信息,从数据库查找该班级学生的成绩,并在成绩列表框中显示。8.4班级成绩的汇总统计设计系统用户可以通过班级成绩的汇总统计,查看某一班级某门考试的平均成绩、及格率、优秀率等信息。当执行"成绩管理"→"班级成绩汇总统计菜单项后,会弹出如图8-4所示对话框。当用户选中班级、考试时间段和考试类型信息后,单击"统计"按钮,在列表框中会列出所有考试科目的统计信息。图8-4对话框对应的对话框类为CScoreClassStatDlg,在对话列表框的初始化函数中,初始化下拉列表框和统计列表框。在"统计"按钮消息响应函数OnButtonStat中,通过创建信息的记录集,使用SQL语句统计汇总班级学生的各科成绩,并在列表框中显示。8.5学生总分名次统计设计系统用户可以同学生总分名次统计,查看某一班级所有学生的总成绩、平均分,以及班级排名。当执行"成绩管理"→"学生总分名次查询"菜单命令后,会弹出如图8-5所示对话框。当用户选中班级,考试时间段和考试类型信息后,单击"统计"按钮,在列表框总会列出该班级所有的学生的总分、平均分和排名。图8-5对话框对应的对话框类为CScoreTotaIDlg,在对话框的初始化函数中,初始化下拉列表框和统计列表框。在"统计"按钮消息响应函数OnButtonStat中,通过创建消息的记录集,是用SQL语句统计绑架个学生的总成绩、平均成绩,并在列表框中显示。8.6学生单科名次统计设计系统用户可以同过学生单科名次统计,查询某一班级所有学生的某一科目的分数及排名情况。当执行"成绩管理"→"学生单科名次查询"菜单命令后,会弹出如图8-6所示对话框。当用户选中班级、考试时间段、考试类型和考试科目信息后,单击"统计"按钮,在列表框中会列出该班级所有的学生该学科的成绩及排名。图8-6对话框对应的对话框类为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论