用C++编写一个程序 学生信息管理系统

要求1) 学生信息包括学号,姓名,性别,出生(年,月,日),三门课成绩和总分( 数学, 英语, C语言, 总分)。2) 数据格式测试数据,以文件方式提供,studf.txt,数据文件自己建立。3) 需要实现的功能[1] 建立学生信息结构数组 从文件中读入数据;[2] 按姓名递增冒泡排序;[3] 按总分递减选择排序;[4] 显示按总分排序后学生信息;[5] 按学号查学生信息和平均分数(顺序查找法);[6] 按姓名查学生信息和平均分数(折半查找法);[7] 查各门课平均分数;[8] 查男女学生人数和总人数;[9] 显示学生信息表[10] 将排序后的内容存为文件,以后显示时直接从文件中调出而不用再执行排序算法。
程序设计的具体说明数据结构:结构类型的层次结构:struct student{ /* 学生信息结构 */char no[9]; /* 学号 */char name[9]; /* 姓名 */char sex[3]; /* 性别 */struct date birthday; /* 出生日期 */int score[4]; /* 三门课成绩和总分 */};为减少参数传递,程序中用到的学生结构体数组可以定义为一个全局变量:struct student stu[30];

#include<iostream>#include<cstring>#include<iomanip>#include<fstream>#defineMax 1000usingnamespacestd;classstudent{private: char name[20]; int number; int grade;public: student(char*,int,int); char*GetName(){returnname;} int GetNo(){returnnumber;} int GetGra(){returngrade;}};student::student(char*names,intnum,intgra){ strcpy(name,names); number=num; grade=gra;}intmain(){ intm; charch[Max],names[20]; intnum,gra; for(inti=0;i<Max;i ){ch[i]='\0';} ifstreammyFile("student.txt",ios_base::in); if(myFile) { cout<<"已存学生信息:"<<endl; myFile.read((char*)ch,1000); cout<<ch; } cout<<"请输入需要新建信息的学生人数:"; cin>>m; for(i=0;i<m;i ) { myFile.close(); cout<<"输入第"<<i 1<<"个新建信息学生姓名,学号和成绩:"; cin>>names; cin>>num>>gra; studentstu(names,num,gra); ofstreammyFile1("student.txt",ios_base::app); myFile1<<"学生:"<<setw(14)<<stu.GetName()<<"学号:"<<stu.GetNo() <<"成绩:"<<stu.GetGra()<<endl; myFile1.close(); }} 程序运行示例:
温馨提示:答案为网友推荐,仅供参考