c++高手进!
实验考试成绩信息系统一、实验目的通过用C++编写一个学生考试成绩信息系统,强化面向对象程序设计思想,使学生能够将C++程序设计中的面向对象、重载、模板、文件等各种概念,灵...
实验 考试成绩信息系统
一、实验目的
通过用C++编写一个学生考试成绩信息系统,
强化面向对象程序设计思想,使学生能够将C++
程序设计中的面向对象、重载、模板、文件等各种
概念,灵活的运用到实际的程序设计中去。
二、实验要求
1)录入课程和选课学生的信息;
2)录入成绩
3)学生信息和成绩的修改;
4)统计学生成绩;
5)成绩排序;按成绩排序
6)统计成绩分布功能:即各成绩段学生的数量:“优”:90~100;“良”:80~90;“中”:70~80;“及格”:60~70;“不及格”60。并输出统计分布结果;
7)查找:能够查找指定学生的各门成绩和平均分及其名次;
三、实验原理
实验使用面向对象的设计思想,在学生成绩考试
系统中,主要涉及的是学生和课程,对于所有的学
生,都具有共性,因此可以抽象为一个学生类,同
理可以得到课程类。
1.类的设计:实验首先设计两个类:学生类和课程类,并根
据面向对象的信息隐蔽原则,设置相应的类成员的访问属性。
(1)学生类
(a)属性:主要包括学生的个人信息,包括学号、姓名、班级、成绩等。
(b)操作:学生信息的输入、输入函数,学生成绩的设置和获取函数。
(2)课程类
(a)属性:主要包括课程号、课序号、学分、任课教师、选课人数、学生成绩表。
(b)操作:包括课程信息的录入、录入选课学生信息、录入选课学生的成绩,(若成绩为-1表示缺考),成绩分析、成绩排序、显示课程及选课学生信息等。
2. 类模板和函数模板的设计:
(1)数组类模板的设计:对于某一门课,选课的学
生很多,可定义一个数组模板,并将数组模板实例
化为学生对象数组。
(2)无论对什么数据类型的排序,使用的排序算法
都是一样的,因此需要定义一个函数模板,用学生
类实例化,实现学生的成绩排序,排序算法可选用
插入排序、冒泡排序或者选择排序等。
3.运算符重载的设计
(1)学生的信息和成绩以及选课信息要求写入
文件并在需要时从文件中读出,需要重载插入、提取
运算符“<<、>>”。
(2)学生成绩排序要对学生对象进行比较、赋值
等操作,而类实际上是一种复杂数据类型,因此上
述这些操作要通过运算符重载(==、<、 >)来实
现。 展开
一、实验目的
通过用C++编写一个学生考试成绩信息系统,
强化面向对象程序设计思想,使学生能够将C++
程序设计中的面向对象、重载、模板、文件等各种
概念,灵活的运用到实际的程序设计中去。
二、实验要求
1)录入课程和选课学生的信息;
2)录入成绩
3)学生信息和成绩的修改;
4)统计学生成绩;
5)成绩排序;按成绩排序
6)统计成绩分布功能:即各成绩段学生的数量:“优”:90~100;“良”:80~90;“中”:70~80;“及格”:60~70;“不及格”60。并输出统计分布结果;
7)查找:能够查找指定学生的各门成绩和平均分及其名次;
三、实验原理
实验使用面向对象的设计思想,在学生成绩考试
系统中,主要涉及的是学生和课程,对于所有的学
生,都具有共性,因此可以抽象为一个学生类,同
理可以得到课程类。
1.类的设计:实验首先设计两个类:学生类和课程类,并根
据面向对象的信息隐蔽原则,设置相应的类成员的访问属性。
(1)学生类
(a)属性:主要包括学生的个人信息,包括学号、姓名、班级、成绩等。
(b)操作:学生信息的输入、输入函数,学生成绩的设置和获取函数。
(2)课程类
(a)属性:主要包括课程号、课序号、学分、任课教师、选课人数、学生成绩表。
(b)操作:包括课程信息的录入、录入选课学生信息、录入选课学生的成绩,(若成绩为-1表示缺考),成绩分析、成绩排序、显示课程及选课学生信息等。
2. 类模板和函数模板的设计:
(1)数组类模板的设计:对于某一门课,选课的学
生很多,可定义一个数组模板,并将数组模板实例
化为学生对象数组。
(2)无论对什么数据类型的排序,使用的排序算法
都是一样的,因此需要定义一个函数模板,用学生
类实例化,实现学生的成绩排序,排序算法可选用
插入排序、冒泡排序或者选择排序等。
3.运算符重载的设计
(1)学生的信息和成绩以及选课信息要求写入
文件并在需要时从文件中读出,需要重载插入、提取
运算符“<<、>>”。
(2)学生成绩排序要对学生对象进行比较、赋值
等操作,而类实际上是一种复杂数据类型,因此上
述这些操作要通过运算符重载(==、<、 >)来实
现。 展开
10个回答
展开全部
参考一下:
不是你要的功能,希望可以帮助你
#include<iostream.h>
void write(char x[], int y[], int z[][4], int s);
void find(char x[], int y[], int z[5][4], int s);
void zongfen(char x[], int y[], int z[5][4], int s);
void pingjunfen(char x[], int y[], int z[5][4], int s);
void main()
{
int a,c=1;
char name[5];
int num[5];
int chengji[5][4];
cout<<"学生成绩管理系统"<<endl;
// cout<<"学生个数"<<endl;
cout<<"输入成绩"<<endl;
write(name,num,chengji,5);
cout<<"1.成绩查询"<<endl;
cout<<"2.成绩总分"<<endl;
cout<<"3.平均成绩"<<endl;
cout<<"选择操作"<<endl;
cin>>a;
do{
switch(a)
{
case 1:
find(name, num, chengji, 5);
break;
case 2:
zongfen(name, num, chengji, 5);
break;
case 3:
pingjunfen(name, num, chengji, 5);
break;
}
}while(c=1);
}
void write (char x[], int y[], int z[5][4], int s)
{
int i,j;
cout<<"成绩录入"<<endl;
cout<<"输入姓名"<<endl;
for(i=0;i<s;i++)
cin>>x[i];
cout<<"输入学号"<<endl;
for(i=0;i<s;i++)
cin>>y[i];
for(i=0;i<s;i++)
{
cout<<"输入"<<x[i]<<"的数.语.英.体成绩"<<endl;
{
for(j=0;j<4;j++)
cin>>z[i][j];
}
//return (x,y,z)
}
}
void find(char x[],int y[],int z[5][4],int s)
{
int a ;
cout<<"成绩查询"<<endl;
cout<<"输入学号"<<endl;
cin>>a;
cout<<"姓名"<<x[a]<<"学号"<<y[a]<<endl;
cout<<"数"<<z[a][1]<<endl;
cout<<"语"<<z[a][2]<<endl;
cout<<"英"<<z[a][3]<<endl;
cout<<"体"<<z[a][4]<<endl;
}
void zongfen(char x[],int y[],int z[5][4],int s)
{
int i,j,sum;
cout<<"成绩总分"<<endl;
cout<<"学号"<<"姓名"<<"总分"<<endl;
for(i=0;i<s;j++)
{
cout<<y[i]<<x[i];
for(j=0; j<4; i++)
{
sum=sum+z[i][j];
cout<<sum<<endl;
}
}
}
void pingjunfen(char x[],int y[],int z[][4],int s)
{
int i,j,sum;
float ave;
cout<<"平均分"<<endl;
cout<<"学号"<<"姓名"<<"平均分"<<endl;
for(i=0;i<s;j++)
{
cout<<y[i]<<x[i];
for(j=0; j<4; i++)
{
sum=sum+z[i][j];
ave=sum/4.0;
cout<<ave<<endl;
}
}
}
不是你要的功能,希望可以帮助你
#include<iostream.h>
void write(char x[], int y[], int z[][4], int s);
void find(char x[], int y[], int z[5][4], int s);
void zongfen(char x[], int y[], int z[5][4], int s);
void pingjunfen(char x[], int y[], int z[5][4], int s);
void main()
{
int a,c=1;
char name[5];
int num[5];
int chengji[5][4];
cout<<"学生成绩管理系统"<<endl;
// cout<<"学生个数"<<endl;
cout<<"输入成绩"<<endl;
write(name,num,chengji,5);
cout<<"1.成绩查询"<<endl;
cout<<"2.成绩总分"<<endl;
cout<<"3.平均成绩"<<endl;
cout<<"选择操作"<<endl;
cin>>a;
do{
switch(a)
{
case 1:
find(name, num, chengji, 5);
break;
case 2:
zongfen(name, num, chengji, 5);
break;
case 3:
pingjunfen(name, num, chengji, 5);
break;
}
}while(c=1);
}
void write (char x[], int y[], int z[5][4], int s)
{
int i,j;
cout<<"成绩录入"<<endl;
cout<<"输入姓名"<<endl;
for(i=0;i<s;i++)
cin>>x[i];
cout<<"输入学号"<<endl;
for(i=0;i<s;i++)
cin>>y[i];
for(i=0;i<s;i++)
{
cout<<"输入"<<x[i]<<"的数.语.英.体成绩"<<endl;
{
for(j=0;j<4;j++)
cin>>z[i][j];
}
//return (x,y,z)
}
}
void find(char x[],int y[],int z[5][4],int s)
{
int a ;
cout<<"成绩查询"<<endl;
cout<<"输入学号"<<endl;
cin>>a;
cout<<"姓名"<<x[a]<<"学号"<<y[a]<<endl;
cout<<"数"<<z[a][1]<<endl;
cout<<"语"<<z[a][2]<<endl;
cout<<"英"<<z[a][3]<<endl;
cout<<"体"<<z[a][4]<<endl;
}
void zongfen(char x[],int y[],int z[5][4],int s)
{
int i,j,sum;
cout<<"成绩总分"<<endl;
cout<<"学号"<<"姓名"<<"总分"<<endl;
for(i=0;i<s;j++)
{
cout<<y[i]<<x[i];
for(j=0; j<4; i++)
{
sum=sum+z[i][j];
cout<<sum<<endl;
}
}
}
void pingjunfen(char x[],int y[],int z[][4],int s)
{
int i,j,sum;
float ave;
cout<<"平均分"<<endl;
cout<<"学号"<<"姓名"<<"平均分"<<endl;
for(i=0;i<s;j++)
{
cout<<y[i]<<x[i];
for(j=0; j<4; i++)
{
sum=sum+z[i][j];
ave=sum/4.0;
cout<<ave<<endl;
}
}
}
展开全部
这么大了一个问题,别人要花很多时间的,而且你居然给0分,别人有空也不会做的,除他对做这个有很有兴趣.还是自己做吧.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你个小子
把我留给你的作业放到网上来,
好了
我已经知道了
等你交上来我再让你给我讲讲
把我留给你的作业放到网上来,
好了
我已经知道了
等你交上来我再让你给我讲讲
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
很强大的一个实验
锻炼自己吧
锻炼自己吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
由于当初在校期间,做类似问题时,苦苦追寻,都没在网上查到答案...
所以还是自己做吧
所以还是自己做吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询