当前位置:首页 » 考试成绩 » c学生类成绩平均分

c学生类成绩平均分

发布时间: 2021-01-29 03:14:40

1. 设计一个学生类CStudent,包括姓名和三门课程成绩,利用重载运算符“+”将所有学生C++

#include <iostream>
#include <cstring>
#include<IOMANIP>
using namespace std;
class student
{
private:
char a[20]; //不能在类定义中对非static const型变量赋值
int x ,y ,z;
int cnt; //计数器,存放成绩对应的人数。默认为1个学生的成绩。
public :
student():cnt(1){
a[0]=''
x=y=z=0;
}
student (char *b,int m,int k,int t):cnt(1)
{
strcpy(a,b); //字符串赋值
x=m;
y=k;
z=t;
}
student operator +(const student& s);//const 引用,提高效率
void print()
{
cout<<"course 1#,ave score:="<<fixed<<setprecision(2)<<(float) x/cnt<<endl;
cout<<"course 2#,ave score:="<<fixed<<setprecision(2)<<(float) y/cnt<<endl;
cout<<"course 3#,ave score:="<<fixed<<setprecision(2)<<(float) z/cnt<<endl;
}
};
student student:: operator +(const student& s)
{
student b;
b.x=x+s.x;
b.y=y+s.y;
b.z=z+s.z;
b.cnt=cnt+1;//这里,b中存放的总成绩对应人数的计算
return b;
}
int main()
{
student s1("hank",80,80,80),s2("wei",80,90,81),s3, s4("Li",90,90,90);
s3 = s1+ s2 + s4;
s3.print();
}

2. 统计10个学生成绩,用c语言编程,输出优秀,良好,及格,不及格,四类学生人数,用if~else~i

int优秀=0;
int良好=0;
int及格=0;
int不及格=0;
int[]10个人的成绩内容=newint{100,50,60...};
for(inti=0;i<10个人的成绩.lenght-1;i++){
if(10个人的成绩[i]<60){
不及格++;
}elseif(10个人的成绩[i]<=80){
及格++;
}lseif(10个人的成绩[i]<=90){
良好++;
}lseif(10个人的成绩[i]<=100){
优秀++;
}
}
//然后依次输出就OK啦!

3. 创建一个学生类(student),包含:学号,姓名,性别,Java成绩,sql 成绩,c语言成绩,html成绩,总分,平均分。

学生类:
publicclassStudent
{
privateStringstuId;
privateStringname;
privateStringgender;
privatefloatjavaScore;
privatefloatsqlScore;
privatefloatcScore;
privatefloathtmlScore;
privatefloatavgScore;
privatefloatsumScore;

publicStudent(){};

publicStudent(StringstuId,Stringname,Stringgender,floatjavaScore,floatsqlScore,
floatcScore,floathtmlScore)
{
this.stuId=stuId;
this.name=name;
this.gender=gender;
this.javaScore=javaScore;
this.sqlScore=sqlScore;
this.cScore=cScore;
this.htmlScore=htmlScore;
}

publicfloatgetSumScore(floatjavaScore,floatsqlScore,
floatcScore,floathtmlScore)
{
returnjavaScore+sqlScore+cScore+htmlScore;
}

publicStringgetStuId(){
returnstuId;
}

publicvoidsetStuId(StringstuId){
this.stuId=stuId;
}

publicStringgetName(){
returnname;
}

publicvoidsetName(Stringname){
this.name=name;
}

publicStringgetGender(){
returngender;
}

publicvoidsetGender(Stringgender){
this.gender=gender;
}

publicfloatgetJavaScore(){
returnjavaScore;
}

publicvoidsetJavaScore(floatjavaScore){
this.javaScore=javaScore;
}

publicfloatgetSqlScore(){
returnsqlScore;
}

publicvoidsetSqlScore(floatsqlScore){
this.sqlScore=sqlScore;
}

publicfloatgetcScore(){
returncScore;
}

publicvoidsetcScore(floatcScore){
this.cScore=cScore;
}

publicfloatgetHtmlScore(){
returnhtmlScore;
}

publicvoidsetHtmlScore(floathtmlScore){
this.htmlScore=htmlScore;
}

publicfloatgetAvgScore(){
returnavgScore;
}

}

