#include "student.h"
/***********▽翋滲杅▼************/
int main()
{
int choice;
LoadFile();
do
{
Interface();
printf("\t\t\t③恁寁ㄩ");
scanf_s("%d", &choice);
switch (choice)
{
case 1:
AddData();
//氝樓陓洘
break;
case 2:
//脤梑陓洘
SearchMain();
break;
case 3:
deletestu();
//刉壺陓洘
break;
case 4:
//党蜊陓洘
Modify(pStu);
break;
case 5:
//豖堤炵苀
SaveData();
//悵湔
break;
default:
break;
}
} while (choice != 5);
return 0;
}
/************▽斐膘蟈桶▼***************/
void CreateList()
{
pStu = (STU*)malloc(sizeof(STU));
pStu->pnext = NULL;
}
/************▽樓婥恅璃▼***************/
void LoadFile()
{
char ch;
STU* pnew = NULL;
STU* ptemp = NULL;
//斐膘蟈桶
CreateList();
ptemp = pStu;
//湖羲麼氪斐膘陔恅璃
printf("\n\n\t\t\t底岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩弧\n");
printf("\t\t\t岱 辣茩妏蚚蜆炵苀 岱\n");
printf("\t\t\t怪岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩戕\n");
printf("\t\t\t岱妏蚚佽隴: 岱\n");
printf("\t\t\t岱 岱\n");
printf("\t\t\t岱 湖羲尨瞰:3爛2啤.txt 岱\n");
printf("\t\t\t彿岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩忽\n");
while (1) //珨隅猁湖羲珨跺恅璃
{
printf("\t\t\t③怀�輷躁�靡ㄩ");
scanf("%s", filename);
if ((fp = fopen(filename, "r")) == NULL) //湖羲囮啖腔埻秪 蚚r湖羲珨跺祥湔婓腔恅璃
{
printf("\t\t\t羶衄蜆啤撰腔杅擂ㄐ岆瘁斐膘ˋㄗy/nㄘ:");
fflush(stdin); //ь壺瑩攫腔遣喳⑹
scanf("%c", &ch);
if (ch == 'y' || ch == 'Y')
{
if ((fp = fopen(filename, "a+")) == NULL) //斐膘囮啖
{
printf("\t\t\t斐膘囮啖ㄐ");
exit(0);//眻諉豖堤最唗
}
else
{
break;
}
}
else //恁寁NO 祥斐膘恅璃
{
continue;
}
}
else //湔婓 湖羲傖髡賸
{
break;
}
}
//while 賦旰眳綴 佽隴妦繫ˋ恅璃湖羲傖髡賸ㄐㄐ
//陔膘腔 遜岆 埻懂憩衄儸ˋ 衄羶衄杅擂儸ˋ
//恅璃腔杅擂 悵湔善蟈桶絞笢﹝
while (1) //祥ь奠衄嗣屾杅擂
{
pnew = (STU*)malloc(sizeof(STU)); //諾潔羲斬疑賸ㄐ
if (fscanf(fp, "%d\t%s\t%f\t%f\n", &pnew->num, pnew->name, &pnew->chinese, &pnew->math) == EOF) //羶衄杅擂 陔膘腔
{
free(pnew); //庋溫羲斬疑腔諾潔
break;
}
pnew->pnext = NULL;
ptemp->pnext = pnew;
ptemp = ptemp->pnext;
}
//杅擂黍俇
fclose(fp);
}
/************▽翋賜醱▼***************/
void Interface()
{
system("cls");
printf("\n\n");
printf("\t\t\t底岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩弧\n");
printf("\t\t\t岱 悝汜傖憎奪燴 岱\n");
printf("\t\t\t怪岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩戕\n");
printf("\t\t\t岱 1.氝樓悝埜 岱\n");
printf("\t\t\t岱 2.脤梑悝埜 岱\n");
printf("\t\t\t岱 3.刉壺悝埜 岱\n");
printf("\t\t\t岱 4.党蜊悝埜 岱\n");
printf("\t\t\t岱 5.豖堤炵苀 岱\n");
printf("\t\t\t彿岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩忽\n");
}
/**************▽氝樓陓洘▼***********/
void AddData()
{
int count;
system("cls");
printf("\n\n");
printf("\t\t\t底岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩弧\n");
printf("\t\t\t岱 淏婓氝樓悝埜 岱\n");
printf("\t\t\t彿岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩忽\n");
printf("\t\t\t③恀剒猁氝樓撓靡悝汜腔陓洘ˋ");
scanf("%d", &count);
for (int n = 0; n < count; n++)
{
STU*ptemp = pStu;
while (ptemp->pnext != NULL)
{
ptemp = ptemp->pnext;
}//蔚ptemp痄雄善郔綴珨跺衄杅擂腔誹萸
STU*pnew = (STU*)malloc(sizeof(STU));
ptemp->pnext = pnew;
pnew->pnext = NULL;
printf("\t\t\t③怀�遶蟯篲茧麵床�腔陓洘:\n");
printf("\t\t\t悝瘍:"); scanf("%d", &pnew->num);
printf("\t\t\t俷靡:"); scanf("%s", pnew->name);
printf("\t\t\t逄恅:"); scanf("%f", &pnew->chinese);;
printf("\t\t\t杅悝:"); scanf("%f", &pnew->math);
}
//釬珛
}
/**************▽脤梑翋滲杅▼***********/
void SearchMain()
{
int choice;
do
{
system("cls");
printf("\n\n");
printf("\t\t\t底岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩弧\n");
printf("\t\t\t岱 淏婓脤梑悝埜 岱\n");
printf("\t\t\t彿岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩忽\n");
printf("\t\t\t1.偌悝瘍脤梑\n");
printf("\t\t\t2.偌俷靡脤梑\n");
printf("\t\t\t3.�垓臻橦廄n");
printf("\t\t\t4.殿隙翋賜醱\n");
printf("\t\t\t③恁寁:");
scanf("%d", &choice);
switch (choice)
{
case 1:SearchNum(pStu); break;
case 2:SearchName(pStu); break;
case 3:PrintAll(); break;
case 4:break;
}
} while (choice != 4);
}
/***************▽�垓臻橦插�*************/
void PrintAll()
{
system("cls");
printf("\n\n");
printf("\t\t\t底岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩弧\n");
printf("\t\t\t岱 淏婓脤艘悝埜 岱\n");
printf("\t\t\t彿岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩忽\n");
STU *ptemp = pStu->pnext; //硌砃菴珨跺衄杅擂腔賦萸
if (ptemp == NULL)
{
printf("\t\t\t羶衄�庥恀�擂\n");
printf("\t\t\t偌隙陬瑩樟哿...");
_getch();
return;
}
printf("\t\t\t悝瘍\t俷靡\t逄恅\t杅悝\n");
while (ptemp != NULL)
{
printf("\t\t\t%d\t%s\t%.2f\t%.2f\n", ptemp->num, ptemp->name, ptemp->chinese, ptemp->math);
ptemp = ptemp->pnext;
}
printf("\t\t\t偌隙陬瑩樟哿...");
_getch(); //脹渾
}
/***************▽偌悝瘍脤梑▼*************/
void SearchNum(STU *ptemp)
{
int num;
system("cls");
printf("\n\n");
printf("\t\t\t底岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩弧\n");
printf("\t\t\t岱 淏婓脤艘悝埜 岱\n");
printf("\t\t\t彿岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩忽\n");
printf("\t\t\t③怀�遹宋籟�");
scanf("%d", &num);
ptemp = ptemp->pnext; //硌砃菴珨跺杅擂
while (ptemp != NULL)
{
if (ptemp->num == num)
{
printf("\t\t\t悝瘍\t俷靡\t逄恅\t杅悝\n");
printf("\t\t\t%d\t%s\t%.2f\t%.2f\n", ptemp->num, ptemp->name, ptemp->chinese, ptemp->math);
printf("\t\t\t偌隙陬瑩樟哿...");
_getch();
return; //梑善 return
}
ptemp = ptemp->pnext;
}
//羶衄梑善 ﹝﹝﹝﹝
printf("\t\t\t脤拸森�芄※椅扂熉�樟哿...\n");
_getch();
}
/***************▽偌俷靡脤梑▼*************/
void SearchName(STU *ptemp)
{
char name[20];
system("cls");
printf("\n\n");
printf("\t\t\t底岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩弧\n");
printf("\t\t\t岱 淏婓脤艘悝埜 岱\n");
printf("\t\t\t彿岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩忽\n");
printf("\t\t\t③怀�遶桼�ㄩ");
scanf("%s", name);
ptemp = ptemp->pnext; //硌砃菴珨跺杅擂
int n = 0;
while (ptemp != NULL)
{
if (!strcmp(ptemp->name, name))
{
if (n == 0)
{
printf("\t\t\t悝瘍\t俷靡\t逄恅\t杅悝\n");
}
printf("\t\t\t%d\t%s\t%.2f\t%.2f\n", ptemp->num, ptemp->name, ptemp->chinese, ptemp->math);
n++;
}
ptemp = ptemp->pnext;
}
//羶衄梑善 ﹝﹝﹝﹝
if (n == 0)
{
printf("\t\t\t脤拸森�芄※椅扂熉�樟哿...\n");
}
_getch();
}
/***************▽党蜊陓洘▼*************/
void Modify(STU *ptemp)
{
//党蜊傖憎
int num;
int num1;
char ch;
system("cls");
printf("\n\n");
printf("\t\t\t底岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩弧\n");
printf("\t\t\t岱 淏婓党蜊陓洘 岱\n");
printf("\t\t\t彿岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩岩忽\n");
printf("\t\t\t③怀�遹宋籟�");
scanf("%d", &num);
ptemp = ptemp->pnext; //硌砃菴珨跺杅擂
while (ptemp != NULL)
{
if (ptemp->num == num)
{
printf("\t\t\t悝瘍\t俷靡\t逄恅\t