学生学籍信息管理系统设计Word格式.docx
- 文档编号:16073857
- 上传时间:2022-11-18
- 格式:DOCX
- 页数:18
- 大小:118.94KB
学生学籍信息管理系统设计Word格式.docx
《学生学籍信息管理系统设计Word格式.docx》由会员分享,可在线阅读,更多相关《学生学籍信息管理系统设计Word格式.docx(18页珍藏版)》请在冰豆网上搜索。
5、源程序5
学生学籍信息管理系统
1、需求分析:
删除功能要求实现删除操作;
2、系统模块图
3、实验模块:
输入模块、浏览模块、查找模块、排序模块、退出系统
4、用户使用说明
本程序是用来对学生的一些基本信息进行分析与储存的,在使用的时候,用户首先应该进入第一个模块来输入学生的基本信息,将所有的信息都输入完毕后即可对其进行分析,可以对其进行浏览、查找、排序等。
可根据信息对输入的学生进行成绩排序,只需输入所进行作用的对象即可。
当进行完所有的操作,可按0键退出系统。
5、测试结果
所谓程序调试是指对程序的查错与排错。
在编写完一个源程序之后,不要立即进行编译,而应对程序进行全面的人工检查一遍,检查无误后,可以开始进行程序调试。
由编译系统进行检查、发现错误,根据编译系统提示的错误类型和警告及出现的位置,我们可以定位到错误地点进行修改,然后再编译,如此反复进行,直至不再出现错误位置,最后才进行程序的连接于运行。
调试完以后,下一步就是对程序进行测试,运行程序,向程序中输入数据,根据输出结果是否正确(是否符合自己的想法)来判断程序是否正确,如果不正确或不符合自己的目的,就需要对程序进行修改。
然后再调试,再测试,直至结果无误或符合要求后,测试才算结束,此时,程序才算是满足题目要求的正确程序。
运行结果界面如下
设计小结:
通过完成这个综合的设计实例,从中我熟悉了VisualC++开发环境,熟练掌握了在VisualC++软件环境下编写和调试程序。
通过对程序的调试,我从学到了许多知识,根据编译时系统提供的错误提示,我能很快地找到错误并排除这些错误,是程序能正确运行。
通过这个环节的不断练习,我积累了丰富的经验,为以后编程和调试程序奠定了基础。
通过运行程序,对程序不断改动,仔细观察和分析所出现的情况,锻炼了我对立思考的能力,而且增强了我对C语言应用这门课程的兴趣。
参考文献
[1]谭浩强.C程序设计(第二版).北京:
清华大学出版社,1999
[2]秦友淑、曹化工。
C语言程序设计教程。
华中科技大学出版社。
[3]汪晓平。
C语言高级实例解析。
清华大学出版社。
源程序
#include<
stdio.h>
/*头文件*/
string.h>
stdlib.h>
#defineN100
#defineM3
typedefstructstudent/*定义学生结构体*/
{
charnum[11];
charname[20];
charsex[3];
intscore[M];
floatave;
intMax_course;
}STU;
STUstu[N],stu_Chinese[N],stu_Math[N],stu_English[N];
intMax[M];
floatave_Chinese;
floatave_Math;
floatave_English;
intn;
/*实际存储的学生个数*/
voidno_input(inti,intn)/*i表示第i个的学生信息,n表示比较到第n个学生*/
intj,k,w1;
do
{
w1=0;
printf("
NO.:
"
);
scanf("
%s"
&
stu[i].num);
for(j=0;
stu[i].num[j]!
='
\0'
;
j++)/*学号输入函数,作了严格规定*/
if(stu[i].num[j]<
'
0'
||stu[i].num[j]>
9'
)/*判断学号是否为数字*/
{
puts("
Inputerror!
Onlybemadeupof(0-9).Pleasereinput!
\n"
w1=1;
break;
}
if(w1!
=1)
for(k=0;
k<
n;
k++)/*比较到第n个学生*/
if(k!
=i&
&
strcmp(stu[k].num,stu[i].num)==0)
{
puts("
Thisrecordisexist.Pleasereinput!
w1=1;
break;
}
}while(w1==1);
}
voidinput(inti)/*输入一个记录函数*/
intj,sum;
no_input(i,i);
/*调用学号输入函数*/
printf("
name:
scanf("
stu[i].name);
sex:
stu[i].sex);
for(j=0;
j<
M;
j++)
score%d:
j+1);
%d"
stu[i].score[j]);
}
for(sum=0,j=0;
sum+=stu[i].score[j];
stu[i].ave=sum*1.0/M;
/*每一行的平均值,即每位同学的三门课总的平均分*/
voidmenu();
/*函数声明*/
voidenter()/*输入模块*/
inti,j,f;
system("
CLS"
/*清屏*/
Howmanystudents(0-%d)?
:
N);
/*要输入的记录个数*/
n);
\nEnterdatanow\n\n"
for(i=0;
i<
i++)
\nInput%dthstudentrecord.\n"
i+1);
input(i);
/*调用输入函数*/
i++)/*求每一行的最大值,即求每一位学生的三门课中的最高分*/
{
stu[i].Max_course=stu[i].score[0];
for(j=1;
{
if(stu[i].Max_course<
stu[i].score[j])
stu[i].Max_course=stu[i].score[j];
}
i++)/*把输入的信息分别复制到stu_Chinese[N],stu_Math[N],stu_English[N]中*/
stu_Chinese[i]=stu[i];
stu_Math[i]=stu[i];
stu_English[i]=stu[i];
返回主菜单请按数字0\n"
f);
if(f==0)
menu();
break;
}
elseprintf("
输入有误,请重新输入:
}while(f!
=0);
voidprintf_one(inti)/*显示一个记录函数*/
intj;
%3s:
%3s"
stu[i].num,stu[i].name);
%10d"
stu[i].score[j]);
%10.2f"
stu[i].ave);
%9d\n"
stu[i].Max_course);
voidbrowse()/*浏览模块*/
inti,j,f,k=0;
i++)/*求第一列的平均值,即求语文平均成绩*/
k=k+stu[i].score[0];
ave_Chinese=(k*1.0)/n;
k=0;
i++)/*求第二列的平均值,即求数学平均成绩*/
k=k+stu[i].score[1];
ave_Math=(k*1.0)/n;
i++)/*求第三列的平均值,即求英语平均成绩*/
k=k+stu[i].score[2];
ave_English=(k*1.0)/n;
Max[0]=stu[0].score[0];
/*第一列的最大值,即语文成绩最高分*/
for(i=1;
{
if(Max[0]<
stu[i].score[0])
Max[0]=stu[i].score[0];
Max[1]=stu[0].score[1];
/*第二列的最大值,即数学成绩最高分*/
if(Max[1]<
stu[i].score[1])
Max[1]=stu[i].score[1];
Max[2]=stu[0].score[2];
/*第三列的最大值,即英语成绩最高分*/
if(Max[2]<
stu[i].score[2])
Max[2]=stu[i].score[2];
puts("
\n--------------------------------------------------------------------"
\nNO:
nameChineseMathEnglishaverageMax_course\n"
if((i!
=0)&
(i%10==0))/*目的是分屏显示*/
printf("
\n\nPassanykeytocontinue..."
getchar();
puts("
\n\n"
printf_one(i);
/*调用显示一个记录函数*/
\n-------------------------------------------------------------------"
ave_Chineseave_Mathave_English\n"
%10.2f%10.2f%10.2f\n"
ave_Chinese,ave_Math,ave_English);
/*显示语文、数学、英语平均成绩*/
\n--
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 学籍 信息管理 系统 设计