鱼C论坛

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

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

[复制链接]
发表于 2018-7-2 09:36:10 | 显示全部楼层 |阅读模式
100鱼币
本帖最后由 juezuo 于 2018-7-3 15:26 编辑

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

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


  1. #include<iostream>
  2. #include<iomanip>
  3. #include<string>
  4. #include <fstream>
  5. #include <stdlib.h>
  6. using namespace std;
  7. class student
  8. {
  9.         int num;
  10.         char name[20];
  11.         char class1[20];
  12.         double chinese;
  13.     double math;
  14.         double english;
  15.         double youxiu;//优秀率
  16.         double bujige;//不及格率
  17.         double sum;//总成绩
  18.         double aver1;//平均成绩
  19. int tenum;//电话号码
  20. char addr[100];//家庭地址
  21. public:

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

  24. cout<<"学生学号:";
  25. cin>>num;
  26. cout<<"学生姓名:";
  27. cin>>name;
  28. cout<<"学生电话号码 :";
  29. cin>>tenum;
  30. cout<<"家庭地址 ";
  31. cin>>addr;
  32. cout<<"学生班级:";
  33. cin>>class1;
  34. cout<<"语文成绩:";
  35. cin>>chinese;
  36. cout<<"英语成绩:";
  37. cin>>english;
  38. cout<<"数学成绩:";
  39.                         cin>>math;

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

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

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

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

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

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

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

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

  54.         outfile.close();
  55. }

  56.          
  57.           /*        FILE *fp;
  58.         
  59.                 int ch;
  60.                 if ((fp=fopen("student.txt","w")) ==NULL)
  61.                 {
  62.                         cerr<<"\n无法打开此文件!"<<endl;
  63. exit(EXIT_FAILURE);
  64.                 }
  65.                 while((ch=getc(fp))!= EOF)
  66.                 {
  67. putchar(ch);
  68.                 }
  69.                 fclose(fp);
  70. */

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

  88.                         
  89.                                 
  90.         }


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

  97.                 if (c=='y' || c=='Y')
  98.                 {
  99.                         do
  100.                 {
  101.         
  102.                         wenjian();
  103.                         cout<<"\n是否需要退出(y/n)"<<endl;//推出模块
  104.                                                 cin>>b;
  105.                         if (b=='y' || b=='Y')
  106.                         {
  107.                                 c='n';
  108.                         }
  109.                 } while (c=='y' || c=='Y');

  110.                
  111. }else{
  112.                         
  113.                         cout<<"\t学生学号:";
  114.                         cin>>num;
  115.                         cout<<"\t学生姓名:";
  116.                         cin>>name;
  117.                         cout<<"\t学生电话号码 :";
  118.                         cin>>tenum;
  119.                         cout<<"\t家庭地址 ";
  120.                         cin>>addr;
  121.                         
  122.                         cout<<"\t学生班级:";
  123.                         cin>>class1;
  124.                         cout<<"\t语文成绩:";
  125.                         cin>>chinese;
  126.                         cout<<"\t英语成绩:";
  127.                         cin>>english;
  128.                         cout<<"\t数学成绩:";
  129.                         cin>>math;
  130.                 }
  131.                
  132.         

  133.         }


  134.         void show()
  135.         {
  136.                 cout<<"该学生的学号:"<<num<<endl;
  137.                 cout<<"该学生的姓名:"<<name<<endl;
  138.                 cout<<"该学生的电话号码 "<<tenum<<endl;
  139.                 cout<<"该学生的家庭地址 "<<addr<<endl;
  140.                 cout<<"该学生的班级:"<<class1<<endl;
  141.                 cout<<"该学生的语文成绩:"<<chinese<<endl;
  142.                 cout<<"该学生的数学成绩:"<<math<<endl;
  143.                 cout<<"该学生的英语成绩:"<<english<<endl;

  144.         }
  145.     double ad(){return sum=chinese+english+math;}
  146.         double sum1();
  147.         double aver()
  148.         {
  149.                 aver1=(chinese+english+math)/3;
  150.                 return aver1;
  151.         }
  152.   
  153.     friend        void        show();
  154.     friend        void        search();
  155.     friend  void        change();
  156.     friend        void        add();
  157.     friend        void        paixu();
  158.     friend         void        del();

  159. };
  160.         void        input();
  161.         void        show();
  162.         void        search();
  163.         void        change();
  164.         void        add();
  165.         void        paixu();
  166.         void        del();
  167.         student s[100];
  168.         int n=0;

  169. int main()
  170. {

  171.     int select;   
  172.         while(1)
  173.         {
  174.                 system("cls");
  175.                 cout<<"\t ******************欢迎使用******************\n";
  176.                 cout<<"\t **************学生成绩管理系统**************\n";
  177.                 cout<<"\t *------------------------------------------*\n";
  178.                 cout<<"\t *         1——录入学生信息                *\n";
  179.                 cout<<"\t *         2——显示学生信息                *\n";
  180.                 cout<<"\t *         3——查询学生信息                *\n";
  181.                 cout<<"\t *         4——修改学生信息                *\n";
  182.                 cout<<"\t *         5——添加学生信息                *\n";
  183.                 cout<<"\t *         6——排序学生信息                *\n";
  184.                 cout<<"\t *         7——删除学生信息                *\n";
  185.                 cout<<"\t *         0——退出                        *\n";
  186.                 cout<<"\t *------------------------------------------*\n";
  187.                 cout<<"\t 你要输入的编号是(0--7):";
  188.                 cin>>select;
  189.                 if(select==0) break;
  190.                 switch(select){
  191.                 case 1:
  192.                         input(); //调用input函数录入数据
  193.                         system("pause");
  194.                         break;
  195.                 case 2:
  196.                         show(); //调用show函数显示学生信息
  197.                         system("pause");
  198.                         break;
  199.                 case 3:
  200.                     search();  //调用search函数查询学生信息
  201.                         system("pause");
  202.                         break;
  203.                 case 4:
  204.                         change();  //调用change函数修改学生信息
  205.                         system("pause");
  206.                         break;
  207.                 case 5:
  208.                     add();     //调用add函数添加学生信息
  209.                         system("pause");
  210.                         break;
  211.                 case 6:
  212.                     paixu();     //调用add函数添加学生信息
  213.                         system("pause");
  214.                         break;
  215.                 case 7:
  216.                         del();    // 调用del函数删除学生信息
  217.                         system("pause");
  218.                         break;
  219.         

  220.                                 system("pause");
  221.                 default:
  222.                         cout<<"没有此选项,请重新选择!"<<endl;
  223.                 }
  224.         }
  225.         return 0;
  226. }


  227.         void input() //录入学生信息的函数
  228. {
  229.   char sel;
  230.   do
  231.   {
  232.           n++;
  233.           cout<<"\t请输入第"<<n<<"个学生信息:\t"<<endl;
  234.        s[n].set();
  235.          
  236.           cout<<"是否要继续录入学生信息(Y/N):";
  237.           cin>>sel;
  238.   }while(sel=='Y' || sel=='y' );
  239. }
  240. void show()
  241. {
  242.         cout<<left; //设置输出左对齐
  243.         cout<<setw(10)<<"学生学号"
  244.                 <<setw(10)<<"学生姓名"
  245. <<setw(15)<<"学生电话号码"
  246. <<setw(15)<<"学生家庭地址"
  247.                 <<setw(13)<<"学生班级"
  248.                 <<setw(12)<<"语文成绩"
  249.                 <<setw(12)<<"数学成绩"
  250.                 <<setw(12)<<"英语成绩"
  251.                 <<endl;
  252.         for(int i=1;i<=n;i++)
  253.         {
  254.                 cout<<setw(10)<<s.num
  255.                         <<setw(10)<<s.name
  256.                         <<setw(15)<<s.tenum
  257.                         <<setw(15)<<s.addr
  258.                         <<setw(13)<<s.class1
  259.                         <<setw(12)<<s.chinese
  260.                         <<setw(12)<<s.math
  261.                         <<setw(12)<<s.english<<endl;
  262.         }
  263.         cout<<endl;

  264. }

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

  279.         int a,b,i;char c[20];
  280.         cout<<"请选择查询方式:"<<endl;
  281.         cout<<"按学生姓名查询请按1"<<endl;
  282.     cout<<"按学生学号查询请按2"<<endl;
  283.         
  284.         cin>>a;
  285.         switch(a)
  286.         {
  287.         case 1:        
  288. {char sel;
  289.   do{
  290.                 cout<<"请输入你要查的学生的姓名:"<<endl;
  291.                 cin>>c;
  292.                 for(i=1;i<=n;i++)
  293.                         if(strcmp(s.name,c)==0)
  294.                         {cout<<"你要查的学生信息为:"<<endl;
  295.                         cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
  296.                                 <<s.name<<endl<<"学生班级:"
  297.                                 <<s.class1<<endl<<"学生电话号码 "
  298.                                 <<s.tenum<<endl<<"学生家庭住址 "
  299.                                 <<s.addr<<endl<<"语文成绩:"
  300.                                 <<s.chinese<<endl<<"数学成绩:"
  301.                                 <<s.math<<endl<<"英语成绩:"
  302.                                 <<s.english<<endl;
  303.                         break;
  304.                         }
  305.                         else if(strcmp(s.name,c)!=0&&i==n)
  306.                         {cout<<"没有这个学生!"<<endl;break;}
  307.                 cout<<"是否要继续查询学生信息(Y/N):";
  308.           cin>>sel;
  309.         }while(sel=='Y' || sel=='y' );
  310.         break;
  311. }
  312.         case 2:
  313. {        char sel;
  314. do{
  315.                 cout<<"请输入你要查的学生的学号:"<<endl;
  316.                 cin>>b;
  317.                 for(i=1;i<=n;i++)
  318.                         if(s.num==b)
  319.                         {
  320.                         cout<<"你要查的学生信息为:"<<endl;
  321.                         cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
  322.                                 <<s.name<<endl<<"学生班级:"
  323.                                 <<s.class1<<endl<<"学生电话号码 "
  324.                                 <<s.tenum<<endl<<"学生家庭住址 "
  325.                                 <<s.addr<<endl<<"语文成绩:"
  326.                                 <<s.chinese<<endl<<"数学成绩:"
  327.                                 <<s.math<<endl<<"英语成绩:"
  328.                                 <<s.english<<endl;
  329.                         break;
  330.                         }
  331.                         else if(s.num!=b&&i==n)
  332.                         {cout<<"没有这个学生!请核对后再输入!"<<endl;break;}
  333.                 cout<<"是否要继续查询学生信息(Y/N):";
  334.           cin>>sel;
  335.         }while(sel=='Y' || sel=='y' );
  336.         break;}

  337.         case 3:
  338.                 {
  339.                         extern openfile();
  340.                         break;
  341.                 }


  342.         default:
  343.                 cout<<"您的输入有误!"<<endl;
  344.         }
  345.                
  346. }

  347. void change()
  348. {
  349. {        char sel;
  350.         int d,i,e,f,g=0;
  351. do{
  352.                 cout<<"请输入你要修改的学生的学号:"<<endl;
  353.                 cin>>d;
  354.                 for(i=1;i<=n;i++)
  355.                     if(s.num==d)
  356.                         {
  357.                         cout<<"你要修改的学生信息为:"<<endl;
  358.                         cout<<"学生学号:"<<s.num<<endl<<"学生姓名:"
  359.                                 <<s.name<<endl<<"学生班级:"
  360.                                 <<s.class1<<endl<<"学生电话号码"
  361.                                 <<s.tenum<<endl<<"学生家庭住址"
  362.                                 <<s.addr<<endl<<"语文成绩:"
  363.                                 <<s.chinese<<endl<<"数学成绩:"
  364.                                 <<s.math<<endl<<"英语成绩:"
  365.                                 <<s.english<<endl;
  366.                 e=1;
  367.                         break;
  368.                         }
  369.                         else if(s.num!=d&&i==n)
  370.                         {cout<<"没有这个学生!请核对后再输入!"<<endl;
  371.                         e=0;break;}
  372.                         while(e==1)
  373.                         {        {cout<<"请输入该学生要修改的信息对应的数字:"<<endl;
  374.                         cout<<"学生学号:1"
  375.                                 <<'\t'<<"学生姓名:2"
  376.                                 <<'\t'<<"学生班级:3"
  377.                                 <<'\t'<<"学生电话号码 :4"
  378.                                 <<'\t'<<"学生家庭:5"
  379.                                 <<'\t'<<"语文成绩:6"
  380.                                 <<'\t'<<"数学成绩:7"
  381.                                 <<'\t'<<"英语成绩:8"<<endl;
  382.                         }
  383.                         cin>>f;
  384.                         switch(f)
  385.                         {case 1:cout<<"\t新的学生学号为:";
  386.                 cin>>s.num;break;

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

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

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

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

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

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

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

  401.                         default:cout<<"您的输入有误,请重新输入!";
  402.                                 cin>>f;}
  403.                             e=0;
  404.                                 g=1;
  405.                 }
  406.                         if(g==1)
  407.                         {        cout<<"修改成功!";}
  408.                 cout<<"是否要继续修改学生信息(Y/N):";
  409.           cin>>sel;
  410.         }while(sel=='Y' || sel=='y' );
  411.   }
  412.   
  413. }

  414. void add()
  415. {
  416. char sel;
  417.   do
  418.   {
  419.           n++;
  420.           cout<<"\n请输入第"<< n <<"个学生信息:\n";
  421.           cout<<"\t学生学号:";
  422.           cin>>s[n].num;
  423.           cout<<"\t学生姓名:";
  424.           cin>>s[n].name;
  425.       cout<<"\t学生班级:";
  426.           cin>>s[n].class1;

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

  429. cout<<"\t学生家庭地址为:";
  430.                                                 cin>>s[n].addr;
  431.           cout<<"\t语文成绩:";
  432.           cin>>s[n].chinese;
  433.           cout<<"\t数学成绩:";
  434.           cin>>s[n].math;
  435.           cout<<"\t英语成绩:";
  436.           cin>>s[n].english;
  437.           cout<<"是否要继续添加学生信息(Y/N):";
  438.           cin>>sel;
  439.   }while(sel=='Y' || sel=='y' );
  440.   
  441. }


  442. void paixu()
  443. {
  444.         int a;
  445.         cout<<"请选择排序方式:"<<endl;
  446.         cout<<"1.按学号排序;"<<endl
  447.                 <<"2.按总成绩排序;"<<endl
  448.                 <<"3.按平均成绩排序;"<<endl;
  449.         cin>>a;
  450.         switch(a)
  451.         {
  452.     case 1:
  453.         {int t=0;
  454.         for(int i=0;i<n-1;i++)
  455.          for(int j=0;j<n-i;j++)
  456.                 if(s[j].num>s[j+1].num)
  457.                 { t=s[j].num;
  458.               s[j].num=s[j+1].num;
  459.                   s[j+1].num=t;}
  460.         
  461.               cout<<"按学号排序结果:"<<endl;
  462.         cout<<left; //设置输出左对齐
  463.         cout<<setw(10)<<"学生学号"
  464.                 <<setw(10)<<"学生姓名"
  465.                 <<setw(13)<<"学生班级"
  466.                 <<setw(10)<<"学生电话"
  467.                 <<setw(10)<<"学生家庭地址"
  468.                 <<setw(12)<<"语文成绩"
  469.                 <<setw(12)<<"数学成绩"
  470.                 <<setw(12)<<"英语成绩"
  471.                 <<endl;
  472.                   for(i=1;i<=n;i++)
  473.                   {                 cout<<setw(10)<<s.num
  474.                         <<setw(10)<<s.name
  475.                         <<setw(13)<<s.class1
  476.                 <<setw(10)<<s.tenum
  477.                   <<setw(10)<<s.addr
  478.                         <<setw(12)<<s.chinese
  479.                         <<setw(12)<<s.math
  480.                         <<setw(12)<<s.english<<endl;}
  481.         }
  482.         break;

  483. /*        case 2:
  484.         {double t;
  485.         for(int i=0;i<n-1;i++)
  486.         { for(int j=0;j>n-i-1;j++)
  487.           {
  488.                 if(s[j].sum>s[j+1].sum)
  489.                   t=s[j].sum;  s[j].sum=s[j+1].sum;   s[j+1].sum=t;
  490.           }
  491.         }
  492.                       cout<<"按总成绩排序结果:"<<endl;
  493.                   for(i=1;i<=n;i++)
  494.                           cout<<"学号:"<<s.num<<"\t"<<"姓名:"<<s.name<<"\t"<<"班级:"<<s.class1<<"\t"
  495.                           <<"语文成绩:"<<s.chinese<<"\t"<<"数学成绩:"<<s.math<<"\t"<<"英语成绩"<<s.english<<"\t总成绩"<<ssum<<endl;
  496.                       cout<<endl;
  497.         }
  498.         break;*/

  499. /*        case 3:
  500.                 int t;
  501.         for(int i=0;i<n-1;i++)
  502.         { for(int j=0;j>n-1-i;j++)
  503.           {
  504.                 if(s[j].aver()>s[j+1].aver())
  505.                   t=s[j].aver();  s[j].aver()=s[j+1].aver();   s[j+1].aver()=t;
  506.           }
  507.         }
  508.                       cout<<"按平均成绩排序结果:"<<endl;
  509.                   for(i=0;i<n;i++)
  510.                           cout<<"学号:"<<s.num<<"\t"<<"姓名:"<<s.name<<"\t"<<"班级:"<<s.class1<<"\t"
  511.                           <<"语文成绩:"<<s.chinese<<"\t"<<"数学成绩:"<<s.math<<"英语成绩"<<s.english<<endl;
  512.                       cout<<endl;
  513.         }
  514.         break ;
  515. */

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

  520. }
  521.         void del()
  522. {

  523.                 int j,i,k;char c[10],sel,y;
  524.         do{
  525.                 cout<<"请输入你要删除的学生的姓名:"<<endl;
  526.                 cin>>c;
  527.                 for(i=1;i<=n;i++)
  528.                         if(strcmp(s.name,c)==0)
  529.                         {cout<<"你要删除的学生信息为:"<<endl;
  530.                         cout<<"学生学号:"<<s.num<<endl
  531.                                 <<"学生姓名:"<<s.name<<endl
  532.                                 <<"学生班级:"<<s.class1<<endl
  533.                                 <<"学生电话:"<<s.tenum<<endl
  534.                                 <<"学生家庭地址:"<<s.addr<<endl
  535.                                 <<"语文成绩:"<<s.chinese<<endl
  536.                                 <<"数学成绩:"<<s.math<<endl
  537.                                 <<"英语成绩:"<<s.english<<endl;
  538.                         cout<<"确认删除?(y/n):";
  539.                         cin>>y;
  540.                         if(y=='Y'||y=='y')
  541.                         {
  542.                         for(j=i;j<=n+1;j++)
  543.                         {
  544.                             s[j]=s[j+1];
  545.                         }        k=1;
  546.                         }
  547.                         else
  548.                                 cout<<"删除失败!"<<endl;
  549.                

  550.                         break;
  551.                         }
  552.                         else if(strcmp(s.name,c)!=0&&i==n)
  553.                         {cout<<"没有这个学生!请核对后再输入!"<<endl;
  554.                         k=0;break;}
  555.                         while(k==1)
  556.                         {
  557.                                 if(y=='Y'||y=='y')
  558.                                 cout<<"删除成功!";
  559.                                 n--;
  560.                                 k=0;
  561.                         }
  562.                 cout<<"是否要继续删除学生信息(Y/N):";
  563.           cin>>sel;
  564.         
  565.         }while(sel=='Y' || sel=='y' );
  566.         
  567.         }
  568.         
复制代码


最佳答案
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-5-1 04:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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