数据排序录入及查询

来源:互联网 发布:博彦多彩数据招聘 编辑:程序博客网 时间:2024/09/21 06:17

【数据排序录入及查询】

设学生信息含学号、姓名和成绩3个数据,请按如下要求编程处理某教学班(例如30人)学生的数据。

① 定义表示学生的信息结构体类型;

② 用结构体数组处理一个班学生信息的,结构体数组数据从键盘录入;

③ 将学生信息按照学号的升序排序后存储在文件student.inf中;

④编程序利用上面生成的学生信息文件student.inf实现功能:根据从键盘输入的学号在学生数据中查找,判定该学生是否存在;若存在则输出该学生信息,否则输出“没有该学号学生”的提示信息。


    #include<iostream>      #include<iomanip>      #include<fstream>    #include <string>    using namespace std;      struct Student{          float grade;          char name[10];          int Number;      };      int main()      {          ofstream outfile;    outfile.open("myfile.inf");    ifstream infile;                           Student temp; int len=3; // 自己定义要输入数据的组数         Student array[len];             cout<<"请输入数据(学号,姓名,成绩):";     cout<<endl;         for(int i=0;i<len;i++)          {              cin>>array[i].Number>>array[i].name>>array[i].grade;          }                 for(int j=0;j<len-1;j++)              for(int i=0;i<len-1-j;i++)                  if(array[i].Number>array[i+1].Number)                  {                      temp=array[i];                      array[i]=array[i+1];                      array[i+1]=temp;                  }                          for(int k=0;k<len;k++)              cout<<array[k].Number<<" "<<array[k].name<<" "<<array[k].grade<<endl;                  for(int z=0;z<len;z++)        {       outfile<<array[z].Number<<" "<<array[z].name<<" "<<array[z].grade<<endl;        }        outfile.close();                infile.open("myfile.inf");         cout<<"输入需要查询学生的学号:";string w;cin>>w;         string s;        int q=0;        while(getline(infile,s))        {            string str=s.substr(0,w.size());if(w.compare(str)==0){q=1;cout<<s<<endl;break;}        }        if(q==0)        {        cout<<"没有改学号学生"<<endl;        }                infile.close();         return 0;      }  


原创粉丝点击