【C语言实践报告】
在软件开发领域,C语言是一种基础且强大的编程语言,常用于系统级编程、嵌入式开发以及各种应用软件的构建。本实验报告主要关注使用C语言处理电话订餐信息的场景,旨在提升学生在高级语言程序设计方面的实践能力。
实验目的是通过模拟实际业务场景,让学生理解如何利用C语言编写程序来处理数据,特别是结构化数据的存储、查询、修改和删除。在这个例子中,数据是电话订餐的信息,包括顾客姓名、用餐时间及人数。
为了存储和操作这些数据,我们需要定义一个结构体类型`struct guest`,包含以下字段:
- `int num`: 编号,用于唯一标识每个订单。
- `char name[40]`: 顾客姓名,使用字符数组存储,最大长度为40个字符。
- `char time[20]`: 用餐时间,同样使用字符数组,最大长度为20个字符。
- `int sum`: 用餐人数,整型变量。
接下来,我们声明一系列函数,用于实现不同的功能:
- `void insert(int *p)`: 插入新的订餐信息到结构体数组中。
- `void inquire(int p)`: 查询指定编号的订餐信息。
- `void change(int p)`: 修改已有的订餐信息。
- `void dele(int *p)`: 删除指定编号的订餐信息。
- `void show(int p)`: 显示所有订餐信息。
在主函数`main()`中,通过循环和switch语句实现用户交互,根据用户输入调用相应的函数执行操作。例如,当用户选择1时,调用`insert()`函数插入新的订餐信息;选择2时,调用`inquire()`函数查询信息等。
`insert()`函数在插入新信息时,首先检查数组是否已满(即`*p == max`),如果已满则返回错误信息。然后,通过循环查找是否有重复的编号,如果有,则提示用户。读取用户输入的姓名、人数和用餐时间,并更新结构体数组。
`inquire()`函数遍历数组,寻找指定编号的订餐信息。如果找到,显示相关信息;否则,提示编号不存在。
`change()`函数类似于`insert()`,但会在找到指定编号的订餐信息后,允许用户修改姓名、人数和用餐时间。
`dele()`函数删除指定编号的订餐信息,需要考虑数组的动态调整,确保不会留下空洞。
`show()`函数遍历整个数组并打印所有订餐信息。
这个简单的C语言程序展示了如何用结构化数据处理实际问题,同时也涉及到基本的输入输出、循环、条件判断和函数调用等核心编程概念。通过这样的实践,学生能更好地掌握C语言的编程技巧,并能应用于实际软件开发中。