C++课程设计学生成绩管理系统Word文档下载推荐.docx

上传人:b****5 文档编号:20806613 上传时间:2023-01-25 格式:DOCX 页数:21 大小:259.28KB
下载 相关 举报
C++课程设计学生成绩管理系统Word文档下载推荐.docx_第1页
第1页 / 共21页
C++课程设计学生成绩管理系统Word文档下载推荐.docx_第2页
第2页 / 共21页
C++课程设计学生成绩管理系统Word文档下载推荐.docx_第3页
第3页 / 共21页
C++课程设计学生成绩管理系统Word文档下载推荐.docx_第4页
第4页 / 共21页
C++课程设计学生成绩管理系统Word文档下载推荐.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C++课程设计学生成绩管理系统Word文档下载推荐.docx

《C++课程设计学生成绩管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++课程设计学生成绩管理系统Word文档下载推荐.docx(21页珍藏版)》请在冰豆网上搜索。

C++课程设计学生成绩管理系统Word文档下载推荐.docx

2.总体设计应画一流程图

3.程序要加必要的注释

4.要提供程序测试方案

5.程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

目录

一概述4

1.1课程设计的目的4

1.2课程设计的要求4

1.3设计说明4

二总体方案设计6

2.1需求分析6

2.2程序流程图7

2.3概要设计7

三详细设计9

3.1程序的模块设计与分析9

3.1.1学生成绩管理登录界面9

3.1.2管理员添加帐号11

3.1.3管理员增加课程12

3.1.4学生选课13

3.1.5老师评定成绩14

四程序的调试与运行结果说明18

4.1功能测试18

五课程设计总结21

参考文献22

一概述

1.1课程设计的目的

1.理解和掌握该课程中的有关基本概念,程序设计思想和方法。

2.培养综合运用所学知识独立完成课题的能力。

3.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。

4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。

1.2课程设计的要求

1.3设计说明

这次课设我做的是学生成绩管理系统,本系统依据开发要求主要针对于教育系统,完成对日常的教育工作对学生成绩档案及其他信息的数字化管理。

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

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

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

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

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

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

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

二总体方案设计

2.1需求分析

“学生成绩管理信息系统”包括四个模块:

用户添加、学生选课、课程添加、成绩给定。

这四个模块既相互联系又相互独立,学生选课、成绩给定模块必须以课程添加为基础。

1.用户添加:

主要功能是管理员对学生、老师、课程的添加。

具体包括对学生和老师添加相应的帐号,姓名,密码的功能等信息。

2.学生选课:

 主要功能通过选择课程号,课程序号来确定该学生所选择的课程。

3.成绩给定:

 主要功能教师通过选择课程号,课程序号,再选定学生学号给定该学生的成绩。

4.课程添加:

开课的功能是增加课程号,课程序号,课程名,开课教师工作证号,和该课程相应的学分等信息。

程序通过登录界面,选择是管理员,学生或者是教师登入系统中,登录系统后,进行相应给定的功能。

1.管理员:

用户添加,课程添加。

2.学生:

选课,查看自己的不及格课程。

3.教师:

选择任教课程和给学习该课程的学生打分。

2.2程序流程图

在程序流程图里是程序功能模块图,主要说明了程序的运行流程。

图2-1程序功能模块图

2.3概要设计

在概要设计里,根据系统需求设计学生流图,教师与管理员流图。

图2-2学生流图

图2-3教师与管理员流图

三详细设计

3.1程序的模块设计与分析

3.1.1学生成绩管理登录界面

图3-1学生成绩管理登录界面

voidCMyDlg:

:

OnSigninButton()

