C语言课程设计成绩管理系统代码.docx

上传人:b****6 文档编号:6618622 上传时间:2023-01-08 格式:DOCX 页数:11 大小:16.29KB
下载 相关 举报
C语言课程设计成绩管理系统代码.docx_第1页
第1页 / 共11页
C语言课程设计成绩管理系统代码.docx_第2页
第2页 / 共11页
C语言课程设计成绩管理系统代码.docx_第3页
第3页 / 共11页
C语言课程设计成绩管理系统代码.docx_第4页
第4页 / 共11页
C语言课程设计成绩管理系统代码.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言课程设计成绩管理系统代码.docx

《C语言课程设计成绩管理系统代码.docx》由会员分享,可在线阅读,更多相关《C语言课程设计成绩管理系统代码.docx(11页珍藏版)》请在冰豆网上搜索。

C语言课程设计成绩管理系统代码.docx

C语言课程设计成绩管理系统代码

C语言课程设计成绩管理系统代码

#defineLsizeof(structstudent)

#include

structstudent

{

charname[10];//姓名

longnum;//学号

charsex[3];//性别

intgrade;//班级

floatscore1,score2,score3,score4;//四门课成绩

floatall;//总分

floataverage;//平均分

structstudent*next;//指向下一个结点的指针

};

structstudent*head;//全局指针变量

chara;

voidinput(structstudent*q)

