请编写程序实现顺序表的建立、求长度、插 入、删除、遍历的基本运算,其中顺序表中每 一个数据元素的类型定义为学生信息的结构 体,包括学号、姓名和成绩。

请编写程序实现顺序表的建立、求长度、插
入、删除、遍历的基本运算,其中顺序表中每
一个数据元素的类型定义为学生信息的结构
体,包括学号、姓名和成绩。

建议多看一下结构体的内容

参考GPT和自己的思路:

好的,以下是程序实现顺序表基本运算的示例代码:

#include <iostream>

#define MAXSIZE 100 // 定义顺序表的最大长度为100

struct Student {    // 定义学生信息的结构体
    int id;         // 学号
    std::string name;   // 姓名
    int grade;      // 成绩
};

struct SeqList {
    Student data[MAXSIZE];  // 定义顺序表存储学生信息的数组
    int length;             // 顺序表的实际长度
};

// 初始化顺序表
void InitList(SeqList& L) {
    L.length = 0;   // 将顺序表的长度初始化为0
}

// 求顺序表的长度
int GetLength(SeqList L) {
    return L.length;
}

// 在指定位置插入元素
bool InsertList(SeqList& L, int pos, Student s) {
    if (pos < 1 || pos > L.length + 1) {   // 判断插入位置是否合法
        return false;   // 插入失败,返回false
    }
    if (L.length >= MAXSIZE) {  // 判断顺序表是否已满
        return false;   // 插入失败,返回false
    }
    for (int i = L.length; i >= pos; --i) {    // 将pos及之后的元素后移一位
        L.data[i] = L.data[i - 1];
    }
    L.data[pos - 1] = s;    // 在pos位置插入元素
    ++L.length; // 顺序表长度加1
    return true;    // 插入成功,返回true
}

// 删除指定位置的元素
bool DeleteList(SeqList& L, int pos) {
    if (pos < 1 || pos > L.length) {    // 判断删除位置是否合法
        return false;   // 删除失败,返回false
    }
    for (int i = pos - 1; i < L.length - 1; ++i) {    // 将pos之后的元素前移一位
        L.data[i] = L.data[i + 1];
    }
    --L.length; // 顺序表长度减1
    return true;    // 删除成功,返回true
}

// 遍历输出顺序表中的元素
void TraverseList(SeqList L) {
    for (int i = 0; i < L.length; ++i) {
        std::cout << "id: " << L.data[i].id << " name: " << L.data[i].name << " grade: " << L.data[i].grade << "\n";
    }
}

// 主函数
int main() {
    SeqList L;
    InitList(L);

    // 插入元素
    Student s1 = { 10001, "Tom", 92 };
    Student s2 = { 10002, "Jerry", 85 };
    InsertList(L, 1, s1);
    InsertList(L, 2, s2);

    // 遍历输出
    TraverseList(L);

    // 删除元素
    DeleteList(L, 2);
    TraverseList(L);

    return 0;
}

上述示例代码中,使用了C++语言实现了顺序表的基本运算,包括初始化顺序表、求顺序表长度、插入元素、删除元素、遍历输出元素等操作。其中顺序表中每一个数据元素的类型都是学生信息的结构体,包括学号、姓名和成绩。建议在编写程序时,根据具体的需求对代码进行修改,以满足实际应用场景。

所谓顺序表就是数组,你可以参考一些现成的程序,遇到问题再提问。