c++ 学生成绩管理系统 编程出的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 学生成绩管理系统 编程出的问题相关的知识,希望对你有一定的参考价值。

#include "iostream.h"
#include "string.h"
int build();
int menu();
void save();
int tongji();

int j=0;
class Student

public:
float number;
char name[20];
int math,english,cpp,ave,sum;
void SetInfo(float n,char *p1,int m,int e,int c)

number=n;
strcpy(name,p1);
math=m;
english=e;
cpp=c;


void GetInfo(float n1,char *p2,int m1,int e1,int c1)

n1=number;
strcpy(p2,name);
m1=math;
e1=english;
c1=cpp;


;
Student *g_s[100];
void main()

int choice=menu();
while(choice)

switch(choice)

case 1: build();break;
case 2: tongji();break;

choice=menu();


int menu()

int a;
cout<<"欢迎来到学生成绩管理系统"<<endl;
cout<<"1.录入学生成绩"<<endl;
cout<<"2.各科成绩统计"<<endl;
cout<<"3.学生总成绩统计"<<endl;
cout<<"4.增加学生成绩"<<endl;
cout<<"5.修改学生成绩"<<endl;
cout<<"6.存储学生成绩"<<endl;
cout<<"7.删除学生成绩"<<endl;
cout<<"8.存储学生成绩"<<endl;
cout<<"9.读取学生成绩"<<endl;
cout<<"0.退出本系统"<<endl;
cout<<"请输入您的选择:"<<endl;
cin>>a;
return a;


int build()

float number;
char name[20];
int math,english,cpp;

cout<<"欢迎使用学生成绩录入系统"<<endl;
loop:
cout<<"请输入学号:"<<endl;
cin>>number;
cout<<"请输入姓名:"<<endl;
cin>>name;
cout<<"请输入数学成绩:"<<endl;
cin>>math;
cout<<"请输入英语成绩:"<<endl;
cin>>english;
cout<<"请输入c++成绩:"<<endl;
cin>>cpp;
Student *p=new Student();
p->SetInfo(number,name,math,english,cpp);

g_s[j]=p;
cout<<"录入完毕"<<endl;
cout<<"是否继续录入(y/n)?"<<endl;
char b;
cin>>b;
if(b=='y'||b=='Y')
goto loop;
j++;
else return -1;


void save()



int tongji()

int a_m,a_e,a_c;
float n1;
int m1,e1,c1;
int s_m=0,s_e=0,s_c=0;
char name[20];
for(int i=0;i<100;i++)

while(g_s[i]!=0)


g_s[i]->GetInfo(n1,name,m1,e1,c1);
s_m+=m1;s_e+=e1;s_c+=c1;
j++;//人数统计



if(j==0) cout<<"输入错误"<<endl;return -1;
else
a_m=s_m/j;a_e=s_e/j;a_c=s_c/j;
cout<<"数学平均成绩为:"<<a_m<<endl;
cout<<"英语平均成绩为:"<<a_m<<endl;
cout<<"c++平均成绩为:"<<a_m<<endl;
return -1;



以上程序还未完成,当录入完学生成绩后,选第二个,各科成绩统计,没反应啊,为什么呢??那位好人帮帮忙啊,解决的我还会追加分数的啊!!

ps:我们的课设题目:
2、学生成绩统计管理
基本功能:
成绩的输入(学号、姓名、英语、数学、C++语言…);
成绩统计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例);
总成绩统计(学生的总成绩、平均成绩及成绩排名)
成绩的统计结果显示,其格式参见题目1。
扩展功能:
学生数据的添加、修改、与删除
学生数据的读取与存储
哥们儿,还是不对啊,是不是我的一些函数写错了??

//class.h:定义学生模板类
template<typename tnum,typename tname,typename tage,typename tbclass,typename tsclass,typename tbscore,typename tsscore, typename tsub>
class student
public:
student()
student(tname name,tbclass bclass,tsclass sclass,tsub sub)
sname=name;
basic_class=bclass;
spec_class=sclass;
subject=sub;

tname get_name()//姓名查询
return sname;

tbscore get_bscore()//基础课成绩查询
return bscore;

tsscore get_sscore()//专业课成绩查询
return sscore;

tsub get_subject()//专业查询
return subject;

void set_bccore(tbscore newscore)//基础课成绩修改
bscore=newscore;

void set_sccore(tsscore newscore)//专业课成绩修改
sscore=newscore;

void set_snum(tnum num)//学号设定
snum=num;

void set_age(tage age)//年龄设定
sage=age;

private:
tnum snum;//学号
tname sname;//姓名
tage sage;//年龄
tbclass basic_class;//基础课
tbscore bscore;//基础课成绩
tsclass spec_class;//专业课
tsscore sscore;//专业课成绩
tsub subject;//专业
;

#include "stdafx.h"
#include "iostream"
#include "class.h"
#include "string"
#include "time.h"
#include "list"
#include "cassert"
using namespace std;

int _tmain(int argc, _TCHAR* argv[])

