VC课设—学生成绩管理系统_第1页
VC课设—学生成绩管理系统_第2页
VC课设—学生成绩管理系统_第3页
VC课设—学生成绩管理系统_第4页
VC课设—学生成绩管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、Harbin Institute of Technology at WeihaiVC+课程设计报告设计题目: 学生成绩管理系统 院 系: 计算机科学与技术学院 班 级: 1104103 学 号: 110410325 设 计 者: 任树奎 哈尔滨工业大学(威海)二零一二年八月3哈尔滨工业大学(威海)计算机学院VC+课程设计验收及成绩评定表项目名称学生成绩管理系统设计开始日期2012-08-20项目完成日期2012-08-24文 档评审主要考核内容 评审项目评审内容项目名称课题是否从实际出发,是否满足工作量需求,是否具有创意等文档格式文档格式是否规范;文字是否规范;图表是否规范;术语是否准确等文档

2、质量程序设计思想与整体框架是否清晰等程序功能完备性评审主要内容评审项目评 审 内 容程序运行状况程序是否能正常运行;是否出现死锁;是否遇到错误而中止运行程序正确性对于给定的输入数据,是否能得到正确的输出结果程序与文档的一致性程序与各种文档的内容是否一致程序的代码量程序代码量的大小实现方法图形界面或命令行界面,美观程度程序功能程序的功能是否完备答辩评审内容评审项目评审内容答辩思路答辩思路是否清晰回答问题回答问题是否正确考 勤 评 定 成 绩考勤成绩课程设计是否按照要求在机房完成课程设计总成绩哈尔滨工业大学(威海)课程设计任务书 姓 名: 任树奎学 号: 110410325院(系):计算机科学与技

3、术学院 专 业:计算机科学与技术专业 任务起止日期:2012 年 08 月 20 日 至 2012 年08 月 24 日 课程设计题目: 学生成绩管理系统 问题阐述与分析: 随着计算机的普及和信息化社会的不断发展,管理系统,特别是信息管理系统越来越受到人们的重视,如:人事管理、学生信息管理系统、工资管理系统等。而学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段。我本次完成的学生成绩管理系统是用AECESS数据库进行添加管理数据,在VC+6.0上建立了基于单文档的工程,在设置数据源(OD

4、BC)并建立数据库与程序的连接后,利用VC开发可视化界面完成的操作,实现学生成绩信息的查询、增加、删除、修改等功能,从而实现学生成绩信息的多方位显示,方便管理者对学生成绩的管理。 工作量: 主要工作分为五个模块:1学生成绩管理系统的功能分析;2学生成绩管理系统的功能模块划分;3对各功能模块的设计与分析;4利用MFC编程;5软件测试及完善。 工作计划安排:2012年8月20日-8月21 日 :学习MFC编程。 2012年8月21日-8月22日 : 分析确定各模块功能。2012年8月22日-8月23日 :各个功能模块的实现。2012年8月23日-8月24日: 调试并完善程序。2012年8月24日:

5、 撰写课程设计实验报告。哈尔滨工业大学(威海)课程设计报告(论文)一需求分析:学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。这种管理方式存在着许多缺点,如:效率低、保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。如今学校的学生越来越多,成绩管理的工作量越来越大,手工管

6、理成绩的弊端也越来越明显。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率。所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。二 概要设计:学生成绩管理系统本次课程设计为一个基于单文档的带有数据源的成绩管理系统,流程图如下: 成绩编辑模块成绩浏览模块成绩浏览模块 删除成绩查找成绩浏览最末浏览最前 上一个 下一

7、个添加成绩按科目查找按姓名查找按学号查找下面是主要功能概要:【登陆退出界面】:输入用户名及密码,点击登陆按钮,如果与原有数据匹配,跳转到系统主界面。如果不能匹配原有用户名及密码,则弹出对话框并提示“用户名或密码错误!”。点击退出则退出系统。【主界面】:【浏览模块】:通过点击工具栏上的四个按钮实现浏览上一个数据,下一个数据,第一个数据及最后一个数据的功能。【添加成员模块】:通过在本模块中的四个编辑框分别输入学生姓名,学号,考试科目以及考试成绩,点击确定按钮,如果四个数据填写完整并符合字符串类型,弹出对话框“添加成功!”,否则提示“添加失败!”。点击取消按钮则清空填写的数据,并取消添加数据操作。【

8、删除成员模块】:本系统默认选择删除的成员为浏览模块中浏览的那个数据,点击删除按钮,便删除了浏览的那个数据,如果想选另一个数据,从浏览模块中浏览到你想要删除的数据即可。【查询模块】中分为三种查询方式:【按姓名查询】:在编辑框中输入想要查询学生的姓名,点击查询按钮,下面的列表框里就会列出你要查询人的姓名,学号,课程科目以及所考成绩。【按学号查询】:在编辑框中输入想要查询学生的学号,点击查询按钮,下面的列表框里就会列出你要查询人的姓名,学号,课程科目以及所考成绩。【按科目查询】:在编辑框中输入想要查询的科目,点击查询按钮,下面的列表框里就会列出考试此科目所有人的姓名,学号,本科目以及所考成绩。【退出

