C++学生成绩管理系统完整doc.docx

上传人:b****1 文档编号:10564166 上传时间:2023-05-26 格式:DOCX 页数:88 大小:938.89KB
下载 相关 举报
C++学生成绩管理系统完整doc.docx_第1页
第1页 / 共88页
C++学生成绩管理系统完整doc.docx_第2页
第2页 / 共88页
C++学生成绩管理系统完整doc.docx_第3页
第3页 / 共88页
C++学生成绩管理系统完整doc.docx_第4页
第4页 / 共88页
C++学生成绩管理系统完整doc.docx_第5页
第5页 / 共88页
C++学生成绩管理系统完整doc.docx_第6页
第6页 / 共88页
C++学生成绩管理系统完整doc.docx_第7页
第7页 / 共88页
C++学生成绩管理系统完整doc.docx_第8页
第8页 / 共88页
C++学生成绩管理系统完整doc.docx_第9页
第9页 / 共88页
C++学生成绩管理系统完整doc.docx_第10页
第10页 / 共88页
C++学生成绩管理系统完整doc.docx_第11页
第11页 / 共88页
C++学生成绩管理系统完整doc.docx_第12页
第12页 / 共88页
C++学生成绩管理系统完整doc.docx_第13页
第13页 / 共88页
C++学生成绩管理系统完整doc.docx_第14页
第14页 / 共88页
C++学生成绩管理系统完整doc.docx_第15页
第15页 / 共88页
C++学生成绩管理系统完整doc.docx_第16页
第16页 / 共88页
C++学生成绩管理系统完整doc.docx_第17页
第17页 / 共88页
C++学生成绩管理系统完整doc.docx_第18页
第18页 / 共88页
C++学生成绩管理系统完整doc.docx_第19页
第19页 / 共88页
C++学生成绩管理系统完整doc.docx_第20页
第20页 / 共88页
亲,该文档总共88页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++学生成绩管理系统完整doc.docx

《C++学生成绩管理系统完整doc.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统完整doc.docx(88页珍藏版)》请在冰点文库上搜索。

C++学生成绩管理系统完整doc.docx

C++学生成绩管理系统完整doc

C++学生成绩管理系统(完整)

 

课程设计说明书

本科毕业设计

 

题目:

学生成绩管理系统(教师端)

学生姓名:

学院:

工学院

专业:

数字媒体技术

班级:

2013级

指导教师:

 

二〇一四年十一月

一、设计题目(问题)描述和要求

设计目的:

为方便对学生成绩进行高效的管理,编写该程序以提高学生成绩管理效率。

使用该程序之后,学校管理者可以查询某位学生、某个科目的成绩情况,还可以对学生成绩进行排名,对学生的数据进行修改和删除,其中排名以按总分排名,并且还提供了多种浏览方式,查询结果包括各个科目的分数、总分。

通过本系统可以很好的掌握学生成绩的分布,减轻管理人员的负担,也使学生的成绩和信息长时期的保留。

问题描述:

编写一个简单的学生成绩管理系统。

学生成绩管理系统有若干学生成绩记录组成,每个记录由学号、姓名、性别、年级、班级、三个科目成绩、总分、总排名、各科目排名几个部分组成,学号不超过5个字符,姓名不超过3个字符,成绩为int型数据。

该系统具有以下功能:

程序开始执行时显示如下版权信息和主菜单:

*******学生成绩管理系统*************

学生信息

●*1.登记

●*2.编辑

●*3.顺序

●4.删除

浏览

●*5全部

●*6个人

●*7考试

●*8专业

●*9指定

系统设置

10默认

0.退出

************************************

请输入(0~8):

通过键盘输入数字0~10后,程序能够执行相应的功能,执行完后回到上述主菜单继续等待用户输入,输入数字0后退出程序。

(1)选择“登记”后,输入学生个数。

按程序提示输入学号、姓名、性别、年级、班级、三个科目成绩、总分、总排名、各科目排名。

(2)选择“编辑”,按提示输入要删除的学生的学号,输入学号,若改学号存在,则编辑相应的学生记录,如果该学号不存在,返回主菜单

(3)选择“顺序”后,会显示从成绩高到低还是相反。

该操作会改变程序中链表的连接顺序,因此浏览时候显示也是顺序改变后的链表顺序输出。

(4)

