用c语言实现社团基本信息管理中对社团名称,口号,宗旨,章程,发起人,社团性质的增删改操作并保存在硬盘中
时间: 2024-03-15 12:47:56 浏览: 62
好的,我可以帮你回答这个问题。首先,我们需要定义一个结构体来存储社团的基本信息,包括名称、口号、宗旨、章程、发起人和社团性质。
```c
typedef struct {
char name[50];
char slogan[100];
char purpose[200];
char constitution[500];
char founder[20];
char type[20];
} Club;
```
接下来,我们可以定义一个数组来存储多个社团的信息。
```c
Club clubs[50];
int num_clubs = 0;
```
然后,我们可以编写一些函数来实现对社团信息的增删改操作。
添加社团信息:
```c
void addClub() {
Club newClub;
printf("请输入社团名称:");
scanf("%s", newClub.name);
printf("请输入社团口号:");
scanf("%s", newClub.slogan);
printf("请输入社团宗旨:");
scanf("%s", newClub.purpose);
printf("请输入社团章程:");
scanf("%s", newClub.constitution);
printf("请输入社团发起人:");
scanf("%s", newClub.founder);
printf("请输入社团性质:");
scanf("%s", newClub.type);
clubs[num_clubs++] = newClub;
saveClubs();
}
```
删除社团信息:
```c
void deleteClub(int index) {
for (int i = index; i < num_clubs - 1; i++) {
clubs[i] = clubs[i + 1];
}
num_clubs--;
saveClubs();
}
```
修改社团信息:
```c
void modifyClub(int index) {
Club newClub;
printf("请输入新的社团名称:");
scanf("%s", newClub.name);
printf("请输入新的社团口号:");
scanf("%s", newClub.slogan);
printf("请输入新的社团宗旨:");
scanf("%s", newClub.purpose);
printf("请输入新的社团章程:");
scanf("%s", newClub.constitution);
printf("请输入新的社团发起人:");
scanf("%s", newClub.founder);
printf("请输入新的社团性质:");
scanf("%s", newClub.type);
clubs[index] = newClub;
saveClubs();
}
```
最后,我们还需要编写一个函数来将社团信息保存到硬盘中。
```c
void saveClubs() {
FILE *file = fopen("clubs.dat", "wb");
fwrite(clubs, sizeof(Club), num_clubs, file);
fclose(file);
}
```
完整的代码如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct {
char name[50];
char slogan[100];
char purpose[200];
char constitution[500];
char founder[20];
char type[20];
} Club;
Club clubs[50];
int num_clubs = 0;
void addClub() {
Club newClub;
printf("请输入社团名称:");
scanf("%s", newClub.name);
printf("请输入社团口号:");
scanf("%s", newClub.slogan);
printf("请输入社团宗旨:");
scanf("%s", newClub.purpose);
printf("请输入社团章程:");
scanf("%s", newClub.constitution);
printf("请输入社团发起人:");
scanf("%s", newClub.founder);
printf("请输入社团性质:");
scanf("%s", newClub.type);
clubs[num_clubs++] = newClub;
saveClubs();
}
void deleteClub(int index) {
for (int i = index; i < num_clubs - 1; i++) {
clubs[i] = clubs[i + 1];
}
num_clubs--;
saveClubs();
}
void modifyClub(int index) {
Club newClub;
printf("请输入新的社团名称:");
scanf("%s", newClub.name);
printf("请输入新的社团口号:");
scanf("%s", newClub.slogan);
printf("请输入新的社团宗旨:");
scanf("%s", newClub.purpose);
printf("请输入新的社团章程:");
scanf("%s", newClub.constitution);
printf("请输入新的社团发起人:");
scanf("%s", newClub.founder);
printf("请输入新的社团性质:");
scanf("%s", newClub.type);
clubs[index] = newClub;
saveClubs();
}
void saveClubs() {
FILE *file = fopen("clubs.dat", "wb");
fwrite(clubs, sizeof(Club), num_clubs, file);
fclose(file);
}
void loadClubs() {
FILE *file = fopen("clubs.dat", "rb");
if (file == NULL) {
return;
}
fread(clubs, sizeof(Club), 50, file);
fclose(file);
for (int i = 0; i < 50; i++) {
if (strlen(clubs[i].name) > 0) {
num_clubs++;
}
}
}
int main() {
loadClubs();
while (1) {
printf("请输入操作序号(1:添加社团,2:删除社团,3:修改社团信息,4:退出):");
int choice;
scanf("%d", &choice);
switch (choice) {
case 1: addClub(); break;
case 2: {
printf("请输入要删除的社团序号:");
int index;
scanf("%d", &index);
deleteClub(index);
break;
}
case 3: {
printf("请输入要修改的社团序号:");
int index;
scanf("%d", &index);
modifyClub(index);
break;
}
case 4: exit(0);
default: printf("无效操作,请重新输入!\n");
}
}
return 0;
}
```
当你需要增加、删除或修改社团信息时,程序会自动保存到硬盘中,以便下次运行时可以继续使用。
阅读全文