juezuo 发表于 2018-7-2 09:36:10

HELP!!C++学生成绩管理系统 还差三个模块就OK!!

本帖最后由 juezuo 于 2018-7-3 15:26 编辑

我的程序差不多就完成了。但是就是差3个模块,分别是读写文件,按平均成绩查询。按总成绩查询 ,拜托论坛里面的大神了。我想了好久,编译器总能出错.

下面是代码
红色注释的是所需要解决的问题


#include<iostream>
#include<iomanip>
#include<string>
#include <fstream>
#include <stdlib.h>
using namespace std;
class student
{
      int num;
      char name;
      char class1;
      double chinese;
    double math;
      double english;
      double youxiu;//优秀率
      double bujige;//不及格率
      double sum;//总成绩
      double aver1;//平均成绩
int tenum;//电话号码
char addr;//家庭地址
public:

      void wenjian()    <font color="red">// 这个是文件的写入模块。但是好像是覆盖,就是写入一次就覆盖前面写入的内容,我希望改成再次写入时,不要覆盖上次写入的数据</font>
{

cout<<"学生学号:";
cin>>num;
cout<<"学生姓名:";
cin>>name;
cout<<"学生电话号码 :";
cin>>tenum;
cout<<"家庭地址 ";
cin>>addr;
cout<<"学生班级:";
cin>>class1;
cout<<"语文成绩:";
cin>>chinese;
cout<<"英语成绩:";
cin>>english;
cout<<"数学成绩:";
                        cin>>math;

ofstream outfile("student.txt");
if (outfile.is_open())
{
      outfile<<"学生学号:"<<num<<endl;

      outfile<<"学生姓名:"<<name<<endl;

      outfile<<"学生电话号码 :"<<tenum<<endl;

      outfile<<"家庭地址 "<<addr<<endl;

      outfile<<"学生班级:"<<class1<<endl;

      outfile<<"语文成绩:"<<chinese<<endl;

      cout<<"英语成绩:"<<english<<endl;

      outfile<<"数学成绩:"<<math<<endl;
                        
      outfile<<"已成功存入文件中 ^_^"<<endl;
          //将数据写入student.txt文件中

      outfile.close();
}

         
          /*      FILE *fp;
      
                int ch;
                if ((fp=fopen("student.txt","w")) ==NULL)
                {
                        cerr<<"\n无法打开此文件!"<<endl;
exit(EXIT_FAILURE);
                }
                while((ch=getc(fp))!= EOF)
                {
putchar(ch);
                }
                fclose(fp);
*/

/*
      void openfile()<font color="red"> //这个是文件的打开模块,就是,打开文件数据并输入到屏幕当中,这个也弄了好久编译器不通过</font>
      {
               
                ifstream file1("student.txt");
                if (file1.is_open())   //打开文件并且读取数据模块
                {
                        file1>>num;//从文件中读取学生学号
                        cout<<"学号:"<<num<<endl;
                        
                        file1>>name;
                        cout<<"学生姓名:"<<name<<endl;
                        
                        file1.close();
                }
}
*/

                        
                              
      }


      void set()
      {
                cout<<"是否需要录入txt文件中:(Y/N)"<<endl;
                char c;
                cin>>c;
      char b;

                if (c=='y' || c=='Y')
                {
                        do
                {
      
                        wenjian();
                        cout<<"\n是否需要退出(y/n)"<<endl;//推出模块
                                                cin>>b;
                        if (b=='y' || b=='Y')
                        {
                              c='n';
                        }
                } while (c=='y' || c=='Y');

               
}else{
                        
                        cout<<"\t学生学号:";
                        cin>>num;
                        cout<<"\t学生姓名:";
                        cin>>name;
                        cout<<"\t学生电话号码 :";
                        cin>>tenum;
                        cout<<"\t家庭地址 ";
                        cin>>addr;
                        
                        cout<<"\t学生班级:";
                        cin>>class1;
                        cout<<"\t语文成绩:";
                        cin>>chinese;
                        cout<<"\t英语成绩:";
                        cin>>english;
                        cout<<"\t数学成绩:";
                        cin>>math;
                }
               
      

      }


      void show()
      {
                cout<<"该学生的学号:"<<num<<endl;
                cout<<"该学生的姓名:"<<name<<endl;
                cout<<"该学生的电话号码 "<<tenum<<endl;
                cout<<"该学生的家庭地址 "<<addr<<endl;
                cout<<"该学生的班级:"<<class1<<endl;
                cout<<"该学生的语文成绩:"<<chinese<<endl;
                cout<<"该学生的数学成绩:"<<math<<endl;
                cout<<"该学生的英语成绩:"<<english<<endl;

      }
    double ad(){return sum=chinese+english+math;}
      double sum1();
      double aver()
      {
                aver1=(chinese+english+math)/3;
                return aver1;
      }

    friend      void      show();
    friend      void      search();
    friendvoid      change();
    friend      void      add();
    friend      void      paixu();
    friend         void      del();

};
      void      input();
      void      show();
      void      search();
      void      change();
      void      add();
      void      paixu();
      void      del();
      student s;
      int n=0;

