跪求一学生成绩管理系统的c++程序!!急急急!

老师要我们搞一个程序设计,就是编写一个学生成绩管理系统的c++程序,要用到数据结构,类,变量,函数
功能需求:
1.能够从屏幕上读取一个学生的信息并将信息存入到数据文件中
2.能够将指定的学习从文件中删除
3.能够按编号,姓名对学生的信息进行检索并将检索结果现实在屏幕上
4.可以统计全部学生的总成绩,机器在班上的排名
5.能够统计各科的平均成绩及及格率
6要求有错误提示功能,例如性别只能输入男女性别只能输入男女,输入错误提示重新输入
设计三个类,一个基本信息类,包括学籍号,系名,班级名,姓名,性别,家庭住址,年龄等信息的管理;一个课程信息类,包括课程编号,课程名称,课程类别,学分,考核方式等的信息的管理;一个成绩信息类,包括学籍号,课程编号,考试成绩,成绩说明等信息的管理。
希望答题者认真看好上面的程序功能再写程序,希望有高手能编出具有这些功能的c++程序!
把系统实现的过程写一下,或者吧系统功能图画出来!
windows下的!

1、分别编写成员函数用于实现对档案信息的输入、输出与修改(注:不能修改档案编号,档案编号应该自动生成)。

2、以此档案类为基类公有派生出学生档案类,其中包含学生的学号、姓名、性别、年龄、3门课程成绩数据;定义成员函数用于实现数据的输入、输出与修改(注:不能修改学号)。

3、以此档案类为基类公有派生出教师档案类,其中包含教师的教工号、姓名、性别、年龄、工资数据;定义成员函数用于实现数据的输入、输出与修改(注:不能修改教工号)。

4、可以实现对10个学生和10个教师的档案操作(输入、输出、修改)。

#include <iostream>

class Document
{
public:
Document() {}
virtual void Input();
virtual void Output();
virtual void Modify();
int Id() {return _number;}
private:
int _number;
char _name[18];
char _sex;
int _age;
};

void Document::Input()
{
std::cout << "number: " << std::endl;
std::cin >> _number;
std::cout << "name: " << std::endl;
std::cin >> _name;
std::cout << "sex: " << std::endl;
std::cin >> _sex;
std::cout << "age: " << std::endl;
std::cin >> _age;
}

void Document::Output()
{
std::cout << "number: " ;
std::cout << _number << std::endl;
std::cout << "name: ";
std::cout << _name << std::endl;
std::cout << "sex: ";
std::cout << _sex << std::endl;
std::cout << "age: ";
std::cout << _age << std::endl;
}

void Document::Modify()
{
std::cout << "number: " << std::endl;
std::cout << _number << std::endl;
std::cout << "name: " << std::endl;
std::cin >> _name;
std::cout << "sex: " << std::endl;
std::cin >> _sex;
std::cout << "age: " << std::endl;
std::cin >> _age;
}

class Student: public Document
{
public:
Student(Student* pNext) {_pNext = pNext;}
void Input();
void Output();
void Modify();
Student* Next() {return _pNext;}
int FindId() {return Document::Id();}
private:
double _score[3];
Student* _pNext;
};

void Student::Input()
{
std::cout << "------------------------------------" << std::endl;
Document::Input();
std::cout << "score: " << std::endl;
for (int i = 0; i < 3; ++i) {
std::cin >> _score[i];
}
}

void Student::Output()
{
std::cout << "----------------------------------" << std::endl;
Document::Output();
std::cout << "score: " << std::endl;
for (int i = 0; i < 3; ++i) {
std::cout << _score[i] << std::endl;
}
}

void Student::Modify()
{
Document::Modify();
std::cout << "score: " << std::endl;
for (int i = 0; i < 3; ++i) {
std::cin >> _score[i];
}
}

class DataBase
{
public:
DataBase():_pHead(0) {}
void Add();
void Display();
Student* GetHead() const {return _pHead;}
private:
Student* _pHead;
};

void DataBase::Add()
{
Student* pStudent = new Student(_pHead);
pStudent->Input();
_pHead = pStudent;
}

void DataBase::Display()
{
std::cout << "输入号码:" << std::endl;
int tmpNum;
std::cin >> tmpNum;
bool bFind = false;
for (Student* pStudent = GetHead();
pStudent != 0;
pStudent = pStudent->Next()) {
if (tmpNum == pStudent->FindId()) {
std::cout << "已经找到" << std::endl;
bFind = true;
char c;
std::cout << "修改输入 m" << std::endl;
std::cout << "打印输入 p" << std::endl;
std::cin >> c;
switch(c) {
case 'p': pStudent->Output(); break;
case 'm': pStudent->Modify(); break;
default: std::cout << "输入错误" << std::endl;
}
break;
}
}
if (!bFind) {
std::cout << "号码输入错误,没有找到" << std::endl;
}
}

void main(int argc, char * argv[])
{
DataBase stDataBase;
stDataBase.Add();//这里你可以改成for循环就可以生成10个学生档案
stDataBase.Add();
stDataBase.Add();
stDataBase.Display();
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-12-27
这位同学,你也是严**麾下的吧。。。。。。
在百度上问题目很快就会被查出来的。。。。。。
第2个回答  2008-12-27
跪,你给我跪到1月1日,我保证脚给你答案。
还是老实自己写
第3个回答  2008-12-27
DOS下的还是windows下的?
第4个回答  2008-12-27
就十分就帮你写,累死人!

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网