ps:总分和平均分不需要set,缺少了get平均分部分,懒得写了你仿照总分加上吧,给你个机会
测试类:
publicclassTestStudent{

publicstaticvoidmain(String[]args){
Studentstudent=newStudent("1","name","男",85,74,92,88);
floatsumScore=student.getSumScore(student.getHtmlScore(),
student.getJavaScore(),student.getSqlScore(),student.getcScore());
System.out.println("学生"+student.getName()+"总分为:"+sumScore);
}

}

结果:学生name总分为:339.0

注意确保2个类在一个包下。

4. 求c语言编程学生成绩类型

#include"stdio.h"
#define max 50
void main()
{
double degree[max],avg=0.0;
int i=0,j=0,count1=0,count2=0;
printf("");
do{
scanf("%lf",°ree[i]);
while(degree[i]>100){
printf("");
scanf("%lf",°ree[i]);
};
avg+=degree[i];
if(degree[i]>80)
count1++;
if(degree[i]<60)
count2++;
i++;
}while(degree[i-1]>=0)
for(;j<i;j++)
printf("%lf ",degree[j]);
printf("\n");
printf("%d,%d\n",count1,count2);
printf("%lf\n",avg/i);
}
可以改一下输出语句,让其看起专来更易懂属

5. 定义一个学生类CStudent,学生类的数据成员包括姓名、学号和成绩等。

#include"Exp19_1.h"
#include<fstream>
#include<iostream>
#include<string>
using namespace std;

class student{ //为了简化,数据域仅保留学号与姓名
int key;
string name;
public:
void putkey(int k){key=k;}
void putnam(string nam){name=nam;}
void show(){cout<<key<<'\t'<<name<<endl;}//典型的应重载插入运算符
bool operator<(student& stu){return key<stu.key;}
bool operator!=(student& stu){return key!=stu.key;}
};

int main(){
int i,k;
string nam;
Node<student> * P1;
student stu;
List <student>list1,list2,list3;
ifstream infile;
infile.open("EXP19_1.txt",ios::in);
if(!infile){
cout<<"不能打开文件"<<endl;
return 1;
}
for(i=0;i<9;i++){
infile>>k;
stu.putkey(k);
infile>>nam;
stu.putnam(nam);
P1=list1.CreatNode(stu);
list1.InsertFront(P1);//向前生成list1
P1=list1.CreatNode(stu);
list2.InsertRear(P1); //向后生成list2
}
infile.close();
list1.PrintList();
cout<<"list1长度:"<<list1.Length()<<endl;
cout<<endl;
list2.PrintList();
cout<<endl;
cout<<"请输入一个要求删除的学号"<<endl;
cin>>k;
stu.putkey(k);
P1=list1.Find(stu);
if(P1!=NULL){
P1=list1.DeleteNode(P1);
delete P1;
list1.PrintList();
cout<<"list1长度:"<<list1.Length()<<endl;
}
else cout<<"未找到"<<endl;
cout<<endl;

list1.MakeEmpty();//清空list1
cout<<"清空后list1长度:"<<list1.Length()<<endl;

infile.open("EXP19_1.txt",ios::in);
infile.clear();//如果文本文件结束前缺回车,无此句会出错
if(!infile){
cout<<"不能打开文件"<<endl;
return 1;
}
for(i=0;i<9;i++){
infile>>k;
stu.putkey(k);
infile>>nam;
stu.putnam(nam);
P1=list3.CreatNode(stu);
list3.InsertOrder(P1);//升序创建list1
}
infile.close();
list3.PrintList();
cout<<endl;
return 0;
}

此为头文件:

