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

//       
#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
プログラムが実行できない、または何か問題があれば、コメントエリアにメッセージを残してください。
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。