MFC学生成绩管理系统设计

《Visual C++》课程设计题目名称:学生成绩管理程序《MFC版》所在学院:信息工程学院专业名称:自动化专升本13-1 姓名:学号:指导教师:前言这次课设我做的是学生成绩管理系统,本系统依据开发要求主要针对于教育系统,完成对日常的教育工作对学生成绩档案及其他信息的数字化管理。

开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,使各项管理更加规范化。

现在在各大中小学校,用计算机管理学校的信息已经越来越普遍了。

用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。

提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的。

目前,学校工作繁杂、资料重多,目前还没有一套完整的、统一的系统。

因此,开发一套适和大众的、兼容性好的系统是很有必要的,但由于知识积累及时间关系,这次课设我所设计的系统不是很完善,有些地方没有考虑到,所以实用性大打折扣,后面有时间将会将系统设计的全面些,更具有实用性。

在这次课设的开发过程中,我注意使其符合软件工程的设计的要求,在之前准备了许多时间来设计表结构,并将各个模块的流程画出来,使系统的各个模块功能完善,并力求系统应具有实用性、可靠性和适用性方便用户的操作,尽量减少用户的操作,并且能够对查询结果进行分类汇总,该系统还有许多不尽如人意的地方,比如用户界面不够美观,对于出错处理不够等多方面问题,这些都有待进一步改善。

目录一.设计目的 (3)二.问题描述 (3)三.需求分析 (3)四.概要设计 (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)一.设计目的通过课程设计的操作与实践,使学生了解关系数据库的相关理论知识和有关工具软件的使用技巧,在一定程度上提高应用程序的综合开发能力和创新意识、创新能力。

二.问题描述系统功能基本要求:1.学生信息维护;2.教师信息维护;3. 课程信息维护;4.学生选课信息;5. 任课教师操作课程成绩;6. 学生查询课程成绩。

三.需求分析“学生成绩管理信息系统”包括四个模块:成绩录入、班级统计、年级统计、系统功能。

这四个模块既相互联系又相互独立,班级统计、年级统计模块必须以成绩录入为基础。

(1)成绩录入模块:主要功能用来对学生的成绩进行收集和修改。

具体包括学生成绩录入、修改、增加、删除、查询等功能,成绩录入需要分班级、分年级以及某个时间考试的各门功课的成绩。

修改要与成绩录入相对应。

增加、删除是对基本表的操作。

查询条件设置应该齐全,可以班级查询,年级查询,也可以姓名查询,学号查询等等。

(2)班级统计模块:主要功能用来对学生的成绩以班级为单位进行处理。

具体包括各班学生总成绩、平均成绩、班级排名及统计班级某分数段内的学生人数;各个学生该科成绩、班级排名及统计班级某分数段内的学生人数。

各项统计仅对于某学期某次考试而言。

(3)年级统计模块:主要功能用来对学生的成绩以年级为单位进行处理。

具体包括各年级学生总成绩、年级排名统计年级某分数段内的学生人数;各个学生该科成绩、年级排名及统计、年级某分数段内的学生人数。

各项统计仅对于某学期某次考试而言,在统计时,还应注意各年级考试科目不同。

(4)系统功能模块:关于系统及退出系统。

四.概要设计在概要设计里,根据系统需求设计系统EI 图,程序流图,系统功能模块图等信息,并配置了数据源。

图1系统EI 图图2学生信息 课程号成绩编号学生 学号学号班号科目图3功能模块图图4查询模块流程图 查询条件 满足条件数据库显示结果退出不符合条件图5班级与学生成绩流图1.系统的功能分析该学生成绩管理系统是基于网络在线的学生成绩管理系统,在系统中分为大的两个方面:一是教师登录页面、二是学生登录页面。

(1)教师进入学生成绩管理系统的主要功能是:实现添加用户、添加成绩、学籍信息修改、修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等基本功能。

(2)学生进行学生成绩管量系统的主要功能是:实现修改密码、查询课程、选课、查询成绩、学籍信息查询、打印等基本功能。

2.系统功能模块图图6教师功能模块图教师在学生成绩管理系统中能够对所有学生的成绩查看,对学生按学号进行精确查询、按学生姓名进行模糊查询,可以修改自己的登录密码,添加用户,添加学生的成绩,打印学生的学籍信息。