(5)选择“全部”,系统会按照年级显示全部学生其成绩。

(6)选择“个人”,系统会提示输入学生姓名或者学号进行寻找并显示。

(7)选择“考试”,会按照每一年级的每一次考试显示成绩。

(8)选择“专业”,会按照专业进行成绩输出。

(9)选择“指定”,里面还有八种显示方式:

分数段、排名、学期、班级、大一至大四,可以按照其进行浏览。

(10)进行系统相关的设置,如是否显示欢迎窗口,是否自动读取信息或是手动、是否浏览显示全部等

(0)退出操作。

二、系统分析与模块设计

《学生成绩管理系统》结构图

 

 

 

 

三、系统设计

1.系统总体框架

《学生成绩管理系统》流程图

 

 

 

 

2.系统关键算法流程图

(1).系统包含的类库

#include

#include

#include

#include

#include

#include

(2).主函数

创建Manage对象象象

进入start并进行信息读取等前提操作,然后进入用户界面开始有用户选择操作

 

(3)student类的设计与分析

classstudent/*定义学生成绩类*/

{

private:

Score*sco;

stringname;

stringpro;//专业

intclas;

intgrade;

stringnum;

charsex;

Student*next;

};

表1student类说明表

名称

属性

说明

sco

数据成员

成绩类开头

name

数据成员

说明学生姓名

pro

数据成员

说明学生专业

clas

数据成员

说明学生班级

grade

数据成员

说明学生年级

num

数据成员

说明学生学号

sex

数据成员

说明学生性别

next

数据成员

说明指向下一个节点的指针

 

(4).Manage类的设计与分析

classList{

intset[SET];

Student*stu;

public:

//添加

voidAdd();//添加学生

voidAddScore(Student*istudent);//添加成绩

//浏览

intisEmpty();

intinfoPass(stringinum,stringiname,charisex,intigrade,inticlas);

voidSkimAll();

voidSkimClas();

voidSkimPro();

voidSpecSkim();//指定的其他浏览方式

voidSkimByScore();

voidSkimByTerms();

voidSkimByPlace();

voidSkimByTest();

voidSkimByGrade(intigrade);

voidFind(stringT);//查找

voidPrintAllScore(Score*q);//打印成绩,本程序用来打印第二次开始的考试成绩

voidInitScore();//未给出成绩的学生进行0赋值

voidDelete();//删除

voidEdit(stringY);//编辑

voidEditScore(Student*istu);

voidOrderConscore();//按总成绩排序

voidOrderObject();//排名次

voidCompare();//比较

voidSave();//保存

intRead();//读取

stringOfProfe();//选择学院专业

intWINAPIWinMain(HINSTANCEhInst,HINSTANCEhPrevInstance,LPSTRlpszCmdParam,intnCmdShow);//显示欢迎对话框

intcountSpecStudent(intigrade);//返回指定年级的学生数

intcountConStudent();//返回总学生数

//默认设置

voidDefaultSetting();//进行默认设置

voidReadSet();//读取默认设置

voidSaveSet();//保存默认设置

int*ReturnSet();

charReturnjudgeOfadd();

voidJudgeOfSave();//判断是否保存已修改的信息

voidStart();//类内部开始运行的操作

voidInterface();//用户使用界面

};

名称

属性

说明

Add()

成员函数

添加学生

AddScore()

成员函数

添加成绩

isEmpty()

成员函数

判断是否有学生

infoPass()

成员函数

判断输入信息合法性

SkimAll()

成员函数

全部浏览

SkimClas

成员函数

按班级浏览

SkimPro()

成员函数

按专业浏览

SpecSkim()

成员函数

其他浏览方式

Find(stringT)

成员函数

按学号寻找

PrintAllScore(Score*q)

成员函数

输出所有学生数量

InitScore()

成员函数

初始化成绩未满的学生的成绩

Delete()

成员函数

删除学生

Edit(stringY)

成员函数

编辑学生信息

EditScore(Student*istu)

成员函数

编辑学生成绩

OrderConscore()

成员函数

将链表改变连接顺序进而改变输出顺序

OrderObject()

成员函数

给每个学生每次考试排名次

Save()

成员函数

保存学生信息

Read()

成员函数

读取学生信息

OfProfe()

成员函数

选择学生专业

countSpecStudent(intigrade)

成员函数

