113行的{去掉后还是一样的错误提示
#include
#include
#include
#include <windows.h>
#include
#include
void fun1();
void input();
void change();
void deleted();
void find();
void print();
typedef struct Match {
struct Match *next; //为创建链表做准备
int number; //比赛项目编号
char call[10]; //比赛项目名称
char time[10]; //比赛时间
char place[20]; //比赛地点
} Match;
typedef struct Athlete {
struct Athlete *next; //为创建链表做准备
int number; //运动员编号
char name[10]; //运动员姓名
char part[20]; //运动员所在班级
char sex[20]; //运动员性别
int age; //运动员年龄
}Athlete;
typedef struct Message {
struct Message *next; //为创建链表做准备
char name[10]; //运动员姓名
char avent[10]; //运动员参加的比赛项目名称
int score; //比赛成绩
int ca; //比赛名次
} Message;
int main()
{
int i, ok = 0;
printf("欢迎进入校运动会管理界面\n");
printf("**********************************************************************\n");
fun1();
scanf("%d", &i);
switch (i) {
case 1:
input();
break;
case 2:
change();
break;
case 3:
deleted();
break;
case 4:
find();
break;
case 5:
print();
break;
case 6:
return 0;
default:
printf("您输入数据有误!\n");
}
//下面是主菜单的内容选项:
{
printf("******************************\n");
printf("\n");
printf("学校运动会管理系统\n");
printf("----数据录入 请按:1----\n");
printf("----数据修改 请按:2----\n");
printf("----数据删除 请按:3----\n");
printf("----数据查询 请按:4----\n");
printf("----数据显示 请按:5----\n");
printf("----退出系统 请按:6----\n");
printf("\n");
printf("*******************************\n");
printf("\n");
printf("*****请输入一个数据,并按回车键!*****\n");
}
int input()
{
printf("\n");
printf("\t\t\t请输入要输入的信息:\n");
printf("\t\t比赛项目信息输入 请按:1\n");
printf("\t\t运动员信息输入 请按:2\n");
printf("\t\t比赛赛事信息输入 请按:3\n");
int j;
fseek(stdin, 0, SEEK_END);
scanf("%d", &j);
switch (j) {
case 1:
input1();
break;
case 2:
}
input2();
break;
case 3:
input3();
break;
default:
printf("输入数据有误!");
}
return 0;
}
void input1()
{
FILE *fout = fopen("d:\比赛项目.dat", "a+");
char ch;
Match a;
do {
printf("请分别输入比赛项目编号、名称、比赛时间、比赛地点\n");
scanf("%d%s%s%s", &a.number, a.call, a.time, a.place);
a.next = NULL;
fwrite((char *)&a, sizeof(Match), 1, fout);
printf("是否继续输入,如果继续键入Y|y\n");
fseek(stdin, 0, SEEK_END);
//getchar();
scanf("%c", &ch);
} while (ch == 'y' || ch == 'Y');
fclose(fout);
}
void input2()
{
FILE* fout = fopen("e:\运动员.dat", "a+");//fopen("e:\运动员.dat", "a+")
//表示在e盘打开一个运动员.dat文件,a+表示对这个文件操作为追加操作,即后面往文件写入的内容不覆盖前面的内容
//FILE* fout表示定义一个FILE类型的指针fout,该指针指向这个文件在磁盘中的位置,可以通过该指针访问这个运动员.dat文件
char ch;
Athlete b;
do {
printf("请分别输入运动员编号,姓名,性别,年龄,所属班级");
scanf("%d%s%s%d%s", &b.number, b.name, b.sex, &b.age, b.part);
b.next = NULL;
fwrite((char *)&b, sizeof(Athlete), 1, fout);
printf("是否继续输入,如果继续键入Y|y\n");
scanf("%c", &ch);
} while (ch == 'y' || ch == 'Y');//判断输入的字符是不是y或Y
}
void input3()
{
FILE* fout = fopen("d:\比赛赛事.dat", "a+");
//fopen("e:\运动员.dat", "a+")表示在e盘打开一个运动员.dat文件,a+表示对这个文件操作为追加操作,即后面往文件写入的内容不覆盖前面的内容
//FILE* fout表示定义一个FILE类型的指针fout,该指针指向这个文件在磁盘中的位置,可以通过该指针访问这个运动员.dat文件
char ch;
Message c;
do {
printf("请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次.\n");
scanf("%s%s%d%d", c.name, c.avent, &c.score, &c.ca);
c.next = NULL;
fwrite((char *)&c, sizeof(Message), 1, fout);
printf("是否继续输入,如果继续键入Y|y\n");
//getchar();
scanf("%c", &ch);
} while (ch == 'y' || ch == 'Y');
fclose(fout); //关闭文件
}
int change()
{
printf("\n");
printf("\t\t\t请输入要修改的信息:\n");
printf("\t\t比赛项目信息修改 请按:1\n");
printf("\t\t运动员信息修改 请按:2\n");
printf("\t\t比赛赛事信息修改 请按:3\n");
int j;
scanf("%d", &j);
switch (j) {
case 1:
change1();
break;
case 2:
change2();
break;
case 3:
change3();
break;
default:
printf("输入数据有误!\n");
}
return 0;
}
int change1()
{
printf("您正在进行修改比赛项目有关事项操作!\n");
creat();
Match *p1;
p1 = head1;
printf("请输入要修改比赛项目的编号:\n");
int number1;
int sign = 0;
scanf("%d", &number1);
while (p1 != NULL) {
if (p1->number == number1) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要修改的记录\n");
else {
printf("请选择要修改比赛项目的2222些信息\n");
printf("------修改比赛项目的编号----1\n");
printf("------修改比赛项目的名称----2\n");
printf("------修改比赛时间----3\n");
printf("------修改比赛地点----4\n");
printf("请输入对应信息的编号");
int a;
int nu;
char info[20];
fseek(stdin, 0, SEEK_END);
scanf("%d", &a);
switch (a) {
case 1:
printf("请输入新的比赛编号:\n");
scanf("%d", &nu);
p1->number = nu;
printf("比赛项目编号修改成功!\n");
break;
case 2:
printf("请输入新的比赛项目名称:\n");
scanf("%s", info);
strcpy(p1->call, info);
printf("比赛项目名称修改成功!\n");
break;
case 3:
printf("请输入新的比赛时间:\n");
scanf("%s", info);
strcpy(p1->time, info);
printf("比赛项目时间修改成功!\n");
break;
case 4:
printf("请输入新的比赛地点:\n");
scanf("%s", info);
strcpy(p1->place, info);
printf("比赛项目地点修改成功!\n");
break;
}
FILE *fout = fopen("d:\\比赛项目.dat", "a+");
p1 = head1;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Match), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
return 0;
}
int change2()
{
printf("您正在进行修改运动员基本信息操作!\n");
creat2();
Athlete *p1;
p1 = head4;
printf("请输入要修改运动员的编号:\n");
int number1;
int sign = 0;
scanf("%d", &number1);
while (p1 != NULL) {
if (p1->number == number1) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要修改的记录!\n");
else {
printf("请选择要修改运动员的哪些信息\n");
printf("------修改运动员的编号----1\n");
printf("------修改运动员的姓名----2");
printf("------修改运动员的班级----3\n");
printf("------修改运动员性别----4\n");
printf("------修改运动员年龄----4\n");
printf("请输入对应信息的编号\n");
int a;
int nu;
char info[20];
scanf("%d", &a);
switch (a) {
case 1:
printf("请输入新的运动员编号:\n");
scanf("%d", &nu);
p1->number = nu;
printf("运动员的编号修改成功!\n");
break;
case 2:
printf("请输入新的运动员姓名:\n");
scanf("%s", info);
strcpy(p1->name, info);
printf("运动员姓名修改成功!\n");
break;
case 3:
printf("请输入新的运动员的班级:\n");
scanf("%s", info);
strcpy(p1->part, info);
printf("运动员的班级!\n");
break;
case 4:
printf("请输入新的性别:\n");
scanf("%s", info);
strcpy(p1->sex, info);
printf("运动员性别修改成功!\n");
break;
case 5:
printf("请输入新的年龄:\n");
scanf("%d", &nu);
p1->age = nu, printf("运动员年龄修改成功!\n");
break;
}
FILE* fout = fopen("d:\\运动员.dat", "w");
p1 = head4;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Athlete), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
return 0;
int change3()
{
printf("您正在进行修改比赛赛事有关事项操作!");
creat3();
Message *p1;
p1 = head7;
printf("请输入参赛运动员姓名及参赛项目名称!\n ");
char na[20];
char info[20];
int sign = 0; //设置的标记变量
fseek(stdin, 0, SEEK_END);
scanf("%s%s", na, info);
while (p1 != NULL) {
if ((p1->name == na) && (p1->avent == info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要修改的记录!\n");
else {
printf("请选择要修改比赛赛事的哪些信息\n");
printf("------修改参赛运动员的姓名----1\n");
printf("------修改比赛项目的名称----2\n");
printf("------修改比赛成绩----3\n");
printf("------修改比赛名次----4\n");
printf("请输入对应信息的编号\n");
int a;
int nu; //新的整形数据
char info[20];
fseek(stdin, 0, SEEK_END);
scanf("%d", &a);
switch (a) {
case 1:
printf("请输入新的参赛运动员姓名:");
scanf("%s", info);
strcpy(p1->name, info);
printf("参赛运动员姓名修改成功!\n");
break;
case 2:
printf("请输入新的比赛项目名称:\n");
scanf("%s", info);
strcpy(p1->avent, info);
printf("比赛项目名称修改成功!\n");
break;
case 3:
printf("请输入新的比赛成绩:\n");
scanf("%d", &nu);
p1->score = nu;
printf("比赛项目成绩修改成功!\n");
break;
case 4:
printf("请输入新的比赛名次:\n");
scanf("%d", &nu);
p1->ca = nu;
printf("比赛名次修改成功!\n");
break;
}
FILE* fout = fopen("d:\\比赛赛事.dat", "w");
p1 = head7;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Message), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
return 0;
}
}
int deleted()
{
printf("\n");
printf("\t\t\t请输入要删除的信息:\n");
printf("\t\t比赛项目信息删除 请按:1\n");
printf("\t\t运动员信息删除 请按:2\n");
printf("\t\t比赛赛事信息删除 请按:3\n");
int j;
fseek(stdin, 0, SEEK_END);
scanf("%d", &j);
switch (j) {
case 1:
delete1();
break;
case 2:
delete2();
break;
case 3:
delete3();
break;
default:
printf("输入数据有误!\n");
}
return 0;
}
int delete1()
{
creat();
Match *p1, *p2;
p2 = p1 = head1;
printf("请选择要删除比赛项目的那些信息\n");
printf("------删除比赛项目的编号----1\n");
printf("------删除比赛项目的名称----2\n");
printf("请输入对应信息的编号\n");
int n;
fseek(stdin, 0, SEEK_END);
scanf("%d", &n);
int num, flag = 0;
char cal[10];
switch (n) {
case 1:
fseek(stdin, 0, SEEK_END);
scanf("%d", &num);
while (p1 != NULL) {
if (p1->number == num) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录\n");
else
p2->next = p1->next;
case 2:
fseek(stdin, 0, SEEK_END);
scanf("%s", cal);
while (p1 != NULL) {
if (!strcmp(p1->call, cal)) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录\n");
else
p2->next = p1->next;
}
FILE* fout = fopen("d:\\比赛项目.dat", "a+");
p1 = head1;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Match), 1, fout);
p1 = p1->next;
}
fclose(fout);
return 0;
}
int delete2()
{
creat2();
Athlete *p1, *p2;
p2 = p1 = head4;
printf("请选择要删除运动员的哪些信息\n");
printf("------删除运动员的编号----1\n");
printf("------删除运动员的姓名----2\n");
printf("请输入对应信息的编号\n");
int n;
fseek(stdin, 0, SEEK_END);
scanf("%d", &n);
int num, flag = 0;
char na[10];
switch (n) {
case 1:
fseek(stdin, 0, SEEK_END);
scanf("%d", &num);
while (p1 != NULL) {
if (p1->number == num) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录!\n");
else
p2->next = p1->next;
case 2:
fseek(stdin, 0, SEEK_END);
scanf("%s", na);
while (p1 != NULL) {
if (!strcmp(p1->name, na)) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录!\n");
else
p2->next = p1->next;
}
FILE* fout = fopen("d:\运动员.dat", "w");
p1 = head4;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Athlete), 1, fout);
p1 = p1->next;
}
fclose(fout);
return 0;
}
int delete3()
{
creat3();
Message *p1, *p2;
p2 = p1 = head7;
printf("请输入要删除的参赛运动员姓名及比赛项目名称:\n");
int flag = 0;
char na[20];
char info[20];
scanf("%s%s", na, info);
while (p1 != NULL) {
if ((p1->name == na) && (p1->avent == info)) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录!\n");
else
p2->next = p1->next;
FILE* fout = fopen("d:\\比赛赛事.dat", "w");
p1 = head7;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Message), 1, fout);
p1 = p1->next;
}
fclose(fout);
return 0;
int find()
{
printf("\n");
printf("\t\t\t请输入要查询的信息:\n");
printf("\t\t比赛项目信息查询 请按:1\n");
printf("\t\t运动员信息查询 请按:2\n");
printf("\t\t比赛赛事信息查询 请按:3\n");
int j;
scanf("%d", &j);
switch (j) {
case 1:
find1();
break;
case 2:
find2();
break;
case 3:
find3();
break;
default:
printf("输入数据有误!\n");
}
return 0;
void find1()
{
creat();
Match *p1;
p1 = head1;
int sign = 0;
printf("请选择要查询比赛项目的哪些信息\n");
printf("------按比赛项目的编号查询----1\n");
printf("------按比赛项目的名称查询----2\n");
printf("------按比赛时间查询----3\n");
printf("------按比赛地点查询----4\n");
printf("请输入对应信息的编号\n");
int a;
int nu;
char info[20];
fseek(stdin, 0, SEEK_END);
scanf("%d", &a);
switch (a) {
case 1:
printf("请输入要查询的比赛编号:\n");
fseek(stdin, 0, SEEK_END);
scanf("%d", &nu);
while (p1 != NULL) {
if (p1->number == nu) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录\n");
else
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
break;//结束switch语句
case 2:
printf("请输入要查询的比赛项目名称:\n");
fseek(stdin, 0, SEEK_END);
scanf("%s", info);
while (p1 != NULL) {
if (!strcmp(p1->call,info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
break;//结束switch语句
case 3:
printf("请输入要查询的比赛时间:\n");
fseek(stdin, 0, SEEK_END);
scanf("%s", info);
while (p1 != NULL) {
if (!strcmp(p1->time, info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
break; //结束switch语句
case 4:
printf("请输入要查询的比赛地点:\n");
fseek(stdin, 0, SEEK_END);
scanf("%s", info);
while (p1 != NULL) {
if (!strcmp(p1->place, info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
}
}
typedef struct Athlete
{
struct Athlete *next;
int number;
char name[10];
char part[20];
char sex[20];
int age;
}Athlete;
void find2()
{
creat2();
Athlete *p1;
p1 = head4;
int sign = 0;
printf("请选择要查询运动员的哪些信息\n");
printf("------按运动员的编号查询----1\n");
printf("------按运动员的姓名查询----2\n");
printf("请输入对应信息的编号\n");
int a;
int nu;
char info[20];
fseek(stdin, 0, SEEK_END);
scanf("%d", &a);
switch (a)
{
case 1:
printf("请输入要查询的运动员编号:\n");
fseek(stdin, 0, SEEK_END);
scanf("%d", &nu);
while (p1 != NULL)
{
if (p1->number == nu)
{
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\t%d\n", p1->number, p1->name, p1->part, p1->sex, p1->age);
break; //结束switch语句
case 2:
printf("请输入要查询的运动员姓名:\n");
fseek(stdin, 0, SEEK_END);
scanf("%s", info);
while (p1 != NULL)
{
if (p1->name == info)
{
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\t%d\n", p1->number, p1->name, p1->part, p1->sex, p1->age);
break; //结束switch语句
}
}
void find3()
{
creat3();
Message *p1;
p1 = head7;
int sign = 0;
printf("请输入要查询的参赛运动员姓名和比赛项目名称! \n");
char na[20];
char info[20];
scanf("%s%s", na, info);
while (p1 != NULL) {
if ((p1->name == na) && (p1->avent == info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%s%s%d%d", p1->name, p1->avent, p1->score, p1->ca);
}
int print()
{
printf("\n");
printf("\t\t\t请输入要显示输出的信息:\n");
printf("\t\t比赛项目信息显示输出 请按:1\n");
printf("\t\t运动员信息显示输出 请按:2\n");
printf("\t\t比赛赛事信息显示输出 请按:3\n");
int j;
scanf("%d", &j);
switch (j) {
case 1:
print1();
break;
case 2:
print2();
break;
case 3:
print3();
break;
default:
printf("输入数据有误!\n");
}
return 0;
}
void print1()
{
creat();
Match *p1 = head1;
printf("分别输出比赛项目编号、名称、比赛时间、比赛地点.\n");
while (p1 != NULL)
{
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
p1 = p1->next;
}
}
void print2()
{
creat2();
Athlete *p1 = head4;
printf("分别输出运动员编号、姓名、班级、性别、年龄.\n");
while (p1 != NULL)
{
printf("%d\t%s\t%s\t%s\t%d\n", p1->number, p1->name, p1->part, p1->sex, p1->age);
p1 = p1->next;
}
}
void print3()
{
creat3();
Message *p1 = head7;
printf("输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次.\n");
while (p1 != NULL)
{
printf("%s%s%d%d", p1->name, p1->avent, p1->score, p1->ca);
p1 = p1->next;
}
}
能改的都改了,但是你后面函数里用的head1到head7的全局变量不知道从哪里冒出来的,也不知道在哪里初始化的,所以没有办法修改,你再找找代码来源检查一下吧。这代码100%是复制品吧
void fun1();
void input();
void input1();
void input2();
void input3();
void change();
void change1();
void change2();
void change3();
void deleted();
void delete1();
void delete2();
void delete3();
void find();
void find1();
void find2();
void find3();
void print();
void creat();
void creat1();
void creat2();
void creat3();
void print();
void print1();
void print2();
void print3();
typedef struct Match
{
struct Match *next; //为创建链表做准备
int number; //比赛项目编号
char call[10]; //比赛项目名称
char time[10]; //比赛时间
char place[20]; //比赛地点
} Match;
typedef struct Athlete
{
struct Athlete *next; //为创建链表做准备
int number; //运动员编号
char name[10]; //运动员姓名
char part[20]; //运动员所在班级
char sex[20]; //运动员性别
int age; //运动员年龄
}Athlete;
typedef struct Message
{
struct Message *next; //为创建链表做准备
char name[10]; //运动员姓名
char avent[10]; //运动员参加的比赛项目名称
int score; //比赛成绩
int ca; //比赛名次
} Message;
int main()
{
int i, ok = 0;
printf("欢迎进入校运动会管理界面\n");
printf("**********************************************************************\n");
fun1();
scanf("%d", &i);
switch (i)
{
case 1:
input();
break;
case 2:
change();
break;
case 3:
deleted();
break;
case 4:
find();
break;
case 5:
print();
break;
case 6:
return 0;
default:
printf("您输入数据有误!\n");
}
//下面是主菜单的内容选项:
{
printf("******************************\n");
printf("\n");
printf("学校运动会管理系统\n");
printf("----数据录入 请按:1----\n");
printf("----数据修改 请按:2----\n");
printf("----数据删除 请按:3----\n");
printf("----数据查询 请按:4----\n");
printf("----数据显示 请按:5----\n");
printf("----退出系统 请按:6----\n");
printf("\n");
printf("*******************************\n");
printf("\n");
printf("*****请输入一个数据,并按回车键!*****\n");
}
}
void input()
{
printf("\n");
printf("\t\t\t请输入要输入的信息:\n");
printf("\t\t比赛项目信息输入 请按:1\n");
printf("\t\t运动员信息输入 请按:2\n");
printf("\t\t比赛赛事信息输入 请按:3\n");
int j;
fseek(stdin, 0, SEEK_END);
scanf("%d", &j);
switch (j)
{
case 1:
input1();
break;
case 2:
input2();
break;
case 3:
input3();
break;
default:
printf("输入数据有误!");
}
}
void input1()
{
FILE *fout = fopen("d:\\比赛项目.dat", "a+");
char ch;
Match a;
do
{
printf("请分别输入比赛项目编号、名称、比赛时间、比赛地点\n");
scanf("%d%s%s%s", &a.number, a.call, a.time, a.place);
a.next = NULL;
fwrite((char *)&a, sizeof(Match), 1, fout);
printf("是否继续输入,如果继续键入Y|y\n");
fseek(stdin, 0, SEEK_END);
//getchar();
scanf("%c", &ch);
} while (ch == 'y' || ch == 'Y');
fclose(fout);
}
void input2()
{
FILE* fout = fopen("e:\\运动员.dat", "a+");//fopen("e:\运动员.dat", "a+")
//表示在e盘打开一个运动员.dat文件,a+表示对这个文件操作为追加操作,即后面往文件写入的内容不覆盖前面的内容
//FILE* fout表示定义一个FILE类型的指针fout,该指针指向这个文件在磁盘中的位置,可以通过该指针访问这个运动员.dat文件
char ch;
Athlete b;
do
{
//printf("请分别输入运动员编号,姓名,性别,年龄,所属班级");
printf("请分别输入运动员编号,姓名,性别,年龄,所属班级:");
scanf("%d%s%s%d%s", &b.number, b.name, b.sex, &b.age, b.part);
b.next = NULL;
fwrite((char *)&b, sizeof(Athlete), 1, fout);
printf("是否继续输入,如果继续键入Y|y\n");
scanf("%c", &ch);
} while (ch == 'y' || ch == 'Y');//判断输入的字符是不是y或Y
}
void input3()
{
FILE* fout = fopen("d:\\比赛赛事.dat", "a+");
//fopen("e:\运动员.dat", "a+")表示在e盘打开一个运动员.dat文件,a+表示对这个文件操作为追加操作,即后面往文件写入的内容不覆盖前面的内容
//FILE* fout表示定义一个FILE类型的指针fout,该指针指向这个文件在磁盘中的位置,可以通过该指针访问这个运动员.dat文件
char ch;
Message c;
do
{
printf("请分别输入参赛运动员姓名、比赛名称、比赛成绩、比赛名次.\n");
scanf("%s%s%d%d", c.name, c.avent, &c.score, &c.ca);
c.next = NULL;
fwrite((char *)&c, sizeof(Message), 1, fout);
printf("是否继续输入,如果继续键入Y|y\n");
//getchar();
scanf("%c", &ch);
} while (ch == 'y' || ch == 'Y');
fclose(fout); //关闭文件
}
void change()
{
printf("\n");
printf("\t\t\t请输入要修改的信息:\n");
printf("\t\t比赛项目信息修改 请按:1\n");
printf("\t\t运动员信息修改 请按:2\n");
printf("\t\t比赛赛事信息修改 请按:3\n");
int j;
scanf("%d", &j);
switch (j) {
case 1:
change1();
break;
case 2:
change2();
break;
case 3:
change3();
break;
default:
printf("输入数据有误!\n");
}
}
void change1()
{
printf("您正在进行修改比赛项目有关事项操作!\n");
creat();
Match *p1;
p1 = head1;
printf("请输入要修改比赛项目的编号:\n");
int number1;
int sign = 0;
scanf("%d", &number1);
while (p1 != NULL)
{
if (p1->number == number1)
{
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要修改的记录\n");
else {
printf("请选择要修改比赛项目的2222些信息\n");
printf("------修改比赛项目的编号----1\n");
printf("------修改比赛项目的名称----2\n");
printf("------修改比赛时间----3\n");
printf("------修改比赛地点----4\n");
printf("请输入对应信息的编号");
int a;
int nu;
char info[20];
fseek(stdin, 0, SEEK_END);
scanf("%d", &a);
switch (a)
{
case 1:
printf("请输入新的比赛编号:\n");
scanf("%d", &nu);
p1->number = nu;
printf("比赛项目编号修改成功!\n");
break;
case 2:
printf("请输入新的比赛项目名称:\n");
scanf("%s", info);
strcpy(p1->call, info);
printf("比赛项目名称修改成功!\n");
break;
case 3:
printf("请输入新的比赛时间:\n");
scanf("%s", info);
strcpy(p1->time, info);
printf("比赛项目时间修改成功!\n");
break;
case 4:
printf("请输入新的比赛地点:\n");
scanf("%s", info);
strcpy(p1->place, info);
printf("比赛项目地点修改成功!\n");
break;
}
FILE *fout = fopen("d:\\比赛项目.dat", "a+");
p1 = head1;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Match), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
}
void change2()
{
printf("您正在进行修改运动员基本信息操作!\n");
creat2();
Athlete *p1;
p1 = head4;
printf("请输入要修改运动员的编号:\n");
int number1;
int sign = 0;
scanf("%d", &number1);
while (p1 != NULL)
{
if (p1->number == number1)
{
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要修改的记录!\n");
else {
printf("请选择要修改运动员的哪些信息\n");
printf("------修改运动员的编号----1\n");
printf("------修改运动员的姓名----2");
printf("------修改运动员的班级----3\n");
printf("------修改运动员性别----4\n");
printf("------修改运动员年龄----4\n");
printf("请输入对应信息的编号\n");
int a;
int nu;
char info[20];
scanf("%d", &a);
switch (a) {
case 1:
printf("请输入新的运动员编号:\n");
scanf("%d", &nu);
p1->number = nu;
printf("运动员的编号修改成功!\n");
break;
case 2:
printf("请输入新的运动员姓名:\n");
scanf("%s", info);
strcpy(p1->name, info);
printf("运动员姓名修改成功!\n");
break;
case 3:
printf("请输入新的运动员的班级:\n");
scanf("%s", info);
strcpy(p1->part, info);
printf("运动员的班级!\n");
break;
case 4:
printf("请输入新的性别:\n");
scanf("%s", info);
strcpy(p1->sex, info);
printf("运动员性别修改成功!\n");
break;
case 5:
printf("请输入新的年龄:\n");
scanf("%d", &nu);
p1->age = nu, printf("运动员年龄修改成功!\n");
break;
}
FILE* fout = fopen("d:\\运动员.dat", "w");
p1 = head4;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Athlete), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
}
void change3()
{
printf("您正在进行修改比赛赛事有关事项操作!");
creat3();
Message *p1;
p1 = head7;
printf("请输入参赛运动员姓名及参赛项目名称!\n ");
char na[20];
char info[20];
int sign = 0; //设置的标记变量
fseek(stdin, 0, SEEK_END);
scanf("%s%s", na, info);
while (p1 != NULL) {
if ((p1->name == na) && (p1->avent == info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要修改的记录!\n");
else {
printf("请选择要修改比赛赛事的哪些信息\n");
printf("------修改参赛运动员的姓名----1\n");
printf("------修改比赛项目的名称----2\n");
printf("------修改比赛成绩----3\n");
printf("------修改比赛名次----4\n");
printf("请输入对应信息的编号\n");
int a;
int nu; //新的整形数据
char info[20];
fseek(stdin, 0, SEEK_END);
scanf("%d", &a);
switch (a) {
case 1:
printf("请输入新的参赛运动员姓名:");
scanf("%s", info);
strcpy(p1->name, info);
printf("参赛运动员姓名修改成功!\n");
break;
case 2:
printf("请输入新的比赛项目名称:\n");
scanf("%s", info);
strcpy(p1->avent, info);
printf("比赛项目名称修改成功!\n");
break;
case 3:
printf("请输入新的比赛成绩:\n");
scanf("%d", &nu);
p1->score = nu;
printf("比赛项目成绩修改成功!\n");
break;
case 4:
printf("请输入新的比赛名次:\n");
scanf("%d", &nu);
p1->ca = nu;
printf("比赛名次修改成功!\n");
break;
}
FILE* fout = fopen("d:\\比赛赛事.dat", "w");
p1 = head7;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Message), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
}
void deleted()
{
printf("\n");
printf("\t\t\t请输入要删除的信息:\n");
printf("\t\t比赛项目信息删除 请按:1\n");
printf("\t\t运动员信息删除 请按:2\n");
printf("\t\t比赛赛事信息删除 请按:3\n");
int j;
fseek(stdin, 0, SEEK_END);
scanf("%d", &j);
switch (j) {
case 1:
delete1();
break;
case 2:
delete2();
break;
case 3:
delete3();
break;
default:
printf("输入数据有误!\n");
}
}
void delete1()
{
creat();
Match *p1, *p2;
p2 = p1 = head1;
printf("请选择要删除比赛项目的那些信息\n");
printf("------删除比赛项目的编号----1\n");
printf("------删除比赛项目的名称----2\n");
printf("请输入对应信息的编号\n");
int n;
fseek(stdin, 0, SEEK_END);
scanf("%d", &n);
int num, flag = 0;
char cal[10];
switch (n) {
case 1:
fseek(stdin, 0, SEEK_END);
scanf("%d", &num);
while (p1 != NULL) {
if (p1->number == num) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录\n");
else
p2->next = p1->next;
case 2:
fseek(stdin, 0, SEEK_END);
scanf("%s", cal);
while (p1 != NULL) {
if (!strcmp(p1->call, cal)) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录\n");
else
p2->next = p1->next;
}
FILE* fout = fopen("d:\\比赛项目.dat", "a+");
p1 = head1;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Match), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
居然还有字数限制,只能分开啦
void delete2()
{
creat2();
Athlete *p1, *p2;
p2 = p1 = head4;
printf("请选择要删除运动员的哪些信息\n");
printf("------删除运动员的编号----1\n");
printf("------删除运动员的姓名----2\n");
printf("请输入对应信息的编号\n");
int n;
fseek(stdin, 0, SEEK_END);
scanf("%d", &n);
int num, flag = 0;
char na[10];
switch (n) {
case 1:
fseek(stdin, 0, SEEK_END);
scanf("%d", &num);
while (p1 != NULL) {
if (p1->number == num) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录!\n");
else
p2->next = p1->next;
case 2:
fseek(stdin, 0, SEEK_END);
scanf("%s", na);
while (p1 != NULL) {
if (!strcmp(p1->name, na)) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录!\n");
else
p2->next = p1->next;
}
FILE* fout = fopen("d:\\运动员.dat", "w");
p1 = head4;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Athlete), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
void delete3()
{
creat3();
Message *p1, *p2;
p2 = p1 = head7;
printf("请输入要删除的参赛运动员姓名及比赛项目名称:\n");
int flag = 0;
char na[20];
char info[20];
scanf("%s%s", na, info);
while (p1 != NULL) {
if ((p1->name == na) && (p1->avent == info)) {
flag = 1;
break;
}
p2 = p1;
p1 = p1->next;
}
if (flag == 0)
printf("没有找到要删除的记录!\n");
else
p2->next = p1->next;
FILE* fout = fopen("d:\\比赛赛事.dat", "w");
p1 = head7;
while (p1 != NULL) {
fwrite((char *)p1, sizeof(Message), 1, fout);
p1 = p1->next;
}
fclose(fout);
}
void find()
{
printf("\n");
printf("\t\t\t请输入要查询的信息:\n");
printf("\t\t比赛项目信息查询 请按:1\n");
printf("\t\t运动员信息查询 请按:2\n");
printf("\t\t比赛赛事信息查询 请按:3\n");
int j;
scanf("%d", &j);
switch (j) {
case 1:
find1();
break;
case 2:
find2();
break;
case 3:
find3();
break;
default:
printf("输入数据有误!\n");
}
}
void find1()
{
creat();
Match *p1;
p1 = head1;
int sign = 0;
printf("请选择要查询比赛项目的哪些信息\n");
printf("------按比赛项目的编号查询----1\n");
printf("------按比赛项目的名称查询----2\n");
printf("------按比赛时间查询----3\n");
printf("------按比赛地点查询----4\n");
printf("请输入对应信息的编号\n");
int a;
int nu;
char info[20];
fseek(stdin, 0, SEEK_END);
scanf("%d", &a);
switch (a) {
case 1:
printf("请输入要查询的比赛编号:\n");
fseek(stdin, 0, SEEK_END);
scanf("%d", &nu);
while (p1 != NULL) {
if (p1->number == nu) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录\n");
else
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
break;//结束switch语句
case 2:
printf("请输入要查询的比赛项目名称:\n");
fseek(stdin, 0, SEEK_END);
scanf("%s", info);
while (p1 != NULL) {
if (!strcmp(p1->call,info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
break;//结束switch语句
case 3:
printf("请输入要查询的比赛时间:\n");
fseek(stdin, 0, SEEK_END);
scanf("%s", info);
while (p1 != NULL) {
if (!strcmp(p1->time, info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
break; //结束switch语句
case 4:
printf("请输入要查询的比赛地点:\n");
fseek(stdin, 0, SEEK_END);
scanf("%s", info);
while (p1 != NULL) {
if (!strcmp(p1->place, info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
}
}
void find2()
{
creat2();
Athlete *p1;
p1 = head4;
int sign = 0;
printf("请选择要查询运动员的哪些信息\n");
printf("------按运动员的编号查询----1\n");
printf("------按运动员的姓名查询----2\n");
printf("请输入对应信息的编号\n");
int a;
int nu;
char info[20];
fseek(stdin, 0, SEEK_END);
scanf("%d", &a);
switch (a)
{
case 1:
printf("请输入要查询的运动员编号:\n");
fseek(stdin, 0, SEEK_END);
scanf("%d", &nu);
while (p1 != NULL)
{
if (p1->number == nu)
{
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\t%d\n", p1->number, p1->name, p1->part, p1->sex, p1->age);
break; //结束switch语句
case 2:
printf("请输入要查询的运动员姓名:\n");
fseek(stdin, 0, SEEK_END);
scanf("%s", info);
while (p1 != NULL)
{
if (p1->name == info)
{
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%d\t%s\t%s\t%s\t%d\n", p1->number, p1->name, p1->part, p1->sex, p1->age);
break; //结束switch语句
}
}
void find3()
{
creat3();
Message *p1;
p1 = head7;
int sign = 0;
printf("请输入要查询的参赛运动员姓名和比赛项目名称! \n");
char na[20];
char info[20];
scanf("%s%s", na, info);
while (p1 != NULL) {
if ((p1->name == na) && (p1->avent == info)) {
sign = 1;
break;
}
p1 = p1->next;
}
if (sign == 0)
printf("没有找到要查询的记录!\n");
else
printf("%s%s%d%d", p1->name, p1->avent, p1->score, p1->ca);
}
void print()
{
printf("\n");
printf("\t\t\t请输入要显示输出的信息:\n");
printf("\t\t比赛项目信息显示输出 请按:1\n");
printf("\t\t运动员信息显示输出 请按:2\n");
printf("\t\t比赛赛事信息显示输出 请按:3\n");
int j;
scanf("%d", &j);
switch (j) {
case 1:
print1();
break;
case 2:
print2();
break;
case 3:
print3();
break;
default:
printf("输入数据有误!\n");
}
}
void print1()
{
creat();
Match *p1 = head1;
printf("分别输出比赛项目编号、名称、比赛时间、比赛地点.\n");
while (p1 != NULL)
{
printf("%d\t%s\t%s\t%s\n", p1->number, p1->call, p1->time, p1->place);
p1 = p1->next;
}
}
void print2()
{
creat2();
Athlete *p1 = head4;
printf("分别输出运动员编号、姓名、班级、性别、年龄.\n");
while (p1 != NULL)
{
printf("%d\t%s\t%s\t%s\t%d\n", p1->number, p1->name, p1->part, p1->sex, p1->age);
p1 = p1->next;
}
}
void print3()
{
creat3();
Message *p1 = head7;
printf("输出比赛参赛运动员姓名、比赛项目名称、比赛成绩、比赛名次.\n");
while (p1 != NULL)
{
printf("%s%s%d%d", p1->name, p1->avent, p1->score, p1->ca);
p1 = p1->next;
}
}
语法问题。没有括号闭合
113行多了一个}
第一张图片里面的case2后面多了个“}”