首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

C++课程设计,学生成绩管理系统,求完美。800里加急

2013-09-14 
C++课程设计,学生成绩管理系统,求完善。800里加急啊求大神们帮忙,按我的思路帮我整理一下代码,我急用#inclu

C++课程设计,学生成绩管理系统,求完善。800里加急啊
求大神们帮忙,按我的思路帮我整理一下代码,我急用C++课程设计,学生成绩管理系统,求完美。800里加急


#include<iostream>
#include<string>
#include<fstream>
const int MAX=50;
using std::cin; using std::cout; using std::endl; 
using std::ifstream; using std::ofstream; using std::istream; using std::ostream;
using std::string; using std::ios;
class Student                   //学生类
{
protected:
int num;
string name;
char sex;
int age;
string grade;
public:
Student(int n=2013999,string nm=" ",char s='m',int a=19,string g="1")
:num(n),name(nm),sex(s),age(a),grade(g){}

virtual void SetStudent()=0;
virtual void ShowStudent()=0;
virtual void Show_school()=0;
int Get_num(){return num;}
string Get_name(){return name;}
};
void Student::SetStudent()
{
cout<<"学号(7位):";   cin>>num;
cout<<"姓名:";   cin>>name;
cout<<"性别(m/f):";   cin>>sex;
cout<<"年龄:";   cin>>age;
cout<<"班级:";   cin>>grade;
}



class Primary:public Student              //小学生类
{
protected:
double Chinese;
double math;
double English;
public:
Primary(int n=2013999,string nm=" ",char s='m',int a=19,string g="1",double C=0,double m=0,double E=0)
  :Student(n,nm,s,a,g),Chinese(C),math(m),English(E){}

void Show_school();
void SetStudent();
void ShowStudent();
double Total();
double Ave();

//friend istream & operator >>(istream &,Primary &);
//friend ostream & operator <<(ostream &,Primary &);
};
double Primary::Total()
{
return (Chinese+math+English);
}
double Primary::Ave()
{
return (Total()/3);
}
void Primary::Show_school()
{
cout<<"\n\n**********************Primary STUDENT SCORES***********************************\n"
<<"|  NO.  | name |sex| age |  grade  | Chinese | math |English| total | average |\n"
<<"|-------|------|---|-----|---------|---------|------|-------|-------|---------|\n";


}
void Primary::SetStudent()
{
Student::SetStudent();
cout<<"语文成绩:";     cin>>Chinese;
cout<<"数学成绩:";     cin>>math;
cout<<"英语成绩:";     cin>>English;
}
void Primary::ShowStudent()
{
cout<<"|";
cout.width(7);
cout<<num<<"|";
cout.width(6);
cout<<name<<"|";
cout.width(3);
cout<<(sex=='m'?"男":"女")<<"|";
cout.width(5);
cout<<age<<"|";
cout.width(9);
cout<<grade<<"|";
cout.width(9);
cout<<Chinese<<"|";
cout.width(6);
cout<<math<<"|";
cout.width(7);
cout<<English<<"|";
cout.width(7);
cout<<Total()<<"|";
cout.width(9);
cout.precision(2);
cout<<Ave()<<"|\n"
<<"*******************************************************************************\n";
}


class Man_pri
{
protected:
Primary Pri[MAX];
int top;
public:
Man_pri(){top=0;}
void Add();          //实现该类记录的添加;
void Show();         //实现该类所有记录的显示; 
void Search();       //实现该类记录的查询;
void Edit();         //实现实现该类记录的删除;该类记录的修改;
void Delete();       //
//double Total();      //实现该类记录的统计;
void Save();         //将该类记录保存到文件;
void Read();         //可从文件中将记录读取到该类的数组中;
int Check(int n);
};

int Man_pri::Check(int n)
{
int m=0;
    while(m<=top)
    if(n==Pri[m++].Get_num())
    {
     return 1;
     break;
    }
    if(m>top+1)
     return 0;
    else 
     return 1;
}
void Man_pri::Add()
{
if(top>=MAX)
{
cout<<"内存空间已满,用户不能再继续添加信息!"<<endl;
return;
}
Primary p1,p2;
p1.SetStudent();
//判断新添加的人员的编号在已有的记录中是否重复
……
//如果该记录的编号已存在,提示用户该编号的人员已存在!并返回;
……
//如果该记录的编号不存在,则将其信息存入数组中,并修改top的值;
……
//完成添加后,提示“添加成功!”;
……
}

