#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include "player.h"
Node* head=NULL;
void user(){
system("CLS");
printf("===============================\n");
printf("====欢迎使用玩家信息管理系统===\n");
printf("===============================\n");
printf("========录入玩家信息功能=======\n");
printf("===============================\n");
Node *node=(Node*)malloc(sizeof(Node));
node->pNext=NULL;
printf("请输入玩家昵称和玩家id:\n");
scanf("%s %d",node->player.name,&node->player.id);
Node* q=head;
while(q!=NULL){
if(node->player.id==q->player.id){
printf("此id已有玩家使用,请换个id\n");
printf("请重新输入玩家id:\n");
scanf("%d",&node->player.id);
q=head;
}
else{
q=q->pNext;
}
}
if(head==NULL){
head=node;
}
else{
Node *p=head;
while(p!=NULL&&p->pNext!=NULL){
p=p->pNext;
}
p->pNext=node;
}
node->player.score=0;
printf("玩家信息录入成功!\n");
}
void inquire(){
system("CLS");
printf("===============================\n");
printf("====欢迎使用玩家信息管理系统===\n");
printf("===============================\n");
printf("========查询玩家信息功能=======\n");
printf("===============================\n");
int id;
printf("\n请输入需要查询的玩家id\n");
scanf("%d",&id);
Node* p=head;
while(p!=NULL){
if(p->player.id==id){
printf("玩家昵称:%s 玩家id:%d 玩家积分:%d\n",p->player.name,p->player.id,p->player.score);
return ;
}
p=p->pNext;
}
if(p==NULL){
printf("查询不到该玩家的信息");
return;
}
}
Node* inquire_user(int id){
Node* p=head;
while(p!=NULL){
if(p->player.id==id){
return p;
}
p=p->pNext;
}
if(p==NULL){
printf("查询不到该玩家的信息");
return p;
}
}
void display(){
system("CLS");
printf("===============================\n");
printf("====欢迎使用玩家信息管理系统===\n");
printf("===============================\n");
printf("==========全部玩家信息=========\n");
printf("===============================\n");
Node* p=head;
if(p==NULL){
printf("未找到玩家信息,请先输入玩家信息\n");
return;
}
while(p!=NULL){
printf("玩家昵称:%s 玩家id:%d 玩家积分:%d\n",p->player.name,p->player.id,p->player.score);
p=p->pNext;
}
return;
}
void delete_user(){
system("CLS");
printf("===============================\n");
printf("====欢迎使用玩家信息管理系统===\n");
printf("===============================\n");
printf("========删除玩家信息功能=======\n");
printf("===============================\n");
int id;
printf("\n请输入需要删除的玩家id\n");
scanf("%d",&id);
Node* p=head;
Node* q=NULL;
if(p->player.id==id){
q=head;
head=head->pNext;
free(q);
printf("删除学生信息成功");
return;
}
while(p->pNext!=NULL){
if(p->pNext->player.id==id){
q=p->pNext;
p->pNext=q->pNext;
free(q);
printf("删除学生信息成功");
return;
}
p=p->pNext;
}
if(p==NULL){
printf("查询不到该玩家的信息");
return;
}
}
void change(){
system("CLS");
printf("===============================\n");
printf("====欢迎使用玩家信息管理系统===\n");
printf("===============================\n");
printf("========更改玩家信息功能=======\n");
printf("===============================\n");
int id;
printf("\n请输入需要更改信息的玩家id(不可修改玩家积分)\n");
scanf("%d",&id);
Node* p=head;
while(p!=NULL){
if(p->player.id==id){
printf("玩家昵称:%s 玩家id:%d 玩家积分:%d\n",p->player.name,p->player.id,p->player.score);
printf("=================================\n");
printf("请输入玩家昵称和玩家id:\n");
scanf("%s %d",p->player.name,&p->player.id);
printf("玩家信息修改成功!\n");
return ;
}
p=p->pNext;
}
if(p==NULL){
printf("查询不到该玩家的信息\n");
}
return;
}
void save(){
FILE* pf=fopen("user.txt","w");
if (pf == NULL)
{
perror("fopen");
return;
}
//输入数据
Node* p=head;
while(p!=NULL){
fprintf(pf,"玩家昵称:%s 玩家id:%d 玩家积分:%d\n",p->player.name,p->player.id,p->player.score);
p=p->pNext;
}
//关闭
if (fclose(pf) == EOF)
{
//关闭失败
perror("fclose");
return 1;
}
pf = NULL;
return 0;
}
void caidan(){
while(1){
system("CLS");
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("===0, 退出程序 =====\n");
int ch;
scanf("%d",&ch);
switch(ch){
case 1:
user();
break;
case 2:
inquire();
break;
case 3:
display();
break;
case 4:
delete_user();
break;
case 5:
change();
break;
case 6:
save();
break;
case 0:
printf("欢迎再次使用");
return;
default:
printf("输入错误数字");
}
system("PAUSE"); //将上面的打印出来之后暂停掉
}
}
int yes2(){
if(head==NULL&&head->pNext==NULL){
printf("请先录入至少两名玩家信息\n");
return 0;
}
else return 1;
}