int main()
{

    int select;   
      while(1)
      {
                system("cls");
                cout<<"\t ******************欢迎使用******************\n";
                cout<<"\t **************学生成绩管理系统**************\n";
                cout<<"\t *------------------------------------------*\n";
                cout<<"\t *         1——录入学生信息                *\n";
                cout<<"\t *         2——显示学生信息                *\n";
                cout<<"\t *         3——查询学生信息                *\n";
                cout<<"\t *         4——修改学生信息                *\n";
                cout<<"\t *         5——添加学生信息                *\n";
                cout<<"\t *         6——排序学生信息                *\n";
                cout<<"\t *         7——删除学生信息                *\n";
                cout<<"\t *         0——退出                        *\n";
                cout<<"\t *------------------------------------------*\n";
                cout<<"\t 你要输入的编号是(0--7):";
                cin>>select;
                if(select==0) break;
                switch(select){
                case 1:
                        input(); //调用input函数录入数据
                        system("pause");
                        break;
                case 2:
                        show(); //调用show函数显示学生信息
                        system("pause");
                        break;
                case 3:
                  search();//调用search函数查询学生信息
                        system("pause");
                        break;
                case 4:
                        change();//调用change函数修改学生信息
                        system("pause");
                        break;
                case 5:
                  add();   //调用add函数添加学生信息
                        system("pause");
                        break;
                case 6:
                  paixu();   //调用add函数添加学生信息
                        system("pause");
                        break;
                case 7:
                        del();    // 调用del函数删除学生信息
                        system("pause");
                        break;
      

                              system("pause");
                default:
                        cout<<"没有此选项,请重新选择!"<<endl;
                }
      }
      return 0;
}


      void input() //录入学生信息的函数
{
char sel;
do
{
          n++;
          cout<<"\t请输入第"<<n<<"个学生信息:\t"<<endl;
       s.set();
         
          cout<<"是否要继续录入学生信息(Y/N):";
          cin>>sel;
}while(sel=='Y' || sel=='y' );
}
void show()
{
      cout<<left; //设置输出左对齐
      cout<<setw(10)<<"学生学号"
                <<setw(10)<<"学生姓名"
<<setw(15)<<"学生电话号码"
<<setw(15)<<"学生家庭地址"
                <<setw(13)<<"学生班级"
                <<setw(12)<<"语文成绩"
                <<setw(12)<<"数学成绩"
                <<setw(12)<<"英语成绩"
                <<endl;
      for(int i=1;i<=n;i++)
      {
                cout<<setw(10)<<s.num
                        <<setw(10)<<s.name
                        <<setw(15)<<s.tenum
                        <<setw(15)<<s.addr
                        <<setw(13)<<s.class1
                        <<setw(12)<<s.chinese
                        <<setw(12)<<s.math
                        <<setw(12)<<s.english<<endl;
      }
      cout<<endl;

}

      double sum1()
      {
                int i;
                double sum=0;
                for(i=1;i<=n;i++)
                {
                sum=ad();    <font color="red">//这个是计算总分模块,但是我用VC6.0报错'ad' : undeclared identifier?明明已经定义了?? </font>
                }
                return sum;
      }
<font color="red">//类似的求平均分模块,也拜托吧里的大神了</font>
                     
void search()//查询
{

      int a,b,i;char c;
      cout<<"请选择查询方式:"<<endl;
      cout<<"按学生姓名查询请按1"<<endl;
    cout<<"按学生学号查询请按2"<<endl;
      
      cin>>a;
      switch(a)
      {
      case 1:      
{char sel;
do{
                cout<<"请输入你要查的学生的姓名:"<<endl;
                cin>>c;
                for(i=1;i<=n;i++)
                        if(strcmp(s.name,c)==0)
                        {cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                              <<s.name<<endl<<"学生班级:"
                              <<s.class1<<endl<<"学生电话号码 "
                              <<s.tenum<<endl<<"学生家庭住址 "
                              <<s.addr<<endl<<"语文成绩:"
                              <<s.chinese<<endl<<"数学成绩:"
                              <<s.math<<endl<<"英语成绩:"
                              <<s.english<<endl;
                        break;
                        }
                        else if(strcmp(s.name,c)!=0&&i==n)
                        {cout<<"没有这个学生!"<<endl;break;}
                cout<<"是否要继续查询学生信息(Y/N):";
          cin>>sel;
      }while(sel=='Y' || sel=='y' );
      break;
}
      case 2:
{      char sel;
do{
                cout<<"请输入你要查的学生的学号:"<<endl;
                cin>>b;
                for(i=1;i<=n;i++)
                        if(s.num==b)
                        {
                        cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                              <<s.name<<endl<<"学生班级:"
                              <<s.class1<<endl<<"学生电话号码 "
                              <<s.tenum<<endl<<"学生家庭住址 "
                              <<s.addr<<endl<<"语文成绩:"
                              <<s.chinese<<endl<<"数学成绩:"
                              <<s.math<<endl<<"英语成绩:"
                              <<s.english<<endl;
                        break;
                        }
                        else if(s.num!=b&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;break;}
                cout<<"是否要继续查询学生信息(Y/N):";
          cin>>sel;
      }while(sel=='Y' || sel=='y' );
      break;}

      case 3:
                {
                        extern openfile();
                        break;
                }


      default:
                cout<<"您的输入有误!"<<endl;
      }
               
}

void change()
{
{      char sel;
      int d,i,e,f,g=0;
do{
                cout<<"请输入你要修改的学生的学号:"<<endl;
                cin>>d;
                for(i=1;i<=n;i++)
                  if(s.num==d)
                        {
                        cout<<"你要修改的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                              <<s.name<<endl<<"学生班级:"
                              <<s.class1<<endl<<"学生电话号码"
                              <<s.tenum<<endl<<"学生家庭住址"
                              <<s.addr<<endl<<"语文成绩:"
                              <<s.chinese<<endl<<"数学成绩:"
                              <<s.math<<endl<<"英语成绩:"
                              <<s.english<<endl;
                e=1;
                        break;
                        }
                        else if(s.num!=d&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;
                        e=0;break;}
                        while(e==1)
                        {      {cout<<"请输入该学生要修改的信息对应的数字:"<<endl;
                        cout<<"学生学号:1"
                              <<'\t'<<"学生姓名:2"
                              <<'\t'<<"学生班级:3"
                              <<'\t'<<"学生电话号码 :4"
                              <<'\t'<<"学生家庭:5"
                              <<'\t'<<"语文成绩:6"
                              <<'\t'<<"数学成绩:7"
                              <<'\t'<<"英语成绩:8"<<endl;
                        }
                        cin>>f;
                        switch(f)
                        {case 1:cout<<"\t新的学生学号为:";
                cin>>s.num;break;

                case 2:cout<<"\t新的学生姓名为:";
                cin>>s.name;break;

            case 3:cout<<"\t新的学生班级为:";
                cin>>s.class1;break;

                        case 4:cout<<"\t新的学生电话号码为:";
cin>>s.tenum;break;

                        case 5 :cout<<"\t新的学生家庭地址为:";
                                                cin>>s.addr;break;

                case 6:cout<<"\t新的语文成绩为:";
                cin>>s.chinese;break;

                case 7:cout<<"\t新的数学成绩为:";
                              cin>>s.math;break;

                  case 8:cout<<"\t新的英语成绩为:";
                              cin>>s.english;break;

                        default:cout<<"您的输入有误,请重新输入!";
                              cin>>f;}
                            e=0;
                              g=1;
                }
                        if(g==1)
                        {      cout<<"修改成功!";}
                cout<<"是否要继续修改学生信息(Y/N):";
          cin>>sel;
      }while(sel=='Y' || sel=='y' );
}

}

