C++实现简单的学生成绩管理系统

本文实例为大家分享了C++实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下

manage.h

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
//学生
template <class T>
class Student {
    template <class T>
    friend class StudentManage;
public:
    Student() {
        next = NULL;
    }
private:
    int Sid;//学生编号
    string Sname;//学生姓名
    string Ssex;//学生性别
    int Sage;//学生年龄
    int Sscore;//学生成绩
    Student<T>* next;//指向下一结点的指针
};
template <class T>
class StudentManage {
public:
    StudentManage();
    ~StudentManage();
    StudentManage<T>& SInsert(int k, const T& sid, const string& sname, const string& ssex, const T& sage, const T& sscore);//插入
    bool SIsEmpty() const;//判空
    int SGetLength() const;//获取长度
    bool SGetData(int k, T& sid, string& sname, string& ssex, T& sage, T& sscore);//获取数据
    bool SModifyData(int k, const T& sid, const string& sname, const string& ssex, const T& sage, const T& sscore);//修改
    int SFind(const int& sid);//根据id查找
    StudentManage<T>& SDelete(int k, T& sid, string& sname, string& ssex, T& sage, T& sscore);//删除
    void Sort(T a[]);
    void SOutPut(ostream& sout) const;//打印
private:
    Student<T>* shead;
};

//班级
template <class T>
class Class {
    template <class T>
    friend class ClassManage;
public:
    Class() {
        next = NULL;
    }
private:
    int Cid;//班级编号
    string CName;//班级名称
    string CBzrName;//班主任名称
    string CXsName;//学生名称
    Class<T>* next;
};
template <class T>
class ClassManage {
public:
    ClassManage();
    ~ClassManage();
    ClassManage<T>& CInsert(int k, const T& cid, const string& cname, const string& cbzrname, const string& cxsname);//插入
    bool CIsEmpty() const;//判空
    int CGetLength() const;//获取长度
    bool CGetData(int k, T& cid, string& cname, string& cbzrname, string& cxsname);//获取数据
    bool CModifyData(int k, const T& cid, const string& cname, const string& cbzrname, const string& cxsname);//修改
    int CFind(const int& cid);//根据id查找
    ClassManage<T>& CDelete(int k,  T& cid, string& cname, string& cbzrname, string& cxsname);//删除
    void COutPut(ostream& cout) const;//打印
private:
    Class<T>* chead;
};

//成绩
template <class T>
class Grade {
    template <class T>
    friend class GradeManage;
public:
    Grade() {
        next = NULL;
    }
private:
    string Gname;
    int Gscore;
    Grade<T>* next;
};
template <class T>
class GradeManage {
public:
    GradeManage();
    ~GradeManage();
    GradeManage<T>& GInsert(int k, const string& gname, const T& gscore);//插入
    bool GIsEmpty() const;//判空
    int GGetLength() const;//获取长度
    bool GGetData(int k, string& gname, T& gscore);//获取数据
    bool GModifyData(int k, const string& gname, const T& gscore);//修改
    int GFind(const string& gname);//根据课程名称查找
    GradeManage<T>& GDelete(int k, string& gname, T& gscore);//删除
    void GOutPut(ostream& gout) const;//打印

private:
    Grade<T>* ghead;
};

manage.cpp

