实验七

实验10 结构体

(1)实验内容:
  某班有50个学生,每个学生包含的信息为学号、姓名及语文、数学、英语成绩。

编程要求:

    1. 求每个学生的平均成绩
    2. 求每门课程的平均成绩
(2)算法说明:定义结构体数组变量student[51]存放个学生学号、姓名及语文、数学、英语成绩,其中student[50]存放全班各科课程总成绩;
通过void xshavg(struct stu student[],int n)  //每个学生的平均成绩函数

 void kchavg(struct stu student[],int n)  //每门课程平均成绩函数,主函数中调用实现编程要求中的两个实验目的。

 (3)程序源代码清单:

 #include <stdio.h>

struct stu

{

 char name[10];       //姓名

 int no;              //学号

 int score[3];        //语数英三科成绩

 int avg;             //每个学生的平均成绩

}student[51];

void xshavg(struct stu student[],int n)  //每个学生的平均成绩函数

{

 for(int i=0;i<n;i++)

 {

  student[i].avg=0;

  for(int j=0;j<3;j++)

   student[i].avg+=student[i].score[j];

  student[i].avg/=3;

 }

}

void kchavg(struct stu student[],int n)   //每门课程平均成绩函数

{

 for(int j=0;j<3;j++)

 {

  for(int i=0;i<n;i++)

   student[50].score[j]+=student[i].score[j];

        student[50].score[j]/=n;

 }

}

void main()

{

 int n=50;

 printf("请输入 姓名 学号 语文成绩 数学成绩 英语成绩/n");

 for(int i=0;i<n;i++)

 {

  printf("第%d个学生:",i+1);

  scanf("%s%d%d%d%d",&student[i].name,&student[i].no,&student[i].score[0],&student[i].score[1],&student[i].score[2]);

 }

  xshavg(student,n);

  kchavg(student,n);

    printf("姓名 学号 三科平均成绩/n");

    for(i=0;i<n;i++)

 {

  printf("%s%d%d/n",student[i].name,student[i].no,student[i].avg);

 }

printf("语文平均成绩 数学平均成绩 英语平均成绩/n");

printf("%d%d%d/n",student[50].score[0],student[50].score[1],student[50].score[2]);

}

(4)测试数据与实验结果:
数据量太大将50个学生改为2个:

输入:

a 100 50 60 70

b 101 60 70 80

输出:

a 100 60

b 101 70

55 65 75

必要的说明:无

(5)分析与思考

结构体数组相当重要,可以实现多种数据类型的组合以实现现实世界数据处理的需要,对数据结构影响很大;调试过程中数据量太大时,可适当改小以节省时间。

实验 Java多线程 一、实验目的: 熟悉利用Thread类建立多线程方法。 熟悉利用Thread接口建立多线程方法。 二、实验内容: 1. 阅读下列程序,分析并上机检验其功能。 class DelayThread exends Thread{ private static int count=0; private int no; private int delay; public DelayThread(){ count++; no=count; } public void run(){ try{ for (int i=0;i<10;i++){ delay=(int)(Math.random()*5000); sleep(delay); System.out.println(“Thread ”+no+” with a delay ”+delay); } }catch(InterruptedException e){}}} public class MyThread{ public static void main(String args[]){ DelayThread thread1=new DelayThread(); DelayThread thread2=new DelayThread(); thread1.start(); thread2.start(); try{ Thread.sleep(1000);}catch(InterruptedException e){ System.out.println(“Thread wrong”);}}} 2.讲上列程序利用Runnable接口改写,并上机检验。 3.利用多线程编写一个模拟时钟(AWT程序、Runnable接口),有时/分/秒针 编写一个应用程序,创建三个线程分别显示各自的时间。 三、实验要求: 1. 通过实验掌握Thread 、Runnable使用方法; 2. 程序必须能够实现多线程; 3. 程序必须能够完成题目要求; 4. 写出实验报告。 四、实验步骤: 首先分析程序功能,再通过上机运行验证自己的分析,从而掌握通过Thread类建立多线程的方法。 通过将扩展Thread类建立多线程的方法改为利用Runnable接口的方法,掌握通过Runnable接口建立多线程的方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值