用C语言写志愿者服务活动管理系统设计并带解释 志愿者服务活动信息包括:志愿者姓名、电话、志愿者参加的服务活动名称、地点、内容等。试设计一个志愿者服务活动信息管理系统,使之能提供以下功能: 1. 系统以菜单方式工作,可以循环显示菜单,直至选择退出系统,才结束整个程序的运行。 2. 志愿者服务活动信息录入功能(志愿者服务活动信息用文件保存)。 3. 志愿者服务活动信息浏览功能。 4. 志愿者服务活动信息查询功能。 实现两种查询方式: 按志愿者姓名查询。 按手机号查询。 5. 志愿者服务活动信息的删除与修改。 语言方向:C 系统环境:Windows


```c #include <stdio.h> #include <stdlib.h> #include <string.h> // 定义志愿者服务活动结构体 typedef struct VolunteerActivity { char name[50]; char phone[20]; char activityName[50]; char location[50]; char content[100]; } VolunteerActivity; // 录入志愿者服务活动信息 void inputActivity(VolunteerActivity *activity) { printf("请输入志愿者姓名: "); scanf("%s", activity->name); printf("请输入志愿者电话: "); scanf("%s", activity->phone); printf("请输入志愿者参加的服务活动名称: "); scanf("%s", activity->activityName); printf("请输入活动地点: "); scanf("%s", activity->location); printf("请输入活动内容: "); scanf("%s", activity->content); } // 保存志愿者服务活动信息到文件 void saveActivity(VolunteerActivity activity) { FILE *fp = fopen("volunteer_activities.txt", "a"); if (fp == NULL) { printf("文件打开失败!\n"); return; } fprintf(fp, "%s %s %s %s %s\n", activity.name, activity.phone, activity.activityName, activity.location, activity.content); fclose(fp); } // 浏览志愿者服务活动信息 void browseActivity() { VolunteerActivity activity; FILE *fp = fopen("volunteer_activities.txt", "r"); if (fp == NULL) { printf("文件打开失败!\n"); return; } printf("志愿者姓名\t电话\t服务活动名称\t地点\t内容\n"); while (fscanf(fp, "%s %s %s %s %s", activity.name, activity.phone, activity.activityName, activity.location, activity.content)!= EOF) { printf("%s\t%s\t%s\t%s\t%s\n", activity.name, activity.phone, activity.activityName, activity.location, activity.content); } fclose(fp); } // 按志愿者姓名查询 void queryByName() { char name[50]; printf("请输入要查询的志愿者姓名: "); scanf("%s", name); VolunteerActivity activity; FILE *fp = fopen("volunteer_activities.txt", "r"); if (fp == NULL) { printf("文件打开失败!\n"); return; } int found = 0; printf("志愿者姓名\t电话\t服务活动名称\t地点\t内容\n"); while (fscanf(fp, "%s %s %s %s %s", activity.name, activity.phone, activity.activityName, activity.location, activity.content)!= EOF) { if (strcmp(activity.name, name) == 0) { printf("%s\t%s\t%s\t%s\t%s\n", activity.name, activity.phone, activity.activityName, activity.location, activity.content); found = 1; } } if (!found) { printf("未找到该志愿者的活动信息!\n"); } fclose(fp); } // 按手机号查询 void queryByPhone() { char phone[20]; printf("请输入要查询的手机号: "); scanf("%s", phone); VolunteerActivity activity; FILE *fp = fopen("volunteer_activities.txt", "r"); if (fp == NULL) { printf("文件打开失败!\n"); return; } int found = 0; printf("志愿者姓名\t电话\t服务活动名称\t地点\t内容\n"); while (fscanf(fp, "%s %s %s %s %s", activity.name, activity.phone, activity.activityName, activity.location, activity.content)!= EOF) { if (strcmp(activity.phone, phone) == 0) { printf("%s\t%s\t%s\t%s\t%s\n", activity.name, activity.phone, activity.activityName, activity.location, activity.content); found = 1; } } if (!found) { printf("未找到该手机号对应的活动信息!\n"); } fclose(fp); } // 删除志愿者服务活动信息 void deleteActivity() { char name[50]; printf("请输入要删除的志愿者姓名: "); scanf("%s", name); VolunteerActivity activity; FILE *fp = fopen("volunteer_activities.txt", "r"); FILE *fpTemp = fopen("temp.txt", "w"); if (fp == NULL || fpTemp == NULL) { printf("文件打开失败!\n"); return; } int found = 0; while (fscanf(fp, "%s %s %s %s %s", activity.name, activity.phone, activity.activityName, activity.location, activity.content)!= EOF) { if (strcmp(activity.name, name)!= 0) { fprintf(fpTemp, "%s %s %s %s %s\n", activity.name, activity.phone, activity.activityName, activity.location, activity.content); } else { found = 1; } } fclose(fp); fclose(fpTemp); remove("volunteer_activities.txt"); rename("temp.txt", "volunteer_activities.txt"); if (found) { printf("删除成功!\n"); } else { printf("未找到该志愿者的活动信息,删除失败!\n"); } } // 修改志愿者服务活动信息 void modifyActivity() { char name[50]; printf("请输入要修改的志愿者姓名: "); scanf("%s", name); VolunteerActivity activity; FILE *fp = fopen("volunteer_activities.txt", "r"); FILE *fpTemp = fopen("temp.txt", "w"); if (fp == NULL || fpTemp == NULL) { printf("文件打开失败!\n"); return; } int found = 0; while (fscanf(fp, "%s %s %s %s %s", activity.name, activity.phone, activity.activityName, activity.location, activity.content)!= EOF) { if (strcmp(activity.name, name) == 0) { printf("请重新输入志愿者电话: "); scanf("%s", activity.phone); printf("请重新输入志愿者参加的服务活动名称: "); scanf("%s", activity.activityName); printf("请重新输入活动地点: "); scanf("%s", activity.location); printf("请重新输入活动内容: "); scanf("%s", activity.content); found = 1; } fprintf(fpTemp, "%s %s %s %s %s\n", activity.name, activity.phone, activity.activityName, activity.location, activity.content); } fclose(fp); fclose(fpTemp); remove("volunteer_activities.txt"); rename("temp.txt", "volunteer_activities.txt"); if (found) { printf("修改成功!\n"); } else { printf("未找到该志愿者的活动信息,修改失败!\n"); } } // 主函数 int main() { int choice; do { printf("1. 录入志愿者服务活动信息\n"); printf("2. 浏览志愿者服务活动信息\n"); printf("3. 按志愿者姓名查询\n"); printf("4. 按手机号查询\n"); printf("5. 删除志愿者服务活动信息\n"); printf("6. 修改志愿者服务活动信息\n"); printf("7. 退出系统\n"); printf("请选择: "); scanf("%d", &choice); switch (choice) { case 1: { VolunteerActivity activity; inputActivity(&activity); saveActivity(activity); break; } case 2: browseActivity(); break; case 3: queryByName(); break; case 4: queryByPhone(); break; case 5: deleteActivity(); break; case 6: modifyActivity(); break; case 7: printf("谢谢使用,再见!\n"); break; default: printf("输入错误,请重新输入!\n"); } } while (choice!= 7); return 0; } ``` 以下是需要注意的逻辑点: 1. 对于文件操作,要确保文件能正常打开和关闭,避免出现资源泄漏。 2. 在进行字符串比较时,使用 `strcmp` 函数要注意其返回值的含义。 3. 输入数据时要对输入的内容进行合法性检查,防止出现错误。 [2025-03-03 21:05:42 | AI写代码神器 | 2066点数解答]
- 苍溪-广安-重庆红色研学实践活动实施方案 一、活动与目的 为深入学习贯彻党的历史,弘扬长征精神和革命传统,苍溪县委宣传部、县教育局联合开展“苍溪-广安-重庆红色研学实践活动”。本次活动旨在通过实地考察、学习体验,引导学生深入了解红色文化,传承红色基因,增强爱国主义情感和集体主义观念,提高综合素质。 二、活动对象与时间 1. 活动对象:苍溪县中小学生。 2. 活动时间:2025年暑假期间(具体时间根据学校安排及天气情况确定)。 三、活动路线与内容 1. 苍溪段 * 地点:红军渡景区、黄猫垭战斗遗址、苍溪县苏维埃旧址等。 * 内容:参观革命遗址,聆听讲解员介绍革命历史,观看红色文化展览,体验红军生活(如穿红军服、唱红歌等)。 2. 广安段 * 地点:*故里、华蓥山游击队纪念馆等。 * 内容:学习*同志的革命事迹,了解华蓥山游击队的英勇抗争历史,开展红色故事分享会。 3. 重庆段 * 地点:歌乐山烈士陵园、白公馆、渣滓洞等。 * 内容:缅怀革命先烈,参观革命纪念馆,了解重庆在抗日战争和(1244点数解答 | 2025-06-19 16:32:34)123
- 编程实现一个简单的密码设置系统,从键盘输入字符命令,分别实现相应的功能。 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入。 (286点数解答 | 2025-03-28 10:43:21)229
- 编程实现一个简单的密码设置系统,从键盘输入字符命令,分别实现相应的功能。 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入。 用c语言 (414点数解答 | 2025-03-28 10:43:55)220
- 程实现一个简单的密码设置系统,从键盘输入字符命令,分别实现相应的功能。 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入 用c语言 (519点数解答 | 2025-03-28 12:42:02)260
- 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入。 用c语言(409点数解答 | 2025-04-05 18:09:56)216
- 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入。 用c语言 (454点数解答 | 2025-04-05 18:48:42)209
- 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入 C语言 (413点数解答 | 2025-04-06 15:37:16)159
- 初始化设置密码为123456,等待命令输入: (1)输入字符‘1’,功能:密码确认。提示输入密码,密码正确,返回“密码正确”,否则返回密码错误。 (2)输入字符‘2’,功能:设置密码。输入设置密码后,系统提示设置正确。 (3)输入字符‘3’,功能:显示密码。 (4)输入字符‘4’,功能:重置密码。密码重置为6个0; (5)输入字符‘0’,功能:系统退出。 (6)输入其他字符,系统提示输入错误请重新输入 C语言(403点数解答 | 2025-04-06 15:37:54)179
- c++程序: 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份:1.教师;2学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并允许修改部分数据。如果未保存数据,则允许教师录入新的数据。具体功能包括: 可录入或修改课程信息,包括:课程编号、课程名称; 可录入或修改课程的评分项目 (数量任意,不低于3项),包括:项目名称、所占分比例(需进行合法性检测,各项目比例之和为100%);示例如下: 项目名称 所占比例 实验 30% 作业 20% 期中考试 20% 期末考试 30% 注: 一旦录入学生成绩后,评分项目不允许修改;未录入成绩数据时,允许进行修改。 3.可录入、修改、刑除学生(学生数量不限)读门课程的各项成绩,并按照其比例自动算出总成绩;学生基本信息包括学号、姓名;示例如下: 请录入“c++编程”课程成绩 学号:201901 姓名:张三 实验:60 作业:70 期中考试:60 期未考试:80 信息显示功能。可显示课程信息、评分项目信息、所有学生的成绩单。 5.能够将上述数据保存在文件中,二进制、文本文件均可。(课程信息和评 分项目信息可保存一个文件,成绩单(6361点数解答 | 2024-05-24 02:01:02)364
- c++程序: 实现一个单门课程成绩管理系统。进入系统时,用户可选择身份:1.教师;2学生。 以教师身份进入后,如果上次已保存了数据,可将文件中数据读取出来,并允许修改部分数据。如果未保存数据,则允许教师录入新的数据。具体功能包括: 可录入或修改课程信息,包括:课程编号、课程名称; 可录入或修改课程的评分项目 (数量任意,不低于3项),包括:项目名称、所占分比例(需进行合法性检测,各项目比例之和为100%);示例如下: 项目名称 所占比例 实验 30% 作业 20% 期中考试 20% 期末考试 30% 注: 一旦录入学生成绩后,评分项目不允许修改;未录入成绩数据时,允许进行修改。 3.可录入、修改、刑除学生(学生数量不限)读门课程的各项成绩,并按照其比例自动算出总成绩;学生基本信息包括学号、姓名;示例如下: 学号:201901 姓名:张三 实验:60 作业:70 期中考试:60 期未考试:80 信息显示功能。可显示课程信息、评分项目信息、所有学生的成绩单。 5.能够将上述数据保存在文件中,二进制、文本文件均可。(课程信息和评 分项目信息可保存一个文件,成绩单可保存一个文件;也可全部保存为(4293点数解答 | 2024-05-24 10:20:03)285
- 帮我写一个批处理文件,内容如下: 1、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中p=的值改为"参数表.xlsx"中c列对应的值; 2、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中t=的值改为"参数表.xlsx"中b列对应的值; 3、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中s=的值改为"参数表.xlsx"中d列对应的值; 如: 参数表.xlsx中a列a1,a2,a3;b列1.5,2,3;c列为10,20,30;d列100,101,102; 文件.txt中的行 1:l p[54:a1] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=10,ed=1]; 2:l p[57:a2] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=11,ed=1]; 3:l p[67:a3] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=12,ed=1]; 文件.txt修改后为 1:l p[54(811点数解答 | 2024-12-05 12:58:37)257
- 帮我写一个批处理文件,内容如下: 1、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中p=的值改为"参数表.xlsx"中c列对应的值; 2、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中t=的值改为"参数表.xlsx"中b列对应的值; 3、如果在"参数表.xlsx"a列中的值找到与"文件.txt"中相同的值,则把此行中s=的值改为"参数表.xlsx"中d列对应的值; 参数表.xlsx中a列a1,a2,a3;b列1.5,2,3;c列为10,20,30;d列100,101,102; 文件.txt数据 1:l p[54:a1] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=10,ed=1]; 2:l p[57:a2] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=11,ed=1]; 3:l p[67:a3] 2000mm/sec cnt100 spot[sd=1,p=25,t=2.0,s=12,ed=1]; 文件.txt修改后数据 1:l p[54:a1(531点数解答 | 2024-12-05 13:20:42)253