最新学生成绩管理系统1Word下载.docx

上传人:b****1 文档编号:3902527 上传时间:2023-05-02 格式:DOCX 页数:30 大小:140.27KB
下载 相关 举报
最新学生成绩管理系统1Word下载.docx_第1页
第1页 / 共30页
最新学生成绩管理系统1Word下载.docx_第2页
第2页 / 共30页
最新学生成绩管理系统1Word下载.docx_第3页
第3页 / 共30页
最新学生成绩管理系统1Word下载.docx_第4页
第4页 / 共30页
最新学生成绩管理系统1Word下载.docx_第5页
第5页 / 共30页
最新学生成绩管理系统1Word下载.docx_第6页
第6页 / 共30页
最新学生成绩管理系统1Word下载.docx_第7页
第7页 / 共30页
最新学生成绩管理系统1Word下载.docx_第8页
第8页 / 共30页
最新学生成绩管理系统1Word下载.docx_第9页
第9页 / 共30页
最新学生成绩管理系统1Word下载.docx_第10页
第10页 / 共30页
最新学生成绩管理系统1Word下载.docx_第11页
第11页 / 共30页
最新学生成绩管理系统1Word下载.docx_第12页
第12页 / 共30页
最新学生成绩管理系统1Word下载.docx_第13页
第13页 / 共30页
最新学生成绩管理系统1Word下载.docx_第14页
第14页 / 共30页
最新学生成绩管理系统1Word下载.docx_第15页
第15页 / 共30页
最新学生成绩管理系统1Word下载.docx_第16页
第16页 / 共30页
最新学生成绩管理系统1Word下载.docx_第17页
第17页 / 共30页
最新学生成绩管理系统1Word下载.docx_第18页
第18页 / 共30页
最新学生成绩管理系统1Word下载.docx_第19页
第19页 / 共30页
最新学生成绩管理系统1Word下载.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

最新学生成绩管理系统1Word下载.docx

《最新学生成绩管理系统1Word下载.docx》由会员分享,可在线阅读,更多相关《最新学生成绩管理系统1Word下载.docx(30页珍藏版)》请在冰点文库上搜索。

最新学生成绩管理系统1Word下载.docx

指针p是否为空

是否

输入学号p->

num

输出p->

num是否为@

内存是否

溢出输入姓名p->

name

停止for(i=0;

i<

3;

i++)

输入输入成绩

返回p->

sum=s;

菜单p->

average=(float)s/3;

主函数:

intmain()

新建函数:

infor*init()

输入函数:

infor*creat()

显示函数:

structinfor*view(structinfor*head)

删除函数:

infor*delete(infor*head)

按名字寻找函数:

voidlookup(infor*head)

保存函数:

voidsave(infor*head)

按总分排序函数:

infor*sort(infor*head)

计算总分和均分函数:

voidzong(structinfor*head)

修改函:

voidchange(structinfor*head)

按学号排序函数:

infor*index(infor*h)

3系统实现

3.1题目一

(源代码)

#include<

stdio.h>

stdlib.h>

#include<

string.h>

#defineN4

structinfor

{

intterm;

//定义学期(1或2)

intno;

//学号

intclas;

//定义班级(1或2班)

charname[9];

//姓名

floatchinese;

//定义四门成绩

floatenglish;

floatmath;

floatcomputer;

structinfor*link;

};

intn=0;

//******************************************************************************

//函数功能:

创建链表,录入学生的相关信息,此函数返回一个指向链表头的指针

structinfor*creat()

structinfor*head=NULL,*p=NULL,*q=NULL;

charc;

fflush(stdin);

printf("

是否要输入信息(y/n):

"

);

scanf("

%c"

&

c);

p=q=(structinfor*)malloc(sizeof(structinfor));

q=head;

while(p!

=NULL&

&

c=='

y'

{

n++;

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

请输入要录入学生信息的学期:

fflush(stdin);

%d"

p->

term);

//学期只能为1或2

while(p->

term!

=1&

=2)

getchar();

printf("

输入错误!

请重新输入:

//若学期不为1或2,则输入有误

scanf("

}

请输入要录入学生成绩信息的班级:

//班级只能为1或2

clas);

clas!

}

请输入该班的学生信息!

\n"

//输入学生信息(包括学号、四门成绩)

请输入学生学号:

no);

请输入学生姓名:

%s"

p->

name);

//输入学生姓名

请输入语文成绩(0-100):

//输入四门成绩

%f"

chinese);

请输入数学成绩(0-100):

math);

请输入英语成绩(0-100):

english);

请输入计算机成绩(0-100):

computer);

if(n==1)//创建新结点

head=p;

else

q->

link=p;

q=p;

是否还要输入信息(y/n):

q->

link=NULL;

//链表结尾

return(head);

//链表返回头指针

}

实现对学生信息的修改

structinfor*p=head;

charch,m;

