#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <stdbool.h>
#include<windows.h>
#define MAX_NUM 100
typedef struct club
{
char name[20];
int club;
int age;
int number;
char role[10];
char activityname[20];
char content[1000];
}Club;
void disp_row(struct club);
int deleteClubInfo();
int addClubInfo();
int deleteActivityInformal();
int addActivityInfo();
void save();
void showClubInfo();
void showActivityInfo();
void query();
void queryActivity();
Club club[MAX_NUM];
int count = 0;
int addClubInfo()
{
if(count >= MAX_NUM)
{
printf("已达到最大人数,不能再添加\n");
return 0;
}
printf("请输入姓名:");
scanf("%s",&club[count].name);
printf("请输入年龄:");
scanf("%d",&club[count].age);
printf("请输入学号:");
scanf("%d",&club[count].number);
printf("请输入职务:");
scanf("%s",&club[count].role);
count++;
save();
printf("添加成功!\n");
Sleep(1000);
system("cls");
return 1;
}
void display()
{
FILE *fp;
int i;
if((fp=fopen("社团.txt","rb"))==NULL)
{ printf("cannot open file\n");
return;
}
for(i=0;i<20;i++)
{ fread(&club[i],sizeof(struct club),1,fp);
printf("%s%d%d%s%s\n",club[i].name,club[i].age,club[i].number,club[i].activityname,club[i].content);
}
fclose(fp);
}
void save()
{
int i;
FILE *fp;
fp=fopen("社团.txt","w");
for(i=0;i<20;i++)
{ fprintf(fp,"%s%d%d%s%s\n",club[i].name,club[i].age,club[i].number,club[i].activityname,club[i].content);
}
fclose(fp);
printf("存储成功\n");
}
int addActivityInfo()
{
if(count >= MAX_NUM)
{
printf("活动数已达到最大,不能再添加\n");
Sleep(1000);
system("cls");
return 0;
}
printf("请输入活动名称:");
scanf("%s",club[count].activityname);
printf("请输入活动内容:");
scanf("%s",club[count].content);
count++;
save();
printf("添加成功!\n");
Sleep(1000);
system("cls");
return 1;
}
int deleteClubInfo()
{
char name[20 ];
int i,j;
printf("请输入要删除的姓名:");
scanf("%s",name);
struct club temp;
for(i=0;i<count;i++)
{
if(strcmp(club[i].name,name)==0)
{
for(j=i;j<count-1;j++)
{
club[j]=club[j+1];
}
count--;
printf("删除成功!\n");
save();
return 1;
}
}
printf("没有找到要删除的人!\n");
Sleep(1000);
system("cls");
return 0;
}
int deleteActivityInfo()
{
char activityname[20];
int i,j;
printf("请输入要删除的活动名称:");
scanf("%s",activityname);
struct club temp;
for(i=0;i<count;i++)
{
if(strcmp(club[i].activityname,activityname)==0)
{
for(j=i;j<count-1;j++)
{
club[j]=club[j+1];
}
count--;
printf("删除成功!\n");
save();
Sleep(1000);
system("cls");
return 1;
}
}
printf("没有找到要删除的活动!\n");
Sleep(1000);
system("cls");
return 0;
}
void showClubInfo()
{
int i;
if(count==0)
{
printf("暂无学生信息!\n");
Sleep(1000);
system("cls");
return;
}
struct club temp;
printf("姓名\t年龄\t学号\t职务");
for(i=0;i<count;i++)
{
printf("\n%s\t%d\t%d\t%s\t\n",club[i].name,club[i].age,club[i].number);
}
}
void showActivityInfo()
{
int i;
if(count==0)
{
printf("暂无活动信息!\n");
Sleep(1000);
system("cls");
return;
}
struct club temp;
printf("活动名称\t活动内容\t");
for(i=0;i<count;i++)
{
printf("\n%s \t%s",club[i].activityname,club[i].content);
}
}
void query()
{
int i;
char name[20];
printf("请输入要查询的学生姓名:");
scanf("%s",name);
for(i=0;i<count;i++)
{
if(strcmp(club[i].name,name)==0)
{
struct club temp;
printf("姓名\t年龄\t学号\t职务");
printf("\n%s\t%d\t%d\t%s\t\n",club[i].name,club[i].age,club[i].number);
return ;
}
}
printf("没有找到此人!\n");
Sleep(1000);
system("cls");
return ;
}
void queryActivity()
{
int i;
char activityname[20];
printf("请输入要查询的活动名称:");
scanf("%s",activityname);
for(i=0;i<count;i++)
{
if(strcmp(club[i].activityname,activityname)==0)
{
struct club temp;
printf("活动名称 活动内容\t");
printf("\n%s\t%s",club[i].activityname,club[i].content);
return ;
}
}
printf("没有找到此活动!\n");
Sleep(1000);
system("cls");
return ;
}
int main()
{
int select;
bool isDone=false;
while(!isDone)
{
printf("\t\t\t\t\t\t\t学生社团管理系统\n");
printf("1.增加学生信息\n");
printf("2.删除学生信息\n");
printf("3.显示总学生信息\n");
printf("4.查询学生信息\n");
printf("5.增加活动信息\n");
printf("6.删除活动信息\n");
printf("7.显示总活动信息\n");
printf("8.查询活动信息\n");
printf("9.保存\n");
printf("0.退出\n");
printf("请输入您的选择:");
scanf("%d",&select);
switch(select)
{
case 0:
isDone=true;
break;
case 1:
addClubInfo();
break;
case 2:
deleteClubInfo();
break;
case 3:
showClubInfo();
break;
case 4:
query();
break;
case 5:
addActivityInfo();
break;
case 6:
deleteActivityInfo();
break;
case 7:
showActivityInfo();
break;
case 8:
queryActivity();
break;
case 9:
save();
break;
default:
printf("输入有误!\n");
Sleep(1000);
system("cls");
break;
}
}
return 0;
}