学生姓名成绩以列表输出
『壹』 编写一个程序,输入学生姓名和分数。输出以下部分数据
可以将学生姓名和成绩的下标联系在一起,下标一样的姓名和数据表示的就是一个人。专
程序代码如下:
#include
#include
#include
void
main()
{
char
name[30][10];
float
score[30];
float
ave;
int
n;
int
i,
j;
cout<<"请输入学属生的人数:";
cin>>n;
ave
=
0;
cout<<"请输入学生的姓名和成绩"<
>name[i]>>score[i];
ave
=
ave
+
score[i];
}
ave
=
ave
/
n;
cout<<"本班级平均分是:"<
score[j])
j
=
i;
cout<
评论
0
0
加载更多
『贰』 在一个Excel全年级学生成绩表中,我只需要部分学生的成绩,怎么通过姓名将这部分学生的成绩从总表中导出
成绩表格中的数据都有分类吧,按照班级,学号,可以很快速的分开来。但是如果你只是想通过姓名区分,应该不太好弄。你可以把文件发给我,按照要求我给你导出来。
『叁』 编写一个程序,已有若干个学生数据(见右表),包括学号,姓名,成绩,要求输出这些学生的信息以及他们总的平均分
#include<iostream>
#include<string>
using namespace std;
class student
{
public:
student(string m,int n,double d);
~student();
static void avg();
void display();
private:
int no;
string name;
double deg;
static double sum;
static double num;
};
student::student(string m,int n,double d)
{
name =m;
no=n;deg=d;
sum+=deg;
num++;
}
student::~student()
{
}
double student::sum=0;
double student::num=0;
void student::avg()
{
cout<<"总分为:"<<sum<<"平均成绩:"<<(sum/num)<<endl;
}
void student::display()
{
cout<<"姓名:"<<name<<"学号:"<<no<<"成绩:"<<deg<<endl;
}
int main()
{
student s[3]={
student("Li",1,89),
student("chen",2,78),
student("zheng",3,94)};
for(int i=0;i<3;i++)
s[i].display();
student::avg();
return 0;
}
『肆』 编写程序处理10个学生的信息,输出成绩表,再用一个函数输出平均分在前3名的学生姓名及平均分。
#include"stdio.h"
#include"stdlib.h" //用于system("pause...");语句
#include"math.h" //用于函数7
#include"string.h"
#include"iostream.h" //fflush(stdin);
int q=0,p=0;
struct stu
{
char name[100];
char cour[10];
float score[100];
};
float f031(struct stu a[])
{
float x;
{
x=(a[q].score[0]+a[q].score[1]+a[q].score[2]+a[q].score[3]+a[q].score[4])/5;
q++;
}
return(x);
}
float f032(struct stu a[])
{
float y[5]; //*
int i;
y[p]=0;
for(i=0;i<10;i++)
y[p]=y[p]+a[i].score[p];
y[p]=y[p]/10;
p++;
return(y[p-1]);
}
float f033(struct stu a[])
{
float c,max=0;
int i,j;
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(a[i].score[j]>=max)
max=a[i].score[j];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(a[i].score[j]==max)
c=a[i].score[j];
return(c);
}
int f034(struct stu a[])
{
float max=0;
int i,j,w;
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(a[i].score[j]>=max)
max=a[i].score[j];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(a[i].score[j]==max)
w=i;
return(w);
}
int f035(struct stu a[])
{
float max=0;
int i,j,r;
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(a[i].score[j]>=max)
max=a[i].score[j];
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(a[i].score[j]==max)
r=j;
return(r);
}
float f036(struct stu a[])
{
float x,y=0,z=0;
int i,j;
for(i=0;i<10;i++)
{
x=0;
for(j=0;j<5;j++)
x=x+a[i].score[j];
x=x/5;
y=y+x*x;
z=z+x;
}
return(y/10-(z*z)/(10*10));
}
void main()
{
float f031(a),f032(a),f033(a),f036(a);
int f034(a),f035(a);
struct stu a[100];
int i,j;
printf("此函数为: 输入10个学生5门课的成绩,分别用函数求出:\n (1)每个学生的平均分;(2)每门课的平均分;(3)找出最高的分数所对应的学生和课程;\n(4)求出平均分方差 x0=(x1^+x2^+...+xn^)/n+((x1+x2+...+xn)/n)^ . \n");
printf("请分别输入五门课程\n");
for(i=0;i<5;i++)
scanf("%s",a[i].cour);
printf("请输入十个姓名\n");
for(i=0;i<10;i++)
scanf("%s",a[i].name);
printf("请分别输入十行成绩(每行五列)\n");
for(i=0;i<10;i++)
for(j=0;j<5;j++)
scanf("%f",&a[i].score[j]);
printf("输出为:\n");
printf("姓名");
for(i=0;i<5;i++)
printf("%12s",a[i].cour);
printf("\n");
for(i=0;i<10;i++)
{ printf("%-12s",a[i].name);
for(j=0;j<5;j++)
printf("%-12.1f",a[i].score[j]);
printf("\n");
}
printf("每个学生的平均分为:\n");
for(i=0;i<10;i++)
printf("%-8s%0.1f\n",a[i].name,f031(a));
q=0;
printf("每门课的平均分为:\n");
for(i=0;i<5;i++)
printf("%-12s%0.1f\n",a[i].cour,f032(a));
p=0;
printf("最高的分数所对应的学生和课程为: \n");
printf("%-8.1f%12s%12s\n",f033(a),a[f034(a)].name,a[f035(a)].cour);
printf("平均分方差= ");
printf("%0.2f\n",f036(a));
system("pause...");
}
『伍』 编写一个程序,输入学生姓名和分数。输出以下部分数据
可以将学生姓名和成绩的下标联系在一起,下标一样的姓名和数据表示的就是一个人。
程序代码如下:
#include<iostream.h>
#include<string.h>
#include<stdio.h>
void main()
{
char name[30][10];
float score[30];
float ave;
int n;
int i, j;
cout<<"请输入学生的人数:";
cin>>n;
ave = 0;
cout<<"请输入学生的姓名和成绩"<<endl;
for(i = 0; i < n; i++)
{
cin>>name[i]>>score[i];
ave = ave + score[i];
}
ave = ave / n;
cout<<"本班级平均分是:"<<ave<<endl;
cout<<"考试成绩低于班级平均分的学生姓名如下:"<<endl;
for(i = 0; i < n; i++)
if(score[i] < ave)
cout<<name[i]<<endl;
cout<<"最高分以及最高分学生的姓名:"<<endl;
j = 0;
for(i = 1; i < n; i++)
if(score[i] > score[j])
j = i;
cout<<score[j]<<endl;
for(i = 0; i < n; i++)
if(score[i] == score[j])
cout<<name[i]<<endl;
}
『陆』 编程实现:输入一组学生的姓名和成绩,根据成绩降序排名。
#include <stdio.h>
#include <string.h>
#define N 3
struct student
{
int score;
char name[20];
};
main()
{
struct student a[N],temp;
int i,j;
for(i=0;i<N;i++)
{
printf("input the %dth student's information:\n",i+1);
printf("name:");
scanf("%s",a[i].name);
printf("score:");
scanf("%d",&a[i].score);
}
for(i=1;i<N;i++)
for(j=0;j<N-i;j++)
if(a[j].score<a[j+1].score)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("名次 姓名 成绩\n");
for(i=0;i<N;i++)
printf("%4d%10s%4d\n",i+1,a[i].name,a[i].score);
}
//调试成果 运行正内确容!
『柒』 输入学生姓名,查找该学生并输出其学号姓名成绩
1、更多交流可参考我空间主页有关文章。
2、#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
/*定义结构体*/
struct student
{
num;
float score;
struct student *next;
};
/*创建一个只有头结点的空链表*/
struct student *create_head()
{
struct student *head;
head=(struct student*)malloc(sizeof (struct student) );
if(head==NULL) //小心别漏这个
{
printf("申请头结点失败!\n");
return NULL;
}
head->next=NULL;
return head;
}
/*将s指向的结点插入链表,使链表保持升序,并返回头结点*/
struct student *insert(struct student *head,struct student *s)
{
struct student *p=head;
while(p->next!=NULL&&s->score>p->next->score)//特别注意&&左右不能写反,若s最大,最后p->next=NULL,p->next->score运行出错
p=p->next;
if(p->next==NULL) //s->score最大的情况 //其实两种情况可以并在一块写
{
p->next=s; //连接结点
s->next=NULL; //p->next就等于NULL
}
else
{
p->next=s; //连接结点
s->next=p->next;
}
return head ;
}
/*查找符合条件的结点,并返回指向该结点的指针*/
struct student *search(struct student *head)
{
struct student *p=head->next;
int num;
printf("请输入要查找学生的学号:\n");
scanf("%d",&num);
while(p!=NULL&&p->num!=num) //特别注意两条件不能写反,若写反最后p指向NULL时p->num找不到 运行出错
p=p->next;
if(p==NULL) //特别注意两个if不能调换,若调换最后p指向NULL时p->num运行出错
{
printf("找不到符合条件的结点!!!");
return NULL; //查找不到返回空指针
}
if(p->num==num)
{
printf("找到符合条件的结点\n该结点为%d\t%f",p->num,p->score);
return p; //返回查找到的指针
}
}
/*输出链表各结点的值,也称对链表的遍历*/
void print(struct student *head)
{
struct student *p;
printf(" 链表如下: \n");
p=head->next;
while(p!=NULL)
{
printf("%d\t%.1f\n",p->num,p->score);
p=p->next;
}
}
/*释放链表*/
void free_list(struct student *head)
{
struct student *p=head ;
printf("释放链表:\n");
while(p!=NULL)
{
head=head->next;
free(p);
p=head;
}
printf("释放链表成功!\n");
}
/*删除链表中值为num的结点,并返回链表的首指针*/
struct student *delete_note(struct student *head,int num_x)
{
struct student *p1=head->next , *p2=head ;
while(p1!=NULL&&p1->num!=num_x) //特别注意&&左右条件不能调换,若调换如果p1指向NULL时p1->num运行出错
{
p2=p1;
p1=p1->next;
}
if(p1==NULL) //特别注意两个if不能调换,若调换如果p1指向NULL时,p1->num运行出错
printf("找不到符合删除要求的结点!!!\n");
if(p1->num==num_x)
{
p2->next=p1->next;
free(p1);
printf("结点删除成功!\n");
}
return head;
}
/*完整的有头结点链表操作程序*/
void main()
{
struct student *p , *head ;
char c;
int num ;
float score ;
printf("有头结点链表操作程序:\n");
head=create_head();
while(1)
{
printf("I:插入结点(自动升序) P:输出链表 S:查找结点 D:删除结点 E:释放链表并退出程序! ");
c=getch();
switch(c)
{
case'I':
printf("请分别输入要插入学生的学号和分数:\n");
scanf("%d%f",&num,&score);
p=(struct student*)malloc( sizeof(struct student) );
if(p==NULL)
{
printf("申请该结点失败!!!\n");
exit (0) ;
}
p->num=num; p->score=score; //给p赋值
insert(head,p);
printf("插入成功!\n");
break;
case'P':
print(head);
break;
case'S':
search(head);
break;
case'D':
printf("请输入要删除的学生的学号:\n");
scanf("%d",&num);
delete_note(head,num);
break;
case'E':
free_list(head);
exit (0);
}
}
}
『捌』 可以输出所有同学的成绩表也可以输出平均分在前3名的学生姓名及平均分怎么做
今天你是我见过的第三个问这个问题的人了,问题一模一样,前两个估计是你的同学了,我帮她们写了
『玖』 用java定义学生类(学号、姓名、成绩)。用列表list存放班级学生信息。然后按照成绩排序,并输出学生信息
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
public class Admin {
public static void main(String... args) {
List data = new ArrayList();
Student s0 = new Student();
s0.setNo("000");
s0.setName("a");
s0.setChengji(100.0);
data.add(s0);
Student s1 = new Student();
s1.setNo("001");
s1.setName("b");
s1.setChengji(99.0);
data.add(s1);
Student s2 = new Student();
s2.setNo("002");
s2.setName("c");
s2.setChengji(98.0);
data.add(s2);
System.out.println("排序前");
show(data);
System.out.println("排序后");
sort(data);
show(data);
}
private static void sort(List data) {
Collections.sort(data, new Comparator() {
public int compare(Object o1, Object o2) {
Student s1 = (Student) o1;
Student s2 = (Student) o2;
return (int) (s1.getChengji() - s2.getChengji());
}
});
}
private static void show(List data) {
for (int i = 0; i < data.size(); i++) {
System.out.println(data.get(i));
}
}
}
class Student {
private String no;
private String name;
private double chengji;
public double getChengji() {
return chengji;
}
public void setChengji(double chengji) {
this.chengji = chengji;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String toString() {
return "学号:" + no + ",姓名:" + name + ",成绩:" + chengji;
}
}
结果
排序前
学号:000,姓名:a,成绩:100.0
学号:001,姓名:b,成绩:99.0
学号:002,姓名:c,成绩:98.0
排序后
学号:002,姓名:c,成绩:98.0
学号:001,姓名:b,成绩:99.0
学号:000,姓名:a,成绩:100.0
『拾』 SQL查询成绩60以上的学生姓名,且姓名只输出一次
没有表结构,我就大致写个示意的sql。
select distinct 姓名 from 表 where 成绩>60;
如果需要多表查询就做一下表关联。
如果有帮助到你,请点击采纳。