{managermng;

teachertch;

studentstu;

IntiTypeRadio=GetCheckedRadioButton(IDC_MANAGER_RADIO,IDC_TEACHER_RADIO);

charstr[10]="

"

;

UpdateData();

if(m_user==_T("

"

)||m_pass==_T("

))

{MessageBox("

用户名和密码不可以为空!

);

}

elseif(iTypeRadio==IDC_MANAGER_RADIO)

{strcpy(str,"

管理员.txt"

if(SignIn(str))

{OnClearButton();

mng.ID=id;

mng.Name=name;

mng.DoModal();

ElseInputWrong();

elseif(iTypeRadio==IDC_STUDENT_RADIO)

学生.txt"

if(SignIn(str))

stu.ID=id;

stu.Name=name;

stu.DoModal();

elseif(iTypeRadio==IDC_TEACHER_RADIO)

教师.txt"

tch.ID=id;

tch.Name=name;

tch.DoModal();

}}

inlinevoidCMyDlg:

InputWrong()//输入错误处理

{MessageBox("

输入错误,请重新输入"

OnClearButton();

m_user=_T("

m_pass=_T("

CheckRadioButton(IDC_MANAGER_RADIO,IDC_TEACHER_RADIO,IDC_MANAGER_RADIO);

UpdateData(FALSE);

BOOLCMyDlg:

SignIn(char*str)//登录

{ifstreamm_ifile(str,ios:

in);

if(!

m_ifile)

returnFALSE;

CStringusertemp,passtemp,nametemp;

floatgpatemp;

m_ifile.seekg(0);

if(strcmp(str,"

)==0)

{while(m_ifile>

>

usertemp>

nametemp>

passtemp>

gpatemp)

{if(usertemp==m_user&

&

passtemp==m_pass)

{name=nametemp;

id=usertemp;

returnTRUE;

}}}

while(m_ifile>

passtemp)

{if(usertemp==m_user&

{name=nametemp;

}}

3.1.2管理员添加帐号

图3-2管理员添加帐号

voidmanager:

OnNewButton()

{intiTypeRadio;

if(m_newpass==_T("

)||m_newuser==_T("

)||m_newname==_T("

用户名,密码和姓名都不可以为空,请重新输入!

return;

iTypeRadio=GetCheckedRadioButton(IDC_MANAGER_RADIO2,IDC_TEACHER_RADIO2);

switch(iTypeRadio)

{caseIDC_MANAGER_RADIO2:

strcpy(str,"

CreateID(str);

break;

caseIDC_STUDENT_RADIO2:

caseIDC_TEACHER_RADIO2:

strcpy(str,"

CreateID(char*str)//将用户添加到文件

{ofstreamm_ofile(str,ios:

app);

CStringspac("

),ente('

\n'

m_ofile)

错误"

OnClearButton();

Else{if(strcmp(str,"

m_ofile<

<

m_newuser<

m_newname<

m_newpass<

spac<

-1.0"

ente;

Elsem_ofile<

3.1.3管理员增加课程

图3-3管理员增加课程

voidcurriculum:

OnExitButton()

{OnCancel();

OnClearButton()

{m_credit=0;

m_currID=_T("

m_currName=_T("

m_currNum=_T("

m_currTch=_T("

UpdateData(false);

OnSignButton()//确定按钮

{ofstreamosign("

课程.txt"

ios:

osign<

m_currID<

m_currNum<

m_currName<

m_currTch<

m_credit<

'

osign.~ofstream();

3.1.4学生选课

图3-4学生选课

voidSIGNCURRI:

OnSelchangeCurridCombo()

{CStringsCurrID;

intnSel=m_currID.GetCurSel();

if(nSel==CB_ERR)return;

m_currID.GetLBText(nSel,sCurrID);

ifstreamifcourse("

ifcourse.seekg(0);

inti,n=m_currNum.GetCount();

for(i=1;

i<

=n;

i++)

{m_currNum.DeleteString(n-i);

CCurricurr;

while(ifcourse>

curr)

{if(curr.currID==sCurrID

&

m_currNum.FindStringExact(-1,curr.currNum)==CB_ERR)

{m_currNum.AddString(curr.currNum);

m_currNum.SelectString(-1,curr.currNum);

UpdateData();

ifcourse.~ifstream();

OnSelchangeCurrnumCombo();

OnSelchangeCurrnumCombo()

{UpdateData();

CStringsCurrID,sCurrNum;

intiSel=m_currID.GetCurSel();

if(iSel==CB_ERR)return;

m_currID.GetLBText(iSel,sCurrID);

intnSel=m_currNum.GetCurSel();

m_currNum.GetLBText(nSel,sCurrNum);

{if(curr.currID==sCurrID&

curr.currNum==sCurrNum)

{m_currName=curr.currName;

UpdateData(false);

break;

3.1.5老师评定成绩

图3-5老师评定成绩

BOOLteacher:

OnInitDialog()

{CDialog:

OnInitDialog();

externCStringname,id;

Name=name;

ID=id;

m_welcome="

欢迎"

+Name+"

老师!

CStringsCurrID;

{if(curr.currTch==ID&

m_currID.FindStringExact(-1,curr.currID)==CB_ERR)

{m_currID.AddString(curr.currID);

m_currID.SelectString(-1,curr.currID);

OnSelchangeCurridCombo();

OnSelchangeStuidCombo();

returnTRUE;

}

voidteacher:

{m_stuName=_T("

m_grade=0;

OnGradeButton()

{CStringstuID;

m_stuID.GetWindowText(stuID);

m_currID.GetWindowText(sCurrID);

m_currNum.GetWindowText(sCurrNum);

floatgrade=0.0,credit=0.0;

floatGPA;

fstreamfgrade("

选课.txt"

in|ios:

out);

CSignCoursesc;

fgrade)return;

streampospos;

fgrade.seekg(0);

while(fgrade>

sc.ID>

sc.currID>

sc.currNum>

sc.grade)

{if(sc.ID==stuID)

{if(sc.currID==sCurrID&

sc.currNum==sCurrNum)

{pos=fgrade.tellp();

fgrade.seekp(pos-2);

fgrade<

m_grade;

sc.grade=m_grade;

if(sc.grade>

=60)

{ifstreamifcourse("

ios:

ifcourse.seekg(0);

CCurricurr;

while(ifcourse>

if(sc.currID==curr.currID&

sc.currNum==curr.currNum)

{credit+=curr.credit;

grade+=sc.grade*curr.credit;

if(credit)GPA=grade/credit;

ifcourse.~ifstream();

charsName[15],sUser[15],sPass[15];

floatsGPA;

fgrade.~fstream();

fstreamfstu("

fstu)return;

fstu.seekg(0);

while(fstu>

sUser>

sName>

sPass>

sGPA)

{CStringsname(sName),suser(sUser),spass(sPass);

if(suser==stuID)

{pos=fstu.tellp();

fstu.seekp(pos-4);

fstu<

setprecision(3)<

GPA;

fstu.~fstream();

{OnOK();

CStringstrText;

m_currID.GetLBText(nSel,strText);

inti,n=m_currNum.GetCount();

i<

=n;

{if(curr.currTch==ID&

curr.currID==strText

{m_currNum.AddString(curr.currNum);

OnSelchangeStuidCombo(){

CStringstuID;

intnSel=m_stuID.GetCurSel();

if(nSel==CB_ERR)

{m_stuName=_T("

UpdateData(false);

return;

m_stuID.GetLBText(nSel,stuID);

ifstreamm_ifile("

m_ifile)return;

floatGPAtemp;

GPAtemp)

{if(usertemp==stuID)

{m_stuName=nametemp;

m_ifile.~ifstream();

{

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

当前位置:首页 > 高中教育 > 小学教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1