鱼C论坛

 找回密码
 立即注册
查看: 2711|回复: 6

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

[复制链接]
发表于 2018-7-2 09:36:10 | 显示全部楼层 |阅读模式
100鱼币
本帖最后由 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[20];
        char class1[20];
        double chinese;
    double math;
        double english;
        double youxiu;//优秀率
        double bujige;//不及格率
        double sum;//总成绩
        double aver1;//平均成绩
int tenum;//电话号码
char addr[100];//家庭地址
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(); 
    friend  void        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[100];
        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[n].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[20];
        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[n].num;
          cout<<"\t学生姓名:";
          cin>>s[n].name;
      cout<<"\t学生班级:";
          cin>>s[n].class1;

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

 cout<<"\t学生家庭地址为:";
                                                cin>>s[n].addr;
          cout<<"\t语文成绩:";
          cin>>s[n].chinese;
          cout<<"\t数学成绩:";
          cin>>s[n].math;
          cout<<"\t英语成绩:";
          cin>>s[n].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[j].num>s[j+1].num)
                { t=s[j].num;
              s[j].num=s[j+1].num;
                  s[j+1].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[j].sum>s[j+1].sum)
                  t=s[j].sum;  s[j].sum=s[j+1].sum;   s[j+1].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[j].aver()>s[j+1].aver())
                  t=s[j].aver();  s[j].aver()=s[j+1].aver();   s[j+1].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[10],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[j]=s[j+1];
                        }        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' ); 
        
        }
        

最佳答案
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;
        }

最佳答案

查看完整内容

1.文件打开用追加模式 2. double sum1() { int i; double sum=0; for(i=1;i
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-7-2 15:30:11 | 显示全部楼层
#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
using namespace std;
class student
{
       
public:
        int num;
        char name[20];
        char class1[20];
        double chinese;
    double math;
        double english;
        double youxiu;//优秀率
        double bujige;//不及格率
        double sum;//总成绩
        double aver1;//平均成绩
int tenum;//电话号码
char addr[100];//家庭地址
       
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();
    friend  void        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[100];
        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[i].sum+=s[i].math+s[i].english+s[i].chinese;  //计算平均分

}

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

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

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

void student::ave()
{

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

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

}

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

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

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

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

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

}


void search()//查询
{

        int a,b,i;char c[20];
        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[i].name,c)==0)
                        {cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:"
                                <<s[i].name<<endl<<"学生班级:"
                                <<s[i].class1<<endl<<"学生电话号码 "
                                <<s[i].tenum<<endl<<"学生家庭住址 "
                                <<s[i].addr<<endl<<"语文成绩:"
                                <<s[i].chinese<<endl<<"数学成绩:"
                                <<s[i].math<<endl<<"英语成绩:"
                                <<s[i].english<<endl;
                        break;
                        }
                        else if(strcmp(s[i].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[i].num==b)
                        {
                        cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:"
                                <<s[i].name<<endl<<"学生班级:"
                                <<s[i].class1<<endl<<"学生电话号码 "
                                <<s[i].tenum<<endl<<"学生家庭住址 "
                                <<s[i].addr<<endl<<"语文成绩:"
                                <<s[i].chinese<<endl<<"数学成绩:"
                                <<s[i].math<<endl<<"英语成绩:"
                                <<s[i].english<<endl;
                        break;
                        }
                        else if(s[i].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[i].num==d)
                        {
                        cout<<"你要修改的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:"
                                <<s[i].name<<endl<<"学生班级:"
                                <<s[i].class1<<endl<<"学生电话号码"
                                <<s[i].tenum<<endl<<"学生家庭住址"
                                <<s[i].addr<<endl<<"语文成绩:"
                                <<s[i].chinese<<endl<<"数学成绩:"
                                <<s[i].math<<endl<<"英语成绩:"
                                <<s[i].english<<endl;
                e=1;
                        break;
                        }
                        else if(s[i].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[i].num;break;

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

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

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

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

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

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

                    case 8:cout<<"\t新的英语成绩为:";
                                cin>>s[i].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[n].num;
          cout<<"\t学生姓名:";
          cin>>s[n].name;
      cout<<"\t学生班级:";
          cin>>s[n].class1;

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

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

                        break;
                        }
                        else if(strcmp(s[i].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[i].num<<endl;
          outfile<<"学生姓名:"<<s[i].name<<endl;
          outfile<<"学生电话号码 :"<<s[i].tenum;
       
          outfile<<"家庭地址 "<<s[i].addr<<endl;
       
          
      outfile<<"学生班级:"<<s[i].class1<<endl;
          
          outfile<<"语文成绩:"<<s[i].chinese<<endl;
         
          outfile<<"英语成绩:"<<s[i].english<<endl;
         
          outfile<<"数学成绩:"<<s[i].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[i].num;
  cout<<"学生学号:"<<s[i].num<<endl<<endl;
          

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

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

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

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

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


        }
}

        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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;
        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-7-2 15:31:17 | 显示全部楼层
问题自己已解决,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2018-7-2 15:31:50 | 显示全部楼层
#include<iostream>
#include<iomanip>
#include<string>
#include<fstream>
using namespace std;
class student
{
       
public:
        int num;
        char name[20];
        char class1[20];
        double chinese;
    double math;
        double english;
        double youxiu;//优秀率
        double bujige;//不及格率
        double sum;//总成绩
        double aver1;//平均成绩
int tenum;//电话号码
char addr[100];//家庭地址
       
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();
    friend  void        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[100];
        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[i].sum+=s[i].math+s[i].english+s[i].chinese;  //计算平均分

}

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

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

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

void student::ave()
{

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

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

}

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

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

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

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

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

}


