C++语言实现讲座报名的功能,并且为代码添加详细注释
时间: 2024-05-27 18:15:03 浏览: 13
#include <stdio.h> // 包含标准输入输出库头文件
#include <stdlib.h> // 包含标准库头文件
typedef struct { // 定义结构体类型
char name[20]; // 姓名
char phone[12]; // 电话
int age; // 年龄
} Student; // 结构体类型命名为 Student
void menu(void); // 声明菜单函数
void signUp(void); // 声明报名函数
void viewList(void); // 声明查看名单函数
int main(void) { // 主函数
menu(); // 调用菜单函数
return 0; // 返回 0,表示程序正常结束
}
void menu(void) { // 菜单函数
int choice; // 定义选择变量
do { // 循环执行菜单
printf("1. 报名讲座\n");
printf("2. 查看名单\n");
printf("3. 退出\n");
printf("请选择:");
scanf("%d", &choice); // 读取用户输入的选择
switch (choice) { // 根据用户选择执行相应的操作
case 1:
signUp(); // 调用报名函数
break;
case 2:
viewList(); // 调用查看名单函数
break;
case 3:
printf("谢谢使用!\n");
exit(0); // 退出程序
default:
printf("无效的选择,请重新输入!\n");
break;
}
} while (1); // 无限循环,直到用户选择退出
}
void signUp(void) { // 报名函数
Student student; // 定义学生变量
FILE *fp; // 定义文件指针变量
fp = fopen("students.txt", "a"); // 打开文件,以追加方式写入
if (fp == NULL) { // 判断文件是否打开成功
printf("文件打开失败!\n");
return; // 返回,表示函数执行结束
}
printf("请输入姓名:");
scanf("%s", student.name); // 读取学生姓名
printf("请输入电话:");
scanf("%s", student.phone); // 读取学生电话
printf("请输入年龄:");
scanf("%d", &student.age); // 读取学生年龄
fprintf(fp, "%s %s %d\n", student.name, student.phone, student.age); // 将学生信息写入文件
fclose(fp); // 关闭文件
printf("报名成功!\n");
}
void viewList(void) { // 查看名单函数
Student student; // 定义学生变量
FILE *fp; // 定义文件指针变量
fp = fopen("students.txt", "r"); // 打开文件,以只读方式读取
if (fp == NULL) { // 判断文件是否打开成功
printf("文件打开失败!\n");
return; // 返回,表示函数执行结束
}
printf("姓名\t电话\t\t年龄\n");
while (fscanf(fp, "%s %s %d", student.name, student.phone, &student.age) != EOF) { // 读取文件中的学生信息
printf("%s\t%s\t%d\n", student.name, student.phone, student.age); // 输出学生信息
}
fclose(fp); // 关闭文件
}