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

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

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

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

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

【较高要求】

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

再从这

个记录中进行二次选择。

二需求分析

【问题描述】

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

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

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

【系统环境】

VisualC++6.0

三概要设计

流程图如下:

四详细设计"

【增加记录】:

【删除记录】:

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

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

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

否则回主菜单。

【成绩修改】:

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

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

否则直接会主菜单。

【查找】:

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

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

【统计分析】:

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

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

【排序】

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

若总成绩相等,比较数学则按数学排序;

若总成绩和数学相同,则按物理排序;

【退出系统】:

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

择结束程序。

【设计的类的代码】:

classmanagement{

private:

vector<

student>

stu;

public:

voidaddtxt();

voiddeletetxt();

voidchangetxt();

voidfindtxt();

voidfindtxt1();

voidptxt();

voidotxt();

voiditxt();

voidshow();

voidttxt();

voidttxt(int,int);

};

classstudent{

stringm_id,m_name;

intm_math,m_eng,m_phy;

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

student(conststudent&

);

~student(){};

stringgetId();

stringgetName();

intgetMath();

intgetEng();

intgetPhy();

inttotal();

studentoperator=(conststudent&

//

五测试

【原有数据】

20121000290边达宇756065

20121000424王晨859596

20121000553高佳维869390

20121000570初国利858785

20121000584利振彬708888

20121000818孟珂908696

20121000921罗云迪869075

20121001121田甜958587

20121001248王如男908994

20121001316邵叶飞808486

20121001375周晨曦878690

20121001695王洪968891

20121001842尹笛露859094

20121002002刘宇坤888690

20121002152尹然宇829088

20121002162孙史磊809480

20121002269陈云锅839585

20121002321于文涛889086

20121002439景揭俊859285

20121002585戴贤铎888678

20121002685曹厚臻908790

20121002775马晴938590

20121003127冯泽宇808975

20121003358肖寒889090

20121003359张赓879584

20121003398刘剑峰888486

20121003399龚方怡909396

20121004233贾国栋889086

20121004415孙一卓869590

六结论

【亮点】

1.能够二次模糊搜索

2.代码简便、易懂。

【不足】

1.算法比较粗糙。

七附录

#ifndefSTUDENT_H

#defineSTUDENT_H

#include<

iostream>

vector>

fstream>

string>

iomanip>

cmath>

usingnamespacestd;

//构造函数

//复制构造函数

//析构函数

//自定义接口

//=号重载

#endif

#ifndefMANAGEMENT_H

#defineMANAGEMENT_H

#include"

student.h"

//增加记录

//删除记录

//成绩修改

//模糊搜索

//分数段搜索

//排序

//文件输出

//文件写入

//输出

//统计分析

//统计分析重载

#include"

student:

:

student(stringid="

0"

stringname="

intmath=0,inteng=0,intphy=0){

m_id=id;

m_name=name;

m_math=math;

m_eng=eng;

m_phy=phy;

}

student(conststudent&

s){

m_id=s.m_id;

m_name=s.m_name;

m_math=s.m_math;

m_eng=s.m_eng;

m_phy=s.m_phy;

stringstudent:

getId(){

returnm_id;

getName(){

returnm_name;

intstudent:

getMath(){

returnm_math;

getEng(){

returnm_eng;

getPhy(){

returnm_phy;

total(){

return(getMath()+getEng()+getPhy());

studentstudent:

operator=(conststudent&

return*this;

management.h"

voidmanagement:

addtxt(){//增加记录

stringid,name;

intmath,eng,phy,m;

intp(0);

while

(1){

cout<

<

"

请输入您所添加的信息:

"

<

endl;

cin>

>

id>

name>

math>

eng>

phy;

students(id,name,math,eng,phy);

for(inti=0;

i<

stu.size();

i++){

if((s.getId()==stu[i].getId())&

&

(s.getName()==stu[i].getName())){

cout<

数据库已有此人!

不能再添加!

endl;

p++;

}

}

if(p==0){

stu.push_back(s);

otxt();

cout<

是否继续增加?

(继续回复1。

否则回复0.)"

cin>

m;

if(m==0)break;

}

itxt(){//文件写入

ifstreamifile;

ifile.open("

D:

\\data.txt"

intmath,eng,phy;

do{

ifile>

id>

name>

math>

eng>

phy;

students(id,name,math,eng,phy);

}while(!

ifile.eof());

ifile.close();

otxt(){//文件输出

ofstreamofile;

ofile.open("

\\date.txt"

for(inti=0;

i<

i++)

ofile<

setw(20)<

stu[i].getId()<

setw(6)<

stu[i].getName()<

stu[i].getMath()<

stu[i].getEng()<

stu[i].getPhy()<

ofile.close();

}

show(){

cout<

学号"

'

\t'

数学"

英语"

物理"

总分"

for(inti=0;

;

stu[i].total()<

findtxt(){//模糊搜索

s;

stringm,n;

intp(0),q(0);

inti,j,k,x,a,b,c;

请输入您需要查找的学号或姓名:

cin>

for(i=0;

for(j=0;

j<

m.size();

j++){

if(m[j]!

=stu[i].getId()[j])break;

if(j==m.size()){

s.push_back(stu[i]);

p++;

cout<

for(k=0;

k<

k++){

if(m[k]!

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

if(k==m.size()){

if(p==0)cout<

对不起,没有您所查找的信息!

是否进行二次搜索?

(回复1进行。

x;

if(x==1){

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

n;

for(a=0;

a<

s.size();

a++){

for(b=0;

b<

n.size();

b++){

if(n[b]!

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

if(b==n.size()){

q++;

s[a].getId()<

s[a].getName()<

s[a].getMath()<

s[a].getEng()<

s[a].getPhy()<

for(c=0;

c<

c++){

if(n[c]!

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

if(c==n.size()){

if(q==0)cout<

findtxt1(){//分数段搜索

stringm;

inta,b,p(0);

请输入您查找的某一门课程名称及分数段:

m>

a>

b;

if(m=="

){

if(stu[i].getMath()>

=a&

=b){

if(p==0)cout<

对不起,没有您所查范围的分数!

elseif(m=="

for(intj=0;

if(stu[j].getEng()>

stu[j].getEng()<

stu[j].getId()<

stu[j].getName()<

stu[j].getMath()<

stu[j].getPhy()<

for(intk=0;

if(stu[k].getPhy()>

stu[k].getPhy()<

stu[k].getId()<

stu[k].getName()<

stu[k].getMath()<

stu[k].getEng()<

elsecout<

没有其他的课程成绩!

deletetxt(){//删除记录

inti,x;

请输入您所需要删除的学生的姓名或学号:

if(m==stu[i].getId()||m==stu[i].getName()){

break;

是否确定删除?

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

vector<

iteratorit=stu.begin()+i;

stu.erase(it);

otxt();

删除成功!

ttxt(){//统计分析

inti,j;

doublesum1(0),sum2(0),sum3(0),p1(0),p2(0),p3(0),v1(0),v2(0),v3(0);

sum1+=stu[i].getMath();

sum2+=stu[i].getEng();

sum3+=stu[i].getPhy();

if(stu[i].getMath()>

=60)p1++;

if(stu[i].getEng()>

=60)p2++;

if(stu[i].getPhy()>

=60)p3++;

sum1/=i;

sum2/=i;

sum3/=i;

p1/=i;

p2/=i;

p3/=i;

for(j=0;

v1+=(stu[i].getMath()-sum1)*(stu[i].getMath()-sum1);

v2+=(stu[i].getEng()-sum2)*(stu[i].getEng()-sum2);

v3+=(stu[i].getPhy()-sum3)*(stu[i].getPhy()-sum3);

v1=sqrt(v1/i);

v2=sqrt(v2/i);

v3=sqrt(v3/i);

请输入您要查的科目名称:

平均分:

sum1<

合格率:

p1*100<

%"

标准差:

v1<

sum2<

p2*100<

v2<

sum3<

p3*100<

v3<

对不起,没有其它的课程成绩!

ttxt(inti,intj){

doubletotal;

for(i;

total=(sum1+sum2+sum3)

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

当前位置:首页 > 高中教育 > 英语

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

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