9、系统按钮】:点击此按钮便会弹出对话框“您是否要退出系统?”,如果选择是,将关闭整个系统,如果选择否,将取消退出操作。三 详细设计:1.数据库的建立: 在Access数据库中建一个新的数据库名为studentmarks,在该数据库中新建一个数据表同样名为studentmarks,该表中定义四种变量,分别为:mark,stu_num,stu_name,subject,分别代表学生的分数,学号,姓名,科目。然后再向数据库中写入一些数据并保存。 2.数据库的连接:打开【控制面板】|【管理工具】|【数据源ODBC】,选择添加数据源studentmarks 数据库,并选择Data目录下的studentma

10、rks.mdb文件。添加成功后,建立基于单文档并带有数据源的工程,数据源选择刚刚建立的studentmarks数据库,点击完成后,便完成了数据库的链接。各步骤如下: 3.各个模块功能的实:【登陆退出界面】:新建一个对话框窗口,建立两个编辑框及两个按钮,分别添加成员变量m_kouling,m_mima及成员函数OnOk();点击登录按钮,调用OnOk()函数,判断两个成员变量值是否与设定用户名密码匹配,匹配成功则调用主窗口。【浏览模块】:在主窗口中建立四个编辑框,然后添加编辑框的成员变量,根据类向导分别选择下拉框中的成员变量p_Set-m_stu_num, p_Set-m_stu_name, p

11、_Set-m_subject, p_Set-m_mark,编辑框中的数据会自动与数据库中数据连接,显示出来。系统还自动生成了记录按钮,用来浏览下一项数据,前一项数据。【添加成员模块】:建立添加模块编辑框及“添加”按钮,点击按钮,调用Onadd()函数,首先调用UpdateData();获取输入的数据,再用一个if语句检查4项信息是否填写完整,一个if语句检查学号等是否符合字符串类型。将新建立的数据成员m_addmark,m_addnum,m_addname,m_addsubject写入数据库,Update()更新数据库,调用Requery()更新数据集,最后调用UpdateData(FALSE

12、),成员变量向空间传递数据。【删除成员模块】:首先选中浏览模块中的一组数据,调用View类中的deleteItem()函数删除此数据成员,删除之后调用Requery()更新记录集,再调用UpdateData(FALSE),成员变量向空间传递数据。【按姓名查询】:新建一个列表框,用来显示要输出的数据,并建立m_showlist成员变量,新建立OnSearch()函数,在此函数中调用m_showlist.DeleteString(0)清空 listbox中的内容,把指针移到第一个数据,用if判断输入姓名是否与数据库中的匹配,执行结束,调用AddString()添加到列表框中,再判断下个数据,直到判

13、断结束。【按学号查询】:与上步类似,只是把if语句中m_stu_name换成m_stu_num,然后更换编辑框成员变量,按照上步的操作即可。【按科目查询】:将编辑框的变量换为m_subject,其余步骤类似。【退出系统按钮】:新建OnButtonconcel()函数,利用MessageBox提示用户是否确定退出,调用SendMessage(WM_CLOSE)退出主程序。四 调试分析:1. 本系统可以完整的实现从登陆到退出的全过程。2. 本系统界面美化程度不够,不够美观。3. 本系统缺少数据修改功能模块。五用户使用说明:1. 本系统设置的用户名为ren,密码为123。2. 本系统是在Window

14、s XP系统下VC+6.0中编写完成的。3. 输入用户名和密码后登录主界面,点击“退出系统”按钮即可退出程序。六测试结果及运行界面: 运行程序之后的登陆界面: 如果用户名或密码不正确: 登录后的主界面:浏览功能模块: 成员添加模块: 添加成功: 删除模块: 删除成功: 按学号查找: 按姓名查找: 按科目查找: 退出系统: 确认退出: 七关键源程序:一头文件:1.定义四个初始成员变量: 学生成绩管理系统Set.h : class CMySet : public CRecordsetpublic:CMySet(CDatabase* pDatabase = NULL);DECLARE_DYNAMIC

15、(CMySet)longm_column1;CStringm_stu_num;CStringm_stu_name;CStringm_subject;CStringm_mark;2.添加,查找模块中新增成员变量:学生成绩管理系统View.h : class CMySet;class CMyView : public CRecordViewpublic:enum IDD = IDD_MY_FORM ;CListBoxm_showlist;CMySet* m_pSet;CStringm_addnum;CStringm_addsubject;CStringm_addname;CStringm_addm

16、ark;CStringm_checknum;CStringm_ser_name;CStringm_ser_sub;3.登录模块中成员变量:DengLu.h:class Denglu : public CDialogpublic:enum IDD = IDD_DIALOG1 ;CStringm_kouling;CStringm_mima;二源文件 1.学生成绩管理系统Set.cpp : #include stdafx.h#include 学生成绩管理系统.h#include 学生成绩管理系统Set.hCMySet:CMySet(CDatabase* pdb): CRecordset(pdb)/A

