当前位置:编程学习 > C/C++ >>

如何用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++编写文件管理系统

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,