{

structstudent*p;

while

(1)

{

p=(structstudent*)malloc(L);//开辟存储空间

printf("输入姓名:

");

scanf("%s",p->name);

printf("输入学号:

");

scanf("%ld",&p->num);

printf("输入性别:

");

scanf("%s",p->sex);

printf("输入班级:

");

scanf("%d",&p->grade);

printf("输入四门课成绩:

");

scanf("%f%f%f%f",&p->score1,&p->score2,&p->score3,&p->score4);

fflush(stdin);

p->all=p->score1+p->score2+p->score3+p->score4;

p->average=p->all/4;

p->next=q;

q=p;

printf("是否回主菜单(Y/N):

");

scanf("%c",&a);

if(a=='Y'||a=='y')

break;

}

}

voidadd()

{

structstudent*p1,*p2;

charc;

p2=(structstudent*)malloc(L);

p1=head;

while

(1)

{

while(p1->next!

=0)

p1=p1->next;

printf("输入姓名:

");

scanf("%s",p2->name);

printf("输入学号:

");

scanf("%ld",&p2->num);

printf("输入性别:

");

scanf("%s",p2->sex);

printf("输入班级:

");

scanf("%d",&p2->grade);

printf("输入四门课成绩:

");

scanf("%f%f%f%f",&p2->score1,&p2->score2,&p2->score3,&p2->score4);

fflush(stdin);

p2->all=p2->score1+p2->score2+p2->score3+p2->score4;

p2->average=p2->all/4;

p2->next=0;

p1->next=p2;

printf("是否回主菜单?

(y/n):

");

scanf("%c",&c);

fflush(stdin);

if(c=='y'||c=='Y')

break;

}

}

voidfind(structstudent*p)

{

longb;

intflag;//判断标志

while

(1)

{

printf("输入学号:

");

scanf("%ld",&b);

flag=0;

while(p!

=0)

{

if(p->num==b)

{

printf("姓名\t学号\t性别\t班级\t语文\t数学\t外语\t综合\t总分\t平均分\n");

printf("%s\t%ld\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",p->name,p->num,p->sex,p->grade,p->score1,p->score2,p->score3,p->score4,p->all,p->average);

flag=1;

break;

}//如果结点的学号和要查找的学号相等,输出结点信息,同时标志变为1

else

p=p->next;//p指向下一结点

}

if(flag==0)//判断标志是0或1,确定循环结束的形式

printf("无查询结果!

\n");//若标志为0,提示无查找结果

printf("是否回主菜单(Y/N):

");

fflush(stdin);

scanf("%c",&a);

if(a=='Y'||a=='y')

break;

}

}

voiddel()

{

structstudent*p1,*p2,*p;

chart;

longb;

intflag=0;

while

(1)

{

printf("请输入学号:

");

scanf("%ld",&b);

if(head->num==b)

{

p=head;

printf("姓名\t学号\t性别\t班级\t语文\t数学\t外语\t综合\t总分\t平均分\n");

printf("%s\t%ld\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",p->name,p->num,p->sex,p->grade,p->score1,p->score2,p->score3,p->score4,p->all,p->average);

printf("是否删除(Y/N):

");

fflush(stdin);

scanf("%c",&t);

if(t=='Y'||t=='y')//判断是否删除,

head=head->next;

free(p1);

}

else

{

p2=head;

p1=p2->next;

while(p1!

=0)

{

if(p1->num==b)

{

printf("姓名\t学号\t性别\t班级\t语文\t数学\t外语\t综合\t总分\t平均分\n");

printf("%s\t%ld\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",p1->name,p1->num,p1->sex,p1->grade,p1->score1,p1->score2,p1->score3,p1->score4,p1->all,p1->average);

flag=1;

break;

}

else

{

p2=p1;

p1=p1->next;

}

}//查找到要删除的结点,并显示信息

if(flag==0)

printf("对不起,无查询结果!

");

else

{

printf("是否删除(Y/N):

");//提示是否删除

fflush(stdin);

scanf("%c",&t);

if(t=='Y'||t=='y')//判断是否删除,若是执行删除语句

p2->next=p1->next;

free(p1);

}

}

printf("是否回主菜单(Y/N):

");

fflush(stdin);

scanf("%c",&a);

if(a=='Y'||a=='y')

break;

}

}

voidchange()

{

structstudent*p;

longb;

intflag;

charc;

while

(1)

{

printf("输入学号:

");

scanf("%ld",&b);

p=head;

flag=0;

while(p!

=0)

{

if(p->num==b)

{

printf("姓名\t学号\t性别\t班级\t语文\t数学\t外语\t综合\t总分\t平均分\n");

printf("%s\t%ld\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",p->name,p->num,p->sex,p->grade,p->score1,p->score2,p->score3,p->score4,p->all,p->average);

flag=1;

break;

}

else

p=p->next;

}

if(flag==0)

printf("无查询结果!

\n");

else

{

printf("输入要修改的项目:

\n1、姓名2、学号3、性别4、班级5、分数\n请输入:

");

fflush(stdin);

scanf("%c",&c);

switch(c)

{

case'1':

{

printf("输入修改后的姓名:

");

scanf("%s",p->name);

break;

}

case'2':

{

printf("输入修改后的学号:

");

scanf("%ld",&p->num);

break;

}

case'3':

{

printf("输入修改后的性别:

");

scanf("%s",p->sex);

break;

}

case'4':

{

printf("输入修改后的姓名:

");

scanf("%d",&p->grade);

break;

}

case'5':

{

printf("输入修改后的分数:

");

scanf("%f%f%f%f",&p->score1,&p->score2,&p->score3,&p->score4);

p->all=p->score1+p->score2+p->score3+p->score4;

p->average=p->all/4;

break;

}

default:

printf("输入有误!

");

}

}

printf("是否回主菜单(Y/N):

");

scanf("%c%c",&a,&a);

if(a=='Y'||a=='y')

break;

}

}

voidshow(structstudent*p)

{

while

(1)

{

if(p==0)

break;

else

{

printf("姓名\t学号\t性别\t班级\t语文\t数学\t外语\t综合\t总分\t平均分\n");

printf("%s\t%ld\t%s\t%d\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\n",p->name,p->num,p->sex,p->grade,p->score1,p->score2,p->score3,p->score4,p->all,p->average);

}

p=p->next;

}//显示每一个结点的信息

printf("按任意键返回:

");

getch();

}

main()

{

structstudent*head;

intfunction;

intflag=0;//判断是否退出的标志

while

(1)

{

head=0;

printf("=====================学生成绩管理系统========================\n");

printf("1、录入2、查找3、添加4、删除5、更改6、显示7、退出\n");

printf("===========注:

此系统必须先录入才能进行其它操作!

============\n");

printf("请输入功能:

");

scanf("%d",&function);

switch(function)

{

case1:

{

input(head);

break;

}

case2:

{

find(head);

break;

}

case3:

{

add();

break;

}

case4:

{

del();

break;

}

case5:

{

change();

break;

}

case6:

{

show(head);

break;

}

case7:

flag=1;

break;

default:

printf("输入有误!

请重新输入!

");

}

if(flag==1)

break;//判断是否退出

fflush(stdin);

system("cls");//清屏

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1