如何用C++实现本学院学生成绩管理系统
要求: (1) 可以显示学生成绩(不及格课程特殊标注)。
(2) 能够查询本学院学生成绩(可以按班级查询、按学号查询,可以查询所有的课程成绩,也可以查询某一门课程成绩),将查询结果按一定格式输出。
(3) 能够修改学生成绩,修改后成绩有特殊标注(要求根据学号查询到该学生信息后修改某一门课程的成绩)。
设计过程中使用到设计过程中使用到数组、结构体、类和对象
回答运行好了.继续追分
补充:尽量用简单的C++语言做.谢谢
追问:功能少了很多呀。而且很多看不懂·能帮我加上其他要求的功能吗
答案:#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;
class Student
{
protected:
double Clanguage,Math,English,Database;
bool mcflag,mmflag,meflag,mdflag;
bool jcflag,jmflag,jeflag,jdflag;
string sname,sno,sclass;
public:
Student *next;
Student()
{next=NULL;sname="";sno="";sclass="";Clanguage=0.0;Math=0.0;English=0.0;Database=0.0;
mcflag=false;mmflag=false;meflag=false;mdflag=false;
jcflag=false;jmflag=false;jeflag=false;jdflag=false;
}
Student *add(Student *s);
void search( Student *s);
bool pduan(Student *t,double s,string t1);
void search1(Student *s,int i);
void display(Student *s);
Student *modify(Student *s);
};
Student* Student::modify(Student *s)
{
int m,flag=1;
string n;
Student *p;
p=s;
bool b;
double score;
cout<<"您想修改哪位学生的成绩,请输入学号:";
cin>>n;
while(flag)
{
while(p!=NULL)
{
if(p->sno==n) {flag=0;break;}
p=p->next;
}
if(flag==1)
{
cout<<"没有找到该学号,请重新输入:";
cin>>n;
p=s;
}
}
cout<<"要修改哪门成绩:\n1、英语 2、数学 3、C++ 4、数据库 0、返回"<<endl;
cin>>m;
while(1)
{
switch(m)
{
case 1:
cout<<"学号为 "<<n<<" 的 "<<p->sname<<" ,英语成绩为:"<<p->English<<endl;
cout<<"请输入修改的成绩:";
cin>>score;
while(1)
{
b=pduan(p,score,"英语");
if(b==true)
{
p->English=score;
p->meflag=true;
cout<<"修改成功!"<<endl<<endl;
return s;
break;
}
else cin>>score;
}
break;
case 2:
cout<<"学号为 "<<n<<" 的 "<<p->sname<<" ,数学成绩为:"<<p->English<<endl;
cout<<"请输入修改的成绩:";
cin>>score;
while(1)
{
b=pduan(p,score,"数学");
if(b==true)
{
p->Math=score;
p->mmflag=true;
cout<<"修改成功!"<<endl<<endl;
return s;
break;
}
else cin>>score;
}
break;
case 3:
cout<<"学号为 "<<n<<" 的 "<<p->sname<<" ,C++成绩为:"<<p->English<<endl;
cout<<"请输入修改的成绩:";
cin>>score;
while(1)
{
b=pduan(p,score,"C++");
if(b==true)
{
p->Clanguage=score;
p->mcflag=true;
cout<<"修改成功!"<<endl<<endl;
return s;
break;
}
else cin>>score;
}
break;
case 4:
cout<<"学号为 "<<n<<" 的 "<<p->sname<<" ,C++成绩为:"<<p->English<<endl;
cout<<"请输入修改的成绩:";
cin>>score;
while(1)
{
b=pduan(p,score,"数据库");
if(b==true)
{
p->Database=score;
p->mdflag=true;
cout<<"修改成功!"<<endl<<endl;
return s;
break;
}
else cin>>score;
}
break;
case 0:return s;
default:cout<<"没有该课程信息,请重新输入!"<<endl;
}
cin>>m;
}
return s;
}
void Student::display(Student *s)
{
Student *p=s;
if(p==NULL) {cout<<"没有任何学生信息!"<<endl<<endl;return ;}
cout<<"学号\t班级\t姓名\t英语\t数学\tC++\t数据库"<<endl;
while(p!=NULL)
{
cout<<p->sno<<"\t"<<p->sclass<<"\t"<<p->sname<<"\t";
cout<<p->English;
if(p->meflag==true)
cout<<"*";
else if(p->jeflag==true)
cout<<"^";
cout<<"\t"<<p->Math;
if(p->mmflag==true)
cout<<"*";
else if(p->jmflag==true)
cout<<"^";
cout<<"\t"<<p->Clanguage;
if(p->mcflag==true)
cout<<"*";
else if(p->jcflag==true)
cout<<"^";
cout<<"\t"<<p->Database;
if(p->mdflag==true)
cout<<"*";
else if(p->jdflag==true)
cout<<"^";
cout<<endl;
p=p->next;
}}
bool Student::pduan(Student *t,double s,string t1)
{
if(s<=100 &&s>=0)
{
if(s<60)
{
if(t1=="英语") t->jeflag=true;
else if(t1=="数学") t->jmflag=true;
else if(t1=="C++") t->jcflag=true;
else if(t1=="数据库")t->jdflag=true;
}
return true;
}
else
{
cout<<"成绩输入错误,请重新输入:";
return false;
}
}
Student* Student::add(Student *s)
{
int flag=1;
Student *t;
Student *p=s;
bool b=false;
double C,M,E,D;
string name,no,cl;
t=new Student;
cout<<"请输入学号:";
cin>>no;
while(flag)
{if(p==NULL) break;
while(p!=NULL)
{
if(p->sno==no)
{
cout<<"该学号已存在,请重新输入:";
cin>>no;
p=s;
flag=0;
break;
}
p=p->next;
}
}
cout<<"请输入姓名:";
cin>>name;
cout<<"请输入班级:";
cin>>cl;
cout<<"请输入英语成绩:";
cin>>E;
while(1)
{
b=pduan(t,E,"英语");
if(b==true) break;
else cin>>E;
}
cout<<"请输入数学成绩:";
cin>>M;
while(1)
{
b=pduan(t,M,"数学");
if(b==true) break;
else cin>>M;
}
cout<<"请输入
上一个:谁能讲一下C++中的类“CWnd”?
下一个:求助!C/C++编写文件管理系统