C++学生选修课信息管理系统.docx

上传人:小飞机 文档编号:4883272 上传时间:2023-05-21 格式:DOCX 页数:57 大小:741.75KB
返回 下载 相关 举报
C++学生选修课信息管理系统.docx_第1页
第1页 / 共57页
C++学生选修课信息管理系统.docx_第2页
第2页 / 共57页
C++学生选修课信息管理系统.docx_第3页
第3页 / 共57页
C++学生选修课信息管理系统.docx_第4页
第4页 / 共57页
C++学生选修课信息管理系统.docx_第5页
第5页 / 共57页
亲,该文档总共57页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C++学生选修课信息管理系统.docx》由会员分享,可在线阅读,更多相关《C++学生选修课信息管理系统.docx(57页珍藏版)》请在三一办公上搜索。

1、课程设计说明书软件工程导论学生选修课信息管理系统课程名称课程代码题目课程设计任务书及成绩评定课 程名称:软件工程导论完成者:1、设计的目的与要求1)加强学生的实践能力;2)理解小型系统开发的基本步骤;3)本系统的功能包括:选修课信息查询模块、注册模块、选修课信息管理模块(包 括基本的添加、修改、删除功能)。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、成绩评定设计成绩: (教师填写)指导老师:(签 字)2011年 月 日第一章项目开发计划书

2、11.1引言11.1.1编写目的11.1.2 背景11.2项目概述11.2.1工作内容11.2.2主要参加人员21.2.3 产品21.2.4 服务21.2.5验收标准21.2.6本计划的批准者和批准日期21.3实施计划21.3.1工作任务的分配与人员分工21.3.2 进度31.4支持条件31.4.1计算机系统支持3第二章可行性分析42.1可行性研究前提42.2对现有系统的分析42.3建议新系统42.3.1新系统说明42.3.2新系统的流程图52.4经济上可行性52.5技术可行性62.6开发工具的选择62.7新系统的影响62.8结论6第三章 需求分析73.1市场需求分析73.2系统功能性需求分析

3、73.2.1功能划分73.2.2功能描述83.2.2.1学生注册信息模块83.2.2.2课程信息模块83.2.2.3学生登录功能模块83.2.2.5选课功能模块93.2.2.4选修课查询模块93.3系统非功能性需求93.3.1可用性93.3.2可靠性93.4数据字典93.5实体-联系图10第四章系统设计114.1总体设计114.1.1需求概述114.1.2选修课信息管理系统功能设计114.1.3系统层次模块图124.1.4系统层次模块图124.1.5模块设计124.2各模块C语言详细设计124.2.1 登录模块124.2.2学生登录页面图如下图所示:134.2.3学生注册模块的设计与实现224

4、.2.4学生查询模块的设计与实现264.2.5学生选课模块的设计与实现41第五章系统测试435.1测试的作用和意义435.2测试方法445.3测试内容445.4测试结果445.4.1注册和登录模块测试445.4.2查询模块测试465.4.3管理员对学生选修课信息发布、修改和删除模块测试475.5结论49第六章总结50参考文献50第一章项目开发计划书11引言1.1.1编写目的此项目开发计划书的编写主要是为了给开发学生选修课信息管理系统做主要的 规划和整合,在开发过程中起到引导作用,以及给使用者提供简要的说明。1.1.2背景Internet的飞速发展深刻地影响了人们的日常生活和商业运作方式。人们打

5、开网页 浏览当天的新闻,发电子邮件给远方的朋友,使用搜索引擎查找资料,进入网上商城购 买商品一一这一切都是在使用Internet。社会的方方面面渗透着互连网的应用,使得一 向烦琐的手工程序变得方便,快捷,而学校网上选课系统正是基于这一思想而发展起来 的。1.2项目概述1.2.1工作内容学生选修课信息管理系统针对的用户是学生:该系统需要实现如下功能:登录查询:主要是让学生了解选修课的课程信息进行浏览、查询,包括课程类别, 任课老师,上课时间和地点等。用户注册:主要用于用户注册。用户登陆:主要用于用户的登录。当用户输入用户名和密码后经过确认以后可以选 修自己所喜好的课程。选修课信息管理:只有当管理

6、员注册登陆之后才可以使用这个功能。管理员可以发 布选修课程信息和对选修课程信息进行修改、添加或删除。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工作任务的分配与人员分工组长:赵浩任务:(1)

7、系统总的开发计划书(2)每周至少组织小组讨论一次,列出本周开发计划(3)项目开发进度的管理(4)团队的组织和协调设计:赵浩、聂慧俊、文盼、胡碧山、杨晨任务:(1)参与小组讨论(2)进行系统的需求分析和系统设计(3)完成系统需求说明书和系统设计说明书(4)编写测试计划,参与系统测试(5)协助文档人员完成用户相关文档开发:赵浩、聂慧俊、文盼、胡碧山、杨晨任务: (1)参与小组讨论(2)根据设计完成编码,并注释(3)进行单元测试1.3.2进度系统规划阶段:项目标志性事件开始到完成开发阶段:项目开发计划书的完成6.5-6.7需求分析阶段:系统需求说明书完成6.8-6.10设计阶段系统设计说明书6.11

