You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
1.4 KiB
76 lines
1.4 KiB
#include<stdio.h>
|
|
#include<stdlib.h>
|
|
#include<string.h>
|
|
int save=0;
|
|
struct student /*构建结构体*/
|
|
{
|
|
char num[12];
|
|
char name[20] ;
|
|
char sex[4] ;
|
|
int CYuYan;
|
|
int Math;
|
|
int English;
|
|
int sum;
|
|
int ave;
|
|
} ;
|
|
typedef struct node
|
|
{
|
|
struct student data;
|
|
struct node *next;
|
|
} Node, *Link;
|
|
void Menu() /*界面主菜单*/
|
|
{
|
|
printf("******************\n") ;
|
|
printf("\t1输入学生资料\t\t\t\t\t2删除学生资料\n") ;
|
|
printf("\t3查询学生成绩\t\t\t\t\t4修改学生成绩\n") ;
|
|
printf("\t5显示学生资料\t\t\t\t\t6统计学生资料\n") ;
|
|
printf("\t7排序学生成绩\t\t\t\t\t8保存学生成绩\n") ;
|
|
printf("\t9退出系统\n") ;
|
|
printf("**********************") ;
|
|
}
|
|
void Print()
|
|
{
|
|
printf("--------------------") ;
|
|
}
|
|
void Wrong() /*错误警告*/
|
|
{
|
|
printf("\n警告: 输入错误! !!\n") ;
|
|
}
|
|
void Nofind()
|
|
{
|
|
printf("\n警告: 没有找到该学生! !! \n") ;
|
|
}
|
|
void Print1()
|
|
{
|
|
printf(" 学号\t 姓名 性别 C语言成绩 英语成绩 数学成绩 总分 平均分\n") ;
|
|
}
|
|
void Print2(Node *p) /*打印学生成绩*/
|
|
{
|
|
printf("%-9s%s\t%3s\t%d\t%d\t%d\t %d\t %d\n", p->data.num, p->data.name, p->data.sex, p->data.CYuYan, p->data.Math, p->data.English, p->data.sum, p->data.ave);
|
|
}
|
|
Node *Locate(Link h, char findmess[], char nameornum[] ) /*定位链表中符合要求的接点*/
|
|
{
|
|
Node *r;
|
|
if(strcmp(nameornum, "num") ==0) /*按学号查询*/
|
|
{
|
|
r=h->next;
|
|
while(r!=NULL)
|
|
{
|
|
if(strcmp(r->data. num, findmess) ==0)
|
|
return r;
|
|
r=r->next;
|
|
}
|
|
}
|
|
else if(strcmp(nameornum, "name") ==0) /*按姓名查询*/
|
|
{
|
|
r=h->next;
|
|
while(r!=NULL)
|
|
{
|
|
if(strcmp(r->data. name, findmess) ==0)
|
|
return r;
|
|
r=r->next;
|
|
}
|
|
}
|
|
return 0;
|
|
}
|