void Man_pri::Show()
{
………………//对输出进行提示,然后输出当前数组中已存储的记录的信息;
for(i=0;i<top;i++)


Tea[i].Output();
…………
}
void Man_pri::Search()
{
//如果当前系统中没有存储记录,则直接提示信息,并返回;
//选择查询方式,一般可提供多种查询方式,例如按编号或按姓名等
//然后按照相应的查询方式,对Tea数组中的top条记录进行查询;
………………
//查询结果分成两种情况:如果没有找到相应的记录,可提示“查无此人!”;
//如果找到了相应的记录,则显示相应的记录的信息即可。
………………
}
void Man_pri::Edit()
{
//如果当前系统中没有存储记录,则直接提示信息,并返回;
//修改之前必须先查询到要修改的记录,如果没有,则提示“查无此人”;
//如果找到了要修改的记录,则提示进行修改,修改完成后提示“修改成功!”
………………
//修改的时候注意,最好不提供对编号的修改,如果提供了对编号的修改,则需
//判定修改后的编号是否与已有的记录重复,即保持编号的唯一性
………………
}
void Man_pri::Delete()
{
//如果当前系统中没有存储记录,则直接提示信息,并返回;
//删除之前必须先查询到要删除的记录,如果没有,则提示“查无此人”;
//如果找到了要删除的记录,则需对删除的行为进行确认;
//如果确认要删除该记录,则将该记录之后的记录依次向前移动,之后将top的值减一;
………………
}
void Man_pri::Save()
{
//保存的功能是将数组中前top条记录写入到文件中;
//写入完成之后,提示写入成功!
…………
}
void Man_pri::Read()
{
//该函数的功能是将文件中的记录依次读入到当前的数组中,注意对top的操作控制;
//读取完成之后,提示读取成功!
…………
}

int main()
{
return 0;
}

C++ 课程设计 学生成绩管理
[解决办法]
眼看着自己的积分不够用,很是着急,心想着去帮别人解决问题来获取积分,于是看到了这个悬赏40分的帖子。仔细观察了一下:1、楼主还没有结贴;2、楼下还没人认真正地给出答案。我窃喜,难道这100分我能够收入囊中?二话没说,把楼主的代码复制,粘贴到了bcb6.0。做完第一个添加一条记录的时候,心里突然有了顾虑,这帖子什么时候的!尼玛,翻帖一看,“发表于: 2013-06-18 21:35:05”伤透了。看到楼主的结贴率:0%,看来楼主一时半会也不会再来了。蛋疼菊紧。
     6月18日,正是学期末尾。现在都8月份了,这孩子早放假在家玩dnf了,目测没到60级。看到楼主的名字:素颜依然很美,再加上6楼楼主的回复“谢了,哥们,你要是能帮我写出来就更好了。。。”判断楼主是男的。这个帖子问的是c++,楼主应该上的大学,读的是计算机科学与技术专业,应该大二了。
     我为什么要把没写完的代码传上来。我断定楼主如果毕业了,将来如果投身编程的话,一定会重新回到csdn论坛,到时候看到这个帖子还没结,肯定要结,到时候我的积分就有可能增加了。

#include<iostream>
#include<string>
#include<fstream>
#include <conio.h>
const int MAX=50;
using std::cin; using std::cout; using std::endl;
using std::ifstream; using std::ofstream; using std::istream; using std::ostream;
using std::string; using std::ios;
class Student                   //学生类
{
protected:
int num;
string name;
char sex;
int age;


string grade;
public:
Student(int n=2013999,string nm=" ",char s='m',int a=19,string g="1")
:num(n),name(nm),sex(s),age(a),grade(g){}

virtual void SetStudent()=0;
virtual void ShowStudent()=0;
virtual void Show_school()=0;
int Get_num(){return num;}
string Get_name(){return name;}
};
void Student::SetStudent()
{
cout<<"学号(7位):";   cin>>num;
cout<<"姓名:";   cin>>name;
cout<<"性别(m/f):";   cin>>sex;
cout<<"年龄:";   cin>>age;
cout<<"班级:";   cin>>grade;
}