8、-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可行性研究前提要求:满足学生在网上进行选修课课程信息进行浏览、查询,包括课程类别,任课老师, 上课时间和地点等的基本要求,并对学生个人信息资料具有保密性,管理员可以对学生 信息进行修改,添加,删除。目标:实现无纸化办公,节省成本,方便学生选课和查询相关信息以及管理员

9、管理学生 信息,提高工作效率。条件、假定、限制:本软件自开发到运行结束至少可运行5年,开发成本不超过300人 民币,开发软件到投入使用不超过1个月。2.2对现有系统的分析目前,在手动选课的情况下,工作量繁杂,巨大,创建一个网上选课系统能大大减 少工作流程,方便学生选课,查询信息,可以更好的管理学生相关信息。2.3建议新系统2.3.1新系统说明新系统能够为学生选课以及老师和系统管理员管理学生信息提供一个良好的平台。 使学生信息能及时准确到达学生信息管理系统。学生,老师以及系统管理员能快捷、方 便的找到想要的信息。而且本系统界面友好,操作简单,对硬件要求不高,且用户的花 费是几乎可以忽略的,因此十

10、分有利于推广。本系统的用户可分为两种:学生可以用用户名和密码登录学生信息,查询和管理自己的信息; 系统管理员也可以用用户名和密码登录管理以及了解学生的信息。图1新系统的流程图排课学生选课信息11L选课d登陆(1r登陆2.4经济上可行性开发成本:300元人民币。效益:暂时无法具体衡量。效益/投资比:暂时无法估算。投资回收期:大约2个月。2.5技术可行性软件需求:操作系统WINDOWS 2000 Advance Server以上硬件需求:赛扬1.7G CPU、512M内存80G硬盘的计算机使用语言为:C语言编辑工具为:VC+6.02.6开发工具的选择VC+6.0作为前台的开发工具;用记事文本作为后

11、台支持数据库;通过VC来连接 到文本数据库并对其编程来实现各种功能。2.7新系统的影响设备的影响:创建新系统需要添置一台性能良好的服务器。人员的影响:新系统需要一个专职维护人员。用户的影响:用户可准确、高效的发布和查找信息。2.8结论综上所述,学生选修课信息管理系统在技术非常成熟,主客观条件都具备,且具有 良好的效益,因此开发此系统是可行的。为了提高学生选课效率,方便查找和管理学生 信息,建议立即开发研究。第三章需求分析3.1市场需求分析因为学生选课不仅涉及大量的选修课而且学生数目也很多如果人为操作将面临的 很大的工作量而且出错率将会比较高,所以开发一个学生选修课信息管理系统将会大大 提高学校

12、学生选课的效率,以及节省大量的人力物力,大大降低出错的概率,所以将会 有较大的市场需求分析。3.2系统功能性需求分析3.2.1功能划分添加课程信息图2需求规定3.2.2功能描述3.2.2.1学生注册信息模块学生信息添加:学生进入注册页面,输入学号、密码、院系、班级、年级,然后进 行提交。系统把数据录入学生资料数据库中。3.2.2.2课程信息模块(1) 课程信息添加:管理员用户登录后,进入课程信息管理功能单元,输入课程号,课 序号,课程名称,教师姓名,开设院系这些数据后提交数据,完成课程信息地添加操作, 此时在选课表中将出现刚才添加的课程的有关信息。(2) 课程信息修改:管理员用户登录后,进入课

13、程信息管理功能单元,如果是已经登录 了,选择要修改的课序号,选定后就可以修改该选定课程的课程编号,课序号,课程名 称,教师姓名,开设院系,提交后就得到该门课程修改后的信息。(3) 课程信息删除:管理员用户登录后,进入课程信息管理功能单元,如果是已经登录 了,选择要删除的课程的课序号,提交后,就将选定课程删除了。(4) 己选课程信息的维护:管理员用户登录后,进入选课程功能单元,就可以看到学生 己选的课程,可以通过选择相应的课程号来将相应学生的选课记录删除。3.2.2.3学生登录功能模块输入学生的用户名和密码,然后连接数据库,检验用户登录信息。如果存在,则进 入选课页面;如果用户名不存在或密码不正

14、确,则给出登录失败的提示框。3.2.2.5选课功能模块进入选课页面,选定所要选的课程后,然后提交。系统自动修改课程数据库的信息, 然后在学生数据库添加相关已选定的课程信息。3.2.2.4选修课查询模块该学生登录后进入选修课选课页面后,从学生数据库中调出该学生的信息以及已选 的课程信息,显示在下面。3.3系统非功能性需求3.3.1可用性本系统的潜在用户群是各个系的学生具有的身份可能会有较大的差异,因此对本系 统的可操作性和易用性都提出了很高的要求。本系统应能让任何用户除管理员外都不必 借助任何操作手册或相关的系统帮助就能顺利地进行各种操作。3.3.2可靠性系统建成后预计将有大量的学生在此查询相关

15、的信息以及管理员在上面发布学生 的成绩,因此对系统的稳定性也有比较高的要求。一旦系统不能正常工作或系统出错, 会给学生带很大不便,带来的损失也将导致失去用户对系统的信任。3.4数据字典通过系统需求分析,对学生选修课信息管理系统编制数据字典如下: 各主要数据流的定义如表1至表3:名字:学生档案描述:学生确认信息定义:学生档案=姓名+学号+年级+班级+院系位置:学生档案数据库管理平台学生查询成绩和信息名字:学生登录信息描述:确认是否是已经添加用户的注册信息定义:用户登录信息=用户名+密码位置:登录界面名字:课程管理信息描述:管理员需要对课程记录进行管理的信息定义:课程管理信息=【课程添加】【课程删

16、除】【课程修改】位置:课程数据库管理平台3.5实体-联系图根据需求分析,可以画出系统E-R图如下:图3学生选修课信息管理系统E-R图第四章系统设计4.1总体设计4.1.1需求概述本系统的目标是实现向学生提供选修课的课程信息的查询,为学生选课和管理员发 布和修改课程信息提供一个良好的平台。因此,本系统需要实现对发布的信息的查询功 能,发布和管理已发布的选修课信息的功能。而在管理员发布信息前需要在系统注册, 登录。即系统还需实现用户的注册、登录功能。4.1.2选修课信息管理系统功能设计根据系统需求分析和系统功能模块结构图来看,该系统应具备如下基本功能:学生选课的查询学生注册已注册管理员的发布、修改

17、、删除选修课程信息其功能模块结构图如下:图4程序功能模块图4.1.3系统层次模块图4.1.4系统层次模块图4.1.5模块设计(1) 用户注册模块:填写用户名、密码、确认密码(2) 用户登录模块:填写已注册的用户名称,填写正确的密码,进入主控制页面。(3) 用户选课模块:学生可以根据选修课信息选择自己所要选择的课程。(4) 用户查询模块:可以进行查看所选课程的操作。4.2各模块C语言详细设计4.2登录模块功能:本模块主要用于对用户身份进行鉴别。用户通过表单提供用户名和密码信息, 系统根据用户提供的登录信息对用户进行身份查询鉴别。如果身份合法,则将用户导向 系统的选课页面。输入:用户名、密码处理:

18、(1) 输入用户的登录信息:在页面提供的表单出输入用户的用户名和密码信息,点 击“登录”按钮提交表单信息到身份验证页面。或点击“重置”按钮,重新输入。(2) 用户身份进行验证:连接数据库,打开用户文本档案信息,检验用户登录信息。 以输入数据“用户名”为查询条件创建数据集查看输入用户名是否存在。如果存在,继 续检验输入的密码是否正确。密码和用户名都正确,则进入选课页面;如果用户名不存 在或密码不正确,则给出登录失败的提示框。输出:学生选课页面4.2.2学生登录页面图如下图所示:#include MainWindow.h#include AdminDlg.h#include Student.h#i

19、nclude #include using namespace std;#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog public:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generat

20、ed 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_INI

21、Tvoid 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(CVer1Dl

22、g: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 Win32 m_hIcon = AfxGetApp()-LoadIcon(IDI_ICON2);m_brush.

23、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)

24、AFX_MSG_MAP(CV?r1Dlg)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()/ CVerlDlg message handlersBOOL CVer1Dlg:OnInitDialog()CDialog:OnInitDialog();/ Add About. menu item to system menu.

25、/ IDM_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = 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 wi

26、ndow 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

27、 lParam)if (nID & 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, IParam);/ 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