void add()
{
char sel;
do
{
          n++;
          cout<<"\n请输入第"<< n <<"个学生信息:\n";
          cout<<"\t学生学号:";
          cin>>s.num;
          cout<<"\t学生姓名:";
          cin>>s.name;
      cout<<"\t学生班级:";
          cin>>s.class1;

          cout<<"\t学生电话号码为:";
cin>>s.tenum;

cout<<"\t学生家庭地址为:";
                                                cin>>s.addr;
          cout<<"\t语文成绩:";
          cin>>s.chinese;
          cout<<"\t数学成绩:";
          cin>>s.math;
          cout<<"\t英语成绩:";
          cin>>s.english;
          cout<<"是否要继续添加学生信息(Y/N):";
          cin>>sel;
}while(sel=='Y' || sel=='y' );

}


void paixu()
{
      int a;
      cout<<"请选择排序方式:"<<endl;
      cout<<"1.按学号排序;"<<endl
                <<"2.按总成绩排序;"<<endl
                <<"3.按平均成绩排序;"<<endl;
      cin>>a;
      switch(a)
      {
    case 1:
      {int t=0;
      for(int i=0;i<n-1;i++)
         for(int j=0;j<n-i;j++)
                if(s.num>s.num)
                { t=s.num;
            s.num=s.num;
                  s.num=t;}
      
            cout<<"按学号排序结果:"<<endl;
      cout<<left; //设置输出左对齐
      cout<<setw(10)<<"学生学号"
                <<setw(10)<<"学生姓名"
                <<setw(13)<<"学生班级"
                <<setw(10)<<"学生电话"
                <<setw(10)<<"学生家庭地址"
                <<setw(12)<<"语文成绩"
                <<setw(12)<<"数学成绩"
                <<setw(12)<<"英语成绩"
                <<endl;
                  for(i=1;i<=n;i++)
                  {               cout<<setw(10)<<s.num
                        <<setw(10)<<s.name
                        <<setw(13)<<s.class1
                <<setw(10)<<s.tenum
                  <<setw(10)<<s.addr
                        <<setw(12)<<s.chinese
                        <<setw(12)<<s.math
                        <<setw(12)<<s.english<<endl;}
      }
      break;

/*      case 2:
      {double t;
      for(int i=0;i<n-1;i++)
      { for(int j=0;j>n-i-1;j++)
          {
                if(s.sum>s.sum)
                  t=s.sum;s.sum=s.sum;   s.sum=t;
          }
      }
                      cout<<"按总成绩排序结果:"<<endl;
                  for(i=1;i<=n;i++)
                        cout<<"学号:"<<s.num<<"\t"<<"姓名:"<<s.name<<"\t"<<"班级:"<<s.class1<<"\t"
                        <<"语文成绩:"<<s.chinese<<"\t"<<"数学成绩:"<<s.math<<"\t"<<"英语成绩"<<s.english<<"\t总成绩"<<ssum<<endl;
                      cout<<endl;
      }
      break;*/

/*      case 3:
                int t;
      for(int i=0;i<n-1;i++)
      { for(int j=0;j>n-1-i;j++)
          {
                if(s.aver()>s.aver())
                  t=s.aver();s.aver()=s.aver();   s.aver()=t;
          }
      }
                      cout<<"按平均成绩排序结果:"<<endl;
                  for(i=0;i<n;i++)
                        cout<<"学号:"<<s.num<<"\t"<<"姓名:"<<s.name<<"\t"<<"班级:"<<s.class1<<"\t"
                        <<"语文成绩:"<<s.chinese<<"\t"<<"数学成绩:"<<s.math<<"英语成绩"<<s.english<<endl;
                      cout<<endl;
      }
      break ;
*/

   default:
                              {cout<<"您的输入有误!请重新输入!"<<endl;
                              cin>>a;}
      }

}
      void del()
{

                int j,i,k;char c,sel,y;
      do{
                cout<<"请输入你要删除的学生的姓名:"<<endl;
                cin>>c;
                for(i=1;i<=n;i++)
                        if(strcmp(s.name,c)==0)
                        {cout<<"你要删除的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl
                              <<"学生姓名:"<<s.name<<endl
                              <<"学生班级:"<<s.class1<<endl
                              <<"学生电话:"<<s.tenum<<endl
                              <<"学生家庭地址:"<<s.addr<<endl
                              <<"语文成绩:"<<s.chinese<<endl
                              <<"数学成绩:"<<s.math<<endl
                              <<"英语成绩:"<<s.english<<endl;
                        cout<<"确认删除?(y/n):";
                        cin>>y;
                        if(y=='Y'||y=='y')
                        {
                        for(j=i;j<=n+1;j++)
                        {
                            s=s;
                        }      k=1;
                        }
                        else
                              cout<<"删除失败!"<<endl;
               

                        break;
                        }
                        else if(strcmp(s.name,c)!=0&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;
                        k=0;break;}
                        while(k==1)
                        {
                              if(y=='Y'||y=='y')
                              cout<<"删除成功!";
                              n--;
                              k=0;
                        }
                cout<<"是否要继续删除学生信息(Y/N):";
          cin>>sel;
      
      }while(sel=='Y' || sel=='y' );
      
      }
      

juezuo 发表于 2018-7-2 15:30:11

