#include<stdio.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
#define len (sizeof(struct Student))
#define isdigest(c) ((c)>='0'&&(c)<='9')
typedef struct Student
{
int num;
int number;
char name[80];
int chinese;
int English;
int Math;
int term;
int score;
char grade_class[20];
struct Student *next;
}Stud;
//Stud *create_list();
int insert_list(Stud *head,int term,char *grade_class,int number,char *name,int chinese,int English,int Math,int n);
int del_list(Stud *head,int number);
del_list_class(Stud *head,char *grade_class);
Stud *find_list(Stud *head,int number);
Stud *find_list1(Stud *head,char *name);
Stud *find_list2(Stud *head,int term);
void brow_list(Stud *head);
int change_number(Stud *p);
int choice;
int mark1;
int number;
int term;
char name[80];
char grade_class[20];
char choice_char[1];
int fan_list(Stud *head);
int chinese_list(Stud *head);
int English_list(Stud *head);
int Math_list(Stud *head);
int grade_class_list(Stud *head);
int term_list(Stud *head);
void paixu_list(Stud *head,int mark_sub);
void main_menu();
void son_menu(Stud *head);
void view_menu(Stud *head);
void view_menu_view();
void save_list(Stud *head);
Stud *open_list();
void main()///////////////////////////////////////////////////////////////////////////主å½æ°
{
Stud * head;
char *yes_no;
int chinese;
int English;
int Math;
head=NULL;
yes_no=(char*)malloc(sizeof(char)*10);
main_menu();
do
{
printf("\n请éåæä½(è¾å
¥0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0]))
{
printf("è¾å
¥é误!\07\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
head=open_list();
// head=create_list();
}
else
{
printf("åºå·²åå¨è¿æ¥!\07\n");
// printf("\n\n\t\tæä»»æé®è¿å....");
// getch();
}
break;
case '2':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
break;
}
while(1)
{
printf("请è¾å
¥ç级:");
scanf("%s",grade_class);
fflush(stdin);
if(strcmp(grade_class,"0")==0)
{
break;
}
lable1: printf("请è¾å
¥å¦å·(è¾å
¥0ç»æ!):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
printf("请å½å
¥å¦æ:");
scanf("%d",&term);
printf("å§å:");
scanf("%s",name);
printf("请å½å
¥è¯ææ绩:");
scanf("%d",&chinese);
printf("请å½å
¥è±è¯æ绩:");
scanf("%d",&English);
printf("请å½å
¥æ°å¦æ绩:");
scanf("%d",&Math);
insert_list(head,term,grade_class,number,name,chinese,English,Math,-1);
printf("æ¯å¦ä¸ºåä¸ç级?(Y)or(N):");
fflush(stdin);
gets(yes_no);
fflush(stdin);
if(yes_no[0]=='Y'||yes_no[0]=='y')
{
goto lable1;
}
else
{
}
}
break;
case '3':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
break;
}
son_menu(head);
// printf("è¾å
¥å§å:");
// scanf("%s",name);
// find_list(head,name);
break;
case '4':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
break;
}
brow_list(head);
break;
case '5':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
break;
}
fan_list(head);
break;
case '6':
main_menu();
break;
case '7':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
view_menu(head);
}
break;
case '8':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
save_list(head);
}
break;
case '9':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
head=NULL;
printf("å·²ç»æå¼è¿æ¥!\n");
printf("\n\n\t\tæä»»æé®è¿å....");
getch();
}
break;
default:
return;
}
}while(1);
}
void main_menu()///////////////////////////////////////////////////////////////主èå
{
printf("\n");
printf("*****************************************************************************\n");
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("* 7ãé«çº§æåæ¥è¯¢çªå£. *\n");
printf("* 8ãä¿åæ°æ®. *\n");
printf("* 9ãæå¼è¿æ¥. *\n");
printf("* 0ãéåºç¨åº. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu_view()
{
printf("\n");
printf("*****************************************************************************\n");
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("* 7ãä¿åä¿¡æ¯. *\n");
printf("* 8ãæ¥çèåå
容. *\n");
printf("* 9ãæµè§æ°æ®. *\n");
printf("* 0ãåå°ä¸»èå. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void son_menu_view()
{
printf("\n");
printf("*****************************************************************************\n");
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("* 7ãæµè§æ°æ®. *\n");
printf("* 8ãä¿åæ°æ®. *\n");
printf("* 0ãåå°ä¸»èå. *\n");
printf("* *\n");
printf("*****************************************************************************\n");
}
void view_menu(Stud *head)/////////////////////////////////////æååèå
{
view_menu_view();
do
{
printf("\n请éåæä½(è¾å
¥0~9):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'9')
{
printf("è¾å
¥æ误,请éæ°è¾å
¥!\n");
continue;
}
switch(choice_char[0])
{
case '1':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
chinese_list(head);
printf("æåæå!\n");
}
break;
case '2':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
English_list(head);
printf("æåæå!\n");
}
break;
case '3':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
Math_list(head);
printf("æåæå!\n");
}
break;
case '4':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
grade_class_list(head);
printf("æåæå!\n");
}
break;
case '5':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
term_list(head);
printf("æåæå!\n");
}
break;
case '6':
printf("对ä¸èµ·,æ¤åè½é ä½ èªå·±å®ç°äº\07\n");
break;
case '7':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
save_list(head);
}
break;
case '8':
view_menu_view();
break;
case '9':
if(head==NULL)
{
printf("åºæªå»ºç«è¿æ¥!\07\n");
break;
}
brow_list(head);
break;
default:
main_menu();
return;
}
}while(1);
}
void son_menu(Stud *head)////////////////////////////////////////////////æ¥è¯¢åèå
{
son_menu_view();
do
{
printf("\n请éåæä½(è¾å
¥0~8):");
gets(choice_char);
if(strlen(choice_char)>1||!isdigest(choice_char[0])||choice_char[0]>'8')
{
printf("è¾å
¥æ误,请éæ°è¾å
¥!\n");
continue;
}
switch(choice_char[0])
{
case '1':
do{
printf("\n请è¾å
¥å¦å·(æ0ç»æ):");
scanf("%d",&number);
fflush(stdin);
if(number==0)
{
break;
}
find_list(head,number);
}while(1);
break;
case '2':
do{
printf("\n请è¾å
¥å§å(æ0ç»æ):");
scanf("%s",&name);
fflush(stdin);
if(strcmp(name,"0")==0)
{
break;
}
find_list1(head,name);
}while(1);
break;
case '3':
do{
printf("\n请è¾å
¥å¦æ(æ0ç»æ):");
scanf("%d",&term);
fflush(stdin);
if(term==0)
{
break;
}
find_list2(head,term);
}while(1);
break;
case '4':
if(head==NULL)
{
printf("åºæªå»ºç«è¿æ¥!\007\n");
break;
}
printf("è¾å
¥å¦å·:");
scanf("%d",&number);
fflush(stdin);
del_list(head,number);
break;
case '5':
if(head==NULL)
{
printf("åºæªå»ºç«è¿æ¥!\07\n");
}
printf("è¾å
¥ç级:");
scanf("%s",&grade_class);
fflush(stdin);
del_list_class(head,grade_class);
break;
case '6':
son_menu_view();
break;
case '7':
if(head==NULL)
{
printf("åºæªå»ºç«!\07\n");
break;
}
brow_list(head);
break;
case '8':
if(head==NULL)
{
printf("åºæ²¡æ建ç«è¿æ¥!\07\n");
}
else
{
save_list(head);
}
break;
default:
main_menu();
return;
}
}while(1);
}
Stud *open_list()//////////////////////////////////////////è½½å
¥æ°æ®
{
Stud *head;
char temp_char[8
温馨提示:答案为网友推荐,仅供参考