C++学生成績管理システムの実現
やっと期末試験が終わりました。今学期のC++宿題を整理する時間があります。基本的な内容です。初心者に参考にしてもらいたいです。主にC++の対象に対してプログラミング思想を使って、学生情報類とチェーン類をカプセル化します。
文章は長いかもしれませんが、必要な部分だけを参考にしてもいいです。
タイトルの要求
C++およびクラスと対象を使って抽象的、パッケージ化と実現を行い、授業内の第四次作業とします。学生の成績に注意してチェーンで実現する必要があります。チェーンも実装する必要があります。
成績管理システム
情報の説明:
既存の学生の成績情報は以下の通りです。
姓名の学号の国語の数学の英語
張明らかに01
李成友02 78 91
張輝燦03 68 82
王露04,5645
陳東明
……
C++を使ってシステムを作成し、学生情報管理を実現してください。以下の機能が含まれています。
(1)情報保持
学生情報データはファイル形式で保存し、学生情報データの維持が可能です。このモジュールには、学生情報の追加、学生情報の削除、学生情報の修正などのサブモジュールがあります。すべての学生データは書類に保存する必要があります。ファイルからデータを読み込むことができ、プログラム内でチェーンの形で実現できます。
(2)情報照会
要求:照会する時、名前で照会し、学号で照会することができます。
(3)成績統計
要求:
任意の課程名(数学など)を入力して、その科目の成績を区分統計(90-10、80-89、70-79、60-69、60以下)して、この点数の学生数を与えます。
指定された課程名に基づいて、この科目の全学生の平均成績を求めます。
学生ひとりの平均成績をあげる
並べ替え:ユーザーが指定した任意のカリキュラム名に対して、成績の昇順または降順に学生データを並べ、並べ替えの結果を表示することができます。
少なくともテキストメニュー画面を使用します。
全体分析
このシステムは学生の成績管理システムで、テーマの要求によって、情報の維持、情報の検索、成績の統計、順序付け、テキストのインターフェースのメニューの5つのモジュールが必要です。
これらの機能を実現するために、このプログラムは2つのクラスを含みます。
1、Studentクラス:学生1人のすべての情報と学生情報の設定と取得関数が含まれています。
2、List類:学生情報チェーンのすべての操作を含む
このシステムを実装するには、7つのファイルに共有されます。
1、menu.cpp:複数の作成メニュー関数を含み、異なるモジュールの機能表示を実現する。
2、student.h:学生情報を保存するためのStudent類を含む
3、student.cpp:Student類のメンバー関数を含む実現
4、list.h:学生情報を操作するList類を含む
5、list.cpp:List類のメンバー関数を含む実現
6、main.cpp:すべての関数を呼び出し、適切な組み合わせで完全な学生成績管理システムを実現する。
7、student.txt:学生の全部の情報を含みます。
プログラムソース
menu.cpp
趙さんは01 90です
王さんは02 84です
小方03 86 85
李さんは04
劉さんは05,8978です
小曹06 60
張さんは07
小田08-90
小童09 89
プログラムが実行できない、または何か問題があれば、コメントエリアにメッセージを残してください。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。
文章は長いかもしれませんが、必要な部分だけを参考にしてもいいです。
タイトルの要求
C++およびクラスと対象を使って抽象的、パッケージ化と実現を行い、授業内の第四次作業とします。学生の成績に注意してチェーンで実現する必要があります。チェーンも実装する必要があります。
成績管理システム
情報の説明:
既存の学生の成績情報は以下の通りです。
姓名の学号の国語の数学の英語
張明らかに01
李成友02 78 91
張輝燦03 68 82
王露04,5645
陳東明
……
C++を使ってシステムを作成し、学生情報管理を実現してください。以下の機能が含まれています。
(1)情報保持
学生情報データはファイル形式で保存し、学生情報データの維持が可能です。このモジュールには、学生情報の追加、学生情報の削除、学生情報の修正などのサブモジュールがあります。すべての学生データは書類に保存する必要があります。ファイルからデータを読み込むことができ、プログラム内でチェーンの形で実現できます。
(2)情報照会
要求:照会する時、名前で照会し、学号で照会することができます。
(3)成績統計
要求:
任意の課程名(数学など)を入力して、その科目の成績を区分統計(90-10、80-89、70-79、60-69、60以下)して、この点数の学生数を与えます。
指定された課程名に基づいて、この科目の全学生の平均成績を求めます。
学生ひとりの平均成績をあげる
並べ替え:ユーザーが指定した任意のカリキュラム名に対して、成績の昇順または降順に学生データを並べ、並べ替えの結果を表示することができます。
少なくともテキストメニュー画面を使用します。
全体分析
このシステムは学生の成績管理システムで、テーマの要求によって、情報の維持、情報の検索、成績の統計、順序付け、テキストのインターフェースのメニューの5つのモジュールが必要です。
これらの機能を実現するために、このプログラムは2つのクラスを含みます。
1、Studentクラス:学生1人のすべての情報と学生情報の設定と取得関数が含まれています。
2、List類:学生情報チェーンのすべての操作を含む
このシステムを実装するには、7つのファイルに共有されます。
1、menu.cpp:複数の作成メニュー関数を含み、異なるモジュールの機能表示を実現する。
2、student.h:学生情報を保存するためのStudent類を含む
3、student.cpp:Student類のメンバー関数を含む実現
4、list.h:学生情報を操作するList類を含む
5、list.cpp:List類のメンバー関数を含む実現
6、main.cpp:すべての関数を呼び出し、適切な組み合わせで完全な学生成績管理システムを実現する。
7、student.txt:学生の全部の情報を含みます。
プログラムソース
menu.cpp
//
#include<iostream>
using namespace std;
//
void menu()
{
cout<<"
\t\t---------------- ------------------"<<endl<<endl;
cout<<"\t\t1、 "<<" "<<"\t2、 "<<endl<<endl;
cout<<"\t\t3、 "<<" "<<"\t4、 "<<endl<<endl;
cout<<"\t\t5、 "<<endl<<endl;
return;
}
//
void menu1()
{
cout<<"
\t\t "<<endl<<endl;
cout<<"\t\t1、 "<<endl<<endl;
cout<<"\t\t2、 "<<endl<<endl;
cout<<"\t\t3、 "<<endl<<endl;
cout<<"\t\t4、 "<<endl<<endl;
return;
}
//
void menu2()
{
cout<<"
\t\t "<<endl<<endl;
cout<<"\t\t1、 "<<endl<<endl;
cout<<"\t\t2、 "<<endl<<endl;
cout<<"\t\t3、 "<<endl<<endl;
return;
}
//
void menu3()
{
cout<<"
\t\t "<<endl<<endl;
cout<<"\t\t1、 "<<endl<<endl;
cout<<"\t\t2、 "<<endl<<endl;
cout<<"\t\t3、 "<<endl<<endl;
return;
}
//
void menu4()
{
cout<<"
\t\t "<<endl<<endl;
cout<<"\t\t1、 "<<endl<<endl;
cout<<"\t\t2、 "<<endl<<endl;
cout<<"\t\t3、 "<<endl<<endl;
return;
}
main.cpp
// , switch
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include"student.h"
#include"list.h"
void menu();
void menu1();
void menu2();
void menu3();
void menu4();
using namespace std;
int main(void)
{
int choice,choice1,choice2,choice3,choice4;
List pHead;
string subj;
pHead.input_info();
while(1)
{
menu();
cout<<" :";
cin>>choice;
switch(choice)
{
//
case 1:
while(1)
{
pHead.input_info();
system("cls");
menu1();
cout<<" :";
cin>>choice1;
switch(choice1)
{
//
case 1:
pHead.output_info();// ,
pHead.add_info();//
system("cls");
cout<<"
\t\t ( )"<<endl;
pHead.output_info();// ,
pHead.save_list();//
cout<<"
"<<endl<<endl;
system("pause");
break;
//
case 2:
pHead.output_info();// ,
pHead.delete_info();//
system("cls");
cout<<"
\t\t ( )"<<endl;
pHead.output_info();// ,
pHead.save_list();//
cout<<"
"<<endl<<endl;
system("pause");
break;
//
case 3:
pHead.output_info();// ,
pHead.modify_info();//
system("cls");
cout<<"
\t\t ( )"<<endl;
pHead.output_info();// ,
pHead.save_list();//
cout<<"
"<<endl<<endl;
system("pause");
break;
default:
system("cls");
break;
}
if(choice1!=1&&choice1!=2&&choice1!=3)
break;
}
break;
//
case 2:
while(1)
{
system("cls");
menu2();
cout<<" :";
cin>>choice2;
switch(choice2)
{
//
case 1:
pHead.search_by_name();
system("pause");
break;
//
case 2:
pHead.search_by_ID();
system("pause");
//system("cls");
break;
default:
system("cls");
break;
}
if(choice2!=1&&choice2!=2)
break;
//break;
}
break;
//
case 3:
while(1)
{
system("cls");
menu3();
cout<<" :";
cin>>choice3;
switch(choice3)
{
//
case 1:
cout<<" :";
cin>>subj;
if(subj==" ")
pHead.separate_by_math();
else if(subj==" ")
pHead.separate_by_english();
else if(subj=="C++")
pHead.separate_by_cpp();
else
cout<<" !"<<endl;
system("pause");
break;
//
case 2:
pHead.count_subject_avg();//
system("pause");
break;
default:
system("cls");
break;
}
if(choice3!=1&&choice3!=2)
break;
}
break;
//
case 4:
while(1)
{
system("cls");
menu4();
cout<<" :";
cin>>choice4;
switch(choice4)
{
//
case 1:
cout<<" :";
cin>>subj;
cout<<endl;
if(subj==" ")
{
cout<<"\t\t "<<endl<<endl;
pHead.sortMath();
}
else if(subj==" ")
{
cout<<"\t\t "<<endl<<endl;
pHead.sortEnglish();
}
else if(subj=="C++")
{
cout<<"\t\tC++ "<<endl<<endl;
pHead.sortCpp();
}
else
cout<<" !"<<endl;
pHead.output_info();
cout<<endl;
system("pause");
break;
case 2:
cout<<" :";
cin>>subj;
cout<<endl;
if(subj==" ")
{
cout<<"\t\t "<<endl<<endl;
pHead.sortMath_s();
}
else if(subj==" ")
{
cout<<"\t\t "<<endl<<endl;
pHead.sortEnglish_s();
}
else if(subj=="C++")
{
cout<<"\t\tC++ "<<endl<<endl;
pHead.sortCpp_s();
}
else
cout<<" !"<<endl;
pHead.output_info();
cout<<endl;
system("pause");
break;
default:
system("cls");
break;
}
if(choice4!=1&&choice4!=2)
break;
}
break;
default:
return 0;
}
}
pHead.delete_list();
return 0;
}
student.h
#ifndef __STUDENT_H__
#define __STUDENT_H__
#include<iostream>
#include<string>
#include<sstream>
using namespace std;
class Student
{
public:
Student();
//~Student();
public:
void set_stuID(string ID);//
void set_name(string na);//
void set_scores(double en,double m,double cp);//
void set_num(int n);//
void count_avg();//
void count_total();//
void get_scores(double *en,double *m,double *cp,double *sum,double *avg);// ( 、 、C++、 、 )
string get_stuID();//
string get_name();//
int get_num();//
private:
string stuID;//
string name;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
int num;//
};
#endif
student.cpp
#include"student.h"
#include<iostream>
#include<string>
#include<sstream>
Student::Student()
{
stuID="00";
}
//
void Student::set_stuID(string ID)
{
stuID=ID;
}
//
void Student::set_name(string na)
{
name=na;
}
//
void Student::set_scores(double en,double m,double cp)
{
english=en;
math=m;
cpp=cp;
}
//
void Student::set_num(int n)
{
num=n;
}
//
void Student::count_avg()
{
average=(english+math+cpp)/3;
}
//
void Student::count_total()
{
total=english+math+cpp;
}
// ( 、 、C++、 、 )
void Student::get_scores(double *en,double *m,double *cp,double *sum,double *avg)
{
*en=english;
*m=math;
*cp=cpp;
*sum=total;
*avg=average;
}
//
string Student::get_stuID()
{
return stuID;
}
//
string Student::get_name()
{
return name;
}
//
int Student::get_num()
{
return num;
}
list.h
#ifndef __LIST_H__
#define __LIST_H__
#include<iostream>
#include"student.h"
class List
{
public:
List(){};//
~List();//
public:
//
void input_info();// ,
void output_info();// ,
//
void search_by_name();//
void search_by_ID();//
//
void sortEnglish();//
void sortMath();//
void sortCpp();// C++
void sortEnglish_s();//
void sortMath_s();//
void sortCpp_s();// C++
void sortTotal();//
//
void separate_by_english();//
void separate_by_math();//
void separate_by_cpp();// C++
void count_subject_avg();//
//
void modify_info();//
void delete_info();//
void add_info();//
public:
void save_list();//
void delete_list();// ,
private:
Student stu;//
List *pHead;//
List *pNext;//
};
#endif
list.cpp
#include<iostream>
#include<fstream>
#include<stdio.h>
#include<cstdlib>
#include<cstring>
#include<iomanip>
#include"list.h"
using namespace std;
List::~List()
{
pHead=NULL;
pNext=NULL;
}
// ,
void List::input_info()
{
List *current=NULL;
List *previous=NULL;
pHead=NULL;
string name;//
string stuID;//
double english;//
double math;//
double cpp;//C++
int n=0;// ,
ifstream fin;
fin.open("student.txt",ios::in);
if(!fin)
{
cout<<"Fail to open the file!"<<endl;
exit(0);
}
// ,
while(1)
{
if(!(fin>>name>>stuID>>english>>math>>cpp))//
break;
++n;//
//cout<<name<<' '<<stuID<<' '<<english<<' '<<math<<' '<<cpp<<endl;
current=new List;//
if(pHead==NULL)
pHead=current;//
if(previous!=NULL)
previous->pNext=current;// pNext
//
current->stu.set_name(name);//
current->stu.set_stuID(stuID);//
current->stu.set_scores(english,math,cpp);// 、 、C++
current->stu.count_avg();// ,
current->stu.count_total();//
current->stu.set_num(n);
current->pNext=NULL;
previous=current;
}
//
fin.close();
//cout<<" "<<n<<" "<<endl;
}
// ,
void List::output_info()
{
string name;//
string stuID;//
int num;
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
int n=0;//
cout<<"
\t"<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<" \t"<<" \t"<<endl;
List *p=pHead;
while(p!=NULL)
{
++n;
p->stu.set_num(n);//
name=p->stu.get_name();
stuID=p->stu.get_stuID();
num=p->stu.get_num();
p->stu.get_scores(&english,&math,&cpp,&total,&average);
cout<<fixed<<setprecision(2)<<num<<'\t'<<name<<'\t'<<stuID<<'\t'<<english<<'\t'<<math<<'\t'<<cpp<<'\t'<<total<<'\t'<<average<<endl;
p=p->pNext;//
}
cout<<endl;
}
//
void List::search_by_name()
{
string name;//
string stuID;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
int flag=0;//
List *p=pHead;
string na;
cout<<" :";
cin>>na;
while(p!=NULL)
{
name=p->stu.get_name();
if(name==na)
{
flag++;
stuID=p->stu.get_stuID();
p->stu.get_scores(&english,&math,&cpp,&total,&average);
cout<<"
:"<<endl<<endl;
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<" \t"<<" \t"<<endl;
cout<<fixed<<setprecision(2)<<name<<'\t'<<stuID<<'\t'<<english<<'\t'<<math<<'\t'<<cpp<<'\t'<<total<<'\t'<<average<<endl;
break;
}
p=p->pNext;//
}
if(flag==0)
cout<<" !"<<endl;
}
//
void List::search_by_ID()
{
string name;//
string stuID;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
int flag=0;//
List *p=pHead;
string ID;
cout<<" :";
cin>>ID;
while(p!=NULL)
{
stuID=p->stu.get_stuID();
if(stuID==ID)
{
flag++;
name=p->stu.get_name();
cout<<"
:"<<endl<<endl;
p->stu.get_scores(&english,&math,&cpp,&total,&average);
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<" \t"<<" \t"<<endl;
cout<<fixed<<setprecision(2)<<name<<'\t'<<stuID<<'\t'<<english<<'\t'<<math<<'\t'<<cpp<<'\t'<<total<<'\t'<<average<<endl;
break;
}
p=p->pNext;//
}
if(flag==0)
cout<<" !"<<endl;
}
// C++
void List::sortCpp()
{
double english;//
double math;//
double total;//
double average;//
//C++
double cpp1;
double cpp2;
List *p;
List *q;
List temp;//
for(p=pHead;p->pNext!=NULL;p=p->pNext)
for(q=p->pNext;q!=NULL;q=q->pNext)
{
p->stu.get_scores(&english,&math,&cpp1,&total,&average);
q->stu.get_scores(&english,&math,&cpp2,&total,&average);
if(cpp1<cpp2)
{
temp.stu=q->stu;
q->stu=p->stu;
p->stu=temp.stu;
}
}
}
//
void List::sortMath()
{
double english;//
double cpp;//C++
double total;//
double average;//
//
double math1;
double math2;
List *p;
List *q;
List temp;//
for(p=pHead;p->pNext!=NULL;p=p->pNext)
for(q=p->pNext;q!=NULL;q=q->pNext)
{
p->stu.get_scores(&english,&math1,&cpp,&total,&average);
q->stu.get_scores(&english,&math2,&cpp,&total,&average);
if(math1<math2)
{
temp.stu=q->stu;
q->stu=p->stu;
p->stu=temp.stu;
}
}
}
//
void List::sortEnglish()
{
double cpp;//C++
double math;//
double total;//
double average;//
//
double english1;
double english2;
List *p;
List *q;
List temp;//
for(p=pHead;p->pNext!=NULL;p=p->pNext)
for(q=p->pNext;q!=NULL;q=q->pNext)
{
p->stu.get_scores(&english1,&math,&cpp,&total,&average);
q->stu.get_scores(&english2,&math,&cpp,&total,&average);
if(english1<english2)
{
temp.stu=q->stu;
q->stu=p->stu;
p->stu=temp.stu;
}
}
}
//
void List::sortEnglish_s()
{
double cpp;//C++
double math;//
double total;//
double average;//
//
double english1;
double english2;
List *p;
List *q;
List temp;//
for(p=pHead;p->pNext!=NULL;p=p->pNext)
for(q=p->pNext;q!=NULL;q=q->pNext)
{
p->stu.get_scores(&english1,&math,&cpp,&total,&average);
q->stu.get_scores(&english2,&math,&cpp,&total,&average);
if(english1>english2)
{
temp.stu=q->stu;
q->stu=p->stu;
p->stu=temp.stu;
}
}
}
//
void List::sortMath_s()
{
double english;//
double cpp;//C++
double total;//
double average;//
//
double math1;
double math2;
List *p;
List *q;
List temp;//
for(p=pHead;p->pNext!=NULL;p=p->pNext)
for(q=p->pNext;q!=NULL;q=q->pNext)
{
p->stu.get_scores(&english,&math1,&cpp,&total,&average);
q->stu.get_scores(&english,&math2,&cpp,&total,&average);
if(math1>math2)
{
temp.stu=q->stu;
q->stu=p->stu;
p->stu=temp.stu;
}
}
}
// C++
void List::sortCpp_s()
{
double english;//
double math;//
double total;//
double average;//
//C++
double cpp1;
double cpp2;
List *p;
List *q;
List temp;//
for(p=pHead;p->pNext!=NULL;p=p->pNext)
for(q=p->pNext;q!=NULL;q=q->pNext)
{
p->stu.get_scores(&english,&math,&cpp1,&total,&average);
q->stu.get_scores(&english,&math,&cpp2,&total,&average);
if(cpp1>cpp2)
{
temp.stu=q->stu;
q->stu=p->stu;
p->stu=temp.stu;
}
}
}
//
void List::sortTotal()
{
double english;//
double cpp;//C++
double math;//
double average;//
//
double sum1;
double sum2;
List *p;
List *q;
List temp;//
for(p=pHead;p->pNext!=NULL;p=p->pNext)
for(q=p->pNext;q!=NULL;q=q->pNext)
{
p->stu.get_scores(&english,&math,&cpp,&sum1,&average);
q->stu.get_scores(&english,&math,&cpp,&sum2,&average);
if(sum1<sum2)
{
temp.stu=q->stu;
q->stu=p->stu;
p->stu=temp.stu;
}
}
}
//
void List::separate_by_english()
{
//sortEnglish();//
string name;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
int t1=0,t2=0,t3=0,t4=0,t5=0;//
List *p=pHead;
while(p!=NULL)
{
p->stu.get_scores(&english,&math,&cpp,&total,&average);
if(english>=90&&english<=100)
++t1;
else if(english>=80&&english<=89)
++t2;
else if(english>=70&&english<=79)
++t3;
else if(english>=60&&english<=69)
++t4;
else
++t5;
p=p->pNext;
}
cout<<"
\t\t\t "<<endl<<endl;
cout<<"\t\t \t"<<"100-90\t"<<"89-80\t"<<"79-70\t"<<"69-60\t"<<"59-0\t"<<endl<<endl;
cout<<"\t\t \t"<<t1<<'\t'<<t2<<'\t'<<t3<<'\t'<<t4<<'\t'<<t5<<endl<<endl;
}
//
void List::separate_by_math()
{
//sortEnglish();//
string name;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
int t1=0,t2=0,t3=0,t4=0,t5=0;//
List *p=pHead;
while(p!=NULL)
{
p->stu.get_scores(&english,&math,&cpp,&total,&average);
if(math>=90&&math<=100)
++t1;
else if(math>=80&&math<=89)
++t2;
else if(math>=70&&math<=79)
++t3;
else if(math>=60&&math<=69)
++t4;
else
++t5;
p=p->pNext;
}
cout<<"
\t\t\t "<<endl<<endl;
cout<<"\t\t \t"<<"100-90\t"<<"89-80\t"<<"79-70\t"<<"69-60\t"<<"59-0\t"<<endl<<endl;
cout<<"\t\t \t"<<t1<<'\t'<<t2<<'\t'<<t3<<'\t'<<t4<<'\t'<<t5<<endl<<endl;
}
// C++
void List::separate_by_cpp()
{
//sortEnglish();//
string name;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
int t1=0,t2=0,t3=0,t4=0,t5=0;//
List *p=pHead;
while(p!=NULL)
{
p->stu.get_scores(&english,&math,&cpp,&total,&average);
if(cpp>=90&&cpp<=100)
++t1;
else if(cpp>=80&&cpp<=89)
++t2;
else if(cpp>=70&&cpp<=79)
++t3;
else if(cpp>=60&&cpp<=69)
++t4;
else
++t5;
p=p->pNext;
}
cout<<"
\t\t\tC++ "<<endl<<endl;
cout<<"\t\t \t"<<"100-90\t"<<"89-80\t"<<"79-70\t"<<"69-60\t"<<"59-0\t"<<endl<<endl;
cout<<"\t\t \t"<<t1<<'\t'<<t2<<'\t'<<t3<<'\t'<<t4<<'\t'<<t5<<endl<<endl;
}
//
void List::count_subject_avg()
{
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
double english_avg;//
double math_avg;//
double cpp_avg;//C++
int n=0;//
double Esum=0,Msum=0,Csum=0;//
List *p=pHead;
while(p!=NULL)
{
p->stu.get_scores(&english,&math,&cpp,&total,&average);
Esum+=english;
Msum+=math;
Csum+=cpp;
++n;
p=p->pNext;
}
english_avg=Esum/n;
math_avg=Msum/n;
cpp_avg=Csum/n;
cout<<" "<<endl;
cout<<" \t"<<" \t"<<"C++\t"<<endl;
cout<<english_avg<<'\t'<<math_avg<<'\t'<<cpp_avg<<endl;
}
//
void List::modify_info()
{
string name;//
string stuID;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
List *p=pHead;
char content[20];
cout<<" :";
cin>>content;
//
if(content[0]>='0'&&content[0]<='9')
{
int flag=0;// ;
string ID=content;
while(p!=NULL)
{
stuID=p->stu.get_stuID();
if(stuID==ID)
{
flag++;
name=p->stu.get_name();
p->stu.get_scores(&english,&math,&cpp,&total,&average);
cout<<"
\t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<" \t"<<" \t"<<endl;
cout<<name<<'\t'<<stuID<<'\t'<<english<<'\t'<<math<<'\t'<<cpp<<'\t'<<total<<'\t'<<average<<endl<<endl;
cout<<" "<<endl;
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<endl;
cin>>name>>stuID>>english>>math>>cpp;
p->stu.set_name(name);//
p->stu.set_stuID(stuID);//
p->stu.set_scores(english,math,cpp);//
p->stu.count_total();//
p->stu.count_avg();//
break;
}
p=p->pNext;//
}
if(flag==0)
cout<<" !"<<endl;
}
else
{
int flag=0;// ;
string na=content;// string
while(p!=NULL)
{
name=p->stu.get_name();
if(name==na)
{
flag++;
stuID=p->stu.get_stuID();
p->stu.get_scores(&english,&math,&cpp,&total,&average);
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<" \t"<<" \t"<<endl;
cout<<name<<'\t'<<stuID<<'\t'<<english<<'\t'<<math<<'\t'<<cpp<<'\t'<<total<<'\t'<<average<<endl<<endl;
cout<<" "<<endl;
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<endl;
cin>>name>>stuID>>english>>math>>cpp;
p->stu.set_name(name);//
p->stu.set_stuID(stuID);//
p->stu.set_scores(english,math,cpp);//
p->stu.count_total();//
p->stu.count_avg();//
break;
}
p=p->pNext;//
}
if(flag==0)
cout<<" !"<<endl;
}
}
//
void List::delete_info()
{
string name;//
string stuID;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
//int n=0;//
List *p=pHead;//
List *pf=NULL;//
char content[20];
cout<<" :";
cin>>content;
//
if(content[0]>='0'&&content[0]<='9')
{
int flag=0;// ;
string ID=content;
char answer;//
while(p!=NULL)
{
//++n;
stuID=p->stu.get_stuID();
if(stuID==ID)
{
flag++;
name=p->stu.get_name();
p->stu.get_scores(&english,&math,&cpp,&total,&average);
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<" \t"<<" \t"<<endl;
cout<<name<<'\t'<<stuID<<'\t'<<english<<'\t'<<math<<'\t'<<cpp<<'\t'<<total<<'\t'<<average<<endl<<endl;
cout<<" ?(Y/N)";
cin>>answer;
if(tolower(answer)=='y')
{
if(pf==NULL)
{
List *temp=p;//
pHead=p->pNext;// ,
delete temp;//
}
else
{
List *temp=p;//
pf->pNext=p->pNext;// ,
delete temp;//
}
cout<<"\t !"<<endl;
break;
}
else
{
break;
}
}
pf=p;//
p=p->pNext;//
}
if(flag==0)
cout<<" !"<<endl;
}
else
{
int flag=0;// ;
string na=content;// string
char answer;//
while(p!=NULL)
{
//++n;
name=p->stu.get_name();
if(name==na)
{
flag++;
stuID=p->stu.get_stuID();
p->stu.get_scores(&english,&math,&cpp,&total,&average);
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<" \t"<<" \t"<<endl;
cout<<name<<'\t'<<stuID<<'\t'<<english<<'\t'<<math<<'\t'<<cpp<<'\t'<<total<<'\t'<<average<<endl<<endl;
cout<<" ?(Y/N)";
cin>>answer;
if(tolower(answer)=='y')
{
if(pf==NULL)
{
List *temp=p;//
pHead=p->pNext;// ,
delete temp;//
}
else
{
List *temp=p;//
pf->pNext=p->pNext;// ,
delete temp;//
}
cout<<"\t !"<<endl;
break;
}
else
{
break;
}
}
pf=p;//
p=p->pNext;//
}
if(flag==0)
cout<<" !"<<endl;
}
}
//
void List::add_info()
{
string name;//
string stuID;//
int num;//
double english;//
double math;//
double cpp;//C++
int location=0;//
int flag=0;//
List *p=pHead;//
List *pf=NULL;//
cout<<" ( , 0):";
cin>>location;
while(p!=NULL)//
{
num=p->stu.get_num();
if(num==location)
{
++flag;
cout<<" "<<endl;
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<endl;
cin>>name>>stuID>>english>>math>>cpp;
List *new_node=new List;//
new_node->stu.set_name(name);
new_node->stu.set_stuID(stuID);
new_node->stu.set_scores(english,math,cpp);
new_node->stu.count_total();//
new_node->stu.count_avg();//
if(pf==NULL)
{
new_node->pNext=p;
pHead=new_node;
break;
}
else
{
new_node->pNext=p;
pf->pNext=new_node;
break;
}
}
pf=p;
p=p->pNext;
}
if(flag==0)
{
cout<<" "<<endl;
cout<<" \t"<<" \t"<<" \t"<<" \t"<<"C++\t"<<endl;
cin>>name>>stuID>>english>>math>>cpp;
List *new_node=new List;//
new_node->stu.set_name(name);
new_node->stu.set_stuID(stuID);
new_node->stu.set_scores(english,math,cpp);
new_node->stu.count_total();//
new_node->stu.count_avg();//
pf->pNext=new_node;
new_node->pNext=NULL;
}
}
//
void List::save_list()
{
string name;//
string stuID;//
double english;//
double math;//
double cpp;//C++
double total;//
double average;//
List *p=pHead;
ofstream fout;
fout.open("student.txt",ios::out);
while(p!=NULL)
{
name=p->stu.get_name();
stuID=p->stu.get_stuID();
p->stu.get_scores(&english,&math,&cpp,&total,&average);
fout<<name<<' '<<stuID<<' '<<english<<' '<<math<<' '<<cpp<<endl;
p=p->pNext;
}
fout.close();
}
// ,
void List::delete_list()
{
List *p=pHead;
List *pt;
while(p!=NULL)
{
pt=p;
p=p->pNext;
delete pt;
}
pt=NULL;
pHead=NULL;
p=NULL;
}
student.txt趙さんは01 90です
王さんは02 84です
小方03 86 85
李さんは04
劉さんは05,8978です
小曹06 60
張さんは07
小田08-90
小童09 89
プログラムが実行できない、または何か問題があれば、コメントエリアにメッセージを残してください。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。