学生成绩管理系统.docx

上传人:b****1 文档编号:236704 上传时间:2022-10-07 格式:DOCX 页数:25 大小:143.65KB
下载 相关 举报
学生成绩管理系统.docx_第1页
第1页 / 共25页
学生成绩管理系统.docx_第2页
第2页 / 共25页
学生成绩管理系统.docx_第3页
第3页 / 共25页
学生成绩管理系统.docx_第4页
第4页 / 共25页
学生成绩管理系统.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统.docx

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

学生成绩管理系统.docx

1问题描述

学生成绩管理系统

学生成绩管理系统

学生信息包括学期、学号、班级、姓名,和语文、数学、英语、计算机四门课成绩。

并按班级、学期查询学生成绩,并能录入、修改,求学生平均成绩和总成绩,输出不及格科目,按班级输出成绩单,按班级对学生成绩进行排序。

2系统分析

2.1题目要求

学生成绩管理系统设计

学生成绩信息包括:

学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。

主要功能:

(1)能按学期、按班级完成对学生成绩的录入、修改

(2)能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表

(3)能查询学生成绩,不及格科目及学生名单

(4)能按班级输出学生的成绩单

(5)能按班级,按课程,对学生成绩进行排序。

要求:

使用二进制文件方式存储数据,系统以菜单方式工作

2.2算法设计

(1)创建主菜单

(2)实现学生成绩信息录入

(3)实现学生成绩信息修改

(4)实现学生成绩信息查询

(a)按学期、班级查询学生的成绩

(b)按学号查询学生的成绩

(c)查询不及格的科目和学生名单

(5)实现学生成绩成绩统计

(a)按班级统计学生的总分、平均分

(b)按班级、课程对学生的总分进行排序

(6)实现学生成绩信息浏览

2.3流程图

2.4关键问题

难点:

指针p、函数。

解决:

head=NULL无条件循环

指针p指向新开辟的单元

指针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

#include

#include

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

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

");

fflush(stdin);

scanf("%d",&p->term);//学期只能为1或2

while(p->term!

=1&&p->term!

=2)

{

getchar();

printf("输入错误!

请重新输入:

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

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

}

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

");

fflush(stdin);//班级只能为1或2

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

while(p->clas!

=1&&p->clas!

=2)

{

getchar();

printf("输入错误!

请重新输入:

");

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

}

printf("请输入该班的学生信息!

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

printf("请输入学生学号:

");

fflush(stdin);

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

printf("请输入学生姓名:

");

fflush(stdin);

scanf("%s",p->name);//输入学生姓名

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

");//输入四门成绩

scanf("%f",&p->chinese);

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

");

scanf("%f",&p->math);

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

");

scanf("%f",&p->english);

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

");

scanf("%f",&p->computer);

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

head=p;

else

q->link=p;

q=p;

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

");

fflush(stdin);

scanf("%c",&c);

}

q->link=NULL;//链表结尾

return(head);//链表返回头指针

}

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

//函数功能:

实现对学生信息的修改

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

voidchange(structinfor*head)

{

structinfor*p=head;

charch,m;

charname[9];//定义一个数组,存储学生的姓名

intnum;

if(p==NULL)printf("出错!

请先输入学生信息!

");

while

(1)//设置循环控制

{

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

\t\n");

printf("\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");//输出要修改的信息

printf("\t\t\ta、学号:

\n");

printf("\t\t\tb、姓名:

\n");

printf("\t\t\tc、班级:

\n");

printf("\t\t\td、成绩:

\n");

printf("\t\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");

fflush(stdin);//清盘

scanf("%c",&ch);

if(ch=='a')

{

printf("你要修改的信息是:

学号!

\n");//按姓名修改学号

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

");

scanf("%s",name);

if(strcmp(name,p->name)==0)

{

printf("请输入该学生新的学号:

");//输入新学号

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

}

elseprintf("无法查找到该学生!

\n");//找不到信息

}

elseif(ch=='b')//按学号修改该班级学生的信息

{

printf("你要修改的信息是:

姓名!

\n");

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

当前位置:首页 > 考试认证 > IT认证

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

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