#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
using namespace std;
class student
{
       
public:
        int num;
        char name;
        char class1;
        double chinese;
    double math;
        double english;
        double youxiu;//优秀率
        double bujige;//不及格率
        double sum;//总成绩
        double aver1;//平均成绩
int tenum;//电话号码
char addr;//家庭地址
       
void set()
        {

          cout<<"\t学生学号:";
cin>>num;
          cout<<"\t学生姓名:";
          cin>>name;
          cout<<"\t学生电话号码 :";
          cin>>tenum;
          cout<<"\t家庭地址 ";
          cin>>addr;
          
      cout<<"\t学生班级:";
          cin>>class1;
          cout<<"\t语文成绩:";
          cin>>chinese;
          cout<<"\t英语成绩:";
          cin>>english;
          cout<<"\t数学成绩:";
          cin>>math;

        }
        void allscore(); //计算总分并排序
        void ave();//平均分排序
        void wenjian(); //文件的存入和显示
        void show()
        {
                cout<<"该学生的学号:"<<num<<endl;
                cout<<"该学生的姓名:"<<name<<endl;
                cout<<"该学生的电话号码 "<<tenum<<endl;
                cout<<"该学生的家庭地址 "<<addr<<endl;
                cout<<"该学生的班级:"<<class1<<endl;
                cout<<"该学生的语文成绩:"<<chinese<<endl;
                cout<<"该学生的数学成绩:"<<math<<endl;
                cout<<"该学生的英语成绩:"<<english<<endl;

        }



    friend        void        show();
    friend        void        search();
    friendvoid        change();
    friend        void        add();
    friend        void        paixu();
    friend         void        del();

} STU;
        void        input();
        void        show();
        void        search();
        void        change();
        void        add();
        void        paixu();
        void        del();
        student s;
        int n=0;

int main()
{

    int select;   
        while(1)
        {
                system("cls");
                cout<<"\t ******************欢迎使用******************\n";
                cout<<"\t **************学生成绩管理系统**************\n";
                cout<<"\t *------------------------------------------*\n";
                cout<<"\t *         1——录入学生信息                *\n";
                cout<<"\t *         2——显示学生信息                *\n";
                cout<<"\t *         3——查询学生信息                *\n";
                cout<<"\t *         4——修改学生信息                *\n";
                cout<<"\t *         5——添加学生信息                *\n";
                cout<<"\t *         6——排序学生信息                *\n";
                cout<<"\t *         7——删除学生信息                *\n";
                cout<<"\t *         8——保存读取文件                *\n";
                cout<<"\t *         0——退出                        *\n";
                cout<<"\t *------------------------------------------*\n";
                cout<<"\t 你要输入的编号是(0--7):";
                cin>>select;
                if(select==0) break;
                switch(select){
                case 1:
                        input(); //调用input函数录入数据
                        system("pause");
                        break;
                case 2:
                        show(); //调用show函数显示学生信息
                        system("pause");
                        break;
                case 3:
                  search();//调用search函数查询学生信息
                        system("pause");
                        break;
                case 4:
                        change();//调用change函数修改学生信息
                        system("pause");
                        break;
                case 5:
                  add();   //调用add函数添加学生信息
                        system("pause");
                        break;
                case 6:
                  paixu();   //调用add函数添加学生信息
                        system("pause");
                        break;
                case 7:
                        del();    // 调用del函数删除学生信息
                        system("pause");
                        break;
                case 8:
                        STU.wenjian();

                                system("pause");
                default:
                        cout<<"没有此选项,请重新选择!"<<endl;
                }
        }
        return 0;
}


