錄入每個學生的學號和考試成績
Ⅰ 編寫一個程序,輸入每個學生的學號和平均成績,將平均成績按遞減順序排序,輸出排序後的學號和平均成績。
#include <iostream>
#include <iomanip>
struct student
{int num;
char name[20];
float score[3];
};
void average_print(student *);
void top_print(student *);
void top1_print(student *);
void top2_print(student *);
void top3_print(student *);
int main()
{ student stu[3],*p;
int i;
cout<<"請輸入3個學生數據:"<<endl;
for(i=0;i<3;++i)
{cin>>stu[i].num>>stu[i].name>>stu[i].score[0]>>stu[i].score[1]>>stu[i].score[2];
}
average_print(stu) ;
int z ;
do
{cout<<"請選擇相應選項:"<<endl;
cout<<"1:第一門課最高分數的信息"<<endl;
cout<<"2:第二門課最高分數的信息"<<endl;
cout<<"3:第三門課最高分數的信息"<<endl;
cout<<"4:總分最高分數的信息"<<endl;
cin>>z;
switch(z)
{ case 1:top_print(stu) ;break;
case 2:top1_print(stu) ;break;
case 3:top2_print(stu) ;break;
default:top3_print(stu) ;break;
}
}while(z!=0);
return 0;
}
void average_print(student p[])
{ float x=0,y=0,z=0;
int i;
for(i=0;i<3;++i)
{ x+=p[i].score[0];
y+=p[i].score[1];
z+=p[i].score[2];
}
cout<<"第一門課平均成績"<<x/3<<endl;
cout<<"第二門課平均成績"<<y/3<<endl;
cout<<"第三門課平均成績"<<x/3<<endl;
}
void top_print(student point[])
{int i,z;
float j;
student temp ;
temp=point[0];
j=point[0].score[0];
for(i=1;i<3;++i)
{ if(j<=point[i].score[0] )
{j=point[i].score[0];
temp= point[i];}
}
cout<<"這門課最高分為:"<<temp.num<<setw(6)<<temp.name<<setw(6)<<temp.score[0]<<endl;
}
void top1_print(student point[])
{int i,z;
float j;
student temp ;
temp=point[0];
j=point[0].score[1];
for(i=1;i<3;++i)
{ if(j<=point[i].score[1] )
{j=point[i].score[1];
temp= point[i];}
}
cout<<"這門課最高分為:"<<temp.num<<setw(6)<<temp.name<<setw(6)<<temp.score[1]<<endl;
}
void top2_print(student point[])
{int i,z;
float j;
student temp ;
temp=point[0];
j=point[0].score[2];
for(i=1;i<3;++i)
{ if(j<=point[i].score[2] )
{j=point[i].score[2];
temp= point[i];}
}
cout<<"這門課最高分為:"<<temp.num<<setw(6)<<temp.name<<setw(6)<<temp.score[2]<<endl;
}
void top3_print(student point[])
{int i,z;
float j;
student temp ;
temp=point[0];
j=point[0].score[0]+point[0].score[1]+point[0].score[2];
for(i=1;i<3;++i)
{ if(j<=point[i].score[0]+point[i].score[1]+point[i].score[2])
{j=point[i].score[0]+point[i].score[1]+point[i].score[2];
temp= point[i];}
}
cout<<"這門課最高分為:"<<temp.num<<setw(6)<<temp.name<<setw(6)<<temp.score[2]+temp.score[0]+temp.score[1]<<endl;
}
Ⅱ 找高手幫忙c語言程序::輸入一個班10個學生的學號和每個學生考試三門功課(數學、英語、計算機基礎)的成績
剛學完鏈表,現學現賣~(自己寫的,需要注釋再給你填上~)
#include "stdio.h"
#define N 10
struct student{
int number;
int sx;
int yy;
int jsj;
struct *next;
};
void main()
{
struct student *p,*q,*head;
int i=0,j,temp;
int a[N],b[N];
head=NULL;
q=NULL;
while(i<N){
p=(struct student *)malloc(sizeof(struct student));
printf("請輸入第%d名同學的學號",i+1);
scanf("%d",&p->number);
printf("請輸入第%d名同學的數學成績",i+1);
scanf("%d",&p->sx);
printf("請輸入第%d名同學的英語成績",i+1);
scanf("%d",&p->yy);
printf("請輸入第%d名同學的計算機成績",i+1);
scanf("%d",&p->jsj);
a[i]=((p->jsj)+(p->sx)+(p->yy));
b[i]=a[i]/3;
if(head==NULL){
head=p;
}
q=p->next;
p=p->next;
i++;
}
for(i=0;i<N;i++)
for(j=0;j<5;j++){
if(a[j]<a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+i]=temp;
}
}
for(i=0;i<N;i++){
printf("第%d名同學總分為%d\n",i+1,a[i]);
}
}
Ⅲ 編寫程序,輸入10個學生的學號,姓名和考試成績,輸出最高分和最低分的學生記錄
你好! 按照你的題目寫了這個代碼,可以的話請採納
代碼可以直接復制出來測試(linux系統)
#include<stdio.h>
#include<sting.h>
struct student{
int ID;//學號
char Name[50];//姓名
int Grade;//成績
};
void main()
{
struct student stu[100];
int i = 0;
int n,m;
int big;
int small;
while(1)
{
printf("請輸入學生的姓名、學號、成績以空格隔開:\n");
printf("結束請輸入exit 0 0\n");
scanf("%s%d%d",stu[i].Name,&stu[i].ID,&stu[i].Grade);//接收輸入的學生信息
printf("%d\n",stu[i].Grade);
//判斷是否要結束輸入
if(strcmp(stu[i].Name,"exit") == 0)
{
printf("輸入結束\n");
i = i - 1;
break;
}
i++;
}
if(i == 0)
{
printf("只輸入了一個學生的信息\n");
return;
}
//循環進行比較記錄最高和最低
//big、small記錄第0個元素的分數
big = stu[0].Grade;
small = stu[0].Grade;
for(n = 1;n <= i;n++)
{
printf("grade = %d\n",stu[n].Grade);
if(big < stu[n].Grade)
{
big = stu[n].Grade;//big和各個元素的分數比較,取較高賦值給big(big一直為較高)
}
if(small > stu[n].Grade)
{
small = stu[n].Grade;//small和各個元素的分數比較,取較低賦值給small(small一直為較低)
}
}
for(m = 0;m <= i;m++)
{
printf("xx:%d,%s,%d\n",stu[m].ID,stu[m].Name,stu[m].Grade);
if(stu[m].Grade == big)//每個學生的成績和最高分比較,相等的輸出(可能會出現並列的)
{
printf("最高分數學生信息:%d,%s,%d\n",stu[m].ID,stu[m].Name,stu[m].Grade);
}
if(stu[m].Grade == small)//每個學生的成績和最低分比較,相等的輸出(可能會出現並列的)
{
printf("最低分數學生信息:%d,%s,%d\n",stu[m].ID,stu[m].Name,stu[m].Grade);
}
}
}
Ⅳ 編程題:輸入10個考生的學號和某門課的考試分數(0-100),然後根據每個學生的分數判斷並顯示每個學生的
#include <stdio.h>
int main()
{
int num,score;
char grade;
scanf("%d",&num);
do
{
scanf("%d",&score);
if(score < 0 || score > 100)
{
printf("學號為%d的考生專成屬績輸入錯\n",num);
continue;
}
if(score<60)
grade = 'F';
else if(score<70)
grade = 'D';
else if(score<80)
grade = 'C';
else if(score<90)
grade = 'B';
else
grade = 'A';
break;
}while(1);
printf("學號為%d的考生成績為%c\n",num,grade);
return 0;
}
Ⅳ 急求!!C語言程序:輸入一個班10個學生的學號和每個學生考試三門功課(數學、英語、計算機基礎)的成績。
#include <string.h>
#include<iostream>
using namespace std;
class Stu
{
int number;
char name[20];
double math;
double english;
double computer;
public:
Stu(int x,double b1,double b2,double b3,char *p)
{
number=x;
strcpy(name,p);
math=b1;
english=b2;
computer=b3;
};
double sum();
double average();
void print();
int get_reg_num();
void get_stu_inf();
};
double Stu::sum()
{
return(math+english+computer);
}
double Stu::average()
{ double n;
n=(math+english+computer)/3;
return(n);
}
void Stu::print()
{
cout<<"學號"<<'\t'<<"姓名"<<'\t'<<" 數學成績"<<'\t'<<" 英語成績"<<'\t'<<"計算機成績"<<endl;
cout<<number<<'\t'<<name<<'\t'<<'\t'<<math<<'\t'<<'\t'<<english<<'\t'<<'\t'<<computer<<endl;
}
int Stu::get_reg_num()
{
return(number);
}
void Stu::get_stu_inf()
{
cout<<"請輸入學生名稱";
cin>>name;
cout<<"請輸入學生學號";
cin>>number;
cout<<"請輸入學生數學成績";
cin>>math;
cout<<"請輸入學生英語成績";
cin>>english;
cout<<"請輸入學生計算機成績";
cin>>computer;
}
int main()
{
int i,number,c=0;
double s=0;
double y=0;
Stu a[3]={Stu(3450,85,75,65,"yang"),Stu(3440,85,75,65,"hehe"),Stu(3450,85,75,65,"hei")};
for(i=0;i<3;i++)
{
a[i].print();
}
for(i=0;i<3;i++)
{
s=s+a[i].average();
y=y+a[i].sum();
cout<<a[i].get_reg_num()<<endl;
cout<<"平均成績";
cout<<a[i].average()<<endl;
cout<<"總成績";
cout<<a[i].sum()<<endl;
}
cout<<"全班總分"<<s<<endl;
cout<<"全班平均成績"<<y/3<<endl;
cout<<"請輸入要查詢的學號";
cin>>number;
for(i=0;i<3;i++)
{
if(number==a[i].get_reg_num())
{
a[i].print();
c++;
}
}
if(c==0)
cout<<"沒有找到相關學生信息";
system("pause");
return 0;
}
這是以前寫的一段代碼,自己改下吧
Ⅵ 通過鍵盤輸入20個學生的學號和考試成績,顯示出所有高於平均分的學生的學號和成績
#include<stdio.h>
structStudent{
charnum[24];
intfenshu;
};
voidmain()
{
inti,sum=0;
Studentstu[20];
for(i=0;i<20;i++)
{
printf("請輸入抄第襲%d個學生的學號:",i+1);
scanf("%s",stu[i].num);
printf("請輸入第%d個學生的成績:",i+1);
scanf("%d",&stu[i].fenshu);
sum+=stu[i].fenshu;//求總分
}
printf("高於平均分的學生信息: ");
for(i=0;i<20;i++)
{
if(stu[i].fenshu>sum/20.0)
{
printf("學號:%s,成績:%d ",stu[i].num,stu[i].fenshu);
}
}
}
Ⅶ 定義一個類,輸入若干學生的學號、姓名和成績,然後顯示這些數據並計算出平均分。並設計程序測試該功能
#include<iostream.h>
#include<string.h>
#define N 10
class student
{
private:
char sno[20];
char name[10];
int score[6];
public:
void setinfo();
void showinfo();
void average();
};
void student::setinfo()
{
cin>>sno>>name>>score[0]>>score[1]>>score[2]>>score[3]>>score[4]>>score[5];
}
void student:: showinfo()
{
cout<<sno<<endl<<name<<endl<<score[0]<<endl<<score[1]<<endl<<score[2]<<endl<<score[3]<<endl<<score[4]<<endl<<score[5]<<endl;
}
void student::average()
{
double avg,sum=0.0;
for(int i=0;i<6;i++)
{
sum+=score[i];
}
avg=sum/6.0;
cout<<avg<<endl;
}
void main()
{
student *pstu=new student[N];
for(int i=0;i<N;i++)
{
cout<<"請輸入第"<<i+1<<"名學生的學號、姓名、各科成績(6門)"<<endl;
pstu[i].setinfo();}
for(i=0;i<N;i++)
{ cout<<"第"<<i+1<<"名學生信息:"<<endl;
pstu[i].showinfo();
}
for(i=0;i<N;i++)
{
cout<<"第"<<i+1<<"名學生平均成績:"<<endl;
pstu[i].average();
}
}
Ⅷ 編寫c程序,要求用戶不斷的輸入學生的學號和考試成績,直到學號為-1為結束,程序自動輸出最高分,最低分。
#include <stdio.h>
typedef struct student
{
int no;
int score;
}student;
int main()
{
student stu[100], maxstu, minstu;
int i = 0;
while (scanf("%d%d", &stu[i].no, &stu[i].score) && stu[i].no != -1)
{
if (i == 0)
{
maxstu = stu[i];
minstu = stu[i];
}
else
{
if (maxstu.score < stu[i].score)
{
maxstu = stu[i];
}
if (minstu.score > stu[i].score)
{
minstu = stu[i];
}
}
i++;
}
printf("max student : no : %d score : %d\n", maxstu.no, maxstu.score);
printf("min student : no : %d score : %d\n", minstu.no, minstu.score);
return 0;
}
Ⅸ 2、 從鍵盤上輸入一個學生的學號和考試成績,然後輸出該學生的學號和考試成績,並根據成績按下面的規定輸
Private Sub Command1_Click()
Dim s$, a$, mark!
s = Text1.Text
mark = Val(Text2.Text)
Select Case mark
Case Is < 40
a = "fail"
Case Is < 50
a = "poor"
Case Is < 60
a = "fair"
Case Is < 80
a = "good"
Case 80 To 100
a = "very good"
End Select
Print "學號:" & s & vbCrLf & "成績評定回為答" & a
End Sub
Ⅹ 從鍵盤上輸入一個學生的學號和考試成績,然後輸出該學生的學號和考試成績,並根據(
好的,沒問題,把郵箱留下