C++学生选修课信息管理系统含源文件.docx
- 文档编号:24145492
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:68
- 大小:726KB
C++学生选修课信息管理系统含源文件.docx
《C++学生选修课信息管理系统含源文件.docx》由会员分享,可在线阅读,更多相关《C++学生选修课信息管理系统含源文件.docx(68页珍藏版)》请在冰豆网上搜索。
C++学生选修课信息管理系统含源文件
课程设计说明书
课程名称
:
软件工程导论
课程代码
:
题目
:
学生选修课信息管理系统
课程设计任务书及成绩评定
课程名称
:
软件工程导论
完成者
:
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年月日
目录
第一章项目开发计划书1
1.1引言1
1.1.1编写目的1
1.1.2背景1
1.2项目概述1
1.2.1工作内容1
1.2.2主要参加人员2
1.2.3产品2
1.2.4服务2
1.2.5验收标准2
1.2.6本计划的批准者和批准日期2
1.3实施计划2
1.3.1工作任务的分配与人员分工2
1.3.2进度3
1.4支持条件3
1.4.1计算机系统支持3
第二章可行性分析4
2.1可行性研究前提4
2.2对现有系统的分析4
2.3建议新系统4
2.3.1新系统说明4
2.3.2新系统的流程图5
2.4经济上可行性5
2.5技术可行性6
2.6开发工具的选择6
2.7新系统的影响6
2.8结论6
第三章需求分析7
3.1市场需求分析7
3.2系统功能性需求分析7
3.2.1功能划分7
3.2.2功能描述8
3.2.2.1学生注册信息模块8
3.2.2.2课程信息模块8
3.2.2.3学生登录功能模块8
3.2.2.5选课功能模块9
3.2.2.4选修课查询模块9
3.3系统非功能性需求9
3.3.1可用性9
3.3.2可靠性9
3.4数据字典9
3.5实体-联系图10
第四章系统设计11
4.1总体设计11
4.1.1需求概述11
4.1.2选修课信息管理系统功能设计11
4.1.3系统层次模块图12
4.1.4系统层次模块图12
4.1.5模块设计12
4.2各模块C语言详细设计12
4.2.1登录模块12
4.2.2学生登录页面图如下图所示:
13
4.2.3学生注册模块的设计与实现22
4.2.4学生查询模块的设计与实现26
4.2.5学生选课模块的设计与实现40
第五章系统测试42
5.1测试的作用和意义42
5.2测试方法43
5.3测试内容43
5.4测试结果43
5.4.1注册和登录模块测试43
5.4.2查询模块测试45
5.4.3管理员对学生选修课信息发布、修改和删除模块测试46
5.5结论48
第六章总结49
参考文献49
第一章项目开发计划书
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工作任务的分配与人员分工
组长:
赵浩任务:
(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.26
1.4支持条件
1.4.1计算机系统支持
操作系统需要windows2000以上;
操作系统环境:
能正常运行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技术可行性
软件需求:
操作系统WINDOWS2000AdvanceServer以上
硬件需求:
赛扬1.7GCPU、512M内存80G硬盘的计算机
使用语言为:
C语言
编辑工具为:
VC++6.0
2.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.2课程信息模块
(1)课程信息添加:
管理员用户登录后,进入课程信息管理功能单元,输入课程号,课序号,课程名称,教师姓名,开设院系这些数据后提交数据,完成课程信息地添加操作,此时在选课表中将出现刚才添加的课程的有关信息。
(2)课程信息修改:
管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要修改的课序号,选定后就可以修改该选定课程的课程编号,课序号,课程名称,教师姓名,开设院系,提交后就得到该门课程修改后的信息。
(3)课程信息删除:
管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要删除的课程的课序号,提交后,就将选定课程删除了。
(4)已选课程信息的维护:
管理员用户登录后,进入选课程功能单元,就可以看到学生已选的课程,可以通过选择相应的课程号来将相应学生的选课记录删除。
3.2.2.3学生登录功能模块
输入学生的用户名和密码,然后连接数据库,检验用户登录信息。
如果存在,则进入选课页面;如果用户名不存在或密码不正确,则给出登录失败的提示框。
3.2.2.5选课功能模块
进入选课页面,选定所要选的课程后,然后提交。
系统自动修改课程数据库的信息,然后在学生数据库添加相关已选定的课程信息。
3.2.2.4选修课查询模块
该学生登录后进入选修课选课页面后,从学生数据库中调出该学生的信息以及已选的课程信息,显示在下面。
3.3系统非功能性需求
3.3.1可用性
本系统的潜在用户群是各个系的学生具有的身份可能会有较大的差异,因此对本系统的可操作性和易用性都提出了很高的要求。
本系统应能让任何用户除管理员外都不必借助任何操作手册或相关的系统帮助就能顺利地进行各种操作。
3.3.2可靠性
系统建成后预计将有大量的学生在此查询相关的信息以及管理员在上面发布学生的成绩,因此对系统的稳定性也有比较高的要求。
一旦系统不能正常工作或系统出错,会给学生带很大不便,带来的损失也将导致失去用户对系统的信任。
3.4数据字典
通过系统需求分析,对学生选修课信息管理系统编制数据字典如下:
各主要数据流的定义如表1至表3:
表1
表2
表3
3.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登录模块
功能:
本模块主要用于对用户身份进行鉴别。
用户通过表单提供用户名和密码信息,系统根据用户提供的登录信息对用户进行身份查询鉴别。
如果身份合法,则将用户导向系统的选课页面。
输入:
用户名、密码
处理:
(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
usingnamespacestd;
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CVer1Dlgdialog
CVer1Dlg:
:
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
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDI_ICON2);
m_brush.CreateSolidBrush(RGB(208,231,250));
}
voidCVer1Dlg:
:
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_MAP
}
BEGIN_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_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CVer1Dlgmessagehandlers
BOOLCVer1Dlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
//SetDialogBkCo
LoadStudentInfo();//Loadstudentinfomation
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
voidCVer1Dlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
voidCVer1Dlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 学生 选修课 信息管理 系统 源文件