做一个c++的小学生管理系统,要有一个学生类,成绩类和课程类,这三个类应该是什么关系呢

作者&投稿:潮废 (若有异议请与网页底部的电邮联系)
用C++做一个学生管理系统~

我也是一模一样的题,你有代码了吗

如果你是计算机系的学生真的希望你不要完全复制,做下参考自己编写出来才能有所收获,这是对你的将来负责;如果你只是应付一下作业,那就随便了。

# include
# include
# include
#include //用getch();
using namespace std;

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Student
{
public:
char name[20];
char Id[20];
int Cnum; //C课程得分
int Mnum; //数学课程得分
int Enum; //英语课程得分
int sum; //总分
Student * Next;
void Input()
{
cout>name;
cout>Id;
cout>Cnum;
cout>Mnum;
cout>Enum;
sum=Cnum+Mnum+Enum;
}
void ReadFile(istream & in)
{
in>>name>>Id>>Cnum>>Mnum>>Enum>>sum;
}
void Show()
{
cout<<"姓名:"<<name<<endl<<"学号:"<<Id<<endl<<"C++:"<<Cnum<<endl
<<"数学:"<<Mnum<<endl<<"外语:"<<Enum<<endl<<"总成绩:"<<sum<<endl<<endl<<endl;
}
};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage类﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
class Studentmassage
{
public:
Studentmassage();
~Studentmassage();
void ShowMenu();
void Find();
void Save();
void ModifyItem();
void RemoveItem();
void Swap(Student *,Student *);
void Sort();
//void Unpass();
int ListCount();
//void Average();
void Display()
{
for(Student * p=Head->Next;p!=End;p=p->Next)
p->Show();
cout<<"输入任意字符!继续……";
getch();
}
void AddItem()
{
End->Input();
End->Next=new Student;
End=End->Next;
cout<<"添加成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
private:
Student * Head,* End;
ifstream in;
ofstream out;
Student *FindItem(char * name)
{
for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->name,name))return p;
return NULL;
}
Student *FindID(char * Id)
{
for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功则返回上一个指针,不成功就返回空
if(!strcmp(p->Next->Id,Id))return p;
return NULL;
}
};

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌构造函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::Studentmassage()
{
Head=new Student;
Head->Next=new Student;
End=Head->Next;
in.open("sort.txt");
if(!in)
cout<<"这是一个新系统,无学生信息。请先输入。"<<endl;
else
{
while(!in.eof())
{
End->ReadFile(in);
if(End->name[0]=='\0')break;
End->Next=new Student;
End=End->Next;
}
in.close();
cout<<"读取学生信息成功!"<<endl;
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析构函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
Studentmassage::~Studentmassage()
{
Save();
for(Student * temp;Head->Next!=End;)
{
temp=Head->Next;
Head->Next=Head->Next->Next;
delete temp;
}
delete Head,End;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜单﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ShowMenu()
{
cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 学 生 成 绩 管 理 系 统 ☆ 〓〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增加学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 2.显示学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.排序统计成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查找学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.删除学生成绩 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.修改学生信息 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;
cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系统 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;

cout<<"

请选择:";
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Find()
{
char name[20] ,Id[10];
int x;
Student * p=NULL;
cout<<"
*********************************
";
cout<<"※ 1.按学生的姓名查找
※ 2.按学生学号查找";
cout<<"
*********************************
请选择:";
cin>>x;
switch(x)
{
case 1:{cout>name;
if(p=FindItem(name))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"没有找到该姓名的学生!"<<'
'<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}break;
case 2:
{
cout>Id;
if(p=FindID(Id))
{
p->Next->Show();
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"没有找到该学好的学生!"<<'
'<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}break;
}

}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::ModifyItem() //修改信息
{
char name[20];
Student * p=NULL;
cout>name;
if(p=FindItem(name))
{
cout<<"已找到学生的信息,请输入新的信息!"<<endl;
p->Next->Input();
cout<<"修改成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"没有找到!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌删除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::RemoveItem() // 删除信息
{
char name[20];
Student * p=NULL,*temp=NULL;
cout>name;
if(p=FindItem(name))
{
temp=p->Next;
p->Next=p->Next->Next;
delete temp;
cout<<"删除成功!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
else
{
cout<<"没有找到!"<<endl;
cout<<"输入任意字符!继续……";
getch();
}
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Swap(Student *p1, Student *p2)//交换两个combox变量的数据域
{
Student *temp=new Student;
strcpy(temp->name,p1->name);
strcpy(temp->Id,p1->Id);
temp->Cnum=p1->Cnum;
temp->Mnum=p1->Mnum;
temp->Enum=p1->Enum;
temp->sum=p1->sum;

strcpy(p1->name,p2->name);
strcpy(p1->Id,p2->Id);
p1->Cnum=p2->Cnum;
p1->Mnum=p2->Mnum;
p1->Enum=p2->Enum;
p1->sum=p2->sum;

strcpy(p2->name,temp->name);
strcpy(p2->Id,temp->Id);
p2->Cnum=temp->Cnum;
p2->Mnum=temp->Mnum;
p2->Enum=temp->Enum;
p2->sum=temp->sum;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int Studentmassage::ListCount()//统计当前链表的记录总数,返回一个整数
{
if(! Head)
return 0;
int n=0;
for(Student * p=Head->Next;p!=End;p=p->Next)
{
n++;
}
return n;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Sort()//对当前链表进行排序
{
cout <<"Sorting..."<<endl;
Student *p=NULL,*p1=NULL,*k=NULL;
int n=Studentmassage::ListCount();
if(n<2)
return;
for(p=Head->Next;p!=End;p=p->Next)
for(k=p->Next;k!=End;k=k->Next)
{
if(p->sum>k->sum)
{
Studentmassage::Swap(p,k);
}
}
cout <<"排序完成!"<<endl;
getch();
return;
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
void Studentmassage::Save()
{
out.open("sort.txt");
for(Student *p=Head->Next;p!=End;p=p->Next)
outnameIdCnum<<""
MnumEnumsum<<'
';
out.close();
}

//﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌主函数﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
int main()
{
int x,i=0;
bool quit=false;
cout<<"§§§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;
for(i=0;i<3;i++)
cout<<"◎ ◎"<<endl;
cout<<"◎★★★★【 欢迎进入学生成绩管理系统 】★★★★◎"<<endl;
for(i=0;i<3;i++)
cout<<"◎ ◎"<<endl;
cout<<"§§§§§§§§§§§§§§§§§§§§§§§§§§
"<<endl;;
Studentmassage Grade;
cout<<"按任意键开始……";
getch();
while(!quit)
{
system("cls");
Grade.ShowMenu();
cin>>x;
switch(x)
{
case 0:quit=true;break;
case 1:Grade.AddItem();break;
case 2:Grade.Display();break;
case 3:Grade.Sort();break;
case 4:Grade.Find();break;
case 5:Grade.RemoveItem();break;
case 6:Grade.ModifyItem();break;
}
}
return 0;
}
打字不易,如满意,望采纳。

可以有两种做法:
第一种:成绩类是学生类和课程类的关联类。
第二种:成绩类作为具体类,与学生类和课程类都有关联。

课程学生成绩的关系

组合


杭州一小学生期末考了95,为何却被评级为C等?
现在小学生的单科成绩总分是100分,如果能考上90分其实就算不错了,但是在杭州有一位小学生期末考了95分,结果评级却是C等,这让孩子和妈妈都傻眼了,而这位妈妈经过四处打探才知道,不光自己孩子成绩考得好,班上其他同学考得更好,很多人都是考得满分或者99 98也有很多,那么考95分只能往后排了。...

小学生字母表大写和小写
小学生字母表大写和小写如下如所示:拉丁字母(罗马字母)是目前世界上流传最广的字母体系,源自希腊字母。拉丁字母、阿拉伯字母、斯拉夫字母(西里尔字母)被称为世界三大字母体系。西方大部分国家和地区已经使用拉丁字母。中国汉语拼音方案也已采用拉丁字母,中国部分少数民族(如壮族)创制或改革文字也采用拉丁字...

怎样判断一个小学生的学业成绩是否优秀
当小学成绩是百分制时,60(包括60)<及格<80;80(包括80)<良好<90;90(包括90)<优秀<=100,具体是按照满分成绩的百分比来计算的,当成绩达到60%时视为及格,到达80%时视为良好,达到90%时视为优秀,满分也在优秀之列。学生学业成绩采用百分制,各学科成绩,以平时考查和期中考试占该学期成绩...

小学生考试c是多少分
60-70分。A等级是九十分以上,B等级是七十之八十九,C等级是六十到七十,D等级是六十分以下。等级的分数范围和常用的优、良、中、差一样,1-2年级和3、4、5年级标准不太一样。既然是分等级,而不是评分数,那和老师的主观印象也是分不开的,但基本上是参照下面的标准。

我是一个五年级的小学生,要想学习C语言要多长时间?
五年级的学生能有这种想法的话值得鼓励,学习一门语言需要付出的很多,如果坚持下去的话在以后的时间里你只会觉得自己知道的实在是太少了。c语言博大精深,需要长期坚持不懈的努力与钻研,如果只是要求入门的话,一个学期就差不多了,只要用好课余时间,多看看c的书,如果能有老师的帮助那就最好了。因...

我是一个小学生,很多人都说入门学C语言,但是C对于小学生来说会不会难...
C的话,我觉得对你来说抽象了一些,它不是一门面向对象的语言,确切的来说,入门的话,不推荐用C,但这并不代表C不重要,恰恰相反,万变不离C,就像武侠小说里的,天下武功出少林,C语言就是那个"少林"你现在才5年级,我不知道你的性格是怎样,因此我帮你设计了两条学习编程的道路,你可以按照你的性格去...

我是一个五年级的小学生,想学编程(C语言)谁能给我推荐一些软件和一些...
推荐你一本书。网上也有电子版的。《21天学通C语言》,《21天学通C++》。好几个版本呢。是人民邮电出版社出的。网上也有随书光盘下载。

有一部动漫是讲校园的,里面有5个男的,女的不知道,那部动漫开头是c 的...
《CLAMP学园侦探团》。《CLAMP学园侦探团》改编自CLAMP创作的少女漫画,是一部解决学园内纠纷的喜剧作品。电视动画由Studio Pierrot制作,全26集,于1997年5月3日-10月25日在东京电视台播出。还在台湾、香港以及东南亚等地播映。剧情:CLAMP学园是由妹之山财团所投资设立如城市般的学园。妹之山财团理事长...

小学生成绩等级制是什么?
个别地方的学校采用的是分ABC三等的评定标准,对应的等级多为优秀、良好与及格,与前面的分ABCD类似。ABC三个等级对应的分数段分不同情况,建议各位家长以学校定的等级标准为准 。一、85分及以上为A,70分-84分属于B(良好)的等级,60分-69分为C或者及格。二、90-100分评定为A,75-89分属于B...

小学生考试中得分ABC各指多少分?
1-2年级:A 等级90以上; B等级75以上 ;C等级60以上;D等级60以下。3-5年级: A等级85以上; B等级70以上;C等级60以上;D等级60以下。小学生考试注意事项:在考试的前一天晚上,是人容易失眠的夜晚,所以在这个晚上不要暴饮暴食,要合理饮食,确保可以在晚上9点左右入睡,以保证第二天有充足的...

平塘县19499018429: C++写学生管理系统程序,要用到什么知识? -
剧欢福路: 1、界面,如果要在WINDOWS下运行的话,建议用MFC或做程序界面. 2、数据存贮方式,建议用数据库.即用C++ 、ADO来操作数据库.3、如果你的“学生管理系统”仅仅是作业级别的.那就用结构体(类)+链表吧,做一个“学生”类,然后后链表串起来,就成了一个作业级别的学生管理系统.4、做一个实用级别的学生管理程序,除了基础C++,最起码还需要会 数据库编程和MFC

平塘县19499018429: 用C++弄学生管理系统,要求有添加,删除,修改,查询,检索等功能....... -
剧欢福路: 链表#include #include #define LEN sizeof(struct student) /*----------------数据定义----------------------*/ //定义一个学生信息的结构体,包括学号,姓名和结构体类型的指针 struct student { long num; //学号 char name[128]; //姓名 struct student *next;...

平塘县19499018429: 想用c++做一个新生入学管理系统,需要哪些相关知识 -
剧欢福路: 1、基础的C语言代码书写2、基础的输入输出3、基础的文件操作(对数据的存储、调取、删除)4、基础的搜索算法5、基础的排序算法6、建议使用结构体

平塘县19499018429: C++做一个简单的学生信息管理系统 -
剧欢福路: #include #include #include #include"StuInfoVec.h" #include"StuInfoMananger.h" using namespace std; /************************************************* *功能:显示欢迎画面,并开始进行用户交互处理 ************************************************/ ...

平塘县19499018429: VC++怎么弄个学生管理系统 -
剧欢福路: ////下面这个是我曾经写过的,有点类似,我就贴出来给你了./* 数据描述:学号 姓名 班级 高数 英语 总分 程序完成功能:(1) 浏览数据 (2) 增加数据 (3) 修改数据 (4) 查询数据(按姓名,按总分) (5) 退出*/ #include<iostream>#...

平塘县19499018429: C++的编程 关于一个小小的学生管理系统 要用到类定义 100分 紧急 -
剧欢福路: <p>东西是我当年自己做的,比你要的多两个模块不需要的自己看着减掉,应该能符合你的要求.头文件附上:</p> <p>#ifndef _ks #define _ks class list; class person { protected: int number; char *name; char sex; int age; char *department; ...

平塘县19499018429: 用C语言制作一个“学生成绩管理”的小型软件系统. -
剧欢福路: #include "stdio.h" #include "stdlib.h" #include "string.h" int shoudsave=0; /* */ struct student { char num[10];...

平塘县19499018429: 设计一个学生管理系统,假设每个学生包括如下信息:学号,姓名,各门课成绩(数学,英语,C++) -
剧欢福路: 首先你要有一个登录功能,登陆成功进入学生列表 列表显示全部学生信息,也支持按学号或姓名的模糊查询 ,并进行排序 每条列表后面有一个删除按钮和修改按钮 删除按钮直接根据id删除,修改按钮进入修改页面,工具栏有添加学生信息功能 进入添加页面 修改删除,新增后都要生成 记录文件.dat,每次覆盖掉旧的dat,你不覆盖也可以 然后还有注销功能

平塘县19499018429: 求助高人、运用C++编写学生信息管理系统 -
剧欢福路: #include <iostream>#include <cstring> using namespace std; struct student { int no; char name[30]; int math,computer,english,physics; }stu[100]={0,"0",0,0,0,0}; void setup(); int lookfor(int m); void edit(); void Delete(); int main() { loop:cout<<"****...

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