#include<iostream>
using namespace std;
//首先看结点组织,采用结点类,凡与结点数据和指针操作有关函数作为成员函数
template<typename T>class List;
template<typename T>class Node{
T info; //数据域
Node<T> *link; //指针域
public:
Node(); //生成头结点的构造函数
Node(const T & data);//生成一般结点的构造函数
void InsertAfter(Node<T>* P); //在当前结点后插入一个结点
Node<T>* RemoveAfter(); //删除当前结点的后继结点,返回该结点备用
friend class List<T>;
//以List为友元类,List可直接访问Node的私有成员,与结构一样方便,但更安全
};
template <typename T> Node<T>::Node(){link=NULL;}
template <typename T> Node<T>::Node(const T & data){
info=data;
link=NULL;
}
template<typename T>void Node<T>::InsertAfter(Node<T>* p){
p->link=link;
link=p;
}
template<typename T>Node<T>* Node<T>::RemoveAfter(){
Node<T>* tempP=link;
if(link==NULL) tempP=NULL; //已在链尾,后面无结点
else link=tempP->link;
return tempP;
}
//再定义链表类,选择常用操作:包括建立有序链表、搜索遍历、插入、删除、取数据等
template<typename T>class List{
Node<T> *head,*tail;//链表头指针和尾指针
public:
List(); //构造函数,生成头结点(空链表)
~List(); //析构函数
void MakeEmpty(); //清空一个链表,只余表头结点
Node<T>* Find(T data); //搜索数据域与data相同的结点,返回该结点的地址
int Length(); //计算单链表长度
void PrintList(); //打印链表的数据域
void InsertFront(Node<T>* p); //可用来向前生成链表,在表头插入一个结点
void InsertRear(Node<T>* p); //可用来向后生成链表,在表尾添加一个结点
void InsertOrder(Node<T> *p); //按升序生成链表
Node<T>*CreatNode(T data); //创建一个结点(孤立结点)
Node<T>*DeleteNode(Node<T>* p); //删除指定结点
};
template<typename T>List<T>::List(){
head=tail=new Node<T>();
}
template<typename T>List<T>::~List(){
MakeEmpty();
delete head;
}
template<typename T>void List<T>::MakeEmpty(){
Node<T> *tempP;
while(head->link!=NULL){
tempP=head->link;
head->link=tempP->link; //把头结点后的第一个节点从链中脱离
delete tempP; //删除(释放)脱离下来的结点
}
tail=head; //表头指针与表尾指针均指向表头结点,表示空链
}
template<typename T> Node<T>* List<T>::Find(T data){
Node<T> *tempP=head->link;
while(tempP!=NULL&&tempP->info!=data) tempP=tempP->link;
return tempP; //搜索成功返回该结点地址,不成功返回NULL
}
template<typename T>int List<T>::Length(){
Node<T>* tempP=head->link;
int count=0;
while(tempP!=NULL){
tempP=tempP->link;
count++;
}
return count;
}
template<typename T>void List<T>::PrintList(){
Node<T>* tempP=head->link;
while(tempP!=NULL){
tempP->info.show();
tempP=tempP->link;
}
cout<<endl;
}
template<typename T>void List<T>::InsertFront(Node<T> *p){
p->link=head->link;
head->link=p;
if(tail==head) tail=p;
}
template<typename T>void List<T>::InsertRear(Node<T> *p){
p->link=tail->link;
tail->link=p;
tail=p;
}
template<typename T>void List<T>::InsertOrder(Node<T> *p){
Node<T> *tempP=head->link,*tempQ=head; //tempQ指向tempP前面的一个节点
while(tempP!=NULL){
if(p->info<tempP->info)break; //找第一个比插入结点大的结点,由tempP指向
tempQ=tempP;
tempP=tempP->link;
}
tempQ->InsertAfter(p); //插在tempP指向结点之前,tempQ之后
if(tail==tempQ) tail=tempQ->link;
}
template<typename T>Node<T>* List<T>::CreatNode(T data){//建立新节点
Node<T>*tempP=new Node<T>(data);
return tempP;
}
template<typename T>Node<T>* List<T>::DeleteNode(Node<T>* p){
Node<T>* tempP=head;
while(tempP->link!=NULL&&tempP->link!=p) tempP=tempP->link;
if(tempP->link==tail) tail=tempP;
return tempP->RemoveAfter();
}

6. 设计一个类CStudent 类中包含一个学生的基本数据如下: 编号,姓名,性别,年龄,数学成绩,计算机成绩