#include "manage.h"
//学生
template<class T>
inline StudentManage<T>::StudentManage()
{
    shead = new Student<T>();
}
template<class T>
StudentManage<T>::~StudentManage()
{
    delete shead;
}
template<class T>
StudentManage<T>& StudentManage<T>::SInsert(int k, const T& sid, const string& sname, const string& ssex, const T& sage, const T& sscore)
{
    Student<T>* p = shead;
    Student<T>* newNode = new Student<T>;
    newNode->Sid = sid;
    newNode->Sname = sname;
    newNode->Ssex = ssex;
    newNode->Sage = sage;
    newNode->Sscore = sscore;
    int len = SGetLength();
    if (k<1 || k>len + 1)
        cout << "失败";
    else {
        for (int i = 1; i < k; i++)
            p = p->next;
        newNode->next = p->next;
        p->next = newNode;
    }
    return *this;

}
template<class T>
bool StudentManage<T>::SIsEmpty() const
{
    return shead->next == NULL;
}
template<class T>
int StudentManage<T>::SGetLength() const
{
    int length = 0;
    Student<T>* p = shead->next;
    while (p) {
        length++;
        p = p->next;
    }
    return length;
}
template<class T>
bool StudentManage<T>::SGetData(int k, T& sid, string& sname, string& ssex, T& sage, T& sscore)
{
    Student<T>* p = shead->next;
    int index = 1;
    if (k<1 || k>SGetLength())
        return false;
    while (p != NULL && index < k) {
        index++;
        p = p->next;
    }
    if (p == NULL)
        return false;
    else {
        sid = p->Sid;
        sname = p->Sname;
        ssex = p->Ssex;
        sage = p->Sage;
        sscore = p->Sscore;
        return true;
    }
}
template<class T>
bool StudentManage<T>::SModifyData(int k, const T& sid, const string& sname, const string& ssex, const T& sage, const T& sscore)
{
    Student<T>* p = shead->next;
    int index = 1;
    if (k<1 || k>SGetLength())
        return false;
    while (p != NULL && index < k) {
        index++;
        p = p->next;
    }
    if (p == NULL)
        return false;
    else {
        p->Sid = sid;
        p->Sname = sname;
        p->Ssex = ssex;
        p->Sage = sage;
        p->Sscore = sscore;
        return true;
    }
}
template<class T>
int StudentManage<T>::SFind(const int& sid)
{
    Student<T>* p = shead->next;
    int index = 1;
    while (p != NULL && p->Sid != sid) {
        p = p->next;
        index++;
    }
    if (p != NULL)
        return index;
    else
        return 0;
}
template<class T>
StudentManage<T>& StudentManage<T>::SDelete(int k, T& sid, string& sname, string& ssex, T& sage, T& sscore)
{
    if (SGetData(k, sid, sname, ssex, sage, sscore)) {
        Student<T>* p = shead;
        Student<T>* q = NULL;
        for (int i = 1; i < k; i++)
            p = p->next;
        q = p->next;
        p->next = q->next;
        delete q;
    }
    else
        cout << "失败";
    return *this;
}
template<class T>
void StudentManage<T>::Sort(T a[])
{
    int n = SGetLength();
    T  i, j, temp;
    for (i = 1; i < n; i++) {
        if (a[i] < a[i - 1]) {
            temp = a[i];
            for (j = i - 1; j >= 0 && a[j] > temp; --j)
                a[j + 1] = a[j];
            a[j + 1] = temp;
        }
    }    
}
template<class T>
void StudentManage<T>::SOutPut(ostream& sout) const
{
    Student<T>* p = shead->next;
    while (p != NULL) {
        sout << "学生编号:" << p->Sid << "学生姓名:" << p->Sname << "学生性别:" << p->Ssex << "学生年龄:" << p->Sage << "学生总分:" << p->Sscore <<" " << endl;
        p = p->next;
    }
}
template <class T>
ostream& operator<<(ostream& sout, StudentManage<T>& x) {
    x.SOutPut(sout);
    return sout;
}
//班级
template<class T>
inline ClassManage<T>::ClassManage()
{
    chead = new Class<T>();
}
template<class T>
ClassManage<T>::~ClassManage()
{
    delete chead;
}
template<class T>
ClassManage<T>& ClassManage<T>::CInsert(int k, const T& cid, const string& cname, const string& cbzrname, const string& cxsname)
{
    Class<T>* p = chead;
    Class<T>* newNode = new Class<T>;
    newNode->Cid = cid;
    newNode->CName = cname;
    newNode->CBzrName = cbzrname;
    newNode->CXsName = cxsname;
    int len = CGetLength();
    if (k<1 || k>len + 1)
        cout << "失败";
    else {
        for (int i = 1; i < k; i++)
            p = p->next;
        newNode->next = p->next;
        p->next = newNode;
    }
    return *this;
}
template<class T>
bool ClassManage<T>::CIsEmpty() const
{
    return chead->next == NULL;
}
template<class T>
int ClassManage<T>::CGetLength() const
{
    int length = 0;
    Class<T>* p = chead->next;
    while (p) {
        length++;
        p = p->next;
    }
    return length;
}
template<class T>
bool ClassManage<T>::CGetData(int k, T& cid, string& cname, string& cbzrname, string& cxsname)
{
    Class<T>* p = chead->next;
    int index = 1;
    if (k<1 || k>CGetLength())
        return false;
    while (p != NULL && index < k) {
        index++;
        p = p->next;
    }
    if (p == NULL)
        return false;
    else {
        cid = p->Cid;
        cname = p->CName;
        cbzrname = p->CBzrName;
        cxsname = p->CXsName;
        return true;
    }
}
template<class T>
bool ClassManage<T>::CModifyData(int k, const T& cid, const string& cname, const string& cbzrname, const string& cxsname)
{
    Class<T>* p = chead->next;
    int index = 1;
    if (k<1 || k>CGetLength())
        return false;
    while (p != NULL && index < k) {
        index++;
        p = p->next;
    }
    if (p == NULL)
        return false;
    else {
        p->Cid = cid;
        p->CName = cname;
        p->CBzrName = cbzrname;
        p->CXsName = cxsname;
        return true;
    }
}
template<class T>
int ClassManage<T>::CFind(const int& cid)
{
    Class<T>* p = chead->next;
    int index = 1;
    while (p != NULL && p->Cid != cid) {
        p = p->next;
        index++;
    }
    if (p != NULL)
        return index;
    else
        return 0;
}
template<class T>
ClassManage<T>& ClassManage<T>::CDelete(int k,  T& cid, string& cname, string& cbzrname, string& cxsname)
{
    if (CGetData(k, cid, cname, cbzrname, cxsname)) {
        Class<T>* p = chead;
        Class<T>* q = NULL;
        for (int i = 1; i < k; i++)
            p = p->next;
        q = p->next;
        p->next = q->next;
        delete q;
    }
    else
        cout << "失败";
    return *this;
}
template<class T>
void ClassManage<T>::COutPut(ostream& cout) const
{
    Class<T>* p = chead->next;
    while (p != NULL) {
        cout << "班级编号:" << p->Cid << "班级:" << p->CName << "班主任姓名:" << p->CBzrName << "学生姓名:" << p->CXsName <<" " << endl;
        p = p->next;
    }
}
template <class T>
ostream& operator<<(ostream& cout, ClassManage<T>& x) {
    x.COutPut(cout);
    return cout;
}
//成绩
template<class T>
inline GradeManage<T>::GradeManage()
{
    ghead = new Grade<T>();
}
template<class T>
GradeManage<T>::~GradeManage()
{
    delete ghead;
}
template<class T>
GradeManage<T>& GradeManage<T>::GInsert(int k, const string& gname, const T& gscore)
{
    Grade<T>* p = ghead;
    Grade<T>* newNode = new Grade<T>;
    newNode->Gname = gname;
    newNode->Gscore = gscore;
    int len = GGetLength();
    if (k<1 || k>len + 1)
        cout << "失败";
    else {
        for (int i = 1; i < k; i++)
            p = p->next;
        newNode->next = p->next;
        p->next = newNode;
    }
    return *this;
}
template<class T>
bool GradeManage<T>::GIsEmpty() const
{
    return ghead->next == NULL;
}
template<class T>
int GradeManage<T>::GGetLength() const
{
    int length = 0;
    Grade<T>* p = ghead->next;
    while (p) {
        length++;
        p = p->next;
    }
    return length;
}
template<class T>
bool GradeManage<T>::GGetData(int k, string& gname, T& gscore)
{
    Grade<T>* p = ghead->next;
    int index = 1;
    if (k<1 || k>GGetLength())
        return false;
    while (p != NULL && index < k) {
        index++;
        p = p->next;
    }
    if (p == NULL)
        return false;
    else {
        gname = p->Gname;
        gscore = p->Gscore;
        return true;
    }
}
template<class T>
bool GradeManage<T>::GModifyData(int k, const string& gname, const T& gscore)
{
    Grade<T>* p = ghead->next;
    int index = 1;
    if (k<1 || k>GGetLength())
        return false;
    while (p != NULL && index < k) {
        index++;
        p = p->next;
    }
    if (p == NULL)
        return false;
    else {
        p->Gname = gname;
        p->Gscore = gscore;
        return true;
    }
}
template<class T>
int GradeManage<T>::GFind(const string& gname)
{
    Grade<T>* p = ghead->next;
    int index = 1;
    while (p != NULL && p->Gname != gname) {
        p = p->next;
        index++;
    }
    if (p != NULL)
        return index;
    else
        return 0;
}
template<class T>
GradeManage<T>& GradeManage<T>::GDelete(int k, string& gname, T& gscore)
{
    if (GGetData(k, gname, gscore)) {
        Grade<T>* p = ghead;
        Grade<T>* q = NULL;
        for (int i = 1; i < k; i++)
            p = p->next;
        q = p->next;
        p->next = q->next;
        delete q;
    }
    else
        cout << "失败";
    return *this;
}
template<class T>
void GradeManage<T>::GOutPut(ostream& gout) const
{
    Grade<T>* p = ghead->next;
    while (p != NULL) {
        gout << "课程名称:" << p->Gname << "课程成绩:" << p->Gscore<<" " << endl;
        p = p->next;
    }
}
template <class T>
ostream& operator<<(ostream& gout, GradeManage<T>& x) {
    x.GOutPut(gout);
    return gout;
}