void search()//查询
{

        int a,b,i;char c[20];
        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[i].name,c)==0)
                        {cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:"
                                <<s[i].name<<endl<<"学生班级:"
                                <<s[i].class1<<endl<<"学生电话号码 "
                                <<s[i].tenum<<endl<<"学生家庭住址 "
                                <<s[i].addr<<endl<<"语文成绩:"
                                <<s[i].chinese<<endl<<"数学成绩:"
                                <<s[i].math<<endl<<"英语成绩:"
                                <<s[i].english<<endl;
                        break;
                        }
                        else if(strcmp(s[i].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[i].num==b)
                        {
                        cout<<"你要查的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:"
                                <<s[i].name<<endl<<"学生班级:"
                                <<s[i].class1<<endl<<"学生电话号码 "
                                <<s[i].tenum<<endl<<"学生家庭住址 "
                                <<s[i].addr<<endl<<"语文成绩:"
                                <<s[i].chinese<<endl<<"数学成绩:"
                                <<s[i].math<<endl<<"英语成绩:"
                                <<s[i].english<<endl;
                        break;
                        }
                        else if(s[i].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[i].num==d)
                        {
                        cout<<"你要修改的学生信息为:"<<endl;
                        cout<<"学生学号:"<<s[i].num<<endl<<"学生姓名:"
                                <<s[i].name<<endl<<"学生班级:"
                                <<s[i].class1<<endl<<"学生电话号码"
                                <<s[i].tenum<<endl<<"学生家庭住址"
                                <<s[i].addr<<endl<<"语文成绩:"
                                <<s[i].chinese<<endl<<"数学成绩:"
                                <<s[i].math<<endl<<"英语成绩:"
                                <<s[i].english<<endl;
                e=1;
                        break;
                        }
                        else if(s[i].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[i].num;break;

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

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

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

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

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

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

                    case 8:cout<<"\t新的英语成绩为:";
                                cin>>s[i].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[n].num;
          cout<<"\t学生姓名:";
          cin>>s[n].name;
      cout<<"\t学生班级:";
          cin>>s[n].class1;

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

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

                        break;
                        }
                        else if(strcmp(s[i].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[i].num<<endl;
          outfile<<"学生姓名:"<<s[i].name<<endl;
          outfile<<"学生电话号码 :"<<s[i].tenum;
       
          outfile<<"家庭地址 "<<s[i].addr<<endl;
       
          
      outfile<<"学生班级:"<<s[i].class1<<endl;
          
          outfile<<"语文成绩:"<<s[i].chinese<<endl;
         
          outfile<<"英语成绩:"<<s[i].english<<endl;
         
          outfile<<"数学成绩:"<<s[i].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[i].num;
  cout<<"学生学号:"<<s[i].num<<endl<<endl;
          

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

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

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

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

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


        }
}

        }
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-15 12:54:37 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 11:36:59 | 显示全部楼层
我有读写模块!  但是是.TXT的哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-30 07:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表