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

上传人:b****4 文档编号:1403509 上传时间:2022-10-22 格式:DOCX 页数:28 大小:594.32KB
下载 相关 举报
学生成绩管理系统C++.docx_第1页
第1页 / 共28页
学生成绩管理系统C++.docx_第2页
第2页 / 共28页
学生成绩管理系统C++.docx_第3页
第3页 / 共28页
学生成绩管理系统C++.docx_第4页
第4页 / 共28页
学生成绩管理系统C++.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

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

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

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

学生成绩管理系统C++

 

学生成绩管理系统C++

 

计算机高级语言课程设计报告

——学生成绩管理系统

班级:

191142班

学号:

姓名:

日期:

2015年1月22日

一课程设计题目与要求

(包括题目与系统功能要求)

【实习内容】

C++语言,面向对象的分析与设计。

【基本要求】

学生成绩管理是高等学校教务管理的重要组成部分,主要包括学生成绩的录入、删除、

查找及修改、成绩的统计分析等等。

请设计一个系统实现对学生成绩的管理。

系统要求实现以下功能:

(1)增加记录:

要求可以连续增加多条记录。

(2)删除一个学生的记录:

要求可以先查找,再删除。

删除前,要求用户确认。

(3)成绩修改:

若输入错误可进行修改;要求可以先查找,再修改。

(4)查找:

可以根据姓名(或学号)查找某个学生的课程成绩,查找某门课程成绩处

于指定分数段内的学生名单等等。

(5)统计分析:

对某个班级学生的单科成绩进行统计,求出平均成绩;求平均成绩要

求实现函数的重载,既能求单科的平均成绩,又能求三科总分的平均成绩。

求出

一门课程标准差和合格率;

(6)排序功能:

要求按总分进行排序(从高到低),若总分相同,则按数学排序;若总

分和数学相同,则按物理排序;若总分和各科成绩都相同,则按学号排序;

(7)文件操作:

可以打开文件,显示班级的所有学生信息;可以将增加或修改后的成

绩重新写入文件;可以将排序好的信息写入新的文件。

【较高要求】

查找可以实现模糊查询,即输入名字的一部分,可以列出满足条件的所有记录。

再从这

个记录中进行二次选择。

二需求分析

【问题描述】

在编写过程中,主要的困难有:

1.模糊搜索(不能使用string中的find函数)需要自定义一个函数。

2.排序,需要自己学习算法。

【系统环境】

VisualC++

三概要设计

流程图如下:

四详细设计"

【增加记录】:

【删除记录】:

先查找出要删除的信息,然后再删除。

删除前要求用户是否确认删除。

确认则在数据库中删除然后会主菜单。

否则回主菜单。

【成绩修改】:

查找出用户所要修改的信息。

然后在数据库中将信息提取出来,修改前要求用户是否确认修改,若要修改,修改后回主菜单。

否则直接会主菜单。

【查找】:

查找分为某门成绩分数段查找和个人信息查找,个人信息查找支持模糊搜索。

可根据学号或姓名进行查找,查找后支持二次搜索。

【统计分析】:

统计分析主要是了解各科的总体情况,平均分、及格率、以及标准差。

即可查询单科也可查询全科。

【排序】

在主菜单中选择排序,然后系统先根据总成绩排序。

若总成绩相等,比较数学则按数学排序;若总成绩和数学相同,则按物理排序;若总分和各科成绩都相同,则按学号排序;

【退出系统】:

在主菜单中选择退出系统。

择结束程序。

【设计的类的代码】:

classmanagement{

private:

vectorstu;

public:

voidaddtxt();

voiddeletetxt();

voidchangetxt();

voidfindtxt();

voidfindtxt1();

voidptxt();

voidotxt();

voiditxt();

voidshow();

voidttxt();

voidttxt(int,int);

};

classstudent{

private:

stringm_id,m_name;

intm_math,m_eng,m_phy;

public:

student(string,string,int,int,int);

student(conststudent&);

~student(){};

stringgetId();

stringgetName();

intgetMath();

intgetEng();

intgetPhy();

inttotal();

studentoperator=(conststudent&);法比较粗糙。

七附录

#ifndefSTUDENT_H

#defineSTUDENT_H

#include

#include

#include

#include

#include

#include

usingnamespacestd;

classstudent{

private:

stringm_id,m_name;

intm_math,m_eng,m_phy;

public:

student(string,string,int,int,int);etId())&&()==stu[i].getName())){

cout<<"数据库已有此人!

不能再添加!

"<

p++;

}

}

if(p==0){

(s);

otxt();

}

cout<<"是否继续增加

(继续回复1。

否则回复0.)"<

cin>>m;

if(m==0)break;

}

}

voidmanagement:

:

itxt(){etId()<

();

}

voidmanagement:

:

show(){

cout<<"学号"<<'\t'<<'\t'<<"姓名"<<'\t'<<"数学"<<'\t'<<"英语"<<'\t'<<"物理"<<'\t'<<"总分"<

for(inti=0;i<();i++){

cout<

cout<

}

}

voidmanagement:

:

findtxt(){etId()[j])break;

}

if(j==()){

(stu[i]);

p++;

cout<

}

for(k=0;k<();k++){

if(m[k]!

=stu[i].getName()[k])break;

}

if(k==()){

(stu[i]);

p++;

cout<

}

}

if(p==0)cout<<"对不起,没有您所查找的信息!

"<

cout<<"是否进行二次搜索(

回复1进行。

否则回复0.)"<

cin>>x;

if(x==1){

cout<<"请输入您二次查找学生的学号或姓名:

"<

cin>>n;

for(a=0;a<();a++){

for(b=0;b<();b++){

if(n[b]!

=s[a].getId()[b])break;

}

if(b==()){

q++;

cout<

}

for(c=0;c<();c++){

if(n[c]!

=s[a].getName()[c])break;

}

if(c==()){

q++;

cout<

}

}

if(q==0)cout<<"对不起,没有您所查找的信息!

"<

}

}

voidmanagement:

:

findtxt1(){etMath()>=a&&stu[i].getMath()<=b){

cout<

p++;

}

}

if(p==0)cout<<"对不起,没有您所查范围的分数!

"<

}

elseif(m=="英语"){

for(intj=0;j<();j++){

if(stu[j].getEng()>=a&&stu[j].getEng()<=b){

cout<

p++;

}

}

if(p==0)cout<<"对不起,没有您所查范围的分数!

"<

}

elseif(m=="物理"){

for(intk=0;k<();k++){

if(stu[k].getPhy()>=a&&stu[k].getPhy()<=b){

cout<

p++;

}

}

if(p==0)cout<<"对不起,没有您所查范围的分数!

"<

}

elsecout<<"没有其他的课程成绩!

"<

}

voidmanagement:

:

deletetxt(){etId()||m==stu[i].getName()){

break;

}

}

cout<<"是否确定删除(

是回复1.否回复0.)"<

cin>>x;

if(x==1){

vector:

:

iteratorit=()+i;

(it);

otx

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

当前位置:首页 > 小学教育 > 语文

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

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