C++ struct实现一维教师信息数组并输入验证

需积分: 10 0 下载量 84 浏览量 更新于2024-09-12 收藏 2KB TXT 举报
在C++编程中,"用struct创建一维数组"通常涉及结构体(struct)的使用以及动态数组的管理。本文将详细介绍如何定义一个名为`person`的结构体,用于存储教师的信息,包括姓名(wchar_t name[8])、年龄(unsigned int age)和工资总额(unsigned int wages)。然后,我们创建一个大小为5的结构体数组`teacher`,以便存储5名教师的数据。 首先,我们定义了一个名为`data_if`的函数,它接收两个指针(一个指向整数变量`h`,另一个指向结构体数组`teacher`的元素`p`),以及一个整数`k`作为参数。这个函数的主要作用是检查输入的年龄和工资是否超出预设的最大值,如果超过,则退出程序。如果输入在范围内,函数会更新数组中的值并返回0。 接下来,在`main`函数中,我们导入了所需的库,如`locale`、`iostream`和`iomanip`,并设置了中国的字符集(localechina("chs"))。这有助于正确显示中文字符。通过设置`wcin`和`wcout`的locale,我们可以确保输入和输出使用汉字格式。 然后,程序创建了一个循环来输入5名教师的信息。循环变量`i`从0到4,每循环一次就向用户询问并存储一个教师的信息。使用`setw`和`setfill`调整输出格式,使得姓名、年龄和工资字段都有合适的对齐和填充,使输出更为清晰。`data_if`函数在每次循环中被调用两次,确保教师的年龄不超过150岁,工资不超过1000000元。 最后,程序在完成所有教师信息输入后,使用`setw`和`fill`来绘制一条边界线,以结束数据输入部分,并显示总结的教师列表标题。 这段代码展示了如何利用C++的结构体和数组结构来组织和管理教师信息,以及如何通过流控制和格式设置实现友好的用户交互界面。这在实际的项目开发中,尤其是在处理需要存储和显示复杂数据结构的应用中,是非常实用的一种技术。