图7学生功能模块学生在系统中的基本功能是对自己所有成绩的查询,课程的查询,个人登录密码的修改,基本信息的查看,选课,打印自己的学籍信息。

3.配置数据源在使用数据库之前,在控制面板 管理系统里面选择数据源,配置数据库,将所创建的数据库表格与操作系统所带的ODBC关联起来。

添加完成后,在VC++里用自带的函数库来连接数据库, 并添加创建或者添加,删除,修改等等基本功能。

图8配置数据源图9添加一个数据源在用户DSN中,添加一个数据源,并选择ACCESS的数据源驱动程序,创建好后,与已经建好的数据库连接,确定后数据库与ODBC的连接则创建完成,可以选择前台开发工具进行开发。

五.详细设计本系统定义的数据库中包含以下5个表:学生信息表,成绩表,课程表,代课教师表,班级表。

下面介绍这些表的结构。

学生信息表:用于记录学生的信息,包括学号,姓名等等。

成绩表:用于保存学生成绩信息,包括学号,课程号,成绩等字段。

课程表:用于保存课程信息。

代课教师表:用于保存各门课代课老师的信息。

班级表:用于保存不同专业班级。

(1)学生信息表(2)课程表图10学生信息表图11课程表(3)成绩管理系统教师表(4)班级表图12教师表图13班级表(5)成绩表图14成绩表六.程序设计说明1.运行程序,首先出现登录界面图15登录界面输入用户名和密码,若用户名和密码正确则进入系统。

图16输入错误提示若出错,则弹出对话框要求用户重新输入。

2.进入系统图17进入系统图10提示进入系统。

图18主界面3.显示功能图19功能显示4.查询功能图20查询功能图21显示根据查询条件将学生成绩信息显示到主界面上。

5.删除功能图22删除功能根据学生学号删除对应学生信息。

6.修改记录图23修改成绩拥有管理员权限的用户删除学生成绩信息。

7.添加记录图24添加学生和成绩信息用来添加学生记录。

8.年级成绩图25显示年级记录将年级所有学生课程成绩及科目全部显示出来。

部分程序如下:②、主程序代码;SINFOR.cppSINFOR.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_FILEstatic char THIS_FILE[] = __FILE__;#endifCSINFORAppBEGIN_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 NOT EDIT what you see in these blocks of generated code!}}AFX_MSG_MAPStandard file based document commandsON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew)ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen)Standard print setup commandON_COMMAND(ID_FILE_PRINT_SETUP,CWinApp::OnFilePrintSetup)END_MESSAGE_MAP()CSINFORApp constructionCSINFORApp::CSINFORApp(){TODO: add construction code here,Place all significant initialization in InitInstance }The one and only CSINFORApp objectCSINFORApp theApp;CSINFORApp initializationBOOL CSINFORApp::InitInstance(){AfxEnableControlContainer();Standard initializationSetDialogBkColor(RGB(181,255,255),RGB(181,255,255));If you are not using these features and wish to reduce the sizeof your final executable, you should remove from the followingthe specific initialization routines you do not need. #ifdef _AFXDLLEnable3dControls();Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();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 be something appropriatesuch as the name of your company or organization.SetRegistryKey(_T("Local AppWizard-Generated Applications"));LoadStdProfileSettings();Load standard INI file options (including MRU)Register the application's document templates. Document templatesserve as the connection between documents, frame windows and views.CSingleDocTemplate* pDocTemplate;pDocTemplate = new CSingleDocTemplate(IDR_MAINFRAME,RUNTIME_CLASS(CSINFORDoc),RUNTIME_CLASS(CMainFrame),main SDI frame windowRUNTIME_CLASS(CSINFORView));AddDocTemplate(pDocTemplate);Parse command line for standard shell commands, DDE, file openCCommandLineInfo cmdInfo;ParseCommandLine(cmdInfo);Dispatch commands specified on the command lineif (!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();return TRUE;}CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog{public:CAboutDlg();Dialog Data{{AFX_DATA(CAboutDlg)enum { IDD = IDD_ABOUTBOX };}}AFX_DATAClassWizard generated virtual function overrides{{AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); DDX/DDV support}}AFX_VIRTUALImplementationprotected:{{AFX_MSG(CAboutDlg)No message handlers}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){{{AFX_DATA_INIT(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)No message handlers}}AFX_MSG_MAPEND_MESSAGE_MAP()App command to run the dialogvoid CSINFORApp::OnAppAbout(){CAboutDlg aboutDlg;aboutDlg.DoModal();}CSINFORApp message handlersvoid CSINFORDoc::AssertValid() const{CDocument::AssertValid();}void CSINFORDoc::Dump(CDumpContext& dc) const{CDocument::Dump(dc);}#endif //_DEBUGCSINFORDoc commandsvoid 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");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(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.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.ReadString(m_sC);file.ReadString(m_sDawu);file.ReadString(m_sGailun);file.Close();}UpdateAllViews(NULL);TODO: Add your command handler code here}void CSINFORDoc::OnFileUpdata(){UpdataDlg 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(Num,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(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}void CSINFORDoc::OnFileDel(){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}七.设计总结为期一个星期的课程设计终于做完了,感觉在这段时间里收获了很多东西,由于这学期才学习的Visual C++实用教程,赵老师的代课条理清晰,所以做课程设计感觉是对Visual C++的一次很好的复习。

