学生成绩管理系统,使用数组的形式。
#include <iostream>
#include <fstream>
#include <cstring>
#include <conio.h>
#include <iomanip>
#include<cstdlib>
using namespace std;
//------------------Person类-----------------
class Person
{
public:
char name[20];
char id[10];
int banji;
double cnum; //C++课程得分
double math; //高数课程得分
double english; //英语课程得分
double pe; //体育课程得分
double sum; //总分
};
class Student:public Person
{
public:
void Write(Student stu[],int n); // 向文件中写入数据
int Read(Student stu[]); // 从文件中读数据
void AddItem(Student stu[]); // 添加学生成绩
void Input(Student stu[]); // 按班学生信息
void ShowMenu(); //显示菜单
void Find(Student stu[]); // 查找函数
void ModifyItem(Student stu[]); //修改信息
void RemoveItem(Student stu[]); //删除信息
void Sort(Student stu[]); // 排序
int class_num(Student stu[]); //按班显示学生成绩
}stu[100];
//----------------- 向文件中写入数据 -------------------
void Student::Write(Student stu[],int n)
{
int i;
fstream myFile;
myFile.open("score.txt",ios::out|ios::binary);
if(!myFile)
{
cout<<"这是一个新系统,无学生信息。请先输入。"<<endl;
}
int total=n;
myFile<<total<<endl<<endl;
for(i=0;i<=total;i++)
{
myFile<<stu[i].banji<<" "<<stu[i].name<<" "<<stu[i].id<<" "<<stu[i].cnum<<" "<<stu[i].math<<" "<<stu[i].english<<" "
<<stu[i].pe<<" "<<stu[i].sum<<endl;
} // 向文件中写入数据
myFile.close();
}
//------------------从文件中读数据--------------------
int Student::Read(Student stu[])
{
int total;
int i;
fstream myFile;
myFile.open("score.txt",ios::in|ios::binary);
if(!myFile)
{
cout<<"这是一个新系统,无学生信息。请先输入。"<<endl;
}
myFile.seekg(0);
myFile>>total;
for(i=0;i<=total;i++)
{
myFile>>stu[i].banji>>stu[i].name>>stu[i].id>>stu[i].cnum>>stu[i].math>>stu[i].english
>>stu[i].pe>>stu[i].sum;
} // 从文件中读数据
myFile.close();
return total;
}
//-------------------按班录入学生信息--------------------
void Student::Input(Student stu[])
{
int n=Read(stu);
int i=0;
char sign;
while(sign!='n'&&sign!='N')
{
cout<<"\t\t\t\t请输入学生的姓名:"; cin>>stu[i].name;
cout<<"\t\t\t\t请输入学生的学号:"; cin>>stu[i].id;
cout<<"\t\t\t\t请输入学生的班级:"; cin>>stu[i].banji;
cout<<"\t\t\t\t请输入C++的成绩:"; cin>>stu[i].cnum;
cout<<"\t\t\t\t请输入高数成绩:"; cin>>stu[i].math;
cout<<"\t\t\t\t请输入英语成绩:"; cin>>stu[i].english;
cout<<"\t\t\t\t请输入体育成绩:"; cin>>stu[i].pe;
stu[i].sum= stu[i].cnum+stu[i].math+stu[i].english+stu[i].pe;
cout<<"\t\t\t\t是否继续录入学生成绩(y或n)"; cin>>sign;
i++;
}
Write(stu,i);
cout<<"请输入任意字符,继续"<<endl;