深圳大学-电信院-C程序设计实验-函数编程实验

实验目的

一、进一步熟悉C 语言中函数的编程方法;
二、进一步掌握C 语言中函数定义和调用方法;
三、掌握数组作为函数参数的编程方法。
四、掌握字符串的编程方法。

实验要求

本次实验不要求提交正式实验报告,但要求实验完成后,将程序及程序的运行结果依次拷贝到一个word文档中,统一形成一个.doc文档后提交至Blackboard。文档名可用你的姓名+你的学号。

实验内容

本次实验要求定义4个函数,编写主函数调用自定义函
数进行验证。

(第一个函数)
void inputFromKeyboard(float score[][4], char name[][10], int num)

功能:从键盘输入每一位学生的信息(姓名、4门课的成绩)。所存入的学生姓名存入字符数组name中,所输入的4门课的成绩存入数组score中。

score数组:学生成绩,name数组:学生姓名,num:学生人数

(第二个函数)
void outputToScreen(float score[][4], char name[][10], int num)

功能:将每一位学生信息(姓名 4门课的成绩 平均成绩)输出到屏幕上。
score数组:学生成绩,name数组:学生姓名,num:学生人数

(第三个函数)
int compare_score(float student1_score [4], float student2_score [4])
功能:计算两个学生的总成绩,并对两学生的总成绩进行比较。若学生1的总成绩大于学生2的总成绩,返回值为1,否则,返回值为0。
student1_score数组:学生1各科成绩,student2_score数组:学生2各科成绩。

(第四个函数)

void sortByTotalScore(float score[][4], char name[][10], int num)

功能:根据总成绩按从小到大的顺序对学生的信息进行排序。
注意:在两学生总成绩比较时,要求调用compare_score函数。比如下标为i和下标为j的学生比较时,调用的形式为
compare_score(score[i], score[j])

(主函数)编写主函数对你所编写的上述3个函数进行调用验证。主函数应有以下功能:
1)定义数组float student_score[5][4]和数组char student_name[5][10]分别用于存贮5名学生4门课的成绩和5名学生的姓名。
2)调用函数inputFromKeyboard由键盘输入学生的信息( 姓名、英语成绩、数学成绩、物理成绩、化学成绩 )。数组名student_score、数组名student_name和数字5作为函数inputFromKeyboard的三个输入参数(实参)。5名学生信息可能如下:
孙颖莎 88.0 76.0 78.0 77.0
王曼昱 98.0 67.0 79.0 65.0
王艺迪 89.0 79.0 85.0 79.0
陈梦 90.0 95.0 97.0 85.0
钱天一 86.0 83.0 82.0 75.0
3)调用函数outputToScreen 将输入的学生信息显示到屏幕上。student_score、student_name和5作为函数outputToScreen的三个输入参数(实参)。
4)调用函数sortByTotalScore 根据学生的总成绩对学生信息进行排序。student_score、student_name和5作为函数sortByTotalScore的三个输入参数(实参)。
5)调用函数outputToScreen 将排序后的学生完整信息显示到屏幕上。student_score、student_name和5作为函数outputToScreen的三个输入参数(实参)。

实验代码

#include<stdio.h>
void inputFromKeyboard(float score[][4], char name[][10], int num)
{
    int i;
    printf("请输入 %d 名学生的姓名和成绩:\n", num);
    for (i = 0; i < num; i++) {
        scanf("%s%f%f%f%f", name[i], &score[i][0], &score[i][1], &score[i][2], &score[i][3]);
    }
}

void outputToScreen(float score[][4], char name[][10], int num)
{
    int i;
    printf("姓名\t英语\t数学\t物理\t化学\t平均分\n");
    for (i = 0; i < num; i++) {
        float sum = score[i][0] + score[i][1] + score[i][2] + score[i][3];
        printf("%s\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n", name[i], score[i][0], score[i][1], score[i][2], score[i][3], sum / 4);
    }
}
int compare_score(float student1_score[4], float student2_score[4])
{
    float sum1 = student1_score[0] + student1_score[1] + student1_score[2] + student1_score[3];
    float sum2 = student2_score[0] + student2_score[1] + student2_score[2] + student2_score[3];
    if (sum1 > sum2) {
        return 1;
    }
    else {
        return 0;
    }
}
void sortByTotalScore(float score[][4], char name[][10], int num)
{
    int i, j;
    for (i = 0; i < num - 1; i++) {
        for (j = i + 1; j < num; j++) {
            if (compare_score(score[i], score[j])) {
                float temp_score[4];
                for (int k = 0; k < 4; k++) {
                    temp_score[k] = score[i][k];
                    score[i][k] = score[j][k];
                    score[j][k] = temp_score[k];
                }
                char temp_name[10];
                for (int k = 0; k < 10; k++) {
                    temp_name[k] = name[i][k];
                    name[i][k] = name[j][k];
                    name[j][k] = temp_name[k];
                }
            }
        }
    }
}
int main()
{
    float student_score[5][4];
    char student_name[5][10];
    inputFromKeyboard(student_score, student_name, 5);
    printf("\n输出所有学生信息如下:\n");
    outputToScreen(student_score, student_name, 5);
    sortByTotalScore(student_score, student_name, 5);
    printf("\n按总成绩从小到大排序后,学生信息如下:\n");
    outputToScreen(student_score, student_name, 5);
    return 0;
}

运行结果

在这里插入图片描述

  • 27
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
深圳大学的Java程序设计课程中涉及到了网络编程应用。网络编程是指通过网络进行数据交互的程序设计方式。 在网络编程中,我们需要使用Java提供的一些类库和API来实现网络通信。Java中提供了一套完善的网络编程工具,包括Socket编程、ServerSocket编程、URL编程等。 Socket编程是实现网络通信的基本方式之一,它是一种面向连接的通信方式。通过创建一个Socket对象,程序可以与远程服务器进行连接,并进行数据的发送和接收。使用Socket编程,我们可以实现客户端和服务器之间的通信,实现从客户端向服务器发送请求,服务器处理请求并返回结果的功能。 ServerSocket编程是一种服务器端的网络编程方式,它可以接收客户端的连接请求并与之建立连接。通过创建一个ServerSocket对象,并调用其accept()方法,服务器可以等待客户端的连接请求,并将连接请求转交给一个新的Socket对象进行处理。使用ServerSocket编程,我们可以实现服务器的功能,接收来自多个客户端的请求,并处理这些请求。 URL编程是一种用于访问远程资源的网络编程方式。通过创建一个URL对象,并调用其openConnection()方法,我们可以建立与远程服务器的连接,并获取服务器返回的数据。使用URL编程,我们可以实现通过HTTP协议获取网页内容、下载文件等功能。 在深圳大学的Java程序设计课程中,我们将学习如何使用这些网络编程的工具和技术,并实践一些网络应用的开发。通过这门课程的学习,我们可以掌握网络编程的基本原理和常用技术,提升自己的Java程序设计能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值