返回相应年级学生数量

countConStudent()

成员函数

返回总学生数

DefaultSetting()

成员函数

默认设置

ReadSet()

成员函数

读取设置

SaveSet()

成员函数

保存设置

ReturnSet()

成员函数

返回设置

 

(5).Score类

名称

属性

说明

Score()

构造函数

无参构造函数

Score(int*sc)

构造函数

只含成绩构造函数

Score(int*sc,int*or,intCon)

构造函数

含全部信息构造函数

ReturnConScore()

成员函数

返回总分数

 

(6).输入学生资料模块:

主要功能用来对学生的成绩进行收集和输入。

在学生信息保存在系统中的前提下,输入要输入的人数,成绩录入需要输入学生资料,比如学号,姓名。

在准确输入学生资料后,就可以对该学生的各科成绩进行录入。

该学生各科成绩输入成功后,输入下一个学生资料时会先判断是否学号是否与之前的学生相同,如果相同,则显示提示信息,不同则继续输入

 

(6)输出学生资料模块:

主要功能用来对学生的成绩进行输出。

在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。

具体包括学生的学号,姓名和各科成绩。

在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单

 

(5)查找并显示学生资料模块

主要功能是用来查找学生资料。

在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息

(6)按学号查找,修改学生资料模块

主要功能是用来修改学生资料。

在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生学号,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。

(7)按学号查找,删除该学生资料模块

主要功能是用来删除学生资料。

在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生学号,系统查找该学生资料后,就可以删除了。

由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化

(8)按学生成绩总分进行排列模块

 主要功能是用来对学生的资料按总分进行排序。

在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按总分进行排序,这样就方便查找成绩相同或是相近的同学的资料。

 

(9)储存学生资料并退出系统模块

主要功能是用来储存学生资料。

在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。

四、运行结果

1.开始界面

2.输入数据

3.搜索数据

4.删除

5.修改数据

7.显示数据

8.系统设置

五、小结

这个程序经过了暑假开始到十月份的修改编辑,要感谢老师及同学的指导,另外程序本身更适合学生数量不是特别多的情况下,加入学生有上千上万个,那么应该在添加几个类,在学生类之上的类,这样才可以大大方便了各种操作以及浏览等。

六、参考资料

《C++程序设计教程》

CSDN程序员社区

 

代码:

/*

*学生成绩管理系统

*类:

StudentScoreManage

*可保存学科:

语文数学英语

*时间段:

大一至大四

*说明:

该程序针对学生数较少的情况,假如面对上千上万的学生数,应该再将其中的存储结构进行改变,

*分别分层次存储,例如大一至大四四个链表表头,在每一个链表中又根据不同分类依据细分,

*例如根据学院、专业等,这样的改变将大大有利于程序进行的寻找、输出、排序等涉及链表的操作,

*当然相应代码也要稍作改变

*/

#include

#include

#include

#include

#include

#include

#include

#include

usingnamespacestd;

#defineCONOBJ3//3科科目

#defineYEARS4//4个学年

#defineSET4//4个设置要求

classScore{

public:

intscore[CONOBJ];//chinese,math,english三科目分别对应order[0]、order[1]、order[2],每个学期两次考试,分为期中和期末考试

intorder[CONOBJ];//MAX科学科排名

intConOrder;//总排名

Score*next;//定义在学生类当中

Score(){

next=NULL;

inti;

for(i=0;i

score[i]=0;

order[i]=0;

}

ConOrder=0;

};//无参构造函数

Score(int*sc){

next=NULL;

inti;

for(i=0;i

score[i]=*sc;

order[i]=0;

sc++;

}

ConOrder=0;

}//只有成绩的构造函数

Score(int*sc,int*or,intCon){

next=NULL;

intj;

for(j=0;j

score[j]=*sc;

order[j]=*or;

sc++;

or++;

}

ConOrder=Con;

}//含全部参数的构造函数

intReturnConScore(){//返回总分数

returnscore[0]+score[1]+score[2];

}

};

//===========================================================

