C语言综合实验设计报告.docx
《C语言综合实验设计报告.docx》由会员分享,可在线阅读,更多相关《C语言综合实验设计报告.docx(13页珍藏版)》请在冰豆网上搜索。
C语言综合实验设计报告
C语言综合实验设计报告(黑体二号)
(以下黑体小二)
题目:
考试成绩综合管理系统
学院:
专业
班级
姓名:
设计日期:
2012年6月21日
总分:
样例:
一、设计题目:
(宋体五号加黑)
考试成绩综合管理系统(宋体五号)
二、题目阐述及设计思路:
本程序由主函数组成,本程序定义了三个结构体类型,在主函数中调用其各个成员项进行赋值及输出。
首先,进行学生个人信息及成绩的登记。
其次输入今天的年、月、日,再通过与刚刚输入学生的出生日期的年份比较从而计算出年龄,再通过月份和日期的比较,判断该学生是否达到周岁,决定年龄是否减一。
再次,通过对学生各门科目成绩的逻辑运算(即各门科目成绩均达到及格含及格,才可通过考试),从而判断是否可以通过考试。
然后,通过switch语句进行科目选择,用冒泡法对单科进行选择排序,并再次通过switch语句进行单人选择,输出其个人信息及各科成绩。
最后,对程序继续运行或终止进行逻辑判断,当输入“1”时,重新返回switch开关进行查询,当输入“0”时,结束本程序。
三、主要知识点:
使用文件包含、C语言宏定义、图形界面的使用、系统函数调用函数。
四、程序清单:
#defineNAMESIZE20
#defineADDRSIZE100
#defineN8
structsubject
{
floatYY;
floatSX;
floatHX;
floatZZ;
charpass;
};
structbirthday
{
intyear;
intmonth;
intday;
};
structstudent
{
intage;
charname[NAMESIZE];
charsex[2];
charaddress[ADDRSIZE];
structbirthdayDATE;
structsubjects;
};
structstudentstd[8];
main()
{
inti;
intj;
inta;
intb;
intd;
intc;
intl;
intnum;
structstudentchange;
intk;
intu,v,w,x;
intletter;
for(i=0;i{
printf("%d\n",i+1);
printf("name:
sex:
address:
\n");
scanf("%s%s%s",std[i].name,std[i].sex,std[i].address);
printf("year--month--day\n");
scanf("%d%d%d",&std[i].DATE.year,&std[i].DATE.month,&std[i].DATE.day);
printf("YY:
SX:
HX:
ZZ:
\n");
scanf("%f%f%f%f",&std[i].s.YY,&std[i].s.SX,&std[i].s.HX,&std[i].s.ZZ);
};
printf("Today:
year--month--day\n");
scanf("%d%d%d",&a,&b,&c);
for(l=0;l{std[l].age=a-std[l].DATE.year;
if(std[l].DATE.month>b)
std[l].age--;
if((std[l].DATE.month==b)&&(std[l].DATE.day>c))
std[l].age--;
printf("name:
%s\tage:
%d\n",std[l].name,std[l].age);}
for(k=0;k<8;k++)
{if(std[k].s.YY>=60)u=1;
if(std[k].s.SX>=60)v=1;
if(std[k].s.HX>=60)w=1;
if(std[k].s.ZZ>=60)x=1;
if(u&&v&&w&&x==1)std[k].s.pass='Y';
elsestd[k].s.pass='N';
printf("NAME:
%s\tPASS:
%c\n",std[k].name,std[k].s.pass);
}
loop:
printf("Pleaseinputfirstletter.(Y=1,S=2,H=3,Z=4)\n");
scanf("%d",&letter);
switch(letter)
{
case1:
{
for(i=0;ifor(j=i+1;jif(std[i].s.YY{
change=std[i];
std[i]=std[j];
std[j]=change;
};
printf("Theresultaftersorting(YY)\n");
for(i=0;iprintf("NAME:
%s\tAGE:
%d\tSEX:
%s\tYY:
%f\n",std[i].name,std[i].age,std[i].sex,std[i].s.YY);
printf("Pleaseinput1to8\n");
scanf("%d",&num);
switch(num)
{
case1:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[0].name,std[0].age,std[0].sex,std[0].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[0].s.YY,&std[0].s.SX,std[0].s.HX,std[0].s.ZZ);break;
case2:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[1].name,std[1].age,std[1].sex,std[1].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[1].s.YY,std[1].s.SX,std[1].s.HX,std[1].s.ZZ);break;
case3:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[2].name,std[2].age,std[2].sex,std[2].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[2].s.YY,std[2].s.SX,std[2].s.HX,std[2].s.ZZ);break;
case4:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[3].name,std[3].age,std[3].sex,std[3].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[3].s.YY,std[3].s.SX,std[3].s.HX,std[3].s.ZZ);break;
case5:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[4].name,std[4].age,std[4].sex,std[4].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[4].s.YY,std[4].s.SX,std[4].s.HX,std[4].s.ZZ);break;
case6:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[5].name,std[5].age,std[5].sex,std[5].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[5].s.YY,std[5].s.SX,std[5].s.HX,std[5].s.ZZ);break;case7:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[6].name,std[6].age,std[6].sex,std[6].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[6].s.YY,std[6].s.SX,std[6].s.HX,std[6].s.ZZ);break;
case8:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[7].name,std[7].age,std[7].sex,std[7].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[7].s.YY,std[7].s.SX,std[7].s.HX,std[7].s.ZZ);break;
default:
break;
}break;}
case2:
{for(i=0;ifor(j=i+1;jif(std[i].s.SX{
change=std[i];
std[i]=std[j];
std[j]=change;
};
printf("Theresultaftersorting(SX)\n");
for(i=0;iprintf("NAME:
%s\tAGE:
%d\tSEX:
%s\tSX:
%f\n",std[i].name,std[i].age,std[i].sex,std[i].s.SX);
printf("Pleaseinput1to8\n");
scanf("%d",&num);
switch(num)
{
case1:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[0].name,std[0].age,std[0].sex,std[0].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[0].s.YY,std[0].s.SX,std[0].s.HX,std[0].s.ZZ);break;
case2:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[1].name,std[1].age,std[1].sex,std[1].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[1].s.YY,std[1].s.SX,std[1].s.HX,std[1].s.ZZ);break;
case3:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[2].name,std[2].age,std[2].sex,std[2].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[2].s.YY,std[2].s.SX,std[2].s.HX,std[2].s.ZZ);break;
case4:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[3].name,std[3].age,std[3].sex,std[3].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[3].s.YY,std[3].s.SX,std[3].s.HX,std[3].s.ZZ);break;
case5:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[4].name,std[4].age,std[4].sex,std[4].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[4].s.YY,std[4].s.SX,std[4].s.HX,std[4].s.ZZ);break;
case6:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[5].name,std[5].age,std[5].sex,std[5].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[5].s.YY,std[5].s.SX,std[5].s.HX,std[5].s.ZZ);break;case7:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[6].name,std[6].age,std[6].sex,std[6].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[6].s.YY,std[6].s.SX,std[6].s.HX,std[6].s.ZZ);break;
case8:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[7].name,std[7].age,std[7].sex,std[7].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[7].s.YY,std[7].s.SX,std[7].s.HX,std[7].s.ZZ);break;
default:
break;
}break;}
case3:
{for(i=0;ifor(j=i+1;jif(std[i].s.HX{
change=std[i];
std[i]=std[j];
std[j]=change;
};
printf("Theresultaftersorting(HX)\n");
for(i=0;iprintf("NAME:
%s\tAGE:
%d\tSEX:
%s\tHX:
%f\n",std[i].name,std[i].age,std[i].sex,std[i].s.HX);
printf("Pleaseinput1to8\n");
scanf("%d",&num);
switch(num)
{
case1:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[0].name,std[0].age,std[0].sex,std[0].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[0].s.YY,std[0].s.SX,std[0].s.HX,std[0].s.ZZ);break;
case2:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[1].name,std[1].age,std[1].sex,std[1].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[1].s.YY,std[1].s.SX,std[1].s.HX,std[1].s.ZZ);break;
case3:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[2].name,std[2].age,std[2].sex,std[2].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[2].s.YY,std[2].s.SX,std[2].s.HX,std[2].s.ZZ);break;
case4:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[3].name,std[3].age,std[3].sex,std[3].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[3].s.YY,std[3].s.SX,std[3].s.HX,std[3].s.ZZ);break;
case5:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[4].name,std[4].age,std[4].sex,std[4].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[4].s.YY,std[4].s.SX,std[4].s.HX,std[4].s.ZZ);break;
case6:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[5].name,std[5].age,std[5].sex,std[5].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[5].s.YY,std[5].s.SX,std[5].s.HX,std[5].s.ZZ);break;case7:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[6].name,std[6].age,std[6].sex,std[6].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[6].s.YY,std[6].s.SX,std[6].s.HX,std[6].s.ZZ);break;
case8:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[7].name,std[7].age,std[7].sex,std[7].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[7].s.YY,std[7].s.SX,std[7].s.HX,std[7].s.ZZ);break;
default:
break;
}break;}
case4:
{for(i=0;ifor(j=i+1;jif(std[i].s.ZZ{
change=std[i];
std[i]=std[j];
std[j]=change;
};
printf("Theresultaftersorting(ZZ)\n");
for(i=0;iprintf("NAME:
%s\tAGE:
%d\tSEX:
%s\tZZ:
%f\n",std[i].name,std[i].age,std[i].sex,std[i].s.ZZ);
printf("Pleaseinput1to8\n");
scanf("%d",&num);
switch(num)
{
case1:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[0].name,std[0].age,std[0].sex,std[0].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[0].s.YY,std[0].s.SX,std[0].s.HX,std[0].s.ZZ);break;
case2:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[1].name,std[1].age,std[1].sex,std[1].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[1].s.YY,std[1].s.SX,std[1].s.HX,std[1].s.ZZ);break;
case3:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[2].name,std[2].age,std[2].sex,std[2].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[2].s.YY,std[2].s.SX,std[2].s.HX,std[2].s.ZZ);break;
case4:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[3].name,std[3].age,std[3].sex,std[3].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[3].s.YY,std[3].s.SX,std[3].s.HX,std[3].s.ZZ);break;
case5:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[4].name,std[4].age,std[4].sex,std[4].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[4].s.YY,std[4].s.SX,std[4].s.HX,std[4].s.ZZ);break;
case6:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[5].name,std[5].age,std[5].sex,std[5].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[5].s.YY,std[5].s.SX,std[5].s.HX,std[5].s.ZZ);break;case7:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[6].name,std[6].age,std[6].sex,std[6].address);
printf("YY=%f\tSX=%f\tHX=%f\tZZ=%f\n",std[6].s.YY,std[6].s.SX,std[6].s.HX,std[6].s.ZZ);break;
case8:
printf("NAME:
%s\tAGE:
%d\tSEX:
%s\nADDRESS:
%s\n",std[7].name,std[7].age,std[7].sex,std[7].address);
printf("YY