#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dos.h>
#include<ctype.h>
#include<conio.h>
#include<stddef.h>
#include<time.h>
#define PRINT1    textcolor(12);  cprintf("\r 请按任意键返回主菜单\n\r");textcolor(10); getch();clrscr();  break;
int shoudsave=0;
struct student                                                                  /* 学生信息结构体定义*/
{
char num[10],name[20],cla[4];
int score1,score2,score3,total,ave;
};
typedef struct node
{
struct student data;
struct node *next;
}Node,*L;
void print1()
{
cprintf("\r================================================================================");
}
void print2()
{
  cprintf("\n\r 1.输入学生成绩信息    在这里你可以按照提示输入学生的班级,学号,姓名及各科成绩.\n");
  cprintf("\n\r 2.注销学生成绩信息    在这里你可以按照学号或姓名将某名学生的信息从本系统中删除.\n");
  cprintf("\n\r 3.查询学生成绩信息    在这里你可以按照学号或姓名查询某一名学生的信息.\n");
  cprintf("\n\r 4.修改学生成绩信息    在这里你可以按照提示修改某一名学生的学号,姓名及各科成绩.");
  cprintf("\n\r 5.学生成绩信息排序    在这里你可以看到所有学生的各科成绩.\n");
  cprintf("\n\r 6.学生成绩信息统计    在这里本系统将为你显示所有科目的最高分及最低分所得学生.\n");
  cprintf("\n\r 7.显示学生成绩信息    在这里你可以看到系统中所有学生的信息.\n");
  cprintf("\n\r 8.保存学生成绩信息    在这里你可以将学生你信息保存到内存中.\n");
  cprintf("\n\r 9.帮助学生成绩信息    在这里你可以获得帮助信息.\n");
  cprintf("\n\r 0.退出系统            在这里选择是否保存后,你可以安全的退出本系统.\n\n\r ");
}
void menu()
{
  cprintf("\n\r\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcb\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb");
  cprintf("\r\xba          学生信息导入            \xba            学生信息处理                \xba");
  cprintf("\r\xba____________________________________\xba__________________________________________\xba");
  cprintf("\r\xba        1-->输入学生成绩信息      \xba          6-->学生成绩信息统计            \xba");
  cprintf("\r\xba        2-->注销学生成绩信息      \xba          7-->显示学生成绩信息            \xba");
  cprintf("\r\xba        3-->查询学生成绩信息      \xba          8-->保存学生成绩信息            \xba");
  cprintf("\r\xba        4-->修改学生成绩信息      \xba          9-->帮助学生成绩信息            \xba");
  cprintf("\r\xba        5-->学生成绩信息排序      \xba          0-->退出系统                    \xba");
  cprintf("\r\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xca\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc");
}
void wrong()
{
  cprintf("\n\r输入错误!请验证后重新输入.\n");
}
void notfind()
{
cprintf("\n\r该学生信息不存在!请验证后重新输入.\n");
}
void printc()                                                                  /* 此函数用于输出中文格式 */
{
cprintf("\r学号 姓名 班级 英语 数学 C语言 总分 平均分\n ");
}
void printe(Node *p)                                                            /* 此函数用于输出英文格式 */
{
cprintf("\r%-4s%-4s%4s%5d%5d%8d%5d%7d\n\r",p->data.num,p->data.name,p->data.cla,p->data.score3,p->data.score2,p->data.score1,p-&al,p->data.ave);
}
Node* Locate(L l,char findinfo[],char nameornum[])                            /* 该函数用于定位连表中符合要求的接点,并返回该指针 */
{
Node *r;
if(strcmp(nameornum,"num")==0)                                                  /* 按学号查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.num,findinfo)==0)
return r;
r=r->next;
}
}
else if(strcmp(nameornum,"name")==0) /* 按姓名查询 */
{
r=l->next;
while(r!=NULL)
{
if(strcmp(r->data.name,findinfo)==0)
return r;
r=r->next;
}
}
return 0;山东专升本成绩查询
}
void input(L l)                                                              /* 增加学生 */
{
Node *p,*r,*s;
char num[10];
r=l;
s=l->next;
while(r->next!=NULL)
r=r->next;                                                                      /* 将指针置于最末尾 */
while(1)
{ cprintf("\r如果输入完毕,请按任意键返回主菜单\n");
  cprintf("\r如果你还想输入,请按y(yes)继续\n\r");
  scanf("%s",num);
if(strcmp(num,"y")==0)
{ cprintf("请你输入学号:");
  scanf("%s",num);  } else break;
while(s)
{
if(strcmp(s->data.num,num)==0)
{
printf("\t学号为'%s'的学生已经存在,若要修改请你选择'4 修改'!\n",num);
print1();
printc();
printe(s);
print1();
printf("\n");
getch();
return;
}
s=s->next;
}
p=(Node *)malloc(sizeof(Node));
strcpy(p->data.num,num);
cprintf("\r请你输入姓名:");
scanf("%s",p->data.name);