数据结构课设预习报告(问题1)

1 问题定义

管理参赛队的基本信息

2 问题分析

利用单链表管理参赛队的基本信息,包含参赛队编号,参赛作品名称,参赛学校,赛事类别,参赛者,指导老师新建一个参数队伍结构体,在里面定义各种参赛信息,以及指向下一个队伍的指针。建一个新建队伍的函数,运用指针将参数传递的信息赋给各个队伍,按类别将信息传递给各类指针,最后将队伍输出。新建查找函数,实例化一个查找函数对象,将输入的函数赋值给它,不断指向下一个队伍,直到其id相同,停止查找,输出当前队伍。新建一个显示所有队伍信息的函数,用循环遍历各个队伍,将信息按表输出。新建一个添加队伍信息的函数,先输入新建队伍的编号,用查找函数功能查找此函数不存在时,继续输入各个信息,再将各个信息利用新建队伍函数,将各个信息赋值给新创建的函数,将新建的队伍指向前一个队伍,再将头指针指向此新建的队伍。

再新建一个删除队伍信息的函数,原理同上一个函数。再创建一个修改函数,利用查找函数找到此次要修改的队伍,依次将修改值赋值给该队伍的各个类别。

最后用main函数,输出操作选项菜单,利用switch方法检索,执行各个操作。

3 、概要设计

以下是解决该问题的代码框架

// 参赛队伍结构体

Struct Team{

int id; // 队伍编号

    string name; // 参赛作品名称

    string school; // 参赛学校

    string event; // 赛事类别

    string participants; // 参赛者

    string teacher; // 指导老师

    Team* next; // 指向下一个队伍的指针

};

// 用于新建队伍的函数

Team* createTeam(int id, string name, string school, string event, string participants, string teacher) {

    Team* team = new Team;

    team->id = id;

    team->name = name;

    team->school = school;

    team->event = event;

    team->participants = participants;

    team->teacher = teacher;

    team->next = nullptr;

    return team;

}

// 用于在链表中查找队伍的函数

Team* findTeam(Team* head, int id) {}

// 用于显示所有队伍信息的函数

void displayTeams(Team* head) {}

// 用于添加队伍信息的函数

void addTeam(Team **head) {}

// 用于删除队伍信息的函数

void removeTeam(Team **head) {}

// 用于修改队伍信息的函数

void editTeam(Team **head) {}

int main() {

Team* head = nullptr; // 初始链表为空

while (true) {

    cout << "请选择操作:1. 添加新的参赛队伍;2. 删除参赛队伍;3. 修改参赛队伍信息;4. 显示所有参赛队伍信息;其他数字退出程序。" << endl;

    int choice;

    cin >> choice;

    switch (choice) {

        case 1:

            addTeam(&head);

            break;

        case 2:

            removeTeam(&head);

            break;

        case 3:

            editTeam(&head);

            break;

        case 4:

            displayTeams(head);

            break;

        default:

            return 0;

    }

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值