class Primary:public Student              //小学生类
{
protected:
double Chinese;
double math;
double English;
public:
Primary(int n=2013999,string nm=" ",char s='m',int a=19,string g="1",double C=0,double m=0,double E=0)
  :Student(n,nm,s,a,g),Chinese(C),math(m),English(E){}

void Show_school();
void SetStudent();
void ShowStudent();
double Total();
double Ave();

//friend istream & operator >>(istream &,Primary &);
//friend ostream & operator <<(ostream &,Primary &);
};
double Primary::Total()
{
return (Chinese+math+English);
}
double Primary::Ave()
{
return (Total()/3);
}
void Primary::Show_school()
{
cout<<"\n\n**********************Primary STUDENT SCORES***********************************\n"
<<"
[解决办法]
  NO.  
[解决办法]
 name 
[解决办法]
sex
[解决办法]
 age 
[解决办法]
  grade  
[解决办法]
 Chinese 
[解决办法]
 math 
[解决办法]
English
[解决办法]


 total 
[解决办法]
 average 
[解决办法]
\n"
<<"
[解决办法]
-------
[解决办法]
------
[解决办法]
---
[解决办法]
-----
[解决办法]
---------
[解决办法]
---------
[解决办法]
------
[解决办法]
-------
[解决办法]
-------
[解决办法]
---------
[解决办法]
\n";
}
void Primary::SetStudent()
{
Student::SetStudent();
cout<<"语文成绩:";     cin>>Chinese;
cout<<"数学成绩:";     cin>>math;
cout<<"英语成绩:";     cin>>English;
}
void Primary::ShowStudent()
{
cout<<"
[解决办法]
";
cout.width(7);
cout<<num<<"
[解决办法]
";
cout.width(6);
cout<<name<<"
[解决办法]
";
cout.width(3);
cout<<(sex=='m'?"男":"女")<<"
[解决办法]
";
cout.width(5);
cout<<age<<"
[解决办法]
";
cout.width(9);
cout<<grade<<"
[解决办法]
";
cout.width(9);
cout<<Chinese<<"
[解决办法]
";
cout.width(6);
cout<<math<<"
[解决办法]


";
cout.width(7);
cout<<English<<"
[解决办法]
";
cout.width(7);
cout<<Total()<<"
[解决办法]
";
cout.width(9);
cout.precision(2);
cout<<Ave()<<"
[解决办法]
\n"
<<"*******************************************************************************\n";
}


class Man_pri
{
protected:
Primary Pri[MAX];
int top;
public:
Man_pri(){top=0;}
void Add();          //实现该类记录的添加;
void Show();         //实现该类所有记录的显示;
void Search();       //实现该类记录的查询;
void Edit();         //实现实现该类记录的删除;该类记录的修改;
void Delete();       //
//double Total();      //实现该类记录的统计;
void Save();         //将该类记录保存到文件;
void Read();         //可从文件中将记录读取到该类的数组中;
int Check(int n);
void GUI();
};
void Man_pri::GUI()
{ int index;
  cout<<"学生管理系统"<<endl;
  cout<<"1:显示所有记录"<<endl;
  cout<<"2:添加一条记录"<<endl;
  cin>>index;
  if(index==1)
  cout<<"1"<<endl;
  else if(index==2)
  Add();
}
int Man_pri::Check(int n)
{
int m=0;
    while(m<=top)
    if(n==Pri[m++].Get_num())
    {
     return 1;
     break;
    }
    if(m>top+1)
     return 0;
    else 
     return 1;
}
void Man_pri::Add()
{
if(top>=MAX)
{
cout<<"内存空间已满,用户不能再继续添加信息!"<<endl;
return;
}
Primary p1,p2;
p1.SetStudent();
//判断新添加的人员的编号在已有的记录中是否重复

//如果该记录的编号已存在,提示用户该编号的人员已存在!并返回;

//如果该记录的编号不存在,则将其信息存入数组中,并修改top的值;

//完成添加后,提示“添加成功!”;

}

void Man_pri::Show()
{
//对输出进行提示,然后输出当前数组中已存储的记录的信息;
for(int i=0;i<top;i++)
Pri[i].ShowStudent();

}
void Man_pri::Search()
{
//如果当前系统中没有存储记录,则直接提示信息,并返回;


//选择查询方式,一般可提供多种查询方式,例如按编号或按姓名等
//然后按照相应的查询方式,对Tea数组中的top条记录进行查询;

//查询结果分成两种情况:如果没有找到相应的记录,可提示“查无此人!”;
//如果找到了相应的记录,则显示相应的记录的信息即可。

}
void Man_pri::Edit()
{
//如果当前系统中没有存储记录,则直接提示信息,并返回;
//修改之前必须先查询到要修改的记录,如果没有,则提示“查无此人”;
//如果找到了要修改的记录,则提示进行修改,修改完成后提示“修改成功!”

//修改的时候注意,最好不提供对编号的修改,如果提供了对编号的修改,则需
//判定修改后的编号是否与已有的记录重复,即保持编号的唯一性

}
void Man_pri::Delete()
{
//如果当前系统中没有存储记录,则直接提示信息,并返回;
//删除之前必须先查询到要删除的记录,如果没有,则提示“查无此人”;
//如果找到了要删除的记录,则需对删除的行为进行确认;
//如果确认要删除该记录,则将该记录之后的记录依次向前移动,之后将top的值减一;

}
void Man_pri::Save()
{
//保存的功能是将数组中前top条记录写入到文件中;
//写入完成之后,提示写入成功!

}
void Man_pri::Read()
{
//该函数的功能是将文件中的记录依次读入到当前的数组中,注意对top的操作控制;
//读取完成之后,提示读取成功!

}


//---------------------------------------

#pragma hdrstop

//---------------------------------------

#pragma argsused
int main()
{
        Man_pri ma;
        ma.GUI();
        getch();
        return 0;
}

热点排行