成绩管理系统代码.docx

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

成绩管理系统代码.docx

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

成绩管理系统代码.docx

成绩管理系统代码

程序设计中用到的结构体类型:

学生信息结构体类型:

#include

#include

#include

#include

#include

voidmenu();

voidmain();

voidalter(linklistL);

voiddelnode(linklistL);

voidinsert(linklistL,listnode*p);

voidoutputlist(linklistL);

listnode*listfind(linklistL);

voidsort(linklistL);

structstudent

{

intnumber;//学号

floatscore;//成绩

charname[10];//姓名

intenglish;

intwuli;

inthuaxue;

intsum;

};

voidmain()//主函数

{

inti;

L=(listnode*)malloc(sizeof(listnode));

L->next=NULL;

//通过malloc申请sizeof(listnode)大小的一段连续内存空间,并将该空间地址首地址(指针)强制转换成listnode*类型,并赋值给lnode变量

for(;;)

{

menu();

scanf("%d",&i);

switch(i)

{

case1:

printf("**************学生成绩管理系统的建立***************\n");

L=createlist();

break;

case2:

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

printf("******插入一条新记录********\n");

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

printf("*学号班级姓名语文数学英语物理化学*\n");

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

p=(listnode*)malloc(sizeof(listnode));

scanf("%d,%d,%d,%d,%d,%d,%d,%d",p->data.num,p->data.clas,p->data.name,p->data.yuwen,p->data.math,p->data.english,p->data.wuli,p->data.huaxue);

insert(L,p);

break;

case3:

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

printf("*******查询记录*******\n");

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

p=listfind(L);

if(p!

=NULL){

printf("*学号班级姓名语文数学英语物理化学*\n");

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

printf("%s%s%s%d%d%d%d%d",p->data.num,p->data.clas,p->data.name,p->data.yuwen,p->data.math,p->data.english,p->data.wuli,p->data.huaxue);

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

}

else

printf("没有你要找的人!

\n");

break;

case4:

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

printf("*******修改记录*********\n");

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

alter(L);

break;

case5:

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

printf("*******删除记录*********\n");

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

delnode(L);

break;

case6:

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

printf("********列出所有记录*********\n");

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

outputlist(L);

break;

case7:

scort(L,p);

printf("\t谢谢使用!

\n");

break;

}

}

}

voidmenu()//主界面

{

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

printf("============================================\n");

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

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

printf("||*********1.写入学生信息********||\n");

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

printf("||*********2.添加学生信息********||\n");

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

printf("||*********3.查找学生信息********||\n");

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

printf("||*********4.修改学生信息********||\n");

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

printf("||*********5.删除学生信息********||\n");

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

printf("||*********6.查看全部学生********||\n");

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

printf("||*********7.按照成绩排序********||\n");

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

printf("||*********0.退出管理系统********||\n");

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

printf("============================================\n");

printf("\n请选择数字0-7.\n\n");

}

 

//函数功能:

实现按成绩排序

linklistscort(linklistL)

{linklistp,q,small;

inttemp;

for(p=L->next;p->next!

=NULL;p=p->next)

{

small=p;

for(q=p->next;q;q=q->next)

{

if(q->data.sumdata.sum)

{

small=q;

}

}

printf("循环后,获得最小值为:

%d,此时链表为:

",small->data.sum);

if(small!

=p)

{

temp=p->data.sum;

p->data.sum=small->data.sum;

small->data.sum=temp;

}

listTraverse(L);

}

printf("输出排序后的数字:

\n");

L=scort(L);

}

linklistlistTraverse(linklistL)

{

p=L->next;

while(p)

{

printf("按总成绩排序为%d",p->data.sum);

p=p->next;

}

printf("\n");

}

//函数功能:

打印信息

voidoutputlist(linklistL)

{

listnode*p;

p=L->next;

printf("学号班级姓名语文数学英语物理化学\n");

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

while(p!

=NULL)

{

printf("%s%s%s%d%d%d%d%d%d",p->data.num,p->data.clas,p->data.name,p->data.yuwen,p->data.math,p->data.english,p->data.wuli,p->data.huaxue,p->data.sum);

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

p=p->next;

}

}

//函数功能:

输入数据

voidinsert(linklistL,listnode*p)/*向单链表中插入一个完整的信息*/

{

listnode*p1,*p2;

p1=L;

p2=p1->next;

printf("学号班级姓名语文数学英语物理化学\n");

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

scanf("%s%s%s%d%d%d%d%d",p->data.num,p->data.clas,p->data.name,&p->data.yuwen,&p->data.math,&p->data.english,&p->data.wuli,&p->data.huaxue);

p->data.sum=p->data.yuwen+p->data.math+p->data.english+p->data.wuli+p->data.huaxue;

while(p2!

=NULL&&strcmp(p2->data.num,p->data.num)<0)//比较大小,前者大返回1,相等返回0,前者小返回-1

{

p1=p2;

p2=p2->next;

}

p1->next=p;

p->next=p2;

printf("添加成功!

\n");

}

/*函数功能:

按学号找学生信息*/

listnode*listfind(linklistL)

{

listnode*p;

charnum[11];

charname[9];

intxz;

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

printf("1.按学号查询\n");

printf("2.按姓名查询\n");

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

printf("请选择:

");

p=L->next;

scanf("%d",&xz);

if(xz==1)

{

printf("请输入要查找的学号:

");

scanf("%s",num);

while(p&&strcmp(p->data.num,num)!

=0)

p=p->next;

}

else

if(xz==2)

{

printf("请输入要查询者的姓名:

");

scanf("%s",name);

while(p&&strcmp(p->data.name,name)!

=0)

p=p->next;

}

returnp;

}

voidmenu(structstudent*parr,intlen)

{

printf("\t\t||=========================================||\n");

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

printf("\t\t||-----------welcome!

----------||\n");

printf("\t\t||------------学生成绩管理系统---------||\n");

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

printf("\t\t||=========================================||\n");

getchar();

getchar();

system("cls");

return;

}

/*函数功能:

结束整个程序*/

voidexit(structstudent*parr,intlen)

{//getchar();

charch='\0';

do

{

printf("您确定要退出!

(y/n):

");

scanf("%c",&ch);

}while((ch!

='Y')&&(ch!

='y')&&(ch!

='N')&&(ch!

='n'));

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

{

exit(0);

}

return;

}

/*函数功能:

修改学生信息*/

voidalter(linklistL)//成绩管理系统链表上的结点修改

{

charch;

listnode*p,*q;

p=listfind(L);

if(p==NULL)

{

printf("没有查到要修改的学生!

\n");

}

else

{

printf("真的要修改该结点吗?

(y/n)");

scanf("%s",&ch);

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

{

q=L;

printf("输入新的学号:

\n");

scanf("%s",p->data.num);

printf("输入新班级:

\n");

scanf("%s",p->data.clas);

printf("输入新的姓名:

\n");

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

printf("输入语文:

\n");

scanf("%d",&p->data.yuwen);

printf("输入英语:

\n");

scanf("%d",&p->data.math);

printf("输入地址:

\n");

scanf("%d",&p->data.english);

printf("输入物理:

\n");

scanf("%d",&p->data.wuli);

printf("输入化学:

\n");

scanf("%d",&p->data.huaxue);

printf("修改成功!

\n");

}

if(ch=='n'||ch=='N')

printf("无需修改\n");

}

}

/*函数功能:

添加学生*/

voidinsert(structstudent*parr,int*len)

{

intnumber=0;//添加学生的个数

inti;

printf("请输入您要添加几个学生信息:

");

scanf("%d",&number);

parr=(structstudent*)malloc((sizeof(structstudent)*(*len+number)));

for(i=*len;i<*len+number;i++)

{

printf("请输入第%d个学生信息:

",i+1);

printf("姓名:

");

scanf("%s",parr[i].name);

printf("成绩:

");

scanf("%f",&parr[i].score);

printf("学号:

");

scanf("%d",&parr[i].number);

}output(parr,&*len);

}

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

当前位置:首页 > 医药卫生 > 基础医学

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

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