/*************************************************

Version: 6.00 Date: 2013.5.14
Description:
设计一个类CStudent,类中包含一个学生的基本数据如下:
编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。
并假设编号为整数,且从1号往后连续编码;姓名为字符串,性别为字符。如:
1 LiPing m 18 89 98 94
请采用binary文件形式,并使用随机读写处理方式,对自定义CStudent类的对象数据
进行存储与读写处理(即是说,总按具有连续编码的编号num为"序"来对文件中的各对
象数据进行随机读写处理)。并设计该类的成员函数,而且对输出运算符"<<"进行重载,
使该运算符能够完成将一个学生的信息输出到屏幕上。

Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明
(1) 从键盘输入一个学生的有关信息,并将它们存入到数据文件中(按编号来确定写出位置)。
(2) 按编号对学生信息进行检索并将检索结果显示在屏幕上。
(3) 按姓名对学生信息进行检索并将检索结果显示在屏幕上。
(4) 计算某编号学生的总成绩与平均成绩。
(5) 列出所有总成绩超过n分的性别为s同学的有关信息(n,s由用户从键盘输入)。
History:
<author> <time> <version > <desc>
*****************************************************/
#include<fstream>
#include<iostream>
#include<iomanip>
#include<string>
using namespace std;
int n;
class CStudent
{public:int Num;
char Name[10];
char Sex[10];
int Age;
float Math,Com,Eng,Total,ave;
public: void getdata() //输入类元素
{cout<<"编号: ";
cin>>Num;
cout<<endl<<"姓名: ";
cin>>Name;
cout<<endl<<"性别: ";
cin>>Sex;
cout<<endl<<"年龄: ";
cin>>Age;
cout<<endl<<"数学成绩: ";
cin>>Math;
cout<<endl<<"计算机成绩:";
cin>>Com;
cout<<endl<<"外语成绩: ";
cin>>Eng;
cout<<endl; }
void outdate() //输出类元素
{Total=Math+Com+Eng;
ave=(Math+Com+Eng)/3;
cout<<setw(5)<<Num<<setw(5)<<Name<<setw(5)<<Sex<<setw(5)<<Age<<setw(8)<<Math<<setw(10)<<Com<<setw(8)<<Eng<<setw(8)<<Total<<setw(8)<<ave<<endl;
} };
void get() //把类数据输入到磁盘中
{ ofstream outfile("stud.dat");
CStudent s[50];
int i;
cout<<"输入数据:"<<endl;
for( i=0;i<n;i++)
{
cout<<"第"<<i+1<<"个学生:"<<endl;
s[i+1].getdata();
outfile.write((char*)&s,sizeof(s));
};
outfile.close(); }
void shaixuan() //把类数据从磁盘中输出
{
ifstream infile("stud.dat");
CStudent s[50];
int i;
string sex;
float total;
cout<<"请输入你要筛选同学的性别:"<<" ";
cin>>sex;
cout<<"请输入你要筛选同学的总成绩超过多少分:"<<" ";
cin>>total;
infile.read((char *)&s,sizeof(s));
while(infile)
{
for( i=0;i<50;i++)
{
if((sex==s[i].Sex)&&(total<=s[i].Total))
{ cout<<" 编号 姓名 性别 年龄 数学成绩 计算机成绩 外语成绩 总分 平均分"<<endl;
s[i].outdate();}
}
infile.read((char*)&s,sizeof(s));
};
infile.close();
}
void xingming() //把类数据从磁盘中输出
{
ifstream infile("stud.dat");
CStudent s[50];
int i;
string str;
cout<<"请输入你要筛选同学的姓名:"<<" ";
cin>>str;
infile.read((char *)&s,sizeof(s));
while(infile)
{
for( i=0;i<50;i++)
{
if(str==s[i].Name)
{ cout<<" 编号 姓名 性别 年龄 数学成绩 计算机成绩 外语成绩 总分 平均分"<<endl;
s[i].outdate();}
}
infile.read((char*)&s,sizeof(s));
};
infile.close();
}
void xuehao() //把类数据从磁盘中输出
{
ifstream infile("stud.dat");
CStudent s[50];
int i,m;
cout<<"请输入你要筛选同学的编号:"<<" ";
cin>>m;
infile.read((char *)&s,sizeof(s));
while(infile)
{
for( i=0;i<50;i++)
{
if(m==s[i].Num)
{ cout<<" 编号 姓名 性别 年龄 数学成绩 计算机成绩 外语成绩 总分 平均分"<<endl;
s[i].outdate();}
}
infile.read((char*)&s,sizeof(s));
};
infile.close();
}
int main()
{
int a;
cout<<"请输入你想添加多少个学生的信息n:"<<' ';
cin>>n;
do //选择应执行程序
{ cout<<"如果你输入数字7,你就可以添加学生信息了;"<<'\n';
cout<<"如果你输入数字8,你就可以筛选出所有总成绩超过n分的性别为sex同学的有关信息了;"<<'\n';
cout<<"如果你输入数字9,你就可以按编号进行筛选了;"<<'\n';
cout<<"如果你输入数字10,你就可以按姓名进行筛选了;"<<'\n';
cout<<"如果你输入数字1,你就可以退出此程序了;"<<'\n';
cin>>a;
switch(a)
{

case 7:get();break;
case 8:shaixuan();break; //输入数据
case 9:xuehao();break;
case 10:xingming();break; //输出数据
default:cout<<"error"<<endl;break;
} }
while(a==7||a==8||a==9||a==10);
return 0;
}
哈哈,自己调试一下再改进一下吧!

