c语言成绩统计系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言成绩统计系统

#include

#include

#include

int shoudsave=0; /* 为后面判断是否改动资料做铺垫*/ struct student

{

char num[11];/*学号*/

char name[20];

int cgrade;

int mgrade;

int egrade;

int totle;

int ave;

float ajd;//平均绩点

};

typedef struct node

{

struct student data;

struct node *next;

} Node,*Link;

void menu()

{

printf("************************************************************************ ********");

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获取帮助信息\t\t\t\t\t0退出系统\n");

printf("************************************************************************ ********\n");

}

void printstart()

{

printf("--------------------------------------------------------------------------------\n");

}

void Wrong()

{

printf("\n=====>提示:输入错误!\n");

}

void Nofind()

{

printf("\n=====>提示:没有找到该学生!\n");

}

void printc() /* 本函数用于输出中文标题*/

{

printf(" 学号\t 姓名英语成绩数学成绩C语言成绩总分平均分平均绩点\n");

}

void printe(Node *p)/*本函数用于输出中文标题下的具体内容*/

{

printf("%-12s%s\t%d\t %d\t %d\t %d\t %d\t %2.1f\n",p->data.num,p->d ,

p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave,p->data.ajd);

}

Node *Locate(Link l,char findmess[],char nameornum[]) /*该函数用于定位连表中符合要求的接点,并返回该指针*/

{

Node *r;

if(strcmp(nameornum,"num")==0) /*按学号查询*/

{

r=l->next;

while(r)

{

if(strcmp(r->data.num,findmess)==0)

return r;

r=r->next;

}

}

else if(strcmp(nameornum,"name")==0) /*按姓名查询*/

{

r=l->next;

while(r)

{

if(strcmp(r->,findmess)==0)

return r;

r=r->next;

}

}

return 0;

}

float jd(Node *p)

{

int b[3],i;

float sum=0.0,a;

b[0]=p->data.cgrade;b[1]=p->data.mgrade;b[2]=p->data.egrade;

for( i=0;i<=2;i++)

{

if(b[i]>=90) a=5.0 ;

else if(b[i]>=85) a=4.5;

else if(b[i]>=80) a=4.0;

else if(b[i]>=75) a=3.5;

else if(b[i]>=70) a=3.0;

else if(b[i]>=65) a=2.5;

else if(b[i]>=60) a=2.0;

else a=0.0 ;

sum+=a;

}

return sum/3;

}

void Add(Link l) /*增加学生*/

{

Node *p,*r,*s;

char num[11];

r=l;

s=l->next;

while(r->next!=NULL)

r=r->next;

while(1)

{

k0: printf("请你输入学号(以'0'返回上一级菜单)");

scanf("%s",num);

getchar();

if(strcmp(num,"0")==0)

break;

while(s)

{

if(strcmp(s->data.num,num)==0)

{

printf("=====>提示:学号为'%s'的学生已经存在,若要修改请你选择'4' 修改!\n",num);

相关文档
最新文档