17、FX_FIELD_INIT(CMySet)m_column1 = 0;m_stu_num = _T();/将数据成员赋初值m_stu_name = _T();m_subject = _T();m_mark = _T();m_nFields = 5;/AFX_FIELD_INITm_nDefaultType = snapshot;CString CMySet:GetDefaultConnect()/数据库连接函数return _T(ODBC;DSN=studentmarks);/连接方式ODBC,数据库名称studentmarksCString CMySet:GetDefaultSQL()/调用

18、数据库函数return _T(studentmarks);void CMySet:DoFieldExchange(CFieldExchange* pFX)/数据库中数据与变量之间数据交换/AFX_FIELD_MAP(CMySet)pFX-SetFieldType(CFieldExchange:outputColumn);RFX_Long(pFX, _T(编号), m_column1);RFX_Text(pFX, _T(stu_num), m_stu_num);RFX_Text(pFX, _T(stu_name), m_stu_name);RFX_Text(pFX, _T(subject), m

19、_subject);RFX_Text(pFX, _T(mark), m_mark);/AFX_FIELD_MAP/ CMySet diagnostics#ifdef _DEBUGvoid CMySet:AssertValid() constCRecordset:AssertValid();void CMySet:Dump(CDumpContext& dc) constCRecordset:Dump(dc);#endif /_DEBUG2.添加功能的实现:void CMyView:Onadd() /添加数据的成员函数/ TODO: Add your control notification ha

20、ndler code hereUpdateData(true);/控件向成员变量传递数据if(m_addmark!=&m_addnum!=&m_addnum!=&m_addsubject!=)m_pSet-AddNew();/m_pSet为数据库指针,添加新纪录m_pSet-m_mark=m_addmark;/写入数据库m_pSet-m_stu_name=m_addname;m_pSet-m_stu_num=m_addnum;m_pSet-m_subject=m_addsubject;m_pSet-Update();/更新数据库m_pSet-MoveLast();/移动到最后一条记录 Mess

21、ageBox(添加新成员成功);m_pSet-Requery();/更新新记录集m_addname=m_addnum=m_addsubject=;/成员变量置空m_addmark=;UpdateData(FALSE);/成员变量向空间传递数据elseMessageBox(添加失败!);4. 删除功能的实现:void CMyView:OnDelete() /删除功能的成员函数/ TODO: Add your control notification handler code hereUpdateData(true);m_pSet-Delete();/删除记录MessageBox(已经删除一个记录

22、!);m_pSet-Requery();/更新记录集UpdateData(false);/成员变量向空间传递数据5. 查找功能的实现:a.按学号查找:void CMyView:OnSearch() /按学号查找成员函数/ TODO: Add your control notification handler code hereUpdateData(TRUE);CString str=; while(m_showlist.GetCount()0) / 清空 listbox中的内容 m_showlist.DeleteString(0);m_pSet-MoveFirst();/移动到第一条记录do

23、if(m_pSet-m_stu_num=m_checknum) str.Format(%8s %8s %6s %6s,m_pSet-m_stu_num,m_pSet-m_stu_name,m_pSet-m_subject,m_pSet-m_mark);/转换数据类型 m_showlist.AddString(str);/添加到显示列表 m_pSet-MoveNext();/移动到下一个数据 UpdateData(FALSE);/向控件传递数据,列表中显示 else m_pSet-MoveNext() while(m_pSet-IsEOF()!=1);/如果不是最后一条记录 m_pSet-Mov

24、eFirst();b.按姓名查找:void CMyView:OnSearchName() /按姓名查询/ TODO: Add your control notification handler code hereUpdateData(TRUE);CString str1=; while(m_showlist.GetCount()0) / 清空 listbox中的内容 m_showlist.DeleteString(0);m_pSet-MoveFirst();/移动到第一条记录 do if(m_pSet-m_stu_name=m_ser_name) str1.Format(%8s %8s %6s

25、 %6s,m_pSet-m_stu_num,m_pSet-m_stu_name,m_pSet-m_subject,m_pSet-m_mark); /转换数据类型 m_showlist.AddString(str1); /添加到显示列表 m_pSet-MoveNext();/移动到下一个数据 UpdateData(FALSE); 向控件传递数据,列表中显示 else m_pSet-MoveNext(); while(m_pSet-IsEOF()!=1);/如果不是最后一条记录m_pSet-MoveFirst();c.按课程查找:void CMyView:Onser_sub() /按课程查询/ TODO: Add your control notification handler code hereUpdateData(TRUE);CString str3=; while(m_showlist.GetCount()0) / 清空 listbox中的内容 m_showlist.DeleteString(0);m_pSet-MoveFirst();/移动到第一条记录 do if(m_pSet-m_subjec

温馨提示

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

评论

0/150

提交评论