/*
int main() {
    //学生
    StudentManage<int> s;
    s.SInsert(1, 1, "小明", "男",23 , 290);
    s.SInsert(2, 2, "张三", "男", 22, 280);
    s.SInsert(3, 3, "小红", "女", 21, 270);
    s.SInsert(4, 4, "李四", "男", 24, 260);
    cout << s;
    int n = s.SGetLength();
    cout << "共有" << n << "条数据" << endl;
    s.SModifyData(3, 3, "小丽", "女", 21, 270);
    cout << s;
    int sid, sage, sscore; string sname, ssex;
    int sid1, sage1, sscore1; string sname1, ssex1;
    s.SGetData(1, sid,  sname,ssex, sage, sscore);
    cout << "学生编号:" << sid << " 学生姓名:" << sname << " 学生性别:" << ssex << " 学生年龄:" << sage << " 学生总分:" << sscore << endl;
    s.SDelete(2, sid1, sname1, ssex1, sage1, sscore1);
    cout << "删除学生编号:" << sid1 << " 学生姓名:" << sname1 << " 学生性别:" << ssex1 << " 学生年龄:" << sage1 << " 学生总分:" << sscore1 << endl;
    cout << s;
    //班级
    ClassManage<int> c;
    c.CInsert(1,1,"一班","李主任","王麻子");
    c.CInsert(2, 2,"一班", "李主任", "十大");
    c.CInsert(3, 3,"一班", "李主任", "的撒");
    cout << c;
    int x = c.CGetLength();
    cout << "共有" << x << "条数据" << endl;
    c.CModifyData(3, 3, "一班", "张主任", "的撒");
    cout << c;
    int cid; string cname, cbzrname,cxsname;
    c.CGetData(1, cid, cname, cbzrname, cxsname);
    cout << "班级编号:" << cid << " 班级:" <<cname << " 班主任姓名:" << cbzrname << " 学生姓名:" << cxsname << endl;
    //成绩
    GradeManage<int> g;
    g.GInsert(1, "c++", 90);
    g.GInsert(1, "java", 90);

    cout << g;
    int t = g.GGetLength();
    cout << "共有" << t << "条数据" << endl;
    g.GModifyData(2,  "python", 92);
    cout << g;
    string gname;int gscore;
    g.GGetData(1, gname, gscore);
    cout << "课程名称:" << gname << " 课程成绩:" << gscore << endl;

    return 0;
}
*/

