一、实验背景

在掌握了C语言的基础语法和常用函数之后,动手实践是检验学习成果的重要途径。本实验旨在通过一系列精心设计的实验项目,帮助学员深入理解C语言的编程思想,提升编程能力。云班课作为在线学习平台,为我们提供了便捷的实验环境,让学员可以随时随地开展实验。

二、实验目标

  1. 掌握C语言编程的基本流程,包括问题分析、算法设计、代码实现、调试与优化。
  2. 熟悉云班课实验平台的使用方法,提高实验效率。
  3. 培养良好的编程习惯,提升编程思维和问题解决能力。

三、实验内容

1. 项目一:计算器程序

项目描述:编写一个简单的计算器程序,实现加减乘除四则运算。

实操指南

  1. 分析需求,确定程序功能。
  2. 设计算法,实现加、减、乘、除运算。
  3. 编写代码,实现计算器界面和功能。
  4. 调试程序,确保功能正确。
#include <stdio.h>

int main() {
    float num1, num2;
    char operator;

    printf("请输入两个数和运算符(+、-、*、/):");
    scanf("%f %f %c", &num1, &num2, &operator);

    switch (operator) {
        case '+':
            printf("%.2f + %.2f = %.2f\n", num1, num2, num1 + num2);
            break;
        case '-':
            printf("%.2f - %.2f = %.2f\n", num1, num2, num1 - num2);
            break;
        case '*':
            printf("%.2f * %.2f = %.2f\n", num1, num2, num1 * num2);
            break;
        case '/':
            if (num2 != 0) {
                printf("%.2f / %.2f = %.2f\n", num1, num2, num1 / num2);
            } else {
                printf("除数不能为0\n");
            }
            break;
        default:
            printf("无效的运算符\n");
            break;
    }

    return 0;
}

2. 项目二:学生信息管理系统

项目描述:编写一个学生信息管理系统,实现添加、删除、修改、查询学生信息的功能。

实操指南

  1. 分析需求,确定系统功能。
  2. 设计数据结构,存储学生信息。
  3. 编写代码,实现系统界面和功能。
  4. 调试程序,确保功能正确。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_STUDENTS 100

typedef struct {
    int id;
    char name[50];
    int age;
    float score;
} Student;

Student students[MAX_STUDENTS];
int student_count = 0;

void add_student(int id, const char* name, int age, float score) {
    if (student_count < MAX_STUDENTS) {
        students[student_count].id = id;
        strcpy(students[student_count].name, name);
        students[student_count].age = age;
        students[student_count].score = score;
        student_count++;
    } else {
        printf("学生数量已达上限\n");
    }
}

void delete_student(int id) {
    for (int i = 0; i < student_count; i++) {
        if (students[i].id == id) {
            for (int j = i; j < student_count - 1; j++) {
                students[j] = students[j + 1];
            }
            student_count--;
            return;
        }
    }
    printf("找不到该学生\n");
}

void update_student(int id, const char* name, int age, float score) {
    for (int i = 0; i < student_count; i++) {
        if (students[i].id == id) {
            strcpy(students[i].name, name);
            students[i].age = age;
            students[i].score = score;
            return;
        }
    }
    printf("找不到该学生\n");
}

void query_student(int id) {
    for (int i = 0; i < student_count; i++) {
        if (students[i].id == id) {
            printf("学生ID:%d\n姓名:%s\n年龄:%d\n成绩:%.2f\n", students[i].id, students[i].name, students[i].age, students[i].score);
            return;
        }
    }
    printf("找不到该学生\n");
}

int main() {
    // ... 实现代码 ...
    return 0;
}

3. 项目三:冒泡排序算法

项目描述:使用C语言实现冒泡排序算法,对一组数据进行排序。

实操指南

  1. 分析需求,确定排序算法。
  2. 编写代码,实现冒泡排序算法。
  3. 测试程序,验证排序结果。
#include <stdio.h>

void bubble_sort(int arr[], int n) {
    for (int i = 0; i < n - 1; i++) {
        for (int j = 0; j < n - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

int main() {
    int arr[] = {5, 2, 8, 3, 1};
    int n = sizeof(arr) / sizeof(arr[0]);

    bubble_sort(arr, n);

    printf("排序后的数组:");
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");

    return 0;
}

四、实验总结

通过本次实验,学员可以深入理解C语言的编程思想,掌握编程的基本流程,并提高编程能力。在实验过程中,要注重代码的可读性和可维护性,养成良好的编程习惯。同时,要充分利用云班课实验平台提供的资源,提高实验效率。

祝愿学员们在编程道路上越走越远,解锁更多编程奥秘!