《2022年MFC学生成绩管理系统设计 .pdf》由会员分享,可在线阅读,更多相关《2022年MFC学生成绩管理系统设计 .pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 Visual C+ 课程设计题目名称:学生成绩管理程序 MFC 版所在学院:信息工程学院专业名称:自动化专升本 13-1 姓名:学号:指导教师:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 29 页 - - - - - - - - - 2 前言这次课设我做的是学生成绩管理系统,本系统依据开发要求主要针对于教育系统,完成对日常的教育工作对学生成绩档案及其他信息的数字化管理。开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,
2、可以减少劳动力的使用,加快查询速度、加强管理,使各项管理更加规范化。现在在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。目前,学校工作繁杂、资料重多,目前还没有一套完整的、统一的系统。因此,开发一套适和大众的、兼容性好的系统是很有必要的,但由于知识积累及时间关系,这次课设我所设计的系统不是很完善,有些地方没有考虑到,所以实用性大打折扣,后面有时间将会将系统设计的全面些,更具有实用性。在这次课设的开发过程中,我注意使其符合软件工程的设计的要求
3、,在之前准备了许多时间来设计表结构,并将各个模块的流程画出来,使系统的各个模块功能完善,并力求系统应具有实用性、可靠性和适用性方便用户的操作,尽量减少用户的操作,并且能够对查询结果进行分类汇总,该系统还有许多不尽如人意的地方,比如用户界面不够美观,对于出错处理不够等多方面问题,这些都有待进一步改善。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 29 页 - - - - - - - - - 3 目录一设计目的 . . 3 二问题描述 . . 3 三. 需求分析 . . 3
4、 四概要设计 . . 4 1. 系统的功能分析 . 6 2. 系统功能模块图 . 7 3. 配置数据源 . 8 五详细设计 . . 10 六程序设计说明 . . 12 1运行程序,首先出现登录界面. 12 2. 进入系统 . 13 3. 显示功能 . 14 4. 查询功能 . 14 5删除功能 . 15 6修改记录 . 16 7添加记录 . 16 8年级成绩 . 17 七. 设计总结 . . 25 八参考文献 . . 26 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共
5、29 页 - - - - - - - - - 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 29 页 - - - - - - - - - 1 一设计目的通过课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力。二问题描述系统功能基本要求: 1学生信息维护; 2教师信息维护; 3. 课程信息维护; 4学生选课信息; 5. 任课教师操作课程成绩;6. 学生查询课程成绩。三.需求分析“
6、学生成绩管理信息系统”包括四个模块:成绩录入、班级统计、年级统计、系统功能。这四个模块既相互联系又相互独立,班级统计、年级统计模块必须以成绩录入为基础。(1) 成绩录入模块:主要功能用来对学生的成绩进行收集和修改。具体包括学生成绩录入、修改、增加、删除、查询等功能,成绩录入需要分班级、分年级以及某个时间考试的各门功课的成绩。修改要与成绩录入相对应。增加、删除是对基本表的操作。查询条件设置应该齐全,可以班级查询,年级查询,也可以姓名查询,学号查询等等。(2) 班级统计模块:主要功能用来对学生的成绩以班级为单位进行处理。具体包括各班学生总成绩、平均成绩、班级排名及统计班级某分数段内的学生人数;各个
7、学生该科成绩、班级排名及统计班级某分数段内的学生人数。各项统计仅对于某学期某次考试而言。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 29 页 - - - - - - - - - 2 (3) 年级统计模块:主要功能用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 29 页 - - - - - - - - - 3 来对学生的成绩以年级为单位进行处理。
8、具体包括各年级学生总成绩、年级排名统计年级某分数段内的学生人数;各个学生该科成绩、年级排名及统计、年级某分数段内的学生人数。各项统计仅对于某学期某次考试而言,在统计时,还应注意各年级考试科目不同。(4) 系统功能模块:关于系统及退出系统。四概要设计在概要设计里,根据系统需求设计系统EI图,程序流图,系统功能模块图等信息,并配置了数据源。图 1 系统 EI 图图 2 学生信息课程号成绩编号学生学号学号班号科目名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 29 页 - -
9、- - - - - - - 4 图 3 功能模块图图 4 查询模块流程图查询条件满足条件数据库显示结果退出不符合条件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 29 页 - - - - - - - - - 5 图 5 班级与学生成绩流图1.系统的功能分析该学生成绩管理系统是基于网络在线的学生成绩管理系统,在系统中分为大的两个方面:一是教师登录页面、二是学生登录页面。学生成绩学号姓名考试日期操作系统数据库组成原理计算机网络数据结构班级班级号年级号班级人数总人数名师资料总
10、结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 29 页 - - - - - - - - - 6 (1)教师进入学生成绩管理系统的主要功能是:实现添加用户、添加成绩、学籍信息修改、修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等基本功能。(2)学生进行学生成绩管量系统的主要功能是:实现修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等基本功能。2.系统功能模块图图 6 教师功能模块图教师在学生成绩管理系统中能够对所有学生的成绩查看,对学生按学号进行精确查询、按学生姓名
11、进行模糊查询,可以修改自己的登录密码,添加用户,添加学生的成绩,打印学生的学籍信息。登录添加用户添加成绩信息修改修改密码查询课程查询成绩信息查询退出系统系统首页教师功能界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 29 页 - - - - - - - - - 7 图 7 学生功能模块学生在系统中的基本功能是对自己所有成绩的查询,课程的查询,个人登录密码的修改,基本信息的查看,选课,打印自己的学籍信息。3.配置数据源在使用数据库之前, 在控制面板管理系统里面选择数据
12、源,配置数据库,将所创建的数据库表格与操作系统所带的ODBC 关联起来。添加完成后,在VC+ 里用自带的函数库来连接数据库, 并添加创建或者添加,删除,修改等等基本功能。退出系统信息查询修改密码选课课程查询成绩查询登录系统首页学生功能界面名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 29 页 - - - - - - - - - 8 图 8 配置数据源名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
13、心整理 - - - - - - - 第 12 页,共 29 页 - - - - - - - - - 9 图 9 添加一个数据源在用户 DSN 中,添加一个数据源,并选择ACCESS 的数据源驱动程序,创建好后,与已经建好的数据库连接,确定后数据库与ODBC 的连接则创建完成,可以选择前台开发工具进行开发。五详细设计本系统定义的数据库中包含以下5 个表: 学生信息表 , 成绩表 ,课程表 , 代课教师表,班级表。下面介绍这些表的结构。学生信息表:用于记录学生的信息,包括学号,姓名等等。成绩表 : 用于保存学生成绩信息 , 包括学号 , 课程号 , 成绩等字段。课程表:用于保存课程信息。代课教师表
14、:用于保存各门课代课老师的信息。班级表:用于保存不同专业班级。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 29 页 - - - - - - - - - 10 (1) 学生信息表(2)课程表图 10 学生信息表图 11 课程表(3) 成绩管理系统教师表(4)班级表图 12 教师表图 13 班级表(5)成绩表图 14 成绩表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
15、- - 第 14 页,共 29 页 - - - - - - - - - 11 六程序设计说明1运行程序,首先出现登录界面图 15 登录界面输 入 用 户 名 和 密 码 , 若 用 户 名 和 密 码 正 确 则 进 入 系 统 。图 16 输入错误提示若出错,则弹出对话框要求用户重新输入。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 29 页 - - - - - - - - - 12 2.进入系统图 17 进入系统图 10 提示进入系统。图 18 主界面名师资料总结
16、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 29 页 - - - - - - - - - 13 3.显示功能图 19 功能显示4.查询功能图 20 查询功能名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 29 页 - - - - - - - - - 14 图 21 显示根据查询条件将学生成绩信息显示到主界面上。5删除功能图 22 删除功能根据学生学号删除
17、对应学生信息。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 29 页 - - - - - - - - - 15 6修改记录图 23 修改成绩拥有管理员权限的用户删除学生成绩信息。7添加记录图 24 添加学生和成绩信息用来添加学生记录。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 29 页 - - - - - - - - - 16 8年级成绩图
18、 25 显示年级记录将年级所有学生课程成绩及科目全部显示出来。部分程序如下:、主程序代码;SINFOR.cpp SINFOR.cpp : Defines the class behaviors for the application. #include stdafx.h #include SINFOR.h #include MainFrm.h #include SINFORDoc.h #include SINFORView.h #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE = _FILE_;
19、 #endif CSINFORApp 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 29 页 - - - - - - - - - 17 BEGIN_MESSAGE_MAP(CSINFORApp, CWinApp) AFX_MSG_MAP(CSINFORApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) NOTE - the ClassWizard will add and remove mapping macros here. DO N
20、OT EDIT what you see in these blocks of generated code! AFX_MSG_MAP Standard file based document commands ON_COMMAND(ID_FILE_NEW, CWinApp:OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp:OnFileOpen) Standard print setup command ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp:OnFilePrintSetup) END_MESSAGE_MAP() C
21、SINFORApp construction CSINFORApp:CSINFORApp() TODO: add construction code here, Place all significant initialization in InitInstance The one and only CSINFORApp object CSINFORApp theApp; CSINFORApp initialization BOOL CSINFORApp:InitInstance() AfxEnableControlContainer(); Standard initialization Se
22、tDialogBkColor(RGB(181,255,255),RGB(181,255,255); If you are not using these features and wish to reduce the size of your final executable, you should remove from the following the specific initialization routines you do not need. #ifdef _AFXDLL Enable3dControls();Call this when using MFC in a share
23、d DLL #else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 29 页 - - - - - - - - - 18 Enable3dControlsStatic();Call this when linking to MFC statically #endif /Change the registry key under which our settings are stored. TODO: You should modify this string to b
24、e something appropriate such as the name of your company or organization. SetRegistryKey(_T(Local AppWizard-Generated Applications); LoadStdProfileSettings();Load standard INI file options (including MRU) Register the applications document templates. Document templates serve as the connection betwee
25、n documents, frame windows and views. CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CSINFORDoc), RUNTIME_CLASS(CMainFrame),main SDI frame window RUNTIME_CLASS(CSINFORView); AddDocTemplate(pDocTemplate); Parse command line for standard shell com
26、mands, DDE, file open CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); Dispatch commands specified on the command line if (!ProcessShellCommand(cmdInfo) return FALSE; The one and only window has been initialized, so show and update it. m_pMainWnd-ShowWindow(SW_SHOW); m_pMainWnd-UpdateWindow(); 名
27、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 29 页 - - - - - - - - - 19 return TRUE; CAboutDlg dialog used for App About class CAboutDlg : public CDialog public: CAboutDlg(); Dialog Data AFX_DATA(CAboutDlg) enum IDD = IDD_ABOUTBOX ; AFX_DATA ClassWizard genera
28、ted virtual function overrides AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); DDX/DDV support AFX_VIRTUAL Implementation protected: AFX_MSG(CAboutDlg) No message handlers AFX_MSG DECLARE_MESSAGE_MAP() ; CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD) AFX_DATA_INIT(
29、CAboutDlg) AFX_DATA_INIT void CAboutDlg:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX); AFX_DATA_MAP(CAboutDlg) AFX_DATA_MAP BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) AFX_MSG_MAP(CAboutDlg) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 29 页 - - -
30、- - - - - - 20 No message handlers AFX_MSG_MAP END_MESSAGE_MAP() App command to run the dialog void CSINFORApp:OnAppAbout() CAboutDlg aboutDlg; aboutDlg.DoModal(); CSINFORApp message handlers void CSINFORDoc:AssertValid() const CDocument:AssertValid(); void CSINFORDoc:Dump(CDumpContext& dc) const CD
31、ocument:Dump(dc); #endif /_DEBUG CSINFORDoc commands void CSINFORDoc:OnFileAdd() AddDlg dlg; CString Num; CString b; if(dlg.DoModal()=IDOK) Num=dlg.m_sNum; Num=.Lib+Num+.txt; CStdioFile file(Num,CFile:modeCreate | CFile:modeWrite); file.WriteString(dlg.m_sNum+n); file.WriteString(dlg.m_sName+n); fil
32、e.WriteString(dlg.m_sSex+n); file.WriteString(dlg.m_sGrad+n); file.WriteString(dlg.m_sClass+n); file.WriteString(dlg.m_sMath+n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 29 页 - - - - - - - - - 21 file.WriteString(dlg.m_sC+n); file.WriteString(dlg.m_sEng+
33、n); file.WriteString(dlg.m_sDawu+n); file.WriteString(dlg.m_sGailun+n); file.Close(); MessageBox(NULL, 增加成功! , 添加信息 ,MB_OK); TODO: Add your command handler code here void CSINFORDoc:OnFileCheck() CCheck dlg; CString Num; /CString b; if(dlg.DoModal()=IDOK) if(dlg.m_sNum.GetLength()=0) dlg.m_sNum=dlg.
34、m_listNum; Num=dlg.m_sNum; Num=.Lib+Num+.txt; MessageBox(NULL,Num,234,MB_OK); CStdioFile file(Num,CFile:modeRead); file.ReadString(m_sNum); file.ReadString(m_sName); file.ReadString(m_sSex); file.ReadString(m_sGrad); file.ReadString(m_sClass); file.ReadString(m_sMath); file.ReadString(m_sEng); file.
35、ReadString(m_sC); file.ReadString(m_sDawu); file.ReadString(m_sGailun); file.Close(); UpdateAllViews(NULL); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 29 页 - - - - - - - - - 22 TODO: Add your command handler code here void CSINFORDoc:OnFileUpdata() UpdataD
36、lg dlg; dlg.m_sName=m_sName; dlg.m_sNum=m_sNum; dlg.m_sSex=m_sSex; dlg.m_sGrad=m_sGrad; dlg.m_sClass=m_sClass; dlg.m_sMath=m_sMath; dlg.m_sEng=m_sEng; dlg.m_sC=m_sC; dlg.m_sDawu=m_sDawu; dlg.m_sGailun=m_sGailun; CString Num; if(dlg.DoModal()=IDOK) Num=dlg.m_sNum; Num=.Lib+Num+.txt; CStdioFile file(N
37、um,CFile:modeReadWrite); file.WriteString(dlg.m_sNum+n); file.WriteString(dlg.m_sName+n); file.WriteString(dlg.m_sSex+n); file.WriteString(dlg.m_sGrad+n); file.WriteString(dlg.m_sClass+n); file.WriteString(dlg.m_sMath+n); file.WriteString(dlg.m_sC+n); file.WriteString(dlg.m_sEng+n); file.WriteString
38、(dlg.m_sDawu+n); file.WriteString(dlg.m_sGailun+n); file.Close(); MessageBox(NULL, 修改成功! , 修改信息 ,MB_OK); UpdateAllViews(NULL); / TODO: Add your command handler code here 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 29 页 - - - - - - - - - 23 void CSINFORDoc:O
39、nFileDel() Delinfor dlg; CString szNum=; if(dlg.DoModal()=IDOK) szNum=dlg.m_sNum; CFile file; file.Remove(.Lib+szNum+.txt); MessageBox(NULL,删除成功! , 删除信息 ,MB_OK); TODO: Add your command handler code here 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 29 页 - - -
40、 - - - - - - 24 七.设计总结为期一个星期的课程设计终于做完了,感觉在这段时间里收获了很多东西, 由于这学期才学习的Visual C+实用教程, 赵老师的代课条理清晰, 所以做课程设计感觉是对Visual C+的一次很好的复习。刚好课程设计前学习了一段时间MFC,所以在课程设计过程中对 VC+的使用不是很困难, 即使遇到不懂的就在网上查询资料或咨询老师和同学都能够顺利的解决遇到的问题。由于我们使用的是ACCESS 数据库,将数据库表的创建等都直接集成在向导里面,所以数据库语句我们基本上就没用到,加上时间太短 ,都是直接用向导创建完后直接使用,这点上我感觉很惭愧,不过我会在后面的学
41、习中学会使用数据库,希望通过它的学习来加深自己对数据库的理解并熟练使用。在这次设计中,我感觉到随着学生成绩管理类型的不断增加和成绩管理要求的不断提高,管理方面的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情。在这样的情况下有一个实用学生成绩管理系统是有其必然性的,如果能做出一个完善的学生成绩管理系统就使管理方面的工作量减少很多。在这次的课设虽然仅仅对学生成绩管理系统进行建模,功能实现简单,但我从中学会了很多,也感到自身知识的贫乏,希望在日后的努力中能实现该系统,争取做出一个完善的系统。在此意谢谢赵老师的指导,在后面的学习中我会更加努力的。名师资料总结 - - -精品资料欢迎
42、下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 29 页 - - - - - - - - - 25 八参考文献【1】 数据库 : 原理编程与性能 ( 影印版 )( 第 2 版) ,高等教育出版社, Parick ONeil,Elizabeth ONeil编著, 2005.7 【2】 数据库系统概论 ( 第 4 版) ,高等教育出版社,王珊,萨师煊编著, 2006.05 【3】黄德才数据库原理及其应用教程 ,科学出版社, 2003 【4】施伯乐数据库系统教程 ,高等教育出版社, 2003 【5】王亚平数据库系统工程师考试辅导,西安电子科技大学出版社, 2004 【6】张龙祥数据库原理与设计 ,人民邮电出版社, 2002 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 29 页 - - - - - - - - -