void jiance()
{


void student::allscore ()
        {
                int i;
                sum=0;
for(i=1;i<=n;i++)
{

s.sum+=s.math+s.english+s.chinese;//计算平均分

}

double temp;
i=0;
        for(i=0;i<=n-1;i++)
        { for(int j=0;j>=n-i;j++)
          {
                if(s.sum>s.sum)
                  temp=s.sum;
                s.sum=s.sum;   
                s.sum=temp;
          }
        }

cout<<"按总成绩排列的结果是:"<<endl<<endl;

                      for(i=1;i<=n;i++)
                          {
                  cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码 "
                                <<s.tenum<<endl<<"学生家庭住址 "
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                  cout<<endl;
                          }
                          cout<<endl<<endl;;
        }

void student::ave()
{

aver1=0;
int i;
for(i=1;i<=n;i++)
{

s.aver1+=(s.math+s.english+s.chinese)/3;//计算平均分

}

double temp;
i=0;
        for(i=0;i<=n-1;i++)
        { for(int j=0;j>=n-i;j++)
          {
                if(s.aver1>s.aver1)
                  temp=s.aver1;
                s.aver1=s.aver1;   
                s.aver1=temp;
          }
        }

cout<<"按总平均分排列的结果是:"<<endl;

                      for(i=1;i<=n;i++)
                          {
                  cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码 "
                                <<s.tenum<<endl<<"学生家庭住址 "
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                  cout<<endl;
                          }
                          cout<<endl<<endl;

}
        void input() //录入学生信息的函数
{
char sel;
do
{
          n++;
          cout<<"\t请输入第"<<n<<"个学生信息:\t"<<endl;
       s.set();
          cout<<"是否要继续录入学生信息(Y/N):";
          cin>>sel;
}while(sel=='Y' || sel=='y' );
}
void show()
{

        for(int i=1;i<=n;i++)
        {
       
        cout<<setw(10)<<"学生学号 :"<<s.num<<endl
                <<setw(10)<<"学生姓名 : "<<s.name<<endl
<<setw(15)<<"学生电话号码 : "<<s.tenum<<endl
<<setw(15)<<"学生家庭地址 : "<<s.addr<<endl
                <<setw(13)<<"学生班级 : "<<s.class1<<endl
                <<setw(12)<<"语文成绩 : "<<s.chinese<<endl
                <<setw(12)<<"数学成绩 : "<<s.math<<endl
                <<setw(12)<<"英语成绩 : "<<s.english<<endl;
        }
        cout<<endl;

}


void search()//查询
{

        int a,b,i;char c;
        cout<<"请选择查询方式:"<<endl;
        cout<<"按学生姓名查询请按1"<<endl;
    cout<<"按学生学号查询请按2"<<endl;
        cin>>a;
        switch(a)
        {
        case 1:       
{char sel;
do{
                cout<<"请输入你要查的学生的姓名:"<<endl;
                cin>>c;
                for(i=1;i<=n;i++)
                        if(strcmp(s.name,c)==0)
                        {cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码 "
                                <<s.tenum<<endl<<"学生家庭住址 "
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                        break;
                        }
                        else if(strcmp(s.name,c)!=0&&i==n)
                        {cout<<"没有这个学生!"<<endl;break;}
                cout<<"是否要继续查询学生信息(Y/N):";
          cin>>sel;
        }while(sel=='Y' || sel=='y' );
        break;
}
        case 2:
{        char sel;
do{
                cout<<"请输入你要查的学生的学号:"<<endl;
                cin>>b;
                for(i=1;i<=n;i++)
                        if(s.num==b)
                        {
                        cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码 "
                                <<s.tenum<<endl<<"学生家庭住址 "
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                        break;
                        }
                        else if(s.num!=b&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;break;}
                cout<<"是否要继续查询学生信息(Y/N):";
          cin>>sel;
        }while(sel=='Y' || sel=='y' );
        break;}

        default:
                cout<<"您的输入有误!"<<endl;
        }
               
}

void change()
{
{        char sel;
        int d,i,e,f,g=0;
do{
                cout<<"请输入你要修改的学生的学号:"<<endl;
                cin>>d;
                for(i=1;i<=n;i++)
                  if(s.num==d)
                        {
                        cout<<"你要修改的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码"
                                <<s.tenum<<endl<<"学生家庭住址"
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                e=1;
                        break;
                        }
                        else if(s.num!=d&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;
                        e=0;break;}
                        while(e==1)
                {        {cout<<"请输入该学生要修改的信息对应的数字:"<<endl;
                        cout<<"学生学号:1"
                                <<'\t'<<"学生姓名:2"
                                <<'\t'<<"学生班级:3"
                                <<'\t'<<"学生电话号码 :4"
                                <<'\t'<<"学生家庭:5"
                                <<'\t'<<"语文成绩:6"
                                <<'\t'<<"数学成绩:7"
                                <<'\t'<<"英语成绩:8"<<endl;
                        }
                        cin>>f;
                        switch(f)
                        {case 1:cout<<"\t新的学生学号为:";
                cin>>s.num;break;

                case 2:cout<<"\t新的学生姓名为:";
                cin>>s.name;break;

            case 3:cout<<"\t新的学生班级为:";
                cin>>s.class1;break;

                        case 4:cout<<"\t新的学生电话号码为:";
cin>>s.tenum;break;

                        case 5 :cout<<"\t新的学生家庭地址为:";
                                                cin>>s.addr;break;

                case 6:cout<<"\t新的语文成绩为:";
                cin>>s.chinese;break;

                case 7:cout<<"\t新的数学成绩为:";
                                cin>>s.math;break;

                  case 8:cout<<"\t新的英语成绩为:";
                                cin>>s.english;break;

                        default:cout<<"您的输入有误,请重新输入!";
                                cin>>f;}
                          e=0;
                                g=1;
                }
                        if(g==1)
                        {        cout<<"修改成功!";}
                cout<<"是否要继续修改学生信息(Y/N):";
          cin>>sel;
        }while(sel=='Y' || sel=='y' );
}

}

void add()
{
char sel;
do
{
          n++;
          cout<<"\n请输入第"<< n <<"个学生信息:\n";
          cout<<"\t学生学号:";
          cin>>s.num;
          cout<<"\t学生姓名:";
          cin>>s.name;
      cout<<"\t学生班级:";
          cin>>s.class1;

          cout<<"\t学生电话号码为:";
cin>>s.tenum;

cout<<"\t学生家庭地址为:";
                                                cin>>s.addr;
          cout<<"\t语文成绩:";
          cin>>s.chinese;
          cout<<"\t数学成绩:";
          cin>>s.math;
          cout<<"\t英语成绩:";
          cin>>s.english;
          cout<<"是否要继续添加学生信息(Y/N):";
          cin>>sel;
}while(sel=='Y' || sel=='y' );

}


void paixu()
{
        int a;
        cout<<"请选择排序方式:"<<endl;
        cout<<"1.按学号排序;"<<endl
                <<"2.按总成绩排序;"<<endl
                <<"3.按平均成绩排序;"<<endl;
        cin>>a;
        switch(a)
        {
    case 1:
        {int t=0;
        for(int i=0;i<n-1;i++)
       for(int j=0;j<n-i;j++)
                if(s.num>s.num)
                { t=s.num;
              s.num=s.num;
                  s.num=t;}
       
              cout<<"按学号排序结果:"<<endl;
        cout<<left; //设置输出左对齐
        cout<<setw(10)<<"学生学号"
                <<setw(10)<<"学生姓名"
                <<setw(13)<<"学生班级"
                <<setw(10)<<"学生电话"
                <<setw(10)<<"学生家庭地址"
                <<setw(12)<<"语文成绩"
                <<setw(12)<<"数学成绩"
                <<setw(12)<<"英语成绩"
                <<endl;
                  for(i=1;i<=n;i++)
                  {                 cout<<setw(10)<<s.num
                        <<setw(10)<<s.name
                        <<setw(13)<<s.class1
                <<setw(10)<<s.tenum
                  <<setw(10)<<s.addr
                        <<setw(12)<<s.chinese
                        <<setw(12)<<s.math
                        <<setw(12)<<s.english<<endl;}
        }
        break;

        case 2:
STU.allscore();
break;

        case 3:
                STU.ave();
                break;

   default:
                                {cout<<"您的输入有误!请重新输入!"<<endl;
                                cin>>a;}
        }

}
        void del()
{

                int j,i,k;char c,sel,y;
        do{
                cout<<"请输入你要删除的学生的姓名:"<<endl;
                cin>>c;
                for(i=1;i<=n;i++)
                        if(strcmp(s.name,c)==0)
                        {cout<<"你要删除的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl
                                <<"学生姓名:"<<s.name<<endl
                                <<"学生班级:"<<s.class1<<endl
                                <<"学生电话:"<<s.tenum<<endl
                                <<"学生家庭地址:"<<s.addr<<endl
                                <<"语文成绩:"<<s.chinese<<endl
                                <<"数学成绩:"<<s.math<<endl
                                <<"英语成绩:"<<s.english<<endl;
                        cout<<"确认删除?(y/n):";
                        cin>>y;
                        if(y=='Y'||y=='y')
                        {
                        for(j=i;j<=n+1;j++)
                        {
                          s=s;
                        }        k=1;
                        }
                        else
                                cout<<"删除失败!"<<endl;
               

                        break;
                        }
                        else if(strcmp(s.name,c)!=0&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;
                        k=0;break;}
                        while(k==1)
                        {
                                if(y=='Y'||y=='y')
                                cout<<"删除成功!";
                                n--;
                                k=0;
                        }
                cout<<"是否要继续删除学生信息(Y/N):";
          cin>>sel;
       
        }while(sel=='Y' || sel=='y' );
       
        }


        void student::wenjian()
        {

                ofstream outfile("student.txt",ios::out | ios::app);
                if(!outfile)
                {
                        cerr<<"打开文件失败!"<<endl;
                        exit(1);
                }

int i;
for(i=1;i<=n;i++)       //文件保存模块
{
outfile<<"学生学号:"<<s.num<<endl;
          outfile<<"学生姓名:"<<s.name<<endl;
          outfile<<"学生电话号码 :"<<s.tenum;
       
          outfile<<"家庭地址 "<<s.addr<<endl;
       
          
      outfile<<"学生班级:"<<s.class1<<endl;
          
          outfile<<"语文成绩:"<<s.chinese<<endl;
       
          outfile<<"英语成绩:"<<s.english<<endl;
       
          outfile<<"数学成绩:"<<s.math<<endl;
       
}
cout<<endl;
cout<<"保存成功^_^"<<endl;

cout<<"是否需要读取文件(y/n)"<<endl;
char c;
cin>>c;
if(c=='y' || c=='Y')
{
ifstream infile("student.txt",ios::in);
if(!infile)
                {
                        cerr<<"打开文件失败!"<<endl;
                        exit(1);
                }

for(i=1;i<=n;i++)       //文件读取模块
{
infile>>s.num;
cout<<"学生学号:"<<s.num<<endl<<endl;
          

infile>>s.name;
          cout<<"学生姓名:"<<s.name;

          infile>>s.tenum;
        cout<<"学生电话号码 :"<<s.tenum<<endl<<endl;

          infile>>s.addr;
        cout<<"家庭地址 "<<s.addr<<endl<<endl;
          
      infile>>s.class1;
        cout<< "学生班级:"<<s.class1<<endl<<endl;

          infile>>s.chinese;
        cout<<"语文成绩:"<<s.chinese<<endl<<endl;
       
          infile>>s.english;
       cout<<" 英语成绩:"<<s.english<<endl<<endl;

          infile>>s.math;
       cout<<"数学成绩:"<<s.math<<endl<<endl;


        }
}

        }

blrainingd 发表于 2018-7-2 09:36:11

1.文件打开用追加模式
2.   
   double sum1()
      {
                int i;
                double sum=0;
                for(i=1;i<=n;i++)
                {
                sum=ad();
                }
                return sum;
      }

juezuo 发表于 2018-7-2 15:31:17

问题自己已解决,

juezuo 发表于 2018-7-2 15:31:50

#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
using namespace std;
class student
{
       
public:
        int num;
        char name;
        char class1;
        double chinese;
    double math;
        double english;
        double youxiu;//优秀率
        double bujige;//不及格率
        double sum;//总成绩
        double aver1;//平均成绩
int tenum;//电话号码
char addr;//家庭地址
       
void set()
        {

          cout<<"\t学生学号:";
cin>>num;
          cout<<"\t学生姓名:";
          cin>>name;
          cout<<"\t学生电话号码 :";
          cin>>tenum;
          cout<<"\t家庭地址 ";
          cin>>addr;
          
      cout<<"\t学生班级:";
          cin>>class1;
          cout<<"\t语文成绩:";
          cin>>chinese;
          cout<<"\t英语成绩:";
          cin>>english;
          cout<<"\t数学成绩:";
          cin>>math;

        }
        void allscore(); //计算总分并排序
        void ave();//平均分排序
        void wenjian(); //文件的存入和显示
        void show()
        {
                cout<<"该学生的学号:"<<num<<endl;
                cout<<"该学生的姓名:"<<name<<endl;
                cout<<"该学生的电话号码 "<<tenum<<endl;
                cout<<"该学生的家庭地址 "<<addr<<endl;
                cout<<"该学生的班级:"<<class1<<endl;
                cout<<"该学生的语文成绩:"<<chinese<<endl;
                cout<<"该学生的数学成绩:"<<math<<endl;
                cout<<"该学生的英语成绩:"<<english<<endl;

        }



    friend        void        show();
    friend        void        search();
    friendvoid        change();
    friend        void        add();
    friend        void        paixu();
    friend         void        del();

} STU;
        void        input();
        void        show();
        void        search();
        void        change();
        void        add();
        void        paixu();
        void        del();
        student s;
        int n=0;

int main()
{

    int select;   
        while(1)
        {
                system("cls");
                cout<<"\t ******************欢迎使用******************\n";
                cout<<"\t **************学生成绩管理系统**************\n";
                cout<<"\t *------------------------------------------*\n";
                cout<<"\t *         1——录入学生信息                *\n";
                cout<<"\t *         2——显示学生信息                *\n";
                cout<<"\t *         3——查询学生信息                *\n";
                cout<<"\t *         4——修改学生信息                *\n";
                cout<<"\t *         5——添加学生信息                *\n";
                cout<<"\t *         6——排序学生信息                *\n";
                cout<<"\t *         7——删除学生信息                *\n";
                cout<<"\t *         8——保存读取文件                *\n";
                cout<<"\t *         0——退出                        *\n";
                cout<<"\t *------------------------------------------*\n";
                cout<<"\t 你要输入的编号是(0--7):";
                cin>>select;
                if(select==0) break;
                switch(select){
                case 1:
                        input(); //调用input函数录入数据
                        system("pause");
                        break;
                case 2:
                        show(); //调用show函数显示学生信息
                        system("pause");
                        break;
                case 3:
                  search();//调用search函数查询学生信息
                        system("pause");
                        break;
                case 4:
                        change();//调用change函数修改学生信息
                        system("pause");
                        break;
                case 5:
                  add();   //调用add函数添加学生信息
                        system("pause");
                        break;
                case 6:
                  paixu();   //调用add函数添加学生信息
                        system("pause");
                        break;
                case 7:
                        del();    // 调用del函数删除学生信息
                        system("pause");
                        break;
                case 8:
                        STU.wenjian();

                                system("pause");
                default:
                        cout<<"没有此选项,请重新选择!"<<endl;
                }
        }
        return 0;
}


void jiance()
{


void student::allscore ()
        {
                int i;
                sum=0;
for(i=1;i<=n;i++)
{

s.sum+=s.math+s.english+s.chinese;//计算平均分

}

double temp;
i=0;
        for(i=0;i<=n-1;i++)
        { for(int j=0;j>=n-i;j++)
          {
                if(s.sum>s.sum)
                  temp=s.sum;
                s.sum=s.sum;   
                s.sum=temp;
          }
        }

cout<<"按总成绩排列的结果是:"<<endl<<endl;

                      for(i=1;i<=n;i++)
                          {
                  cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码 "
                                <<s.tenum<<endl<<"学生家庭住址 "
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                  cout<<endl;
                          }
                          cout<<endl<<endl;;
        }

void student::ave()
{

aver1=0;
int i;
for(i=1;i<=n;i++)
{

s.aver1+=(s.math+s.english+s.chinese)/3;//计算平均分

}

double temp;
i=0;
        for(i=0;i<=n-1;i++)
        { for(int j=0;j>=n-i;j++)
          {
                if(s.aver1>s.aver1)
                  temp=s.aver1;
                s.aver1=s.aver1;   
                s.aver1=temp;
          }
        }

cout<<"按总平均分排列的结果是:"<<endl;

                      for(i=1;i<=n;i++)
                          {
                  cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码 "
                                <<s.tenum<<endl<<"学生家庭住址 "
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                  cout<<endl;
                          }
                          cout<<endl<<endl;

}
        void input() //录入学生信息的函数
{
char sel;
do
{
          n++;
          cout<<"\t请输入第"<<n<<"个学生信息:\t"<<endl;
       s.set();
          cout<<"是否要继续录入学生信息(Y/N):";
          cin>>sel;
}while(sel=='Y' || sel=='y' );
}
void show()
{

        for(int i=1;i<=n;i++)
        {
       
        cout<<setw(10)<<"学生学号 :"<<s.num<<endl
                <<setw(10)<<"学生姓名 : "<<s.name<<endl
<<setw(15)<<"学生电话号码 : "<<s.tenum<<endl
<<setw(15)<<"学生家庭地址 : "<<s.addr<<endl
                <<setw(13)<<"学生班级 : "<<s.class1<<endl
                <<setw(12)<<"语文成绩 : "<<s.chinese<<endl
                <<setw(12)<<"数学成绩 : "<<s.math<<endl
                <<setw(12)<<"英语成绩 : "<<s.english<<endl;
        }
        cout<<endl;

}


void search()//查询
{

        int a,b,i;char c;
        cout<<"请选择查询方式:"<<endl;
        cout<<"按学生姓名查询请按1"<<endl;
    cout<<"按学生学号查询请按2"<<endl;
        cin>>a;
        switch(a)
        {
        case 1:       
{char sel;
do{
                cout<<"请输入你要查的学生的姓名:"<<endl;
                cin>>c;
                for(i=1;i<=n;i++)
                        if(strcmp(s.name,c)==0)
                        {cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码 "
                                <<s.tenum<<endl<<"学生家庭住址 "
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                        break;
                        }
                        else if(strcmp(s.name,c)!=0&&i==n)
                        {cout<<"没有这个学生!"<<endl;break;}
                cout<<"是否要继续查询学生信息(Y/N):";
          cin>>sel;
        }while(sel=='Y' || sel=='y' );
        break;
}
        case 2:
{        char sel;
do{
                cout<<"请输入你要查的学生的学号:"<<endl;
                cin>>b;
                for(i=1;i<=n;i++)
                        if(s.num==b)
                        {
                        cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码 "
                                <<s.tenum<<endl<<"学生家庭住址 "
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                        break;
                        }
                        else if(s.num!=b&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;break;}
                cout<<"是否要继续查询学生信息(Y/N):";
          cin>>sel;
        }while(sel=='Y' || sel=='y' );
        break;}

        default:
                cout<<"您的输入有误!"<<endl;
        }
               
}

void change()
{
{        char sel;
        int d,i,e,f,g=0;
do{
                cout<<"请输入你要修改的学生的学号:"<<endl;
                cin>>d;
                for(i=1;i<=n;i++)
                  if(s.num==d)
                        {
                        cout<<"你要修改的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
                                <<s.name<<endl<<"学生班级:"
                                <<s.class1<<endl<<"学生电话号码"
                                <<s.tenum<<endl<<"学生家庭住址"
                                <<s.addr<<endl<<"语文成绩:"
                                <<s.chinese<<endl<<"数学成绩:"
                                <<s.math<<endl<<"英语成绩:"
                                <<s.english<<endl;
                e=1;
                        break;
                        }
                        else if(s.num!=d&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;
                        e=0;break;}
                        while(e==1)
                {        {cout<<"请输入该学生要修改的信息对应的数字:"<<endl;
                        cout<<"学生学号:1"
                                <<'\t'<<"学生姓名:2"
                                <<'\t'<<"学生班级:3"
                                <<'\t'<<"学生电话号码 :4"
                                <<'\t'<<"学生家庭:5"
                                <<'\t'<<"语文成绩:6"
                                <<'\t'<<"数学成绩:7"
                                <<'\t'<<"英语成绩:8"<<endl;
                        }
                        cin>>f;
                        switch(f)
                        {case 1:cout<<"\t新的学生学号为:";
                cin>>s.num;break;

                case 2:cout<<"\t新的学生姓名为:";
                cin>>s.name;break;

            case 3:cout<<"\t新的学生班级为:";
                cin>>s.class1;break;

                        case 4:cout<<"\t新的学生电话号码为:";
cin>>s.tenum;break;

                        case 5 :cout<<"\t新的学生家庭地址为:";
                                                cin>>s.addr;break;

                case 6:cout<<"\t新的语文成绩为:";
                cin>>s.chinese;break;

                case 7:cout<<"\t新的数学成绩为:";
                                cin>>s.math;break;

                  case 8:cout<<"\t新的英语成绩为:";
                                cin>>s.english;break;

                        default:cout<<"您的输入有误,请重新输入!";
                                cin>>f;}
                          e=0;
                                g=1;
                }
                        if(g==1)
                        {        cout<<"修改成功!";}
                cout<<"是否要继续修改学生信息(Y/N):";
          cin>>sel;
        }while(sel=='Y' || sel=='y' );
}

}

void add()
{
char sel;
do
{
          n++;
          cout<<"\n请输入第"<< n <<"个学生信息:\n";
          cout<<"\t学生学号:";
          cin>>s.num;
          cout<<"\t学生姓名:";
          cin>>s.name;
      cout<<"\t学生班级:";
          cin>>s.class1;

          cout<<"\t学生电话号码为:";
cin>>s.tenum;

cout<<"\t学生家庭地址为:";
                                                cin>>s.addr;
          cout<<"\t语文成绩:";
          cin>>s.chinese;
          cout<<"\t数学成绩:";
          cin>>s.math;
          cout<<"\t英语成绩:";
          cin>>s.english;
          cout<<"是否要继续添加学生信息(Y/N):";
          cin>>sel;
}while(sel=='Y' || sel=='y' );

}


void paixu()
{
        int a;
        cout<<"请选择排序方式:"<<endl;
        cout<<"1.按学号排序;"<<endl
                <<"2.按总成绩排序;"<<endl
                <<"3.按平均成绩排序;"<<endl;
        cin>>a;
        switch(a)
        {
    case 1:
        {int t=0;
        for(int i=0;i<n-1;i++)
       for(int j=0;j<n-i;j++)
                if(s.num>s.num)
                { t=s.num;
              s.num=s.num;
                  s.num=t;}
       
              cout<<"按学号排序结果:"<<endl;
        cout<<left; //设置输出左对齐
        cout<<setw(10)<<"学生学号"
                <<setw(10)<<"学生姓名"
                <<setw(13)<<"学生班级"
                <<setw(10)<<"学生电话"
                <<setw(10)<<"学生家庭地址"
                <<setw(12)<<"语文成绩"
                <<setw(12)<<"数学成绩"
                <<setw(12)<<"英语成绩"
                <<endl;
                  for(i=1;i<=n;i++)
                  {                 cout<<setw(10)<<s.num
                        <<setw(10)<<s.name
                        <<setw(13)<<s.class1
                <<setw(10)<<s.tenum
                  <<setw(10)<<s.addr
                        <<setw(12)<<s.chinese
                        <<setw(12)<<s.math
                        <<setw(12)<<s.english<<endl;}
        }
        break;

        case 2:
STU.allscore();
break;

        case 3:
                STU.ave();
                break;

   default:
                                {cout<<"您的输入有误!请重新输入!"<<endl;
                                cin>>a;}
        }

}
        void del()
{

                int j,i,k;char c,sel,y;
        do{
                cout<<"请输入你要删除的学生的姓名:"<<endl;
                cin>>c;
                for(i=1;i<=n;i++)
                        if(strcmp(s.name,c)==0)
                        {cout<<"你要删除的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s.num<<endl
                                <<"学生姓名:"<<s.name<<endl
                                <<"学生班级:"<<s.class1<<endl
                                <<"学生电话:"<<s.tenum<<endl
                                <<"学生家庭地址:"<<s.addr<<endl
                                <<"语文成绩:"<<s.chinese<<endl
                                <<"数学成绩:"<<s.math<<endl
                                <<"英语成绩:"<<s.english<<endl;
                        cout<<"确认删除?(y/n):";
                        cin>>y;
                        if(y=='Y'||y=='y')
                        {
                        for(j=i;j<=n+1;j++)
                        {
                          s=s;
                        }        k=1;
                        }
                        else
                                cout<<"删除失败!"<<endl;
               

                        break;
                        }
                        else if(strcmp(s.name,c)!=0&&i==n)
                        {cout<<"没有这个学生!请核对后再输入!"<<endl;
                        k=0;break;}
                        while(k==1)
                        {
                                if(y=='Y'||y=='y')
                                cout<<"删除成功!";
                                n--;
                                k=0;
                        }
                cout<<"是否要继续删除学生信息(Y/N):";
          cin>>sel;
       
        }while(sel=='Y' || sel=='y' );
       
        }


        void student::wenjian()
        {

                ofstream outfile("student.txt",ios::out | ios::app);
                if(!outfile)
                {
                        cerr<<"打开文件失败!"<<endl;
                        exit(1);
                }

int i;
for(i=1;i<=n;i++)       //文件保存模块
{
outfile<<"学生学号:"<<s.num<<endl;
          outfile<<"学生姓名:"<<s.name<<endl;
          outfile<<"学生电话号码 :"<<s.tenum;
       
          outfile<<"家庭地址 "<<s.addr<<endl;
       
          
      outfile<<"学生班级:"<<s.class1<<endl;
          
          outfile<<"语文成绩:"<<s.chinese<<endl;
       
          outfile<<"英语成绩:"<<s.english<<endl;
       
          outfile<<"数学成绩:"<<s.math<<endl;
       
}
cout<<endl;
cout<<"保存成功^_^"<<endl;

cout<<"是否需要读取文件(y/n)"<<endl;
char c;
cin>>c;
if(c=='y' || c=='Y')
{
ifstream infile("student.txt",ios::in);
if(!infile)
                {
                        cerr<<"打开文件失败!"<<endl;
                        exit(1);
                }

for(i=1;i<=n;i++)       //文件读取模块
{
infile>>s.num;
cout<<"学生学号:"<<s.num<<endl<<endl;
          

infile>>s.name;
          cout<<"学生姓名:"<<s.name;

          infile>>s.tenum;
        cout<<"学生电话号码 :"<<s.tenum<<endl<<endl;

          infile>>s.addr;
        cout<<"家庭地址 "<<s.addr<<endl<<endl;
          
      infile>>s.class1;
        cout<< "学生班级:"<<s.class1<<endl<<endl;

          infile>>s.chinese;
        cout<<"语文成绩:"<<s.chinese<<endl<<endl;
       
          infile>>s.english;
       cout<<" 英语成绩:"<<s.english<<endl<<endl;

          infile>>s.math;
       cout<<"数学成绩:"<<s.math<<endl<<endl;


        }
}

        }

whdd 发表于 2018-8-15 12:54:37

学习了

dddsswu 发表于 2018-8-16 11:36:59

我有读写模块!但是是.TXT的哦
页: [1]
查看完整版本: HELP!!C++学生成绩管理系统 还差三个模块就OK!!