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

#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;
}