7. c语言 利用面向对象方法,定义一个学生类,求每名同学的平均分和所有同学的最高分。

#include <iostream>
#include <string>
using namespace std;
class Student
{
private:
string name;
string num;
double score;
public:
void SetName(string name);
void SetNum(string num);
void SetScore(double score);
string GetName();
string GetNum();
double GetScore();
};
void Student::SetName(string name)
{
this->name = name;
}
void Student::SetNum(string num)
{
this->num = num;
}
void Student::SetScore(double score)
{
this->score = score;
}
string Student::GetName()
{
return name;
}
string Student::GetNum()
{
return num;
}
double Student::GetScore()
{
return score;
}
int main()
{
Student stu[10];
string name,num;
double score,max = 0.0;
for(int i = 0;i < 3;i++)
{
cout<<"输入学生"<<i+1<<"姓名:";
cin>>name;
cout<<"输入"<<i+1<<"学号:";
cin>>num;
cout<<"输入"<<i+1<<"分数:";
cin>>score;
stu[i].SetName(name);
stu[i].SetNum(num);
stu[i].SetScore(score);
}
for(i=0;i<3;i++)
if (max<stu[i].GetScore())
max=stu[i].GetScore();
cout<<"最大数"<<max<<endl;
score = 0;
for(int i = 0;i < 3;i++)
{
score += stu[i].GetScore();
}
score = score/3;
cout<<"平均分:"<<score<<endl;
system("pause");
return 0;
}

8. 用c语言编程学生成绩,分为优秀,良好,及格,不及格四类,用if~else~if结构如何编辑

#include<stdio.h>
int main()
{
int i,b=0,j=0,l=0,y=0,a[10];
printf("请输来入10个学生的源成绩\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{
if(a[i]<60)
{
b++;
}
else if(a[i]<70)
{
j++;
}
else if(a[i]<80)
{
l++;
}
else if(a[i]<=100)
{
y++;
}
}
printf("优秀%d\n",y);
printf("良好%d\n",l);
printf("及格%d\n",j);
printf("不及格%d\n",b);
return 0;
}

9. 3.C语言 用结构体类型编一程序,输入一个学生的学号,姓名及三门课的成绩,计算并输出平均成绩

#include<stdio.h>
structstud{
intnum;
charname[30];
floatscore[3];
};
intmain()
{
structstudstu;
inti;
floatavg;
printf("inputnumber:");scanf("%d",&stu.num);
printf("inputname:");scanf("%s",stu.name);
printf("input3score: ");
avg=0;
for(i=0;i<3;i++)
{
scanf("%f",&stu.score[i]);
avg+=stu.score[i];
}
avg/=3;
printf("averagescore:%f ",avg);
return0;
}

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919