合集下载

MFC学生信息管理系统课程设计报告

MFC学生信息管理系统课程设计报告

C++基于MFC类可视化程序设计报告方案概述1、问题描述学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。

2、功能要求(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。

添加记录时,要求学号和编号要唯一。

如果添加了重复记录,则提示数据添加重复并取消添加。

(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:可当前系统中所有学生的信息和课程设计题目信息显示,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。

(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。

如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。

(6)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。

(7)注销功能:注销当前用户,返回登陆界面。

3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。

学生选修课系统设计方案登陆界面系统界面系统信息界面系统登录界面:主界面:信息统计界面:系统实现:1.首先建立一个MFC类对话框,添加相关系统控件。

如图:2.在解决方案中添加Student类,并实现这个类。

代码如下://Student.hclass Student{public:string name;string stuNo;string sex;string major;double score;string banji;public:Student(void);Student(string name,string stuNo,string sex,string major,double score,string banji);}//Student.cpp#include "StdAfx.h"#include "Student.h"Student::Student(void){}Student::Student(string name,string stuNo,string sex,string major,double score,string banji) {this->name=name;this->stuNo=stuNo;this->sex=sex;this->major=major;this->score=score;this->banji=banji;}3.将数据保存、读取。

学生成绩管理系统(详细操作过程)

学生成绩管理系统(详细操作过程)

学生成绩管理系统我将把我的实现步骤完整的写出来,我是在VC 6.0版本下用MFC实现的。

我创建的基于单文档的应用程序,过程不介绍,大家都会。

下面的是我系统菜单:思路:刚进入系统时,只有“登录”菜单可用,其他三个菜单项都是灰色不可用的。

当用户点“进入系统”菜单项时,用户输入用户名、密码和用户类型,系统将根据相应的用户权限使相应的菜单可用,并且“进入系统”菜单项变为不可用。

如:如果用户类型是学生,那么只有学生权限菜单可用,而“教师权限”和“管理员权限”都不可用,同时“进入系统”变为不可用。

“学生权限”下只有“查询成绩”,因为学生只可以查询自己相应的成绩;“教师权限”下有“查询学生成绩”和“增改删学生成绩”两个菜单项,因为教师除了可以查询学生成绩还可以增加、修改和删除学生成绩;“管理员权限”下有“管理学生”和“管理教师”两个菜单项。

整体设计:因为我们要设置系统菜单的状态,所以必须在CMainFrame中添加相应的函数和代码,具体步骤如下:【步骤1】由于系统要使用ODBC类操作数据库,所以需要在stdafx.h中加入代码:#include <afxdb.h>【步骤2】在CMainFrame中的OnCreat()中添加代码如下,实现菜单的初始化工作,当用户没进入系统之前,只有“登陆”菜单下的“进入系统”菜单项可用,而“退出系统”和其他3个权限菜单都不可用,即都是灰色的。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){//使“退出系统”和其他3个权限菜单都不可用,即都是灰色的GetMenu()->GetSubMenu(0)-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(2,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);GetMenu()-> EnableMenuItem(3,MF_BYPOSITION | MF_DISABLED | MF_GRAYED);}【步骤3】在CMainFrame中添加自己定义的函数void SetMenuSta(int type),此函数在登陆对话框的OnOK()中被调用,即当用户进入系统后使“进入系统”菜单项不可用,并根据用户类型使相应菜单可用。

Windows设计,MFC学生管理系统

Windows设计,MFC学生管理系统

目录一课题设计内容、具备的功能; (3)[设计内容]: (3)[系统功能] (3)二类和对话框的功能及其成员 (3)1、CTestADOView:添加基本功能成员函数 (3)2、CStudlg:添加学生信息对话框 (4)3、CStuModiDlg:修改记录对话框 (5)4、CStuFindDlg:查找对话框 (5)5、CStufindall:综合查询对话框 (5)6、IDD_TESTADO_FORM:主对话框 (6)7、IDD_DIALOG1 (6)8、IDD_DIALOG2 (7)9、IDD_DIALOG3 (7)10、IDD_DIALOG4 (8)三部分功能代码 (8)1、部分成员初始化 (8)2、添加成员函数OnExecute (9)3、“添加记录”菜单消息函数 (10)4、“删除消息”菜单消息函数 (11)5、“排序”菜单消息函数 (12)6、“查找”菜单命令消息处理函数 (13)7、“综合查询”菜单命令消息处理函数 (14)8、“更新记录”菜单命令消息处理函数 (15)9、“排序”菜单命令消息处理函数 (15)四程序设计过程、调试中过程中所用的测试用例、测试方法,程序运行的结果: (16)1、开始运行 (16)2、连接 (17)3、显示记录 (17)4、添加记录 (18)5、删除记录 (18)6、更新记录 (19)7、排序 (19)8、查找 (19)9、按条件查询 (20)五课程设计的体会和收获: (20)一课题设计内容、具备的功能;[设计内容]:系统存储以下信息:1)学生基本信息;2)学生的成绩;[系统功能]1) 在VC中设计对话框及菜单,将对话框控件DataGrid与Access数据库表student相连,实现VC中的操作对数据表进行修改。