28、 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;GetClientRe

29、ct(&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 (HCUR

30、SOR) m_hIcon;void CVer1Dlg:OnReset()/ TODO: Add your control notification handler code here m_strUserName = _T();m_strPassword = _T();m_iAdmin = 1;UpdateData(FALSE);void CVer1Dlg:OnEnter()/ TODO: Add your control notification handler code here UpdateData(TRUE);switch (m_iAdmin)case 1:if (!m_strUserN

31、ame.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();

32、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 tmpS

33、tuInfo;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_nSel

34、Course.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 I MB_ICONINFORMATION);m_strPas

35、sword=”;UpdateData(FALSE);return FALSE;elsem_nCurLogin=i;return TRUE;MessageBox(用户名不存在,请重新输入!”,”提示,MB_OK I 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+)i

36、f(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(L

37、PCTSTR)(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(

38、0,0,255);return m_brush;/ TODO: Return a different brush if the default is not desired return hbr;4.2.3学生注册模块的设计与实现通过回必加寸工g心,K皿EF郊:#include stdafx.h”#include Verl.h”#include AddStudent.h #ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAddStudent dialogCAddSt

39、udent:CAddStudent(CWnd* pParent /*=NULL*/):CDialog(CAddStudent:IDD, pParent)/AFX_DATA_INIT(CAddStudent)m_strSno = _T();m_strSname = _T();m_strClass = _T();/AFX_DATA_INITvoid CAddStudent:DoDataExchange(CDataExchange* pDX) CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAddStudent)DDX_Control(pDX, IDC_Comb

40、oDept, 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_CL

41、ICKED(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_D

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号