C语言实验报告学生成绩管理系统Word文档下载推荐.docx
- 文档编号:16973091
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:23
- 大小:226.17KB
C语言实验报告学生成绩管理系统Word文档下载推荐.docx
《C语言实验报告学生成绩管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C语言实验报告学生成绩管理系统Word文档下载推荐.docx(23页珍藏版)》请在冰豆网上搜索。
2.数据修改:
数据修改的主要功能是为修改数据输入出现的错误,实现:
先指定该生的学号,找到该生,再输出该生当前的信息,用一个if语句对数据进行修改,再用一个循环语句对选修课信息进行修改。
3.数据插入:
数据插入的主要功能是在数据录入之后,为防止数据输入的遗漏,实现:
分为两个部分,第一个是插入第一个位置,第二是插入第一个位置之后,把当前的位置赋给后面的加以实现。
4.数据查询:
数据查询的主要功能是在数据输入之后进行分类再现,实现:
分为输出所有数据,按学号查询,按姓名查询,当输入的数据满足条件时即输出所要求的。
5.数据删除:
数据删除的主要功能是在数据录入、数据插入和数据修改完成之后对无用数据进行删除,实现:
输入学号,满足条件时即把后一个数值赋给前一个数值,达到删除的目的。
6.平均值计算:
平均值计算的主要功能是求平均值,再对其进行排序,实现:
用公式进行计算求平均值,之后便是排序问题,求最大值,然后依次输出各最大值,即实现了排序功能。
7.列出不及格学生清单:
这部分的主要功能是列出不及格学生清单,实现:
用一个判断语句,当分数小于60时,即输出相应的学生信息即可。
五、系统框图
六、系统流程图
七、界面设计
·
系统运行界面(部分)如下:
图1——主界面
图2——主菜单
图3——录入数据
图4——修改数据
图5——插入数据
图6——数据查询
图7——计算平均成绩
图8——不及格学生统计
八、程序代码
#include<
stdio.h>
windows.h>
string.h>
#include<
stdlib.h>
main()
{
inti,w=0,u/*被选中学生的下标*/,f/*科目数量*/;
into=0/*学生总数*/,p=0,g[50]/*每个学生的选修课程数量*/,a,x,b/*新增学生个数*/,xx/*当前学生班级*/;
charxm[50]/*当前学生姓名*/,h[10];
charoo/*判断是否继续*/,q;
floats[50]/*平均成绩*/,max,al[50];
longqq;
structstudent
{
inti;
/*班级*/
longj;
/*学号*/
charm[30];
/*姓名*/
charn[10];
/*性别*/
intx;
/*年龄*/
}c[50];
structscore
intq;
/*课程编号*/
charw[50];
/*课程名称*/
floate;
/*学分*/
floatr;
/*考试成绩*/
floatt;
/*平时成绩*/
doubley;
/*综合成绩*/
}z[50][10];
printf("
\n\n*******************************************************************************\n\n\n欢迎进入\n\n学生成绩管理系统\n\n\n设计者:
剽悍的小白兔090909XXXX\n\n指导教师:
TZ\n\nXX大学信息科学与工程学院电气09XX班\n\n\n2010年7月\n\n\n*******************************************************************************\nPressEntertoContinue"
);
getchar();
system("
CLS"
while
(1)
system("
\n\n*******************************************************************************\n系统主菜单\n\n1.录入数据\n\n2.修改数据\n\n3.插入数据\n\n4.数据查询\n\n5.删除数据\n\n6.平均成绩计算\n\n7.列出不及格学生清单\n\n8.退出系统\n\n"
请输入一个数字来选择目录:
\n\n"
scanf("
%d"
&
i);
if(i==1)/*1.录入数据*/
printf("
录入数据\n\n"
while
(1)
{
\n请输入要录入的学生个数:
\n"
scanf("
b);
if(b<
1)printf("
\n输入错误!
!
\n请输入要录入的学生个数\n"
elseif(b>
=1)
for(a=0;
a<
b;
a++)
{
printf("
\n请输入第%d个学生的基本信息:
\n\n班级学号姓名性别年龄\n"
a+1);
scanf("
%d%ld%s%s%d"
c[o+a].i,&
c[o+a].j,&
c[o+a].m,&
c[o+a].n,&
c[o+a].x);
\n请输入此学生选修课程数量:
f);
g[o+a]=f;
for(i=0;
i<
f;
i++)
{
printf("
\n请输入该学生第%d门选修课程信息:
\n\n课程编号课程名称学分考试成绩平时成绩\n"
i+1);
scanf("
%d%s%f%f%f"
z[o+a][i].q,&
z[o+a][i].w,&
z[o+a][i].e,&
z[o+a][i].r,&
z[o+a][i].t);
}
}
}
o=p+b;
p=b;
getchar();
\n是否继续输入y/n?
%s"
h);
if(strcmp(h,"
n"
)==0)break;
elseif(strcmp(h,"
y"
)==0)system("
}
elseif(i==2)/*2.修改数据*/
修改数据\n"
if(o==0)printf("
\n系统内没有学生信息"
else
while
(1)
{
printf("
\n请输入要修改数据的学生的学号:
scanf("
%ld"
qq);
w=0;
o;
if(qq==c[a].j)
该学生当前信息:
班级:
%d学号:
%ld姓名:
%s性别:
%s年龄:
%d\n"
c[a].i,c[a].j,c[a].m,c[a].n,c[a].x);
u=a;
w=w+1;
if(w==0){printf("
输入错误!
"
break;
}
\n请输入数字选择要修改的数据:
\n1.班级2.学号3.姓名4.性别5.年龄6.选修课程信息\n"
if(i!
=6)printf("
\n请输入修改后数据:
if(i==1)scanf("
c[u].i);
elseif(i==2)scanf("
c[u].j);
elseif(i==3)scanf("
c[u].m);
elseif(i==4)scanf("
c[u].n);
elseif(i==5)scanf("
c[u].x);
elseif(i==6)
\n该学生选修课当前信息:
g[u];
课程编号:
%d课程名称:
%s学分:
%3.1f考试成绩:
%3.1f平时成绩:
%3.1f\n"
z[u][i].q,z[u][i].w,z[u][i].e,z[u][i].r,z[u][i].t);
\n请输入要修改的数据的当前选修课程编号:
x);
if(x==z[u][i].q)
{
printf("
1.课程编号2.课程名称3.学分4.考试成绩5.平时成绩\n"
scanf("
xx);
if(xx==1)scanf("
z[u][i].q);
elseif(xx==2)scanf("
z[u][i].w);
elseif(xx==3)scanf("
%f"
z[u][i].e);
elseif(xx==4)scanf("
z[u][i].r);
elseif(xx==5)scanf("
z[u][i].t);
elseprintf("
w=w+1;
}
if(w==0)printf("
}
else{printf("
\n\n是否继续修改此学生信息y/n?
if(strcmp(h,"
elseif(strcmp(h,"
}
\n\n是否继续下一学生信息y/n?
elseif(i==3)/*3.插入数据*/
插入数据"
\n是否要将信息插入到第一个位置y/n?
)==0)
\n请输入要插入位置前一个学生的学号:
\n请输入要添加的学生信息:
\n班级学号姓名性别年龄\n"
for(u=o;
u>
a;
u--)
c[u+1]=c[u];
for(i=0;
z[u+1][i]=z[u][i];
g[u+1]=g[u];
c[a+1].i,&
c[a+1].j,&
c[a+1].m,&
c[a+1].n,&
c[a+1].x);
o=o+1;
是否添加该学生的选修课程信息y/n?
if(strcmp(h,"
g[a+1]=f;
\n请分别输入该学生选修课程信息:
{
scanf("
z[a+1][i].q,&
z[a+1][i].w,&
z[a+1][i].e,&
z[a+1][i].r,&
z[a+1][i].t);
}
for(u=o;
=0;
c[u+1]=c[u];
z[u+1][i]=z[u][i];
g[u+1]=g[u];
c[0].i,&
c[0].j,&
c[0].m,&
c[0].n,&
c[0].x);
o=o+1;
g[0]=f;
z[0][i].q,&
z[0][i].w,&
z[0][i].e,&
z[0][i].r,&
z[0][i].t);
\n\n是否继续插入下一学生信息y/n?
elseif(i==4)/*4.数据查询*/
数据查询\n"
for(a=0;
for(i=0;
g[a];
z[a][i].y=z[a][i].r*0.7+z[a][i].t*0.3;
\n\n*******************************************************************************\n\n数据查询\n\n\n1.显示全部数据\n\n2.按学号查询\n\n3.按姓名查询\n\n4.返回主菜单"
\n\n请输入一个数字来选择目录:
p);
if(p==1)
%3.1f综合成绩:
z[a][i].q,z[a][i].w,z[a][i].e,z[a][i].r,z[a][i].t,z[a][i].y);
elseif(p==2)
请输入要查询学生的学号:
for(i=0;
w=w+1;
if(w==0)printf("
此学号不存在!
elseif(p==3)
请输入要查询学生的姓名:
xm);
if(strcmp(xm,c[a].m)==0)
{
%3.1f综合成绩%3.1f\n"
此姓名不存在!
elseif(p==4)
break;
elseprintf("
\n\n是否返回数据查询界面y/n?
elseif(i==5)/*5.删除数据*/
删除数据"
\n请输入要删除的学生的学号:
if(qq==c[a].j)
for(i=a;
c[i]=c[i+1];
for(u=0;
u<
g[i];
u++)
z[i][u]=z[i+1][u];
g[i]=g[i+1];
\n已删除\n\n"
o=o-1;
if(w==0)printf("
\n该学生不存在!
\n\n是否继续删除学生数据y/n?
elseif(i==6)/*6.平均成绩计算*/
平均成绩计算"
\n按平均成绩从高到低的次序输出学生信息:
al[a]=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实验 报告 学生 成绩管理系统
![提示](https://static.bdocx.com/images/bang_tan.gif)