2)显示记录连接数据库显示学生信息;3)添加记录添加学生信息;4)删除记录删除当前记录;5)更新记录输入系别,修改新值;6)排序以学号关键字对学生数据排序;7)查找输入系别查找8)查询通过学号、年龄、语文、数学、英语、总分等查找条件进行综合查询。

MFC学生信息管理系统课程设计报告

MFC学生信息管理系统课程设计报告

C++基于MFC类可视化程序设计报告方案概述1、问题描述学生信息包括:学号、姓名、性别、年龄、班级、专业等信息。

2、功能要求(1)添加功能:程序能够添加学生的记录和课程设计题目记录,提供选择界面供用户选择所要添加的类别。

添加记录时,要求学号和编号要唯一。

如果添加了重复记录,则提示数据添加重复并取消添加。

(2)查询功能:可根据学号、姓名、编号、名称等信息对已添加的学生和课程设计题目进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:可当前系统中所有学生的信息和课程设计题目信息显示,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。

(5)删除功能:主要实现对已添加的学生和课程设计题目记录进行删除。

如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。

(6)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。

(7)注销功能:注销当前用户,返回登陆界面。

3、问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤:(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。

学生选修课系统设计方案主界面:信息统计界面:系统实现: 1.首先建立一个MFC 类对话框,添加相关系统控件。

如图:2.在解决方案中添加Student 类,并实现这个类。

代码如下://Student.hclass Student{public:string name;string stuNo;string sex;string major;double score; string banji;public:Student(void);Student(string name,string stuNo,string sex,string major,double score,string banji);}//Student.cpp#include "StdAfx.h"#include "Student.h"Student::Student(void){}Student::Student(string name,string stuNo,string sex,string major,double score,string banji){this->name=name;this->stuNo=stuNo;this->sex=sex;this->major=major;this->score=score;this->banji=banji;}3.将数据保存、读取。

学生信息管理系统 MFC课程设计报告

学生信息管理系统 MFC课程设计报告

学生信息管理系统 MFC课程设计报告为了巩固本学期所学的《C++面向程序设计》以及《数据库原理》的学习。

提高和加强学生的计算机应用及软件开发能力,使学生具备初级程序员的基本素质;培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异的发展形势;本次课程设计为一个《学生信息管理系统》。

该系统通过ODBC模式连接了SQL2005数据库,数据库包含了:一.学生的基本信息表(学号、姓名、姓名、性别、年龄、所学专业、电话)二.选修课程信息表(课程号、课程名、学分)三. 选课信息表(学号、课程号、成绩)该系统还对这三个表都具有【增】、【删】、【查】、【改】的功能,同时还设计它们之间的关系,如学生与课程关系和学生的成绩等,同时还要对一些数据进行查询,如通过课程号查询学生成绩的集合。

八.心得体会1)过这次课程设计,初步掌握MFC程序设计,对消息的机制有了较为深刻的认识,对MFC中的应用结构类,菜单类,窗口,对话框有了理解。

