2 nan420648227 nan420648227 于 2013.07.14 11:52 提问

VC程序编写,可以调试但不能直接运行……
vc c

// LOL信息系统2 V1.6 最终版
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "dos.h"
#define Length sizeof(struct Lol)
//****************************结构体**********************************
struct Lol
{
char Number[15];
char Area[50];
char Name[50];
char Grading[50];
int Level;
int Battle;
};
//**************************打开文件,返回当前长度*************************************

int Readfile(struct Lol p)
{
FILE *fp;
int n=0,i;
struct Lol *t; //临时储存
t=malloc(Length);
if ((fp=fopen("data.dat","rb"))==NULL)
{
printf("打开文件失败,或者不存在此文件,请新建后再运行。");

exit(0);

}
while (!feof(fp))
{
fread((t+n),Length,1,fp);
n++;
}
n=n-1;
for (i=0;i<n;i++)

{
*(p+i)=
(t+i);
}
return n;
fclose(fp);
}
//***************************保存数据***********************************
void Savefile(struct Lol p,int *n)
{
FILE *fp;
int i;
if ((fp=fopen("data.dat","wb"))==NULL)
{
printf(" 保存文件失败。");

exit(0);

}
for (i=0;i<*n;i++)
fwrite(p+i,Length,1,fp);
fclose(fp);
}
//
**************************输入函数***********************************
void Number(struct Lol t)
{
printf("\n ———————————————————————\n");
printf(" 你的学号是:");

gets(t->Number);
}
void Name(struct Lol *t)
{
printf("\n ———————————————————————\n");
printf(" 你的游戏名是:");

gets(t->Name);
}
void Area(struct Lol *t)
{
printf("\n ———————————————————————\n");
printf(" 你的游戏大区是:");
gets(t->Area);
}
void Level(struct Lol *t)
{
printf("\n ———————————————————————\n");
printf(" 你的等级是:");

scanf("%d",&t->Level);
getchar();
}
void Battle(struct Lol *t)
{
printf("\n ———————————————————————\n");
printf(" 你的战斗力是:");

scanf("%d",&t->Battle);
getchar();
}
void Grading(struct Lol *t)
{
printf(" ———————————————————————\n");
printf(" 你的段位是:");

gets(t->Grading);
}
//
**************************输出函数***********************************
void Output(struct Lol p)
{
printf(" 你的学号是:%s\n",p->Number);
printf(" 你的游戏名是:%s\n",p->Name);
printf(" 你的游戏大区是:%s\n",p->Area);
printf(" 你的等级是:%d\n",p->Level);
printf(" 你的战斗力是:%d\n",p->Battle);
printf(" 你的段位是:%s\n",p->Grading);
}
//
***************************驻留****************************************
void Stay()
{
printf(" ———————————————————————\n");
printf(" 查看完毕请按回车键继续。");
getchar();
system("cls");
}
//****************************注册****************************************
void Register(struct Lol *p,int *n)
{
int Choose;
struct Lol *t; //临时储存
t=malloc(Length);
R:
system("cls");
printf("\n ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" 注册信息填写\n");

Number(t);
Name(t);
Area(t);
Level(t);
Battle(t);
Grading(t);
printf("\n               ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf("                            ==>1.确认信息\n                            ==>2.重新输入\n                            ==>3.放弃返回\n                            ");
printf("你的选择是:");
scanf("%d",&Choose);
getchar();
switch (Choose)
{
    case 1:*(p+*n)=*t;(*n)++;printf("                            注册成功!按回车键返回。");getchar();system("cls");break;
    case 2:goto R;
    case 3:system("cls");break;
}

}
//****************************浏览****************************************
void View(struct Lol p,int *n)
{
int i;
system("cls");
for (i=0;i<*n;i++)
{
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
Output(p+i);
}
Stay();
}
//
***************************↓匹配函数****************************************
void CheckNumber(char String[30],struct Lol p,int n)
{
int i,label=0;
for (i=0;i {
if (strcmp(String,(p+i)->Number)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckName(char String[30],struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (strcmp(String,(p+i)->Name)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckArea(char String[30],struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (strcmp(String,(p+i)->Area)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckLevel(int x,struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (x-((p+i)->Level)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckBattle(int x,struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (x-(p+i)->Battle==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckGrading(char String[30],struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (strcmp(String,(p+i)->Grading)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
//
***************************查询****************************************
void Find(struct Lol *p,int *n)
{
int Choose,x;
char String[30];
y:
system("cls");
printf(" ———————————————————————\n");
printf(" 你想什么方式查找信息:\n");
printf(" ———————————————————————\n");
printf(" 1.以学号查找个人\n 2.以游戏名查找个人\n 3.以大区信息查找\n 4.以等级查找\n 5.以战斗力查找\n 6.以段位查找\n 7.退出查找\n");
printf(" ———————————————————————\n ");
printf("你的选择是:");
scanf("%d",&Choose);
getchar();
switch (Choose)
{
case 1: printf(" 请输入学号:");gets(String);CheckNumber(String,p,*n);printf("\n");Stay();goto y;
case 2: printf(" 请输入游戏名:");gets(String);CheckName(String,p,*n);printf("\n");Stay();goto y;
case 3: printf(" 请输入大区:");gets(String);CheckArea(String,p,*n);printf("\n");Stay();goto y;
case 4: printf(" 请输入等级:");scanf("%d",&x);;CheckLevel(x,p,*n);printf("\n");Stay();goto y;
case 5: printf(" 请输入战斗力:");scanf("%d",&x);CheckBattle(x,p,*n);printf("\n");Stay();goto y;
case 6: printf(" 请输入段位:");gets(String);CheckGrading(String,p,*n);printf("\n");Stay();goto y;
case 7: system("cls");break;

}

}
//****************************删改函数****************************************
void Delete(struct Lol p,int i,int *n)
{
int j;
struct Lol *t;
t=p;
{
for (j=i;j<
(n-1);i++)
{
(p+j)=(t+j+1);
}
n=*n-1;
}
}
void ChangeData(struct Lol *p,int i,int *n)
{
int Choose1,Choose2;
struct Lol *t; //临时储存
t=p+i;
printf("\n ———————————————————————\n");
printf(" 更新信息填写,你要更新的信息是:\n");
printf("\n ———————————————————————\n");
printf(" 1.更改学号 2.更改姓名 3.更改大区\n 4.更新等级 5.更新战斗力 6.更新段位\n 7.删除本信息 0.放弃并返回\n ");
printf("你的选择是:");
scanf("%d",&Choose1);
getchar();
R: system("cls");
switch (Choose1)
{
case 1:Number(t);break;
case 2:Name(t);break;
case 3:Area(t);break;
case 4:Level(t);break;
case 5:Battle(t);break;
case 6:Grading(t);break;
case 7:break;
case 0:break;
}
if (Choose1!=7 && Choose1!=0)
{
printf(" ———————————————————————\n");
printf(" 1.确认更新信息\n 2.重新输入\n 3.放弃更新\n ");
printf("你的选择是:");
scanf(" %d",&Choose2);
getchar();
switch (Choose2)
{
case 1:system("cls");
(p+i)=*t;printf("\n ———————————————————————\n");printf(" 更新后的信息:\n");Output(p+i);Stay();break;
case 2:goto R;
case 3:system("cls");break;
}
}
else if (Choose1==7)
{
printf("\n ———————————————————————\n");
printf(" 1.确认删除此信息\n 2.放弃删除\n ");
printf("你的选择是:");
scanf("%d",&Choose2);
getchar();
switch (Choose2)
{
case 1:Delete(p,i,n);break;
case 2:break;
}
}

}

void ChangeNumber(char String[30],struct Lol *p,int *n)
{
int i,label=0;
for (i=0;i<*n;i++)
{
if (strcmp(String,(p+i)->Number)==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
ChangeData(p,i,n);
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n ");
}

void ChangeName(char String[30],struct Lol *p,int *n)
{
int i,label=0;
for (i=0;i<*n;i++)
{
if (strcmp(String,(p+i)->Name)==0)
{
system("cls");
printf("\n ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf("\n ———————————————————————\n");
printf(" 学号:%s\n",(p+i)->Number);
printf("\n ———————————————————————\n");
printf(" 游戏名:%s\n",(p+i)->Name);
printf("\n ———————————————————————\n");
printf(" 游戏大区:%s\n",(p+i)->Area);
printf("\n ———————————————————————\n");
printf(" 等级:%d\n",(p+i)->Level);
printf("\n ———————————————————————\n");
printf(" 战斗力:%d\n",(p+i)->Battle);
printf("\n ———————————————————————\n");
printf(" 段位:%s\n",(p+i)->Grading);
label++;
ChangeData(p,i,n);
}
}

if (label==0)
    printf("                            查询完毕,未找到匹配对象。\n                            ");    

}
//****************************删改****************************************
void Change(struct Lol *p,int *n)
{
int Choose,i,j,x;
char String[30];
y:
system("cls");
printf("\n ———————————————————————\n");
printf(" 你想修改或删除的信息:\n");
printf("\n ———————————————————————\n");
printf(" 1.以学号查找\n 2.以游戏名查找\n 3.退出修改\n ");
printf("你的选择是:");
scanf("%d",&Choose);
getchar();
switch (Choose)
{
case 1: printf(" ———————————————————————\n");printf(" 请输入学号:");gets(String);ChangeNumber(String,p,n);printf("\n ");goto y;
case 2: printf(" ———————————————————————\n");printf(" 请输入游戏名:");gets(String);ChangeName(String,p,n);printf("\n ");goto y;
case 3: system("cls");break;

}

}
//****************************排行****************************************
void Rank(struct Lol p,int *n)
{
int *t,temp,i,j;
t=malloc(10);
for (i=0;i<*n;i++)
*(t+i)=i;
system("cls");
for (i=0;i<*n-1;i++)
{
for (j=i+1;j<*n;j++)
{
/
if ((p+*(t+i))->Battle<(p+*(t+j))->Battle)
{
temp=*(t+i);
(t+i)=(t+j);
(t+j)=temp;
}
*/
if (strcmp((p+
(t+i))->Number,(p+*(t+j))->Number) {
temp=*(t+i);
*(t+i)=*(t+j);
*(t+j)=temp;
}
}
}
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" 所有注册者的战斗力排名信息:\n");
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n\n");
for (i=0;i {
printf(" ——————————NO.%d———————————\n",i+1);
printf(" 学号:%s\n",(p+*(t+i))->Number);
printf(" 游戏名:%s\n",(p+*(t+i))->Name);
printf(" 游戏大区:%s\n",(p+*(t+i))->Area);
printf(" 等级:%d\n",(p+*(t+i))->Level);
printf(" 战斗力:%d\n",(p+*(t+i))->Battle);
printf(" 段位:%s\n",(p+*(t+i))->Grading);

printf("\n");
}

Stay();
}

//****************************主函数****************************************
void main()
{
int *n,i,Choose;
struct Lol *p;
p=malloc(Length);
n=malloc(10);
*n=Readfile(p);
x:
printf(" 欢迎使用张楠的英雄联盟信息登记系统。\n");
printf("\n ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" ≡≡ ≡≡ ≡≡\n");
printf(" ≡≡ 1.注册信息 ≡≡ 2.删改信息 ≡≡\n");
printf(" ≡≡ ≡≡ ≡≡\n");
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" ≡≡ 3.查询信息 ≡≡ 4.战力排行 ≡≡\n");
printf(" ≡≡ ≡≡ ≡≡\n");
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" ≡≡ 5.浏览全部 ≡≡ 6.退出系统 ≡≡\n");
printf(" ≡≡ ≡≡ ≡≡\n");
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf("\n\n 请输入您的选择:");
scanf("%d",&Choose);
getchar();
switch (Choose)
{
case 1:Register(p,n);goto x;
case 2:Change(p,n);goto x;
case 3:Find(p,n);goto x;
case 4:Rank(p,n);goto x;
case 5:View(p,n);goto x;
case 6:printf(" 感谢您使用本系统!\n ");Savefile(p,n);exit(0);
}
Savefile(p,n);
}

求大神看看谢谢……

2个回答

nan420648227
nan420648227   2013.07.16 14:03

//张楠的作业 LOL信息系统2 V1.6 最终版
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#include "dos.h"
#define Length sizeof(struct Lol)
//****************************结构体**********************************
struct Lol
{
char Number[15];
char Area[50];
char Name[50];
char Grading[50];
int Level;
int Battle;
};
//**************************打开文件,返回当前长度*************************************

int Readfile(struct Lol p)
{
FILE *fp;
int n=0,i;
struct Lol *t; //临时储存
t=malloc(Length);
if ((fp=fopen("data.dat","rb"))==NULL)
{
printf("打开文件失败,或者不存在此文件,请新建后再运行。");

exit(0);

}
while (!feof(fp))
{
fread((t+n),Length,1,fp);
n++;
}
n=n-1;
for (i=0;i<n;i++)

{
*(p+i)=
(t+i);
}
return n;
fclose(fp);
}
//***************************保存数据***********************************
void Savefile(struct Lol p,int *n)
{
FILE *fp;
int i;
if ((fp=fopen("data.dat","wb"))==NULL)
{
printf(" 保存文件失败。");

exit(0);

}
for (i=0;i<*n;i++)
fwrite(p+i,Length,1,fp);
fclose(fp);
}
//
**************************输入函数***********************************
void Number(struct Lol t)
{
printf("\n ———————————————————————\n");
printf(" 你的学号是:");

gets(t->Number);
}
void Name(struct Lol *t)
{
printf("\n ———————————————————————\n");
printf(" 你的游戏名是:");

gets(t->Name);
}
void Area(struct Lol *t)
{
printf("\n ———————————————————————\n");
printf(" 你的游戏大区是:");
gets(t->Area);
}
void Level(struct Lol *t)
{
printf("\n ———————————————————————\n");
printf(" 你的等级是:");

scanf("%d",&t->Level);
getchar();
}
void Battle(struct Lol *t)
{
printf("\n ———————————————————————\n");
printf(" 你的战斗力是:");

scanf("%d",&t->Battle);
getchar();
}
void Grading(struct Lol *t)
{
printf(" ———————————————————————\n");
printf(" 你的段位是:");

gets(t->Grading);
}
//
**************************输出函数***********************************
void Output(struct Lol p)
{
printf(" 你的学号是:%s\n",p->Number);
printf(" 你的游戏名是:%s\n",p->Name);
printf(" 你的游戏大区是:%s\n",p->Area);
printf(" 你的等级是:%d\n",p->Level);
printf(" 你的战斗力是:%d\n",p->Battle);
printf(" 你的段位是:%s\n",p->Grading);
}
//
***************************驻留****************************************
void Stay()
{
printf(" ———————————————————————\n");
printf(" 查看完毕请按回车键继续。");
getchar();
system("cls");
}
//****************************注册****************************************
void Register(struct Lol *p,int *n)
{
int Choose;
struct Lol *t; //临时储存
t=malloc(Length);
R:
system("cls");
printf("\n ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" 注册信息填写\n");

Number(t);
Name(t);
Area(t);
Level(t);
Battle(t);
Grading(t);
printf("\n               ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf("                            ==>1.确认信息\n                            ==>2.重新输入\n                            ==>3.放弃返回\n                            ");
printf("你的选择是:");
scanf("%d",&Choose);
getchar();
switch (Choose)
{
    case 1:*(p+*n)=*t;(*n)++;printf("                            注册成功!按回车键返回。");getchar();system("cls");break;
    case 2:goto R;
    case 3:system("cls");break;
}

}
//****************************浏览****************************************
void View(struct Lol p,int *n)
{
int i;
system("cls");
for (i=0;i<*n;i++)
{
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
Output(p+i);
}
Stay();
}
//
***************************↓匹配函数****************************************
void CheckNumber(char String[30],struct Lol p,int n)
{
int i,label=0;
for (i=0;i {
if (strcmp(String,(p+i)->Number)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckName(char String[30],struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (strcmp(String,(p+i)->Name)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckArea(char String[30],struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (strcmp(String,(p+i)->Area)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckLevel(int x,struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (x-((p+i)->Level)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckBattle(int x,struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (x-(p+i)->Battle==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
void CheckGrading(char String[30],struct Lol *p,int n)
{
int i,label=0;
for (i=0;i {
if (strcmp(String,(p+i)->Grading)==0)
{
if (label==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
}
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
printf(" ———————————————————————\n");
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n");
else
printf(" 查询完毕,共找到%d个对象。\n",label);
}
//
***************************查询****************************************
void Find(struct Lol *p,int *n)
{
int Choose,x;
char String[30];
y:
system("cls");
printf(" ———————————————————————\n");
printf(" 你想什么方式查找信息:\n");
printf(" ———————————————————————\n");
printf(" 1.以学号查找个人\n 2.以游戏名查找个人\n 3.以大区信息查找\n 4.以等级查找\n 5.以战斗力查找\n 6.以段位查找\n 7.退出查找\n");
printf(" ———————————————————————\n ");
printf("你的选择是:");
scanf("%d",&Choose);
getchar();
switch (Choose)
{
case 1: printf(" 请输入学号:");gets(String);CheckNumber(String,p,*n);printf("\n");Stay();goto y;
case 2: printf(" 请输入游戏名:");gets(String);CheckName(String,p,*n);printf("\n");Stay();goto y;
case 3: printf(" 请输入大区:");gets(String);CheckArea(String,p,*n);printf("\n");Stay();goto y;
case 4: printf(" 请输入等级:");scanf("%d",&x);;CheckLevel(x,p,*n);printf("\n");Stay();goto y;
case 5: printf(" 请输入战斗力:");scanf("%d",&x);CheckBattle(x,p,*n);printf("\n");Stay();goto y;
case 6: printf(" 请输入段位:");gets(String);CheckGrading(String,p,*n);printf("\n");Stay();goto y;
case 7: system("cls");break;

}

}
//****************************删改函数****************************************
void Delete(struct Lol p,int i,int *n)
{
int j;
struct Lol *t;
t=p;
{
for (j=i;j<
(n-1);i++)
{
(p+j)=(t+j+1);
}
n=*n-1;
}
}
void ChangeData(struct Lol *p,int i,int *n)
{
int Choose1,Choose2;
struct Lol *t; //临时储存
t=p+i;
printf("\n ———————————————————————\n");
printf(" 更新信息填写,你要更新的信息是:\n");
printf("\n ———————————————————————\n");
printf(" 1.更改学号 2.更改姓名 3.更改大区\n 4.更新等级 5.更新战斗力 6.更新段位\n 7.删除本信息 0.放弃并返回\n ");
printf("你的选择是:");
scanf("%d",&Choose1);
getchar();
R: system("cls");
switch (Choose1)
{
case 1:Number(t);break;
case 2:Name(t);break;
case 3:Area(t);break;
case 4:Level(t);break;
case 5:Battle(t);break;
case 6:Grading(t);break;
case 7:break;
case 0:break;
}
if (Choose1!=7 && Choose1!=0)
{
printf(" ———————————————————————\n");
printf(" 1.确认更新信息\n 2.重新输入\n 3.放弃更新\n ");
printf("你的选择是:");
scanf(" %d",&Choose2);
getchar();
switch (Choose2)
{
case 1:system("cls");
(p+i)=*t;printf("\n ———————————————————————\n");printf(" 更新后的信息:\n");Output(p+i);Stay();break;
case 2:goto R;
case 3:system("cls");break;
}
}
else if (Choose1==7)
{
printf("\n ———————————————————————\n");
printf(" 1.确认删除此信息\n 2.放弃删除\n ");
printf("你的选择是:");
scanf("%d",&Choose2);
getchar();
switch (Choose2)
{
case 1:Delete(p,i,n);break;
case 2:break;
}
}

}

void ChangeNumber(char String[30],struct Lol *p,int *n)
{
int i,label=0;
for (i=0;i<*n;i++)
{
if (strcmp(String,(p+i)->Number)==0)
{
system("cls");
printf(" ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf(" ———————————————————————\n");
printf(" 学号:%s\n",(p+i)->Number);
printf(" 游戏名:%s\n",(p+i)->Name);
printf(" 游戏大区:%s\n",(p+i)->Area);
printf(" 等级:%d\n",(p+i)->Level);
printf(" 战斗力:%d\n",(p+i)->Battle);
printf(" 段位:%s\n",(p+i)->Grading);
label++;
ChangeData(p,i,n);
}
}
if (label==0)
printf(" 查询完毕,未找到匹配对象。\n ");
}

void ChangeName(char String[30],struct Lol *p,int *n)
{
int i,label=0;
for (i=0;i<*n;i++)
{
if (strcmp(String,(p+i)->Name)==0)
{
system("cls");
printf("\n ———————————————————————\n");
printf(" 找到匹配对象:\n");
printf("\n ———————————————————————\n");
printf(" 学号:%s\n",(p+i)->Number);
printf("\n ———————————————————————\n");
printf(" 游戏名:%s\n",(p+i)->Name);
printf("\n ———————————————————————\n");
printf(" 游戏大区:%s\n",(p+i)->Area);
printf("\n ———————————————————————\n");
printf(" 等级:%d\n",(p+i)->Level);
printf("\n ———————————————————————\n");
printf(" 战斗力:%d\n",(p+i)->Battle);
printf("\n ———————————————————————\n");
printf(" 段位:%s\n",(p+i)->Grading);
label++;
ChangeData(p,i,n);
}
}

if (label==0)
    printf("                            查询完毕,未找到匹配对象。\n                            ");    

}
//****************************删改****************************************
void Change(struct Lol *p,int *n)
{
int Choose,i,j,x;
char String[30];
y:
system("cls");
printf("\n ———————————————————————\n");
printf(" 你想修改或删除的信息:\n");
printf("\n ———————————————————————\n");
printf(" 1.以学号查找\n 2.以游戏名查找\n 3.退出修改\n ");
printf("你的选择是:");
scanf("%d",&Choose);
getchar();
switch (Choose)
{
case 1: printf(" ———————————————————————\n");printf(" 请输入学号:");gets(String);ChangeNumber(String,p,n);printf("\n ");goto y;
case 2: printf(" ———————————————————————\n");printf(" 请输入游戏名:");gets(String);ChangeName(String,p,n);printf("\n ");goto y;
case 3: system("cls");break;

}

}
//****************************排行****************************************
void Rank(struct Lol p,int *n)
{
int *t,temp,i,j;
t=malloc(10);
for (i=0;i<*n;i++)
*(t+i)=i;
system("cls");
for (i=0;i<*n-1;i++)
{
for (j=i+1;j<*n;j++)
{
if ((p+
(t+i))->Battle<(p+*(t+j))->Battle)
{
temp=*(t+i);
(t+i)=(t+j);
(t+j)=temp;
}
}
}
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" 所有注册者的战斗力排名信息:\n");
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n\n");
for (i=0;i<*n;i++)
{
printf(" ——————————NO.%d———————————\n",i+1);
printf(" 学号:%s\n",(p+
(t+i))->Number);
printf(" 游戏名:%s\n",(p+*(t+i))->Name);
printf(" 游戏大区:%s\n",(p+*(t+i))->Area);
printf(" 等级:%d\n",(p+*(t+i))->Level);
printf(" 战斗力:%d\n",(p+*(t+i))->Battle);
printf(" 段位:%s\n",(p+*(t+i))->Grading);

printf("\n");
}

Stay();
}

//****************************主函数****************************************
void main()
{
int *n,i,Choose;
struct Lol *p;
p=malloc(Length);
n=malloc(10);
*n=Readfile(p);
x:
printf(" 欢迎使用张楠的英雄联盟信息登记系统。\n");
printf("\n ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" ≡≡ ≡≡ ≡≡\n");
printf(" ≡≡ 1.注册信息 ≡≡ 2.删改信息 ≡≡\n");
printf(" ≡≡ ≡≡ ≡≡\n");
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" ≡≡ 3.查询信息 ≡≡ 4.战力排行 ≡≡\n");
printf(" ≡≡ ≡≡ ≡≡\n");
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf(" ≡≡ 5.浏览全部 ≡≡ 6.退出系统 ≡≡\n");
printf(" ≡≡ ≡≡ ≡≡\n");
printf(" ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n");
printf("\n\n 请输入您的选择:");
scanf("%d",&Choose);
getchar();
switch (Choose)
{
case 1:Register(p,n);goto x;
case 2:Change(p,n);goto x;
case 3:Find(p,n);goto x;
case 4:Rank(p,n);goto x;
case 5:View(p,n);goto x;
case 6:printf(" 感谢您使用本系统!\n ");Savefile(p,n);exit(0);
}
Savefile(p,n);
}

shen_wei
shen_wei   Ds   Rxr 2015.10.14 11:29

最好的方式就是单步调试。看走那步出错了。。。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!