int main() {
    ofstream outfile;//终端输入--内存--文本

    //学生
    StudentManage<int> stud;
    stud.SInsert(1, 1, "小明", "男", 23, 290);
    stud.SInsert(2, 2, "张三", "男", 22, 280);
    stud.SInsert(3, 3, "小红", "女", 21, 270);
    stud.SInsert(4, 4, "李四", "男", 24, 260);
    int sid; string sname; string ssex; int sage; int sscore;
    int sid1; string sname1; string ssex1; int sage1; int sscore1;
    int sid2; string sname2; string ssex2; int sage2; int sscore2;
    //班级
    ClassManage<int> cla;
    cla.CInsert(1, 1, "一班", "李主任", "王麻子");
    cla.CInsert(2, 2, "一班", "李主任", "王五");
    cla.CInsert(3, 3, "二班", "李主任", "达摩");
    int cid; string cname, cbzrname, cxsname;
    int cid1; string cname1, cbzrname1, cxsname1;
    int cid2; string cname2, cbzrname2, cxsname2;
    //成绩
    GradeManage<int> gra;
    gra.GInsert(1, "c++", 90);
    gra.GInsert(1, "java", 90);
    string gname; int gscore;
    string gname1; int gscore1;
    string gname2; int gscore2;
    //主界面
    cout << "欢迎来到学生成绩管理系统!" << endl;
    cout << "选择1,进入学生信息管理"<<endl;
    cout << "选择2,进入班级信息管理" << endl;
    cout << "选择3,进入成绩信息管理" << endl;
    cout <<"输入999退出" << endl;
    int n; cout << "请输入选项:"; cin >> n;
    while (n != 999) {
        switch (n)
        {
        case 1:cout << "欢迎来到学生信息管理,输入999退出" << endl;
               cout << "1、查看学生信息\n2、增加学生信息\n3、修改学生信息\n4、删除学生信息\n5、保存学生信息\n6、读取学生信息\n7、学生按总成绩排序*" << endl;

            int s; cout << "请输入选项:"; cin >> s;
            
            while(s!=999){
                switch (s)
                {
                case 1:cout << "查看学生信息" << endl;
                       cout << stud << endl;
                       break;
                case 2:cout << "增加学生信息" << endl;
                        int k;
                        cout << "请输入学生位置" << endl; cin >> k;
                        cout << "请输入编号:"; cin >> sid;
                        cout << "请输入姓名:"; cin >> sname;
                        cout << "请输入性别:"; cin >> ssex;
                        cout << "请输入年龄:"; cin >> sage;
                        cout << "请输入总分:"; cin >> sscore;
                        stud.SInsert(k, sid, sname, ssex, sage, sscore);
                        break;
                case 3:cout << "修改学生信息" << endl;
                        int k1;
                        cout << "请输入要修改的学生位置" << endl; cin >> k1;
                        cout << "请输入要修改的编号:"; cin >> sid1;
                        cout << "请输入要修改的姓名:"; cin >> sname1;
                        cout << "请输入要修改的性别:"; cin >> ssex1;
                        cout << "请输入要修改的年龄:"; cin >> sage1;
                        cout << "请输入要修改的总分:"; cin >> sscore1;
                        stud.SModifyData(k1, sid1, sname1, ssex1, sage1, sscore1);
                        break;
                case 4:cout << "删除学生信息" << endl;
                        int k2;
                        cout << "请输入要删除的学生位置" << endl; cin >> k2;
                        cout << "请输入要删除的编号:"; cin >> sid2;
                        cout << "请输入要删除的姓名:"; cin >> sname2;
                        cout << "请输入要删除的性别:"; cin >> ssex2;
                        cout << "请输入要删除的年龄:"; cin >> sage2;
                        cout << "请输入要删除的总分:"; cin >> sscore2;
                        stud.SDelete(k2, sid2, sname2, ssex2, sage2, sscore2);
                        break;
                case 5:cout << "保存学生信息" << endl;
                        outfile.open("F:\student.txt");
                        outfile << stud << endl;
                        outfile.close();
                    break;
                case 6:cout << "读取学生信息" << endl;
                {
                    ifstream in("F:\student.txt", ios::in);
                    if (!in.fail())
                    {
                        while (!in.eof())
                        {
                            string str5;
                            in >> str5;
                            cout << str5 << endl;
                        }
                    }
                }
                    break;
                case 7:cout << "学生按总成绩排序" << endl;

                    break;
                default:
                    break;
                }
                cout << "请输入选项:"; cin >> s;
                }
            break;
        case 2:cout << "欢迎来到班级信息管理,输入999退出" << endl;
            cout << "1、查看班级信息\n2、增加班级信息\n3、修改班级信息\n4、删除班级信息\n5、保存班级信息\n6、读取班级信息" << endl;
            int c; cout << "请输入选项:"; cin >> c;
            while (c != 999) {
                switch (c)
                {
                case 1:cout << "查看班级信息" << endl;
                    cout << cla << endl;
                    break;
                case 2:cout << "增加班级信息" << endl;
                    int k;
                    cout << "请输入班级位置" << endl; cin >> k;
                    cout << "请输入班级编号:"; cin >> cid;
                    cout << "请输入班级名称:"; cin >> cname;
                    cout << "请输入班主任名称:"; cin >> cbzrname;
                    cout << "请输入学生名字:"; cin >> cxsname;
                    cla.CInsert(k, cid, cname, cbzrname, cxsname);
                    break;
                case 3:cout << "修改班级信息" << endl;
                    int k1;
                    cout << "请输入班级位置" << endl; cin >> k1;
                    cout << "请输入班级编号:"; cin >> cid1;
                    cout << "请输入班级名称:"; cin >> cname1;
                    cout << "请输入班主任名称:"; cin >> cbzrname1;
                    cout << "请输入学生名字:"; cin >> cxsname1;
                    cla.CModifyData(k1, cid1, cname1, cbzrname1, cxsname1);
                    break;
                case 4:cout << "删除班级信息" << endl;
                    int k2;
                    cout << "请输入班级位置" << endl; cin >> k2;
                    cout << "请输入班级编号:"; cin >> cid2;
                    cout << "请输入班级名称:"; cin >> cname2;
                    cout << "请输入班主任名称:"; cin >> cbzrname2;
                    cout << "请输入学生名字:"; cin >> cxsname2;
                    cla.CDelete(k2, cid2, cname2, cbzrname2, cxsname2);
                    break;
                case 5:cout << "保存班级信息" << endl;
                    outfile.open("F:\class.txt");
                    outfile << cla << endl;
                    outfile.close();
                    break;
                case 6:cout << "读取班级信息" << endl;
                {
                    ifstream in("F:\class.txt", ios::in);
                    if (!in.fail())
                    {
                        while (!in.eof())
                        {
                            string str5;
                            in >> str5;
                            cout << str5 << endl;
                        }
                    }
                }
                    break;
                default:
                    break;
                }
                cout << "请输入选项:"; cin >> c;
            }
            break;
        case 3:cout << "欢迎来到成绩信息管理,输入999退出" << endl;
            cout << "1、查看成绩信息\n2、增加成绩信息\n3、修改成绩信息\n4、删除成绩信息\n5、保存成绩信息\n6、读取成绩信息" << endl;
            int g; cout << "请输入选项:"; cin >> g;
            while (g != 999) {
                switch (g)
                {
                case 1:cout << "查看成绩信息" << endl;
                    cout << gra << endl;
                    break;
                case 2:cout << "增加成绩信息" << endl;
                    int k;
                    cout << "请输入成绩位置" << endl; cin >> k;
                    cout << "请输入课程名称:"; cin >> gname;
                    cout << "请输入课程成绩:"; cin >> gscore;
                    gra.GInsert(k, gname, gscore);
                    break;
                case 3:cout << "修改成绩信息" << endl;
                    int k1;
                    cout << "请输入成绩位置" << endl; cin >> k1;
                    cout << "请输入课程名称:"; cin >> gname1;
                    cout << "请输入课程成绩:"; cin >> gscore1;
                    gra.GModifyData(k1, gname1, gscore1);
                    break;
                case 4:cout << "删除成绩信息" << endl;
                    int k2;
                    cout << "请输入成绩位置" << endl; cin >> k2;
                    cout << "请输入课程名称:"; cin >> gname2;
                    cout << "请输入课程成绩:"; cin >> gscore2;
                    gra.GDelete(k2, gname2, gscore2);
                    break;
                case 5:cout << "保存成绩信息" << endl;
                    outfile.open("F:\grade.txt");
                    outfile << gra << endl;
                    outfile.close();
                    break;
                case 6:cout << "读取成绩信息" << endl;
                {
                    ifstream in("F:\grade.txt", ios::in);
                    if (!in.fail())
                    {
                        while (!in.eof())
                        {
                            string str5;
                            in >> str5;
                            cout << str5 << endl;
                        }
                    }
                }
                    break;
                default:
                    break;
                }
                cout << "请输入选项:"; cin >> g;
            }
            break;
        default:
            break;
        }
        cout << "请输入选项:"; cin >> n;
    }
    
/*
    ofstream outfile;//终端输入--内存--文本
    outfile.open("F:\student.txt", ios::binary | ios::app | ios::in | ios::out);//注意,里面有iOS::app,表示打开文件后,在写入的文件不会覆盖原文件中的内容,也就是原来文件中的数据会得到保存。
    //outfile << "学生编号:" << sid << "  学生姓名: " << sname << "  学生性别:" << ssex << "  学生年龄:" << sage << "  学生总分:" << sscore << endl;
    outfile << stud << endl;
    outfile.close();
*/
    return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 学生成绩管理系统C++实现代码

    本文实例为大家分享了C++学生成绩管理系统的具体代码,供大家参考,具体内容如下 * (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: <C++编写 学生成绩管理系统> * 作 者: 刘江波 * 完成日期: 2012 年 6 月 26 日 * 版 本 号: v.626 * 对任务及求解方法的描述部分 * 问题描述: 用C++编写一个学生成绩管理系统 1.可以实现以下

  • C++实现学生成绩管理系统

    终于结束了期末考试,有时间将这学期C++作业整理一下,都是一些基础的内容,写出来希望给一些初学者一些参考.主要使用到C++的面对对象编程思想,对学生信息类及链表类进行封装 文章可能有点长,可以只参考需要的部分 题目要求 用C++及类和对象来进行抽象.封装与实现,用作课内的第四次作业.注意学生的成绩需要用链表来实现,并且链表也需要实现封装. 成绩管理系统 信息描述: 现有学生成绩信息,内容如下 姓名 学号 语文 数学 英语 张明明 01 67 78 82 李成友 02 78 91 88 张辉灿 0

  • C++实现简单班级成绩管理系统

    本文实例为大家分享了C++实现简单班级成绩管理系统的具体代码,供大家参考,具体内容如下 #include<iostream> #include<fstream> #include<cstring> #include <stdlib.h> #include <conio.h> using namespace std; int n=0; class Student {public:       string name;     string num;

  • C++实现班级成绩管理系统

    本文实例为大家分享了C++实现班级成绩管理系统的具体代码,供大家参考,具体内容如下 本文定义了一个学生类的结构体,通过vector 数组来存储这个结构体.通过运算求出每个同学的总分,平均分.计算得到班级中各科的最高分和最低分,总成绩的最高分和最低分. #include<iostream> #include<vector> #include<algorithm> #include<string> //引入头文件 using namespace std; //

  • C++实现简单学生成绩管理系统

    本文实例为大家分享了C++实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 一.问题描述 设计一个学生成绩管理程序,实现按班级完成对学生成绩信息的录入和修改,并用文件保存.实现按班级输出学生的成绩单:实现按学号和姓名进行查询,按平均成绩进行排序功能. 二.基本要求 (1)使用面向对象编程思想编写开发过程中需要用到的类,比如:Person 类,学生类继承Person类,管理类实现对成绩信息的操作. (2)输入和输出可以使用文本文件重定向输入(保存数据为磁盘文件):也可以使用标准输入输出进行

  • C++课程设计之学生成绩管理系统

    本文实例为大家分享了C++学生成绩管理系统的具体代码,供大家参考,具体内容如下 /*要求:设立程序管理学生如下信息:学生学号.姓名.班级,语文.数学.英语成绩. 至少要有10名以上学生. 能够实现根据以下关键字查询:学生姓名 .学号.班级.课程名称. 能够实现按照单科成绩.总成绩.平均成绩.学号排序. 能够实现学生信息的插入.删除和修改. 能够查询每个课程的最高分.最低分及相应学生姓名.班级和学号. 能够查询每个班级某门课程的优秀率(90分及以上).不及格率,并进行排序.*/ #include<

  • C++实现学生成绩管理系统最新版

    学生成绩管理系统,供大家参考,具体内容如下 一.问题描述及功能要求 (1)输入同学的学号,姓名,三门科成绩(应用数学.大学英语.计算机应用基础) (2)可以计算出每个学生三门课的平均成绩. (3)可通过输入姓名.学号查询成绩,也可通过姓名修改学生信息,也可通过主界面删除学生信息,以及清楚所有信息 二.代码实现 带有注释 废话不说,直接代码,欢迎指正. 大家CV可能有不兼容的情况,可以跟我滴滴,尽可能解决问题地回复. #include <cstdlib> #include <iostrea

  • C++实现简单的学生成绩管理系统

    本文实例为大家分享了C++实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下 manage.h #include <iostream> #include <fstream> #include <string> using namespace std; //学生 template <class T> class Student {     template <class T>     friend class StudentManage;

  • python实现简单的学生成绩管理系统

    本文实例为大家分享了python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 需求: 代码: import os filename = 'student.txt' def main():     while True:         menu()         choice = int(input("请选择:"))         if choice in [0,1,2,3,4,5,6,7]:             if choice==0:            

  • 使用Python实现简单的学生成绩管理系统

    目录 基本功能: 实现效果: 制作技巧 1.定义变量 2.读取学生成绩信息 3.循环等待操作指令并执行 4.编写操作指令执行函数 (1)显示学生成绩信息函数 (2)新建学生成绩信息函数 (3)查询学生成绩信息函数 (4)删除学生成绩信息函数 (5)修改学生成绩信息函数 5.保存学生成绩信息函数 完整源代码 总结 基本功能: 能够实现学生成绩相关信息的输入.输出.查找.删除.修改等功能:(使用数据库对数据进行存取) 输入并存储学生的信息:通过输入学生的学号.姓名.和分数,然后就可以把数据保存在建立

  • C语言利用链表实现学生成绩管理系统

    链表是一种常见的基础数据结构,结构体指针在这里得到了充分的利用. 链表可以动态的进行存储分配,也就是说,链表是一个功能极为强大的数组,他可以在节点中定义多种数据类型,还可以根据需要随意增添,删除,插入节点. 链表都有一个头指针,一般以head来表示,存放的是一个地址.链表中的节点分为两类,头结点和一般节点,头结点是没有数据域的.链表中每个节点都分为两部分,一个数据域,一个是指针域. 说到这里你应该就明白了,链表就如同车链子一样,head指向第一个元素:第一个元素又指向第二个元素:……,直到最后一

  • 基于C语言实现简单学生成绩管理系统

    本文实例为大家分享了C语言实现简单学生成绩管理系统的具体代码,供大家参考,具体内容如下 一.系统主要功能 1.密码登录2.输入数据3.查询成绩4.修改成绩5.输出所有学生成绩6.退出系统 二.代码实现 #include <stdio.h> #include <stdlib.h> #include <string.h> #define N 10 struct student {     char num[10];     char name[20];     int ol

  • C语言实现简单学生成绩管理系统

    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 C语言小项目 实现一个学生成绩管理系统 系统功能: 1.实现所有学生成绩的录入(利用结构体数组),当输入字符为end时候,结束成绩的录入:  2.实现所有学生信息的输出  3.输入指定学生姓名,并能输出这名学生的信息  4.将学生成绩按照语文和数学成绩排序 思路: 1. 首先,先把这个小项目的框架打好.考虑要写几个文件,每一个文件里面实现怎样的功能.考虑到这个小项目的代码量以及程序的易读性,我决定将写三个文件.一

  • java实现简单学生成绩管理系统

    本文实例为大家分享了java实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 /*  *@copyright by LzyRapx on 2016/4/12.  *@name:java学生成绩管理系统.  *@功能:学生相关信息,录入,查询,统计,修改等....  *@PS:图形界面的学生管理系统不要求就不做了.  */   import java.util.Scanner; import java.lang.*; import java.io.*; class Student {   

  • C语言实现简单学生成绩管理系统项目

    本文实例为大家分享了C语言实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 系统界面及相关要求 1)系统运行,打开如下界面.列出系统帮助菜单(即命令菜单),提示输入命令. 2)开始时还没有录入成绩,所以输入命令 L 也无法列出成绩.应提示“成绩表为空!请先使用命令 T 录入学生成绩.” 同理,当输入其他的成绩处理命令时也作相应的处理. 3)输入命令 T,调用Type子函数录入成绩. 界面提示输入学生人数 输入3 提示输入3名学生的3门课成绩,列出成绩单的表头“学号 语文 数学 英语”,提

  • Python实现学生成绩管理系统

    本文实例为大家分享了Python实现学生成绩管理系统的具体代码,供大家参考,具体内容如下 基本功能: 输入并存储学生的信息:通过输入学生的学号.姓名.和分数,然后就可以把数据保存在建立的student文件里面. 打印学生的所有信息:通过一个打印函数就可以把所有的信息打印在屏幕上. 修改学生信息:这个功能首先通过查询功能查询出该学生是否存在,如果存在就对该学生的信息进行修改,如果不存在则返回到主界面. 删除学生信息:该功能是对相应的学生进行删除操作,如果学生存在就查找到进行删除. 按学生成绩进行排

随机推荐