中南大学c语言课程实践报告Word下载.docx
《中南大学c语言课程实践报告Word下载.docx》由会员分享,可在线阅读,更多相关《中南大学c语言课程实践报告Word下载.docx(15页珍藏版)》请在冰豆网上搜索。
及格学生列表
【7】学
生平均成绩
【8】学生课程信息查询
【0】退
出系统
++\n"
);
|学生信息管理系统欢迎您
设计者:
张眼\n"
指导老师:
刘伟荣\n"
printf("
重要提示:
为保证您的操作得到保存,请按正常顺序退出系统!
谢谢合作
do
{
printf("
\n\t\t\t+++++++++++++++++++++++++++++\n"
\t\t\t|**菜单**|\n"
\t\t\t+++++++++++++++++++++++++++++++++\n"
\t\t\t*
[1]----
-录入/插入学生信息
*\n"
)
[2]----
-浏览学生信息
*\n"
[3]----
-查询学生信息
[4]----
-删除学生信息
[5]----
-修改学生信息
[6]----
-不及格学生列表
[7]----
-成绩信息查询
[8]----
-平均成绩
[0]----
-退出系统
\t\t\t********************************\n"
)・
请输入您的选择:
"
seanf("
%d"
&
z);
switch(z)
case0:
tc();
break;
case1:
lr();
case2:
ll();
case3:
cx();
case4:
sc();
case5:
xg();
case6:
bj();
case7:
kc();
case8:
pj();
default:
\n无效选项!
}
while(z!
=0);
2输入模块:
输入部分包括学生的姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,可以通过函数voidlr()实现此功能。
voidlr()/*录入函数*/
inty;
if(n==0)
p=stu;
-\n”);
请输入学生的学号:
”);
scanf("
%ld"
&
p->
num);
请输入学生的姓名:
scanf("
%s"
p->
name);
请输入学生的年龄:
scanf("
age);
请输入学生的性别:
sex);
请输入学生的班级:
clas);
请输入大物考试成绩:
pt);
请输入大物平时成绩:
ps);
请输入英语考试成绩:
et);
请输入英语平时成绩:
es);
请输入微积分考试成绩:
ct);
请输入微积分平时成绩:
cs);
请输入信号考试成绩:
xt);
请输入信号平时成绩:
xe);
n++;
p++;
\n1.继续输入.\n0.输入完毕.\n"
请选择:
y);
while(y==1);
提示:
输入完毕你一共输入%d个\n"
n);
3查询模块:
该模块是通过输入的学生信息(学号或姓名)来查找学
生的所有信息并且显示在屏幕上。
通过函数voidcx()来实现。
voidcx()/*查询函数*/
intc;
intw,i,j=0;
charname[20];
if(n!
=0)
do{printf("
\n"
|按学号查询请按1|\n"
|按姓名查询请按2|\n"
|取消请按0|\n"
请输入选择:
scanf("
c);
switch(c)
case0:
case1:
请输入学生的学号;
);
w);
for(i=0;
i<
n;
i++)
if(stu[i].num==w)
\n学号\t姓名\t年龄\t性别\t班级\n”);
%ld\t%s\t%d\t%s\t%d\n"
stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].clas);
j=1;
if(j==0)
提示:
没有该学生记录,请核对!
”);
case2:
name);
if(strcmp(name,stu[i].name)==0)
stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].
printf(”提示:
\n提示:
无效选项!
}while(c!
}elseprintf("
无学生数据,请输入数据!
4删除模块:
该模块通过输入要删除的学生学号,通过学号查找并删
除记录。
如果没有学生信息输出提示:
通过函数voidsc()实现
voidsc()/*删除函数*/
longintnum;
inti,j,e;
学号\t姓名\t年龄\t性别\t班级\n"
\n"
stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].clas);
请输入您要删除的学生的学号:
num);
if(num==stu[i].num)
j=i;
if(j!
=(n-1))
for(e=j;
e<
(n-1);
e++)
stu[e].num=stu[e+1].num;
strcpy(stu[e].name,stu[e+1].name);
strcpy(stu[e].sex,stu[e+1].sex);
stu[e].age=stu[e+1].age;
stu[e].clas=stu[e+1].clas;
stu[e].pt=stu[e+1].pt;
stu[e].ps=stu[e+1].ps;
stu[e].et=stu[e+1].et;
stu[e].es=stu[e+1].es;
stu[e].ct=stu[e+1].ct;
stu[e].cs=stu[e+1].cs;
n--;
elsen--;
printf(”提示删除完毕!
5修改信息模块:
该模块通过输入要修改的学生学号查找学生信息,并显示用户修改的内容信息,供用户选择,根据选项进行修改。
通过函数voidxg()实现。
voidxg()/*修改函数*/
inti,j,c;
请输入您要修改的学生的学号:
"
if(stu[i].num==num)
do{
请选择您要修改的学生的信息内容:
|请按1|\n"
|年龄请按2|\n"
|性别请按3|\n"
|学号请按4|\n"
|班级请按5|\n"
|大物考试成绩请按6|\n"
|大物平时成绩请按7|\n"
|英语考试成绩请按8|\n"
|英语平时成绩请按9|\n"
|微积分考试成绩请按10|\n"
|微积分平时成绩请按11|\n"
|信号考试成绩请按12|\n"
|信号平时成绩请按13|\n"
请输入新姓名:
stu[j].name);
break;
请输入新年龄:
,&
stu[j].age);
case3:
请输入新性别:
stu[j].sex);
case4:
请输入新学号:
stu[j].num);
case5:
请输入新班级:
stu[j].clas);
case6:
stu[j].pt);
case7:
请输入大物平时成绩:
stu[j].ps);
case8:
stu[j].et);
case9:
请输入英语平时成绩:
stu[j].es);
case10:
printf(”请输入微积分考试成绩:
stu[j].ct);
case11:
printf(”请输入微积分平时成绩:
stu[j].cs);
case12:
stu[j].xt);
case13:
stu[j].xe);
6不及格学生计算模块:
该模块通过对已经输入的学生数据进行处
理,当四门功课中有一门成绩小于60,就输出此学生的信息及不及
格科目的成绩。
此功能通过函数voidbj()实现。
voidbj()/*不及格学生列表函数*/
inti,j;
chara[4][10]={"
大学物理"
"
大学英语"
微积分"
信号"
};
floatl[4];
{printf("
\n学号\t姓名\t课程\t\t成绩\n"
{l[0]=stu[i].pt*0.7+stu[i].ps*0.3;
l[1]=stu[i].et*0.7+stu[i].es*0.3;
l[2]=stu[i].ct*0.7+stu[i].cs*0.3;
l[3]=stu[i].xt*0.7+stu[i].xe*0.3;
for(j=0;
j<
4;
j++)
if(l[j]<
60.0)
{printf("
%ld\t%s\t%s\t%3.1f\n"
stu[i].num,stu[i].name,a[j],l[j]);
else
7平均成绩计算模块:
该模块通过对已经输入的的学生成绩进行处
理,计算出每位同学的平均成绩并以平均成绩为最终成绩进行从高到低的排名,排名通过选择法实现,该功能通过函数voidpj()实现。
idpj()/*平均成绩计算函数*/
structstudenttemp;
floatl[4],ave[100],m;
if(n>
1)
for(j=i+1;
j<
n;
{ave[i]=(stu[i].pt*0.7+stu[i].ps*0.3+stu[i].et*0.7+stu[i].es*0.3+stu[i].ct*0.7+stu[i].cs*0.3+stu[i].xt*0.7+stu[i].xe*0.3)/4;
ave[j]=(stu[j].pt*0.7+stu[j].ps*0.3+stu[j].et*0.7+stu[j].es*0.3+stu[j].ct*0.7+stu[j].cs*0.3+stu[i].xt*0.7+stu[i].xe*0.3)/4;
if(ave[i]<
ave[j])
m=ave[j];
temp=stu[j];
ave[j]=ave[i];
stu|]]=stu[i];
ave[i]=m;
stu[i]=temp;
}}
printf(”学号\t姓名\t年龄\t性别\t班级\t平均成绩\n"
printf(”
---\n"
%ld\t%s\t%d\t%s\t%d\t%3.1f\n"
stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].clas,ave[i]);
elseif(n=0)
{ave[0]=(stu[0].pt*0.7+stu[0].ps*0.3+stu[0].et*0.7+stu[0].es*0.3+stu[0].ct*0.7+stu[0].cs*0.3+stu[0].xt*0.7+stu[0].xe*0.3)/4;
stu[0].num,stu[0].name,stu[0].age,stu[0].sex,stu[0].clas,ave[0]);
8学生课程信息查询模块:
该模块通过用户输入的选项来查询该学生的各个科目的信息,信息包括课程名称,课程编号,学分,平时成绩,考试成绩,综合成绩,并最终以表格的形式输出。
该功能通过函数voidkc()来实现。
voidkc()/*课程查询函数*/
caseO:
\n课程名称\t课程编号\t学分\t平时成绩\t考试成绩\t综合成绩\n"
大学物
\t0001\t\t4.0\t%d\t\t%d\t\t%3.1f\n"
stu[i].ps,stu[i].pt,0.7*stu[i].pt+0.3*stu[i].ps);
printf(”大学英语\t0002\t\t4.0\t%d\t\t%d\t\t%3.1f\n"
stu[i].es,stu[i].et,0.7*stu[i].et+0.3*stu[i].es);
printf(”微积分\t\t0003\t\t3.0\t%d\t\t%d\t\t%3.1f\n"
stu[i].cs,stu[i].ct,0.7*stu[i].ct+0.3*stu[i].cs);
printf(”信号\t\t0004\t\t3.0\t%d\t\t%d\t\t%3.1f\n"
stu[i].xt,stu[i].xe,0.7*stu[i].xt+0.3*stu[i].xe);
大学物理\t0001\t4.0\t%d\t%d\t%3.1f\n"
printf(”大学英语\t0002\t4.0\t%d\t%d\t%3.1f\n"
printf(”微积分\t0003\t3.0\t%d\t%d\t%3.1f\n"
9退出系统模块:
当用户选择退出程序选项【0】时,执行函数voidtc()输出“谢谢登陆!
再见”而后退出运行。
4•设计总结
本学期我们的c语言课程实践课题一一学生信息管理系统是在老师的指导下,同学间相互的帮助下,设计出来的。
通过C语言的课程设计,我们对c语言中的重要的内容有了一个很好的认识与了解,同时
我们也对c语言的应用有了了解。
C语言的实质就是以一定的语法规范为准,通过对数据量的复杂结构运算,完成一定功能的程序,是一门计算机的基础语言,我们通过这两周的课程实践对其特点和算法有了跟好的了解。
通过这次课程设计,我懂得一个程序的设计就是一个实际问题的解决的过程,从解决问题的角度,我们可以这样来看:
首先了解这个问题的基本要求,即输入,输出,完成输入到输出的要求是什么,讲问题一一分开;
其次,我们要捋清思路,逐一解决问题,着重考虑如何从输入导出输出,在这个过程中,可以确定所需的变量,数据,函数,然后确定处理过程一一算法。
总的来说,这次实践让我受益匪浅,让我对c语言有了进一步的认识,c语言功能高,表达能力强,使用灵活方便,目标程序效率高,是我们日后工作的良好工具。