2)也了解了数据库的有关知识,学会了一些常用的数据库查询语句,对数据库的功能和作用也有了一定的认识。

3)合理的规划和设计界面也是十分重要的,一个好的程序也需要便捷的操作和美观的界面,人性化设计是需要考虑进取的。

4)了解了ODBC数据库访问技术,ODBC提供了一组标准应用程序接口,可以使用SOL语句实现对数据库的管理系统的访问。

一、设计思路:本程序运用了MFC ODBC应用程序设计与SQL数据库,利用VC++中提供的MFC ODBC 开放数据库连接组件进行数据库的访问,利用了记录集(RECORDSET类)进行信息的添加( ADD ( ) ),删除(DEL ( )),修改(UPDATE( )),查询(select())功能,并且对用户登陆的权限进行检验,并且具有错误提示功能。

二、设计说明与调试分析A 根据设计要求分析数据的结构:数据项列表B 建立表根据设计要求分析数据的结构,利用SQL 2005创建一个数据库,数据库命名为:【wami】,创建3张表:xs表,kc表,xs_kc表,,如下图:C 在表里面填好初始化数据三.ODBC的配置源程序说明&附加SQL Server 2005数据库配置ODBC运行本实例需要配置用户DSN,在ODBC 数据源管理器中配置用户DSN连接指定的SQL Server数据库。

学生成绩管理系统_02010420_王安俊

学生成绩管理系统_02010420_王安俊

MFC课程设计报告学生成绩管理系统作者:堵薇耀(02010418)王安俊(02010420)指导老师:窦建平东南大学机械工程学院2011.10东南大学| 2011.10 目录摘要 (2)第一章绪论1.1 引言 (3)1.2 Visual C++开发环境 (3)1.3 MFC应用程序概述 (3)1。

4 项目背景介绍 (4)第二章设计过程说明2.1 设计目标 (4)2.2 设计要求 (4)2.3 基本思路 (5)2.4基本步骤 (5)第三章数据测试及运行情况分析3.1 数据测试 (6)3.2 运行情况 (9)第四章结论4.1 小结 (10)4。

2 个人体会 (11)致谢 (12)参考文献 (12)附录 (12)东南大学 | 2011.10东南大学 | 2011.10第一章 绪 论1。

1 引言学校里的老师们通常要处理很多的数据,比如学生成绩的统计管理,老师需要知道每个学生的考试成绩以及全班的考试成绩之后才能客观地进行教学质量分析,而这一项任务是很繁琐的。

鉴于这点,我们小组设计了一学生成绩管理系统的程序,实现的功能有:增加记录、删除记录、修改记录、排序记录、查询记录。

这很方便直观地帮助老师进行数据的统计及分析.1.2 Visual C++开发环境Visual C++开发环境是一个基于Windows 操作系统的可视化、面向对象的集成开发环境,在该环境下用户可以开发有关C 和C++的各种应用程序。

应用程的开发包括建立、编辑、浏览、保存、编译、链接和调试等操作,这些操作都可以通过单击菜单项或工具按钮来完成,使用方面、快捷。

另外,该开发环境还提供了项目工作区、应用程序向导和WizardBar 等实用编辑工具.1。