srand((unsigned)time(NULL));
list<student<int,string,int,string,string,int,int,string> > students;
list<student<int,string,int,string,string,int,int,string> >::iterator _ptr;
student<int,string,int,string,string,int,int,string> *s[10];
s[0]=new student<int,string,int,string,string,int,int,string>("学生1","高等数学","面向对象程序设计","计算机");
s[1]=new student<int,string,int,string,string,int,int,string>("学生2","高等数学","面向对象程序设计","计算机");
s[2]=new student<int,string,int,string,string,int,int,string>("学生3","高等数学","面向对象程序设计","计算机");
s[3]=new student<int,string,int,string,string,int,int,string>("学生4","高等数学","马克思主义哲学","行政管理");
s[4]=new student<int,string,int,string,string,int,int,string>("学生5","高等数学","马克思主义哲学","行政管理");
s[5]=new student<int,string,int,string,string,int,int,string>("学生6","高等数学","马克思主义哲学","行政管理");
s[6]=new student<int,string,int,string,string,int,int,string>("学生7","高等数学","马克思主义哲学","行政管理");
s[7]=new student<int,string,int,string,string,int,int,string>("学生8","高等数学","电路分析","电子信息");
s[8]=new student<int,string,int,string,string,int,int,string>("学生9","高等数学","电路分析","电子信息");
s[9]=new student<int,string,int,string,string,int,int,string>("学生10","高等数学","电路分析","电子信息");
for(int i=0;i<10;i++)//随机产生学生的成绩
s[i]->set_snum(rand()%100);
s[i]->set_age(rand()%10+15);
s[i]->set_bccore(rand()%61+40);
s[i]->set_sccore(rand()%71+30);

for(int i=0;i<10;i++)
students.push_back(*s[i]);

int choose;
cout<<"请选择操作:\n1.查询\n2.修改\n3.删除\n4.打印\n5.退出\n";
cin>>choose;
assert(!cin.fail());
while(choose!=5)
switch(choose)
case 1:
int sn;
int cnt=0;
cout<<"输入学号:";
cin>>sn;
assert(!cin.fail());
_ptr=students.begin();
while(_ptr!=students.end())
if(_ptr->get_snum()==sn)
_ptr->print();
cnt++;

_ptr++;

cout<<cnt<<"项记录符合查询条件.\n";
break;

case 2:
int sn;
cout<<"输入学号:";
cin>>sn;
assert(!cin.fail());
_ptr=students.begin();
while(_ptr!=students.end())
if(_ptr->get_snum()==sn)
cout<<"找到记录!\n请输入新的成绩 (如果不修改请输入-1):";
int s;
cin>>s;
if(cin.fail()) break;
if(s==-1) break;
else
_ptr->set_bccore(s);
cout<<"记录修改成功!\n";
break;


_ptr++;

break;

case 3:
int sn;
int cnt=0;
cout<<"输入学号:";
cin>>sn;
assert(!cin.fail());
for(_ptr=students.begin();_ptr!=students.end();_ptr++)
if(_ptr->get_snum()==sn)
list<student<int,string,int,string,string,int,int,string> >::iterator temp=students.erase(_ptr);
cnt++;
_ptr=temp;


cout<<cnt<<"项记录被删除.\n";
break;

case 4:
_ptr=students.begin();
while(_ptr!=students.end())
_ptr->print();
_ptr++;

break;

default:cout<<"请输入有效选择!\n";break;

cout<<"请选择操作:\n1.查询\n2.修改\n3.删除\n4.打印\n5.退出\n";
cin>>choose;
assert(!cin.fail());

return 0;
参考技术A tongji函数有点问题:在最后输出时错了
int tongji()

int a_m,a_e,a_c;
float n1;
int m1,e1,c1;
int s_m=0,s_e=0,s_c=0;
char name[20];
for(int i=0;i<100;i++)

while(g_s[i]!=0)


g_s[i]->GetInfo(n1,name,m1,e1,c1);
s_m+=m1;s_e+=e1;s_c+=c1;
j++;//人数统计



if(j==0) cout<<"输入错误"<<endl;return -1;
else
a_m=s_m/j;a_e=s_e/j;a_c=s_c/j;
cout<<"数学平均成绩为:"<<a_m<<endl;
cout<<"英语平均成绩为:"<<a_e<<endl;
cout<<"c++平均成绩为:"<<a_c<<endl;
return -1;

参考资料:暂时只发现这些

本回答被提问者采纳

课程设计|MFC学生成绩分析系统(含课程报告+源码)

目录

简介

Hello!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
 
ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,获得过国家奖学金,有幸在竞赛中拿过一些国奖、省奖…已保研
学习经验:

以上是关于c++ 学生成绩管理系统 编程出的问题的主要内容,如果未能解决你的问题,请参考以下文章

C++设计一个学生信息管理系统

C语言编程题目,关于学生成绩管理系统的。向各位求助了

基于C++实现(控制台)学生成绩管理系统100010010

C++ MFC学籍管理 学生成绩管理系统

1. 内容:学生成绩管理程序 一班有20名学生,一学期有5门课程,编写程序实现如下功能: (1) 录入每名学生

学生成绩管理系统c