//定义一个数组,存储学生的姓名

intnum;

if(p==NULL)printf("

出错!

请先输入学生信息!

while

(1)//设置循环控制

\t\t\t请选择要修改的信息!

\t\n"

\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"

//输出要修改的信息

\t\t\ta、学号:

\n"

\t\t\tb、姓名:

\t\t\tc、班级:

\t\t\td、成绩:

//清盘

ch);

if(ch=='

a'

{

你要修改的信息是:

学号!

//按姓名修改学号

请输入你要修改的学生姓名:

name);

if(strcmp(name,p->

name)==0)

printf("

请输入该学生新的学号:

//输入新学号

}

elseprintf("

无法查找到该学生!

//找不到信息

elseif(ch=='

b'

)//按学号修改该班级学生的信息

姓名!

请输入你要修改的学生的学号:

num);

if(num==p->

no)//输入学号,判断条件

{

请输入该学生的姓名:

//输入要做修改的学生姓名

}

elseprintf("

}

c'

班级!

//按学号修改班级

no)

请输入该学生的班级:

//输入要做修改的班级

scanf("

//找不到信息

elseif(ch=='

d'

成绩!

//按学号修改成绩

no)//输入学号

请输入该学生新的语文成绩:

请输入该学生新的数学成绩:

//输入新的四门成绩

请输入该学生新的英语成绩:

请输入该学生新的计算机成绩:

无法查找该学生的信息!

p=p->

link;

是否还要继续修改信息(y/n):

//判断,是否还要修改信息,跳出循环

if((m=getchar())=='

n'

)break;

//函数功能:

按照学号查询学生信息

voidcheckno(structinfor*head)

{//按学号查询学生的成绩

structinfor*p;

p=head;

intnum,i=0;

请输入你要查询的学生学号:

if(num==p->

--------------------------------------------------------------------------"

\t学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\t\n"

-------------------------------------------------------------------------\n"

%d\t"

//输出学生的班级

%s\t"

%1f\t"

//输出四门成绩

i=2;

if(i==0)

没找到该学生的信息!

voidcheckclass(structinfor*head)

intbanji,i=0;

=NULL)//按班级查询学生的成绩

请输入你要查询成绩的班级:

banji);

if(banji==p->

clas)

{

请输出%d班所有同学的成绩:

banji);

//输出要查询成绩的班级

//输出查询成绩的学生学号

//输出要查询成绩的学生姓名

i=2;

if(i==0)

没找到学生信息!

//输出错误,找不到信息

voidcheckterm(structinfor*head)//定义按学期查找信息的函数

intxueqi,i=0;

=NULL)//设置循环控制

//按学期查询学生的成绩

请输入你要查询成绩的学期:

xueqi);

if(xueqi==p->

term)

请输出第%d学期所有班级的信息:

//输出姓名

voidnorich(structinfor*head)//定义一个函数,查找不及格的学生

floattoa;

请输入要查询成绩的学生学号:

正在查询该学生的成绩,请稍侯>

>

//查询学生的成绩,输出不及格的科目

while(p!

=NULL)

if(p->

chinese<

60)

该学生的语文不及格!

printf("

i++;

if(p->

math<

60)//输出该学生的不及格科目

该学生的数学不及格!

english<

该学生的英语不及格!

//对各门成绩进行判断

computer<

该学生的计算机不及格!

if(i>

0)

%s同学共有%d门成绩不及格!

\n学号是:

%d\n"

name,i,p->

toa=p->

chinese+p->

math+p->

english+p->

computer;

if(toa<

240)

不及格学生名单为:

%s"

//输出不及格的学生名单

p=p->

voidsearch(structinfor*head)//定义一个查询学生信息的函数,调用各子函数,进行查询

chark,ch;

=NULL)//设置循环控制条件

{//输出查询方式

\t\t\t你要选择何种方式查询成绩!

\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"

\t\t\tb、班级:

\t\t\tc、学期:

\t\t\td、不及格的学生:

k);

switch(k)

case'

:

checkno(head);

break;

//调用学号函数

checkclass(head);

checkterm(head);

norich(head);

是否还要继续查询学生的信息(y/n):

if((ch=getchar())=='

//跳出循环,返回主菜单

对学生成绩进行统计,按班级求总分及平均分

voidzong(structinfor*head)//对该班级的学生成绩求总分、平均分

floattoa=0,ave=0;

inti=0;

toa=p->

//输出学生的总分和平均分成绩

ave=toa/N;

第%d个学生的总分为:

%1f!

i+1,toa);

第%d个学生的平均分:

i+1,ave);

已经统计了第%d个学生的成绩!

i+1);

//统计完毕

i++;

//指向下一个结点

voidpaixu(structinfor*head)//对该班级的学生成绩进行排序

inti=0,j;

floata[10],t;

//把结点信息输入到数组,然后排序

a[

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

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2