3 MFC 应用程序概述MFC 是由微软公司编写的一套专门用于Windows 编程的基础类库,它的类可以处理许多标准的Windows 应用程序任务.借助AppWizard 可以创建非常灵活的应用程序框架,使开发者摆脱那些每次都必须写的基本代码。

学生成绩管理系统

学生成绩管理系统【需求规格说明】题目:基于MFC设计并实现一个简单的学生成绩管理系统,数据用文件存储,学生信息包括:姓名、学号、数学成绩、英语成绩、语文成绩,具体功能包括:(1)添加、修改学生成绩(2)根据学号查询学生成绩(3)根据姓名查询学生成绩(4)按总分排序(5)按单科成绩排序(6)打开、保存文件【算法设计】(1)设计思想:1.信息管理系统可以分为三大关键部分,第一是数据的组成结构,第二种是处理数据的各种算法,第三种是一个人机交互界面友好的外观框架。

本题的要求是实现一个简单的学生成绩信息管理系统,只需将数据进行简单的组织,再加入一些比较简单而且容易实现的算法,另外还有一个相对友好的界面框架。

2.在数据结构的组织方面,i首先抽象出一个学生信息的类,CStuInfo。

类的数据成员如下图所示:数据成员只有简单的语文英语数学成绩、总成绩、学生姓名、学号,以及指向该学生信息对象所在的索引对象的指针。

由于这个类只是为了将某学生的各种信息进行一下封装,并不需要用到什么特别的外部接口。

在之后遇到问题的时候直接在该类添加成员函数即可。

ii 然后是抽象出一个信息的索引类,CStuListIndex。

类的数据成员如下图所示:由这三个数据成员就容易看出,这个类只是简单的将向量模板CStuInfo实例化之后进行封装。

数据成员pos的作用是在NextP()和ResetP()函数进行向量的遍历的时候方便计数当前的位置,比单纯的[]更加安全。

指针成员ppresent则扩展了pos的功能,可以直接获取当前遍历到的CStuInfo对象。

向量成员vec则是该索引类的主体,直接用标准库的数据结构可以减轻自己大量的代码工作量。

主要的函数接口也如下图所示:从这里可以看出,已经将几乎全部的题目要求实现的功能都已经封装在了索引类中,只需在框架中添加该索引类的实例对象即可,大大增加了程序代码的可读性。

3.在主要算法的实现方面,添加学生信息函数如下图所示:查找学生信息函数如下图所示(只列出按学号查找部分):将学生信息排序函如下图所示(只列出按数学成绩查找部分):3.在一个人机交互界面方面,由于程序本身只进行一些简单的数据处理操作,所以构建mfc工程的时候选择单文档视图结构。

MFC学生信息管理系统

学生信息管理系统学院:电子信息与控制班级:2012320106专业:自动化(卓越工程师) 姓名:指导教师:2014年6月26日一.实验目的:了解MFC编程的基本知识,掌握应用MFC类库编写Windows应用程序的基本模式,了解MFC编写程序的结构框架。

二.实验内容:应用所学的C++知识,利用MFC编程,编写学生信息管理系统,实现简单的学生信息管理作用,例如学生增加、修改,能够实现管理员与学生双重身份管理。

加深对C++程序的理解和应用。

三.实验原理基于MFC库类对对话框界面的设计,通过创建类成员函数成员变量,编辑控件创建消息映射,调用消息函数完成数据的输入输出,实现相关功能。

生成简单的应用软件。

四.程序功能(1)能够实现对管理员和学生登录时的识别,并对其权限做出相应限制(2)管理员登录后能够查看所有成员的信息,包括个人档案,学生成绩。

(3)学生登录后能够实现对自己信息的查看和修改,不能查看到其他人的信息。

