C语言挑选幸运观众,要求可录入幸运观众的名字,编号,电话,同时将基本信息保存在file05 txt中,满足可删除观众信息的功能,从已录入信息的观众随机挑选3个观众,并显示其信息,最后可以将3名幸运观众的信息保存在另一个文件中,最后可以满足退出系统的功能。同时该程序满足方便易懂,便利性强
时间: 2024-03-19 18:41:24 浏览: 29
好的,我来回答你的问题。
这是一个基于C语言开发的幸运观众选择程序,要求用户输入幸运观众的基本信息,包括姓名、编号和电话,并将信息保存在file05.txt文件中。程序提供了删除观众信息的功能,用户可以从已录入信息的观众中随机挑选3个幸运观众,并显示其信息。程序还提供了将3名幸运观众的信息保存在另一个文件中的功能,最后还可以满足退出系统的需求。
整个程序非常方便易懂,便利性非常强,用户可以轻松地完成各种操作。
相关问题
C语言 抽取幸运观众,要求录入幸运观众的编号,姓名,手机号码保存在file05.txt 中,抽取3位不重复的观众并显示相关信息,将抽取的3位观众保存在另一个文件里
好的,这是一个需要使用文件读写、随机数生成和数组操作的问题,下面是一个可能的解决方案:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
#define MAX_RECORDS 100 // 最多记录观众数
#define MAX_NAME_LEN 20 // 姓名最大长度
#define MAX_PHONE_LEN 20 // 手机号最大长度
// 观众信息结构体
struct Audience {
char id[10]; // 编号
char name[MAX_NAME_LEN]; // 姓名
char phone[MAX_PHONE_LEN]; // 手机号码
};
// 从文件中读取观众信息
int readAudiences(struct Audience audiences[]) {
FILE *fp;
int count = 0;
fp = fopen("file05.txt", "r");
if (fp == NULL) {
printf("Failed to open file file05.txt!\n");
return 0;
}
while (!feof(fp) && count < MAX_RECORDS) {
fscanf(fp, "%s %s %s", audiences[count].id, audiences[count].name, audiences[count].phone);
count++;
}
fclose(fp);
return count;
}
// 将抽奖结果写入文件
void writeResult(struct Audience result[]) {
FILE *fp;
fp = fopen("result.txt", "w");
if (fp == NULL) {
printf("Failed to create file result.txt!\n");
return;
}
fprintf(fp, "Congratulations! The lucky audiences are:\n");
for (int i = 0; i < 3; i++) {
fprintf(fp, "%s %s %s\n", result[i].id, result[i].name, result[i].phone);
}
fclose(fp);
}
int main() {
struct Audience audiences[MAX_RECORDS];
struct Audience result[3];
int count = readAudiences(audiences);
if (count == 0) {
return 0;
}
// 随机选取3个不同的观众
srand(time(NULL));
int selected[3] = {-1, -1, -1};
for (int i = 0; i < 3; i++) {
int idx;
do {
idx = rand() % count;
} while (idx == selected[0] || idx == selected[1]);
selected[i] = idx;
result[i] = audiences[idx];
}
// 显示抽奖结果
printf("Congratulations! The lucky audiences are:\n");
for (int i = 0; i < 3; i++) {
printf("%s %s %s\n", result[i].id, result[i].name, result[i].phone);
}
// 将结果写入文件
writeResult(result);
return 0;
}
```
这个程序首先读取 `file05.txt` 文件中的观众信息,然后使用 `rand()` 函数随机选取3个不同的观众,将结果输出到屏幕上,并将结果写入 `result.txt` 文件中。请注意,这个程序没有对输入的观众信息进行任何格式或合法性检查,实际应用中可能需要添加这些检查。
C语言 抽取幸运观众,要求录入幸运观众的编号,姓名,手机号码保存在file05.txt 中,然后从中抽取3位不重复的观众并显示显示姓名电话号码等,将抽取的3位,将观众保存在另一个文件里,最后要有退出功能的同时,也可以删除观众信息编号等
好的,我会为您解答关于C语言抽取幸运观众的问题。
首先,您需要定义一个结构体来保存幸运观众的编号、姓名和手机号码。
```c
struct Viewer {
int number;
char name[50];
char phone[20];
};
```
接下来,您需要编写函数来录入幸运观众的信息,并将其保存到文件中。下面是一个示例函数:
```c
void addViewer() {
struct Viewer viewer;
FILE *file;
file = fopen("file05.txt", "a+");
printf("请输入幸运观众的编号:");
scanf("%d", &viewer.number);
printf("请输入幸运观众的姓名:");
scanf("%s", viewer.name);
printf("请输入幸运观众的手机号码:");
scanf("%s", viewer.phone);
fprintf(file, "%d %s %s\n", viewer.number, viewer.name, viewer.phone);
fclose(file);
printf("幸运观众信息录入成功!\n");
}
```
接着,您需要编写函数来抽取3位幸运观众,并将其保存到另一个文件中。下面是一个示例函数:
```c
void drawViewer() {
struct Viewer viewers[100];
int n = 0, i, j, k;
FILE *file1, *file2;
file1 = fopen("file05.txt", "r");
file2 = fopen("file06.txt", "w");
while (fscanf(file1, "%d %s %s", &viewers[n].number, viewers[n].name, viewers[n].phone) != EOF) {
n++;
}
if (n < 3) {
printf("幸运观众不足3人,无法进行抽奖!\n");
return;
}
for (i = 0; i < 3; i++) {
do {
j = rand() % n;
k = 0;
while (k < i && viewers[j].number != viewers[k].number) {
k++;
}
} while (k < i);
fprintf(file2, "%d %s %s\n", viewers[j].number, viewers[j].name, viewers[j].phone);
printf("第%d位幸运观众:%s,%s\n", i + 1, viewers[j].name, viewers[j].phone);
}
printf("幸运观众抽取成功!\n");
fclose(file1);
fclose(file2);
}
```
最后,您需要编写一个菜单程序,让用户可以选择录入幸运观众信息、抽取幸运观众、删除观众信息或退出程序。下面是一个示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
struct Viewer {
int number;
char name[50];
char phone[20];
};
void addViewer() {
struct Viewer viewer;
FILE *file;
file = fopen("file05.txt", "a+");
printf("请输入幸运观众的编号:");
scanf("%d", &viewer.number);
printf("请输入幸运观众的姓名:");
scanf("%s", viewer.name);
printf("请输入幸运观众的手机号码:");
scanf("%s", viewer.phone);
fprintf(file, "%d %s %s\n", viewer.number, viewer.name, viewer.phone);
fclose(file);
printf("幸运观众信息录入成功!\n");
}
void drawViewer() {
struct Viewer viewers[100];
int n = 0, i, j, k;
FILE *file1, *file2;
file1 = fopen("file05.txt", "r");
file2 = fopen("file06.txt", "w");
while (fscanf(file1, "%d %s %s", &viewers[n].number, viewers[n].name, viewers[n].phone) != EOF) {
n++;
}
if (n < 3) {
printf("幸运观众不足3人,无法进行抽奖!\n");
return;
}
for (i = 0; i < 3; i++) {
do {
j = rand() % n;
k = 0;
while (k < i && viewers[j].number != viewers[k].number) {
k++;
}
} while (k < i);
fprintf(file2, "%d %s %s\n", viewers[j].number, viewers[j].name, viewers[j].phone);
printf("第%d位幸运观众:%s,%s\n", i + 1, viewers[j].name, viewers[j].phone);
}
printf("幸运观众抽取成功!\n");
fclose(file1);
fclose(file2);
}
void deleteViewer() {
int number, flag = 0;
char name[50], phone[20];
FILE *file1, *file2;
file1 = fopen("file05.txt", "r");
file2 = fopen("file07.txt", "w");
printf("请输入要删除的幸运观众的编号:");
scanf("%d", &number);
while (fscanf(file1, "%d %s %s", &number, name, phone) != EOF) {
if (number != flag) {
fprintf(file2, "%d %s %s\n", number, name, phone);
}
flag = number;
}
printf("幸运观众信息删除成功!\n");
fclose(file1);
fclose(file2);
remove("file05.txt");
rename("file07.txt", "file05.txt");
}
int main() {
int choice;
srand(time(NULL));
printf("欢迎使用幸运观众抽奖程序!\n");
while (1) {
printf("1. 录入幸运观众信息\n");
printf("2. 抽取幸运观众\n");
printf("3. 删除观众信息\n");
printf("4. 退出程序\n");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
addViewer();
break;
case 2:
drawViewer();
break;
case 3:
deleteViewer();
break;
case 4:
printf("感谢使用幸运观众抽奖程序!\n");
return 0;
default:
printf("输入有误,请重新输入!\n");
break;
}
}
return 0;
}
```
请注意,上述程序仅作为示例,实际应用中可能需要根据具体需求进行修改和完善。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)