学生选修课信息管理系统(软件工程导论课程设计)(共53页).doc
精选优质文档-倾情为你奉上专心-专注-专业湖南人文科技学院计算机系课程设计说明书课程名称课程名称:软件工程导论软件工程导论课程代码课程代码:题题 目目:学生选修课信息管理系统学生选修课信息管理系统年级年级/专业专业/班班:09 级计科级计科 2 班班学生姓名学生姓名:赵浩赵浩 胡碧山胡碧山 文盼文盼 聂惠俊聂惠俊 杨晨杨晨学学 号号: ; ; ; ; 指导老师指导老师:颜富强颜富强开题时间开题时间:2010 年年 6 月月 5 日日完成时间完成时间:2010 年年 6 月月 30 日日2010 年年 6 月月 30 日日精选优质文档-倾情为你奉上专心-专注-专业课程设计任务书及成绩评定课程设计任务书及成绩评定课 程 名 称课 程 名 称 :软件工程导论软件工程导论完成者完成者 :赵浩赵浩 胡碧山胡碧山 文盼文盼 聂惠俊聂惠俊 杨晨杨晨1、设计的目的与要求 1、设计的目的与要求 1)加强学生的实践能力;2)理解小型系统开发的基本步骤; 3)本系统的功能包括:选修课信息查询模块、注册模块、选修课信息管理模块(包括基本的添加、修改、删除功能) 。2、设计进度及完成情况2、设计进度及完成情况日 期日 期内 容内 容6.5-6.7项目开发计划书6.8-6.10系统可行性研究 6.11-6.15系统需求分析 6.16-6.23系统设计 6.24-6.27系统测试 6.28-6.30项目的递交3、成绩评定3、成绩评定设计成绩: (教师填写)指导老师: (签 字)2011 年 月 日精选优质文档-倾情为你奉上专心-专注-专业目目 录录精选优质文档-倾情为你奉上专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业第一章第一章 项目开发计划书项目开发计划书1.1 引言引言 1.1.1 编写目的编写目的此项目开发计划书的编写主要是为了给开发学生选修课信息管理系统 做主要的规划和整合,在开发过程中起到引导作用,以及给使用者提供简要的说明。1.1.2 背景背景Internet 的飞速发展深刻地影响了人们的日常生活和商业运作方式。人们打开网页浏览当天的新闻,发电子邮件给远方的朋友,使用搜索引擎查找资料,进入网上商城购买商品这一切都是在使用 Internet。社会的方方面面渗透着互连网的应用,使得一向烦琐的手工程序变得方便,快捷,而学校网上选课系统正是基于这一思想而发展起来的。1.2 项目概述项目概述1.2.1 工作内容工作内容学生选修课信息管理系统针对的用户是学生:该系统需要实现如下功能:登录查询:主要是让学生了解选修课的课程信息进行浏览、查询,包括课程类别,任课老师,上课时间和地点等。用户注册:主要用于用户注册。用户登陆:主要用于用户的登录。当用户输入用户名和密码后经过确认以后可以选修自己所喜好的课程。选修课信息管理:只有当管理员注册登陆之后才可以使用这个功能。管理员可以发布选修课程信息和对选修课程信息进行修改、添加或删除。精选优质文档-倾情为你奉上专心-专注-专业1.2.2 主要参加人员主要参加人员 组长:赵浩设计:赵浩、聂慧俊、文盼、胡碧山、杨晨开发:赵浩、聂慧俊、文盼、胡碧山、杨晨 1.2.3 产品产品1系统开发计划书2系统需求说明书3系统设计说明书4测试计划5一个能正确运行的可执行程序 源程序清单(有注释)1.2.4 服务服务安装、维护和运行支持从使用该系统开始,维护期限为一年。 1.2.5 验收标准验收标准 各个功能均能正常使用,满足学生的需求。1.2.6 本计划的批准者和批准日期本计划的批准者和批准日期 批准者:颜富强批准日期:2010年6月5日1.3 实施计划 1.3 实施计划 1.3.1 工作任务的分配与人员分工工作任务的分配与人员分工 组长: 赵浩 任务: (1)系统总的开发计划书精选优质文档-倾情为你奉上专心-专注-专业 (2)每周至少组织小组讨论一次,列出本周开发计划 (3)项目开发进度的管理 (4)团队的组织和协调设计:赵浩、聂慧俊、文盼、胡碧山、杨晨 任务: (1)参与小组讨论(2)进行系统的需求分析和系统设计(3)完成系统需求说明书和系统设计说明书(4)编写测试计划,参与系统测试(5)协助文档人员完成用户相关文档开发:赵浩、聂慧俊、文盼、胡碧山、杨晨 任务: (1)参与小组讨论 (2)根据设计完成编码,并注释 (3)进行单元测试1.3.2 进度进度 系统规划阶段: 项目标志性事件 开始到完成开发阶段: 项目开发计划书的完成 6.5-6.7需求分析阶段: 系统需求说明书完成 6.8-6.10设计阶段: 系统设计说明书 6.11-6.14编码实现: 项目的形成 6.16-6.19测试阶段: 测试计划 6.20-6.23移交阶段: 项目的递交 6.24-6.261.4 支持条件支持条件1.4.1 计算机系统支持计算机系统支持操作系统需要 windows 2000以上;操作系统环境:能正常运行VC+6.0;前台开发工具:VC+6.0;前台界面类型:html,jsp,servlet。精选优质文档-倾情为你奉上专心-专注-专业第二章第二章 可行性分析可行性分析2.1 可行性研究前提可行性研究前提要求 : 满足学生在网上进行选修课课程信息进行浏览、查询,包括课程类别,任课老师,上课时间和地点等的基本要求,并对学生个人信息资料具有保密性,管理员可以对学生信息进行修改,添加,删除。目标:实现无纸化办公,节省成本,方便学生选课和查询相关信息以及管理员管理学生信息,提高工作效率。条件、假定、限制:本软件自开发到运行结束至少可运行 5 年,开发成本不超过 300 人民币,开发软件到投入使用不超过 1 个月。2.2 对现有系统的分析对现有系统的分析目前,在手动选课的情况下,工作量繁杂,巨大,创建一个网上选课系统能大大减少工作流程,方便学生选课,查询信息,可以更好的管理学生相关信息。2.3 建议新系统建议新系统2.3.1 新系统说明新系统说明新系统能够为学生选课以及老师和系统管理员管理学生信息提供一个良好的平台。使学生信息能及时准确到达学生信息管理系统。学生,老师以及系统管理员能快捷、方便的找到想要的信息。而且本系统界面友好,操作简单,对硬件要求不高,且用户的花费是几乎可以忽略的,因此十分有利于推广。本系统的用户可分为两种:学生可以用用户名和密码登录学生信息,查询和管理自己的信息;系统管理员也可以用用户名和密码登录管理以及了解学生的信息。精选优质文档-倾情为你奉上专心-专注-专业2.3.2 新系统的流程图新系统的流程图登陆排课选课公告排课信息系统管理员与排课相关的信息教师登陆教师反馈学生登陆选课学生选课信息图 1 新系统的流程图2.4 经济上可行性经济上可行性开发成本:300 元人民币。效益:暂时无法具体衡量。效益/投资比:暂时无法估算。投资回收期:大约 2 个月。精选优质文档-倾情为你奉上专心-专注-专业2.5 技术可行性技术可行性软件需求:操作系统 WINDOWS 2000 Advance Server 以上硬件需求:赛扬 1.7G CPU、512M 内存 80G 硬盘的计算机使用语言为:C 语言 编辑工具为:VC+6.02.6 开发工具的选择开发工具的选择VC+6.0 作为前台的开发工具;用记事文本作为后台支持数据库;通过 VC 来连接到文本数据库并对其编程来实现各种功能。2.7 新系统的影响新系统的影响设备的影响:创建新系统需要添置一台性能良好的服务器。人员的影响:新系统需要一个专职维护人员。用户的影响:用户可准确、高效的发布和查找信息。2.8 结论结论 综上所述,学生选修课信息管理系统在技术非常成熟,主客观条件都具备,且具有良好的效益,因此开发此系统是可行的。为了提高学生选课效率,方便查找和管理学生信息,建议立即开发研究。精选优质文档-倾情为你奉上专心-专注-专业第三章第三章 需求分析需求分析3.1 市场需求分析市场需求分析因为学生选课不仅涉及大量的选修课而且学生数目也很多如果人为操作将面临的很大的工作量而且出错率将会比较高, 所以开发一个学生选修课信息管理系统将会大大提高学校学生选课的效率,以及节省大量的人力物力,大大降低出错的概率,所以将会有较大的市场需求分析。3.2 系统功能性需求分析系统功能性需求分析3.2.1 功能划分功能划分精选优质文档-倾情为你奉上专心-专注-专业 图 2 需求规定3.2.2 功能描述功能描述3.2.2.1 学生注册信息模块3.2.2.1 学生注册信息模块学生信息添加:学生进入注册页面,输入学号、密码、院系、班级、年级,然后进行提交。系统把数据录入学生资料数据库中。3.2.2.2 课程信息模块3.2.2.2 课程信息模块(1)课程信息添加:管理员用户登录后,进入课程信息管理功能单元,输入课程号,课序号,课程名称,教师姓名,开设院系这些数据后提交数据,完成课程信息地添加操作,此时在选课表中将出现刚才添加的课程的有关信息。(2)课程信息修改:管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要修改的课序号,选定后就可以修改该选定课程的课程编号,课序号,课程名称,教师姓名,开设院系,提交后就得到该门课程修改后的信息。(3)课程信息删除:管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要删除的课程的课序号,提交后,就将选定课程删除了。(4)已选课程信息的维护:管理员用户登录后,进入选课程功能单元,就可以看到学生已选的课程,可以通过选择相应的课程号来将相应学生的选课记录删除。3.2.2.3 学生登录功能模块3.2.2.3 学生登录功能模块输入学生的用户名和密码,然后连接数据库,检验用户登录信息。如果存在,则进入选课页面;如果用户名不存在或密码不正确,则给出登录失败的提示框。精选优质文档-倾情为你奉上专心-专注-专业3.2.2.5 选课功能模块3.2.2.5 选课功能模块进入选课页面, 选定所要选的课程后, 然后提交。 系统自动修改课程数据库的信息,然后在学生数据库添加相关已选定的课程信息。3.2.2.4 选修课查询模块3.2.2.4 选修课查询模块该学生登录后进入选修课选课页面后, 从学生数据库中调出该学生的信息以及已选的课程信息,显示在下面。3.3 系统非功能性需求系统非功能性需求3.3.1 可用性3.3.1 可用性本系统的潜在用户群是各个系的学生具有的身份可能会有较大的差异, 因此对本系统的可操作性和易用性都提出了很高的要求。 本系统应能让任何用户除管理员外都不必借助任何操作手册或相关的系统帮助就能顺利地进行各种操作。3.3.2 可靠性3.3.2 可靠性系统建成后预计将有大量的学生在此查询相关的信息以及管理员在上面发布学生的成绩,因此对系统的稳定性也有比较高的要求。一旦系统不能正常工作或系统出错,会给学生带很大不便,带来的损失也将导致失去用户对系统的信任。3.4 数据字典数据字典通过系统需求分析,对学生选修课信息管理系统编制数据字典如下:各主要数据流的定义如表 1 至表 3: 表 1名字:学生档案描述:学生确认信息定义:学生档案=姓名+学号+年级+班级+院系位置:学生档案数据库管理平台 学生查询成绩和信息精选优质文档-倾情为你奉上专心-专注-专业 表 2 表 33.5 实体实体-联系图联系图根据需求分析,可以画出系统 E-R 图如下:图 3 学生选修课信息管理系统 E-R 图名字:课程管理信息描述:管理员需要对课程记录进行管理的信息定义:课程管理信息=【课程添加】 【课程删除】 【课程修改】位置:课程数据库管理平台名字:学生登录信息描述:确认是否是已经添加用户的注册信息定义:用户登录信息=用户名+密码位置:登录界面精选优质文档-倾情为你奉上专心-专注-专业第四章第四章 系统设计系统设计4.1 总体设计总体设计4.1.1 需求概述需求概述本系统的目标是实现向学生提供选修课的课程信息的查询, 为学生选课和管理员发布和修改课程信息提供一个良好的平台。因此,本系统需要实现对发布的信息的查询功能,发布和管理已发布的选修课信息的功能。而在管理员发布信息前需要在系统注册,登录。即系统还需实现用户的注册、登录功能。4.1.2 选修课信息管理系统功能设计选修课信息管理系统功能设计根据系统需求分析和系统功能模块结构图来看,该系统应具备如下基本功能:学生选课的查询学生注册已注册管理员的发布、修改、删除选修课程信息其功能模块结构图如下:图 4 程序功能模块图学生登录选课查询课程系统管理员选课信息精选优质文档-倾情为你奉上专心-专注-专业4.1.3 系统层次模块图系统层次模块图 4.1.4 系统层次模块图系统层次模块图4.1.5 模块设计模块设计(1) 用户注册模块:填写用户名、密码、确认密码(2) 用户登录模块:填写已注册的用户名称,填写正确的密码,进入主控制页面。(3) 用户选课模块:学生可以根据选修课信息选择自己所要选择的课程。 (4) 用户查询模块:可以进行查看所选课程的操作。4.2 各模块各模块 C 语言详细设计语言详细设计4.2.1 登录模块登录模块功能 : 本模块主要用于对用户身份进行鉴别。用户通过表单提供用户名和密码信息,学生选课系统登陆/注册选课查询C 语言的设计精选优质文档-倾情为你奉上专心-专注-专业系统根据用户提供的登录信息对用户进行身份查询鉴别。如果身份合法,则将用户导向系统的选课页面。输入:用户名、密码处理:(1) 输入用户的登录信息:在页面提供的表单出输入用户的用户名和密码信息,点击“登录”按钮提交表单信息到身份验证页面。或点击“重置”按钮,重新输入。(2) 用户身份进行验证:连接数据库,打开用户文本档案信息,检验用户登录信息。以输入数据“用户名” 为查询条件创建数据集查看输入用户名是否存在。如果存在,继续检验输入的密码是否正确。密码和用户名都正确,则进入选课页面;如果用户名不存在或密码不正确,则给出登录失败的提示框。输出:学生选课页面4.2.2 学生登录页面图如下图所示:学生登录页面图如下图所示:登录后通过此方法从检索是否有此用户:#include stdafx.h#include Ver1.h#include Ver1Dlg.h#include MainWindow.h#include AdminDlg.h#include Student.h#include #include using namespace std;#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILE精选优质文档-倾情为你奉上专心-专注-专业static char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)精选优质文档-倾情为你奉上专心-专注-专业/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CVer1Dlg dialogCVer1Dlg:CVer1Dlg(CWnd* pParent /*=NULL*/): CDialog(CVer1Dlg:IDD, pParent)/AFX_DATA_INIT(CVer1Dlg)m_strUserName = _T();m_strPassword = _T();m_iAdmin = 1;m_nCurLogin = -1;m_bIsExistUser = FALSE;/ 默认为不存在用户/m_StuInfo.clear();/AFX_DATA_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()-LoadIcon(IDI_ICON2);m_brush.CreateSolidBrush(RGB(208,231,250);void CVer1Dlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CVer1Dlg)DDX_Text(pDX, IDC_USER, m_strUserName);DDX_Text(pDX, IDC_PASSWORD, m_strPassword);DDX_Radio(pDX, IDC_ADMIN, m_iAdmin);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CVer1Dlg, CDialog)/AFX_MSG_MAP(CVer1Dlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(BTN_RESET, OnReset)ON_BN_CLICKED(BTN_ENTER, OnEnter)ON_WM_CTLCOLOR()/AFX_MSG_MAPEND_MESSAGE_MAP()精选优质文档-倾情为你奉上专心-专注-专业/ CVer1Dlg message handlersBOOL CVer1Dlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu./ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0 xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX AppendMenu(MF_SEPARATOR);pSysMenu-AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the applications main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra initialization here/SetDialogBkCoLoadStudentInfo();/ Load student infomationreturn TRUE; / return TRUE unless you set the focus to a controlvoid CVer1Dlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID & 0 xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;精选优质文档-倾情为你奉上专心-专注-专业dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framework.void CVer1Dlg:OnPaint() if (IsIconic()CPaintDC dc(this); / device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);/ Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;/ Draw the icondc.DrawIcon(x, y, m_hIcon);elseCDialog:OnPaint();/ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CVer1Dlg:OnQueryDragIcon()return (HCURSOR) m_hIcon;精选优质文档-倾情为你奉上专心-专注-专业void CVer1Dlg:OnReset() / TODO: Add your control notification handler code herem_strUserName = _T();m_strPassword = _T();m_iAdmin = 1;UpdateData(FALSE);void CVer1Dlg:OnEnter() / TODO: Add your control notification handler code hereUpdateData(TRUE);switch (m_iAdmin)case 1:if (!m_strUserName.GetLength()MessageBox(用户名不能为空!, 提示,MB_OK |MB_ICONINFORMATION);return;if (checkPassword()ShowWindow(SW_HIDE);/先隐藏登录窗口CMainWindow dlg;dlg.pDlg=this;dlg.DoModal();break;case 0:if(m_strUserName=admin & m_strPassword=admin)ShowWindow(SW_HIDE);/先隐藏登录窗口CAdminDlg dlg;dlg.pDlg=this;dlg.DoModal();elseMessageBox(用户名或密码错误!t, 提示,MB_OK | MB_ICONINFORMATION);精选优质文档-倾情为你奉上专心-专注-专业break;ShowWindow(SW_NORMAL);m_strUserName=;m_strPassword=;UpdateData(FALSE);void CVer1Dlg:LoadStudentInfo()/ Load student infomationifstream infile;infile.open(datastudent.txt,ios:in);if (infile)char buf50;while(!infile.eof()CStudent tmpStuInfo;infilebuf;tmpStuInfo.m_strID=buf;infilebuf;tmpStuInfo.m_strName=buf;infilebuf;tmpStuInfo.m_strPassword=buf;infilebuf;tmpStuInfo.m_strDepartment=buf;infilebuf;tmpStuInfo.m_strGreade=buf;infilebuf;tmpStuInfo.m_strClass=buf;infiletmpStuInfo.m_nCourseCnt;for (int i=0; inCourseID;tmpStuInfo.m_nSelCourse.insert(nCourseID);m_StuInfo.push_back(tmpStuInfo);infile.close();精选优质文档-倾情为你奉上专心-专注-专业BOOL CVer1Dlg:checkPassword()UpdateData();for (int i=0; i!=m_StuInfo.size(); i+)if (m_StuInfoi.m_strID = m_strUserName)if(m_StuInfoi.m_strPassword != m_strPassword)MessageBox(密码错误, 请重新输入!, 提示,MB_OK | MB_ICONINFORMATION);m_strPassword=;UpdateData(FALSE);return FALSE;elsem_nCurLogin=i;return TRUE;MessageBox(用户名不存在, 请重新输入!, 提示,MB_OK | MB_ICONINFORMATION);m_strPassword=;UpdateData(FALSE);return FALSE;void CVer1Dlg:SaveStudentInfo()ofstream outfile;outfile.open(datastudent.txt,ios:out);for (int i=0; i!=m_StuInfo.size(); i+)if(i) outfilen;outfile(LPCTSTR)(m_StuInfoi.m_strID);/ 写入学号outfilet;outfile(LPCTSTR)(m_StuInfoi.m_strName); / 写入姓名outfilet;精选优质文档-倾情为你奉上专心-专注-专业outfile(LPCTSTR)(m_StuInfoi.m_strPassword); / 写入密码outfilet;outfile(LPCTSTR)(m_StuInfoi.m_strDepartment);outfilet;outfile(LPCTSTR)(m_StuInfoi.m_strGreade);outfilet;outfile(LPCTSTR)(m_StuInfoi.m_strClass);outfilet;outfilem_StuInfoi.m_nCourseCnt;/ 写入所选课程总数/ 写入各门课程编号for (set:iterator it=m_StuInfoi.m_nSelCourse.begin();it !=m_StuInfoi.m_nSelCourse.end(); it+)outfiletGetDlgCtrlID()=IDC_ADMIN | pWnd-GetDlgCtrlID()=IDC_STUDENT)pDC-SetBkMode(TRANSPARENT);pDC-SetTextColor(RGB(0,0,255);return m_brush;/ TODO: Return a different brush if the default is not desiredreturn hbr;精选优质文档-倾情为你奉上专心-专注-专业4.2.3 学生注册模块的设计与实现学生注册模块的设计与实现 通过以上的界面添加学生信息,实现代码如下:#include stdafx.h#include Ver1.h#include AddStudent.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAddStudent dialogCAddStudent:CAddStudent(CWnd* pParent /*=NULL*/): CDialog(CAddStudent:IDD, pParent)/AFX_DATA_INIT(CAddStudent)m_strSno = _T();m_strSname = _T();m_strClass = _T();/AFX_DATA_INIT精选优质文档-倾情为你奉上专心-专注-专业void CAddStudent:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAddStudent)DDX_Control(pDX, IDC_ComboDept, m_Department);DDX_Control(pDX, IDC_ComboGreade, m_Greade);DDX_Text(pDX, IDC_Sno, m_strSno);DDX_Text(pDX, IDC_Sname, m_strSname);DDX_Text(pDX, IDC_Sclass, m_strClass);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAddStudent, CDialog)/AFX_MSG_MAP(CAddStudent)ON_BN_CLICKED(IDC_BtnReset, OnBtnReset)ON_BN_CLICKED(IDC_BtnAdd, OnBtnAdd)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CAddStudent message handlersvoid CAddStudent:InitControls()/ 年级m_Greade.AddString(2008 级);m_Greade.AddString(2009 级);m_Greade.AddString(2010 级);m_Greade.SetCurSel(1);/ 院系m_Department.AddString(计算机科学技术系);m_Department.AddString(中文系);m_Department.AddString(外语系);m_Department.AddString(经济与管理科学系);m_Department.AddString(教育科学系);m_Department.AddString(音乐系);m_Department.AddString(美术系);m_Department.AddString(数学与应用数学系);m_Department.AddString(物理与信息工程系);精选优质文档-倾情为你奉上专心-专注-专业m_Department.AddString(通信与控制工程系);m_Department.AddString(化学与材料科学系);m_Department.AddString(政治与法律系);m_Department.AddString(体育科学系);m_Department.AddString(生命科学系);m_Department.AddString(思想政治理论课教学部);m_Department.SetCurSel(0);void CAddStudent:OnBtnReset() / TODO: Add your control notification handler code herem_strClass=;m_strSname=;m_strSno=;UpdateData(FALSE);void CAddStudent:OnBtnAdd() / TODO: Add your control notification handler code hereUpdateData(TRUE);if(m_strSno.GetLength()SaveStudentInfo(s);pAdminDlg-pDlg-m_StuInfo.push_back(s);pAdminDlg-vStudent.push_back(s);SetDlgItemText(IDC_Result,学生信息添加成功!);m_strSno=;m_strSname=;m_strClass=;UpdateData(FALSE);BOOL CAddStudent:checkSno(CString &str)for (int i=0; istr.GetLength(); i+)if(stri9)return TRUE;return FALSE;BOOL CAddStudent:OnInitDialog() CDialog:OnInitDialog();/ TODO: Add extra initialization hereInitControls();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSE精选优质文档-倾情为你奉上专心-专注-专业4.2.4 学生查询模块的设计与实现学生查询模块的设计与实现 精选优质文档-倾情为你奉上专心-专注-专业实现代码如下:#include stdafx.h#include Ver1.h#include MainWindow.h#include Course.h#include ModifiedInfo.h#include #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMainWindow dialogCMainWindow:CMainWindow(CWnd* pParent /*=NULL*/): CDialog(CMainWindow:IDD, pParent)/AFX_DATA_INIT(CMainWindow)m_Query = _T();/AFX_DATA_INITm_hIcon=AfxGetApp()-LoadIcon(IDI_ICON1);void CMainWindow:DoDataExchange(CDataExchange* pDX)/AFX_DATA_MAP(CMainWindow)DDX_Control(pDX, IDC_CANCELSEL2, m_CancelSel2);DDX_Control(pDX, IDC_CANCELSEL1, m_CancelSel1);DDX_Control(pDX, IDC_LIST_SELECT, m_SelectedList);DDX_Control(pDX, IDC_COURSE, m_Course);DDX_Control(pDX, IDC_TIME, m_Time);DDX_Control(pDX