classStudent{

/*Student类中包含Score类

*用来存储众多的成绩,每个学期两次成绩,

每学年两个学期*/

Score*sco;

stringname;

stringpro;//专业

intclas;

intgrade;

stringnum;

charsex;

Student*next;

public:

/*

*几个不同参数的Student构造函数的重载,

*分别对应不同形式的构造方式

*/

Student(stringiname):

name(iname),next(NULL){

sco=NULL;

cout<<"\t\t\t\t★成功添加学生"<

}//1.单参数时的构造函数

Student(stringiname="Noname",stringipro="none",inticlass=0,intigrade=0,stringinum="0",charisex='n')

:

name(iname),num(inum),sex(isex),next(NULL),pro(ipro),clas(iclass),grade(igrade){

sco=NULL;

cout<<"\t\t\t\t★成功添加学生"<

return;

}//2.用于添加无输入成绩的构造函数

Student(stringiname,stringipro,inticlas,intigrade,stringinum,charisex,int*score)

:

name(iname),pro(ipro),clas(iclas),grade(igrade),num(inum),sex(isex),next(NULL){

sco=newScore(score);

cout<<"\t\t\t\t★成功添加学生"<

}//3.用于添加有成绩的构造函数

Student(stringiname,stringipro,inticlas,intigrade,stringinum,charisex,int*score,intconor,int*order)

:

name(iname),pro(ipro),clas(iclas),grade(igrade),num(inum),sex(isex),next(NULL){

sco=newScore(score,order,conor);

}//4.用于从文件读入时候的构造函数

intCountOfScore();//统计已经存储的成绩数量,每个学期两次考试,每次考试算作一次成绩录入成绩录入总计〈=4*igrade

friendclassManage;

};

//============================================

classManage{

intset[SET];

Student*stu;

/*记录是否执行了修改学生信息操作,等于'n'表示未修改信息或者修改完了但已经保存,

等于'y'表示已经修改并且还未保存*/

charjudgeOfAdd;

public:

Manage(){

stu=NULL;

/*for(inti=0;i

set[i]=1;*/

judgeOfAdd='n';

Start();

}

~Manage(){//删除所有记录,释放空间

Student*p=stu;

while(p){

p=p->next;

deletep;

}

stu=NULL;

}

Student*ReturnStu(){

returnstu;

}

//添加

voidAdd();//添加学生

voidAddScore(Student*istudent);//添加成绩

//浏览

intisEmpty();

intinfoPass(stringinum,stringiname,charisex,intigrade,inticlas);

voidSkimAll();

voidSkimClas();

voidSkimPro();

voidSpecSkim();//指定的其他浏览方式

voidSkimByScore();

voidSkimByTerms();

voidSkimByPlace();

voidSkimByTest();

voidSkimByGrade(intigrade);

voidFind(stringT);//查找

voidPrintAllScore(Score*q);//打印成绩,本程序用来打印第二次开始的考试成绩

voidInitScore();//未给出成绩的学生进行0赋值

voidDelete();//删除

voidEdit(stringY);//编辑

voidEditScore(Student*istu);

voidOrderConscore();//按总成绩排序

voidOrderObject();//排名次

voidCompare();//比较

voidSave();//保存

intRead();//读取

stringOfProfe();//选择学院专业

intWINAPIWinMain(HINSTANCEhInst,HINSTANCEhPrevInstance,LPSTRlpszCmdParam,intnCmdShow);//显示欢迎对话框

intcountSpecStudent(intigrade);//返回指定年级的学生数

intcountConStudent();//返回总学生数

//默认设置

voidDefaultSetting();//进行默认设置

voidReadSet();//读取默认设置

voidSaveSet();//保存默认设置

int*ReturnSet();

charReturnjudgeOfadd();

voidJudgeOfSave();//判断是否保存已修改的信息

voidStart();//类内部开始运行的操作

voidInterface();//用户使用界面

};//=====================================================================

//Student名空间中的成员函数的函数定义

intStudent:

:

CountOfScore(){

Score*p=sco;

inti;

for(i=0;p;p=p->next,i++);

returni;

}

//=====================================

//=====================================

//Manage名空间中的成员函数的函数定义

int*Manage:

:

ReturnSet(){

returnset;

}//------------------------------------

charManage:

:

ReturnjudgeOfadd(){

returnjudgeOfAdd;

}//------------------------------------

intManage:

:

countSpecStudent(intigrade){//返回指定年级的学生数

Student*p=stu;

intcount=0;

for(;p!

=NULL;p=p->next)

if(p->grade==igrade)

count++;

returncount;

}//-------------------------------

in

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2