五. 软件演示:编译、运行:1.登陆界面:2.系统管理:(1)登陆界面(图中为学生登录)(2)登陆成功3.管理界面:(1)档案输入:(学生权限)(2)学生无修改成绩权限,仅能进行成绩查询(3).使用管理员权限登陆:(4)以管理员身份进行学生成绩录入:成绩写入成功(5)学生查询(6)学生基本信息修改:(学生权限)(7)学生成绩修改:(管理员权限)六.实验总结在这次的实验完成过程中,我们增长了很多知识,一点一点从刚开始的弹出对话框,到菜单界面的显示,再到程序功能的实现,通过上网查资料等手段学习并了解了怎样通过类向导编写一系列的程序,初步了解了MFC的原理,最终完成了学生成绩管理这一项目,实现查询、修改、输入等一系列基本功能,加深了对C++编程的理解,初步了解了利用MFC的基本原理,锻炼了编写实用程序的能力七.主要程序代码(1)登录界面程序void LogDlg::OnOk(){// TODO: Add your control notification handler code here//LogDlg logdlg;CString log_name;UpdateData(TRUE);log_name=m_logname;log_name.Format("%s.txt",log_name);CString C_lang="\n";CString Eng="\n";CStdioFile file(log_name,CFile::modeRead);file.ReadString(C_lang);file.ReadString(Eng);file.Close();UpdateData(true);if((m_logname==C_lang)&&(m_logkey==Eng)){Info.student_logname=m_logname;Info.student_logkey=m_logkey;CDialog::OnOK();MessageBox("enter sucess!");}else{MessageBox("enter fail!check your password!");}UpdateData(false);(2)成绩输入界面程序void InputGrade::OnOK(){// TODO: Add extra validation hereint f=0;if(Info.student_logname=="管理员"){charge chge;chge.DoModal();f=1;CString log_name;UpdateData(TRUE );log_name=Info.student_logname;Info.C_language= m_iclanguage;Info.English=m_ienglish;Info.Physics=m_iphysics;Info.Probability=m_iprobability;log_name.Format("%s.txt",log_name);CStdioFile file(log_name,CFile::modeReadWrite);DWORD dwActual = file.SeekToEnd();file.WriteString(Info.C_language+'\n');file.WriteString(Info.English+'\n');file.WriteString(Info.Physics+'\n');file.WriteString(Info.Probability+'\n');file.WriteString(Info.flag_length);file.Close();MessageBox("成绩写入成功!");}elseMessageBox("你没有此权限!");CDialog::OnOK();if(f==1){Info.student_logname="管理员";}}(3)读取界面程序void changGrade::OnOK(){int F=0;if(Info.student_logname=="管理员"){charge chge;chge.DoModal();F=1;}CString log_name;//UpdateData(TRUE);log_name=Info.student_logname;log_name.Format("%s.txt",log_name);CString C_lang="\n";CString Eng="\n";CString Phy="\n";CString Pro="\n";CStdioFile file(log_name,CFile::modeRead);do{file.ReadString(C_lang);}while((C_lang!="男")&&(C_lang!="女"));file.ReadString(C_lang);file.ReadString(Eng);file.ReadString(Phy);file.ReadString(Pro);file.Close();UpdateData(true);m_cclang=C_lang;m_cenglish=Eng;m_cphysics=Phy;m_cproba=Pro;UpdateData(false);if(F==1){Info.student_logname="管理员";}}(4)修改界面程序void changGrade::OnCancel(){CString lname;CString lkey;CString name;CString depart;CString clss;CString sex;int length;// TODO: Add extra cleanup here if(Info.student_logname=="管理员") {charge chge;chge.DoModal();CString log_name;CString unuse;CFileStatus fileStatus;UpdateData(TRUE);log_name=Info.student_logname;Info.C_language=m_cclang;Info.English=m_cenglish;Info.Physics=m_cphysics;Info.Probability=m_cproba;//MessageBox(Info.student_logname);log_name.Format("%s.txt",log_name);/*CStdioFile file(log_name,CFile::modeRead); file.ReadString(lname);//MessageBox(C_lang);Info.student_logname=lname;file.ReadString(lkey);Info.student_logkey=lkey;file.ReadString(name);Info.student_name=name;file.ReadString(clss);Info.student_class=clss;file.ReadString(depart);Info.student_department=depart;//MessageBox(Phy);file.ReadString(sex);Info.student_sex=sex;file.Close();*/CStdioFile cfile(log_name,CFile::modeReadWrite); length=atol(Info.flag_length);cfile.Seek(35,CFile::begin);cfile.WriteString(Info.C_language+'\n');cfile.WriteString(Info.English+'\n');cfile.WriteString(Info.Physics+'\n');cfile.WriteString(Info.Probability+'\n');cfile.Close();MessageBox("change success!");Info.student_logname="管理员";CDialog::OnOK();}else{MessageBox("你没有此权限");CDialog::OnOK();}}。

MFC开发学生信息管理系统(详细)

学生信息管理系统(一)用microsoft office access创建一个数据库student.mdb(图1.1)在表中添加字段和数据类型,如下图所示:(图1.2)(图1.3)(图1.4)创建ODBC数据源选择控制面板→管理工具→数据源(ODBC)→系统DSN标签→单击“添加”出现下图所示的界面。

选择Drive do Microsoft Access (*.mdb),单击“完成”。

输入数据源名,单击“选择、、、”,选择c/student.mdb 单击“确定”,将会出现如图(图1.7)所示。

(图1.5)(图1.6)(图1.7)(二).MFC图形建立(图2.1)特别注意:创建的应用程序类型是单文档(single document应用程序)(图2.2)将CSTUDXINXIView 的基类改为CScrollView 然后单击“完成”。

(图2.3)为数据表创建CRecordSet用户类按“Ctrl+W ”进入“建立类向导(即MFC ClasWizard)”单击“Add Class...”选择“New...”如图(图2.4)所示.按照(图2.5)→(图2.6)→(图2.7)的安装顺序。

即可完成创建CRecordSet用户类的工作。

(图2.4)(图2.5)(图2.6)(图2.7)在stdafx.h文件中添加CRecordSet包含语句:#include<afxdb.h> 如图(图2.8)所示(图2.8)(三)构建班级信息对话框类按“Ctrl+R”键,打开“插入资源”,选择dialog(对话框),选择新建。

将名字改为IDD_CLASSINFO,标题为“班级信息输入”。

按照(图3.1)添加控件。

添加的控件ID号标题其他属性编辑框(班级号)IDC_EDIT_CLASSNO 默认编辑框(所在院系)IDC_EDIT_DEPART 默认编辑框(专业)IDC_EDIT_SPECIAL 默认组合框(学制)IDC_COMBO_YEAR 默认日期/时间控件(入学时间)IDC_DATETIMEPICKER1 默认对于学制框:使用Data页面来添加数据项,按Ctrl+Enter 换行。

学生成绩管理系统mfc版

修改履历目录1 项目概要 (4)1.1 项目名称 (4)1.2 项目目标 (4)1.3 软件概要 (4)1.4 功能描述 (4)1.5 开发环境 (5)1.6 关键技术 (5)1.7 开发体制 (5)1.8 开发阶段 (6)2 软件详细需求 (7)2.1 欢迎界面 (7)2.2 功能选择界面 (7)2.3 成绩概览 (9)2.4插入学生成绩 (9)2.5 添加学生信息 (10)2.6 学生信息分析 (10)3 系统整体设计 (11)3.1 系统结构图 (11)3.2 模块要求 (11)1项目概要1.1项目名称学生成绩管理系统1.2项目目标1.体会从需求理解出发,到软件整体设计,详细设计,开发,测试,发布的整体流程。

熟悉软件开发整体过程。

2.能够更深的理解面向对象分析和设计的思想,培养面向对象的思想。

3.能够熟练掌握使用Visual Studio进行Windows Applications的开发,培养对于编译环境,调试环境的熟悉能力。

4.能够熟练的查阅MSDN的相关SDK,使用相关的SDK,进行辅助开发。

5.培养快速学习新的知识,并在项目中使用的能力。

1.3软件概要开发一个运行于Windows XP平台的学生成绩管理程序,可以实现学生成绩的输入、插入、排序、查询、成绩升降情况等功能。

具体功能请参考后面的详细内容。

1.4功能描述1. 输入功能:由键盘输入若干个学生的学号、姓名、三科成绩,并计算出平均成绩和总成绩。

2. 插入功能:按学号增加一个学生信息,并将其插入。

PRL3. 排序功能,按要求对学生信息进行排序,分为按学号和按总成绩进行排序两种情形, 并输出结果。

4. 查询功能:按要求查找学生信息,分为按学号和姓名进行查询两种情形,并输出结果。

5. 删除功能:按要求将学生信息删除,分为按学号和姓名进行删除两种情形。

6. 输出功能:按学号输出学生信息。

7. 成绩升降:同一个学生,不同时期之间成绩浮动情况查询。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档