课程设计报告.docx
《课程设计报告.docx》由会员分享,可在线阅读,更多相关《课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。
![课程设计报告.docx](https://file1.bdocx.com/fileroot1/2022-12/31/02cca018-447c-4c75-b0e2-7f3eb430a111/02cca018-447c-4c75-b0e2-7f3eb430a1111.gif)
课程设计报告
数据结构课程设计报告
姓名:
学号:
班级:
成绩:
教师:
2012年8月21日
报告
题目:
学生信息管理系统
实现功能:
程序运行时显示一个简单的菜单。
建立一个包含10名学生的信息登记表,每个学生的信息包括:
学号,姓名,性别、年龄和3门课的成绩(mathe,English,programdesign)。
(1)信息输入、删除、排序:
初始状态已包含5名学生信息,在此基础上可对学生信息进行输入、删除、按学号排序等操作。
(2)成绩统计:
能对学生的成绩进行统计,计算出总分和平均分,并按总分降序排列显示出来。
当输入科目名称时能统计出该科的平均分,能显示出最高分和最低分。
(3)查询:
要求输入一个学生的学号后可显示出该学生的相关信息。
功能图表:
否
设计程序:
#include
#include
#include
#include
#defineN10
intmax(inta,intb)
{
return(a>b?
a:
b);
}
intmin(inta,intb)
{
return(a
a:
b);
}
structstudent
{
longnum;
charname[20];
charsex;
intage;
intmath;
intEnglish;
intprogramdesign;
floataver;
floatsum;
};
structstudentstu[N]=
{
{11,"qq",'g',20,90,90,90,90,270},
{12,"pp",'b',20,80,80,80,80,240},
{13,"mm",'g',21,90,82,71,81,243},
{14,"xx",'b',19,70,70,70,70,210},
{15,"yy",'g',19,60,60,60,60,180},
};
intn;
intchoose;
voidfun1();
voidfun2();
voidfun3();
voidfun4();
voidfun5();
voidfun6();
voidfun1()
{
system("CLS");
inti;
for(i=5;i{
printf("\n请输入***********************学号:
");
scanf("%ld",&stu[i].num);
printf("请输入~~~~~~~~~~~~~~~~~~~~~~~姓名:
");
scanf("%s",&stu[i].name);
getchar();
printf("请输入***********************性别:
");
scanf("%c",&stu[i].sex);
printf("请输入~~~~~~~~~~~~~~~~~~~~~~~年龄:
");
scanf("%d",&stu[i].age);
printf("请输入***********************数学成绩:
");
scanf("%d",&stu[i].math);
printf("请输入~~~~~~~~~~~~~~~~~~~~~~~英语成绩:
");
scanf("%d",&stu[i].English);
printf("请输入*******************课程设计成绩:
");
scanf("%d",&stu[i].programdesign);
stu[i].aver=((float)stu[i].math+(float)stu[i].English+(float)stu[i].programdesign)/3;
stu[i].sum=stu[i].math+stu[i].English+stu[i].programdesign;
printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~平均分:
%6.2f\n",stu[i].aver);
printf("***********************************总分:
%6.2f\n",stu[i].sum);
}
printf("\n\n\t\t\t按任意键返回主菜单!
!
!
");
getch();
}
voidfun2()
{
system("CLS");
inti;
printf("\n*******************************************************************************");
printf("\n学号\t姓名\t性别\t年龄\t数学\t英语\t课程设计\t平均分\t总分\n");
for(i=0;i{
printf("%ld\t%s\t%c\t%d\t%d\t%d\t%d\t%13.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].math,stu[i].English,stu[i].programdesign,stu[i].aver,stu[i].sum);
}
printf("\n*******************************************************************************");
printf("\n\n\t\t\t按任意键返回主菜单!
!
!
");
getch();
}
voidfun3()
{
system("CLS");
longnum;
inti,f=0;
printf("\n请输入您想查找学生的学号:
");
scanf("%d",&num);
for(i=0;iif(stu[i].num==num)
{
printf("\n*******************************************************************************");
printf("\n学号\t姓名\t性别\t年龄\t数学\t英语\t课程设计\t平均分\t总分\n");
printf("%ld\t%s\t%c\t%d\t%d\t%d\t%d\t%13.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].math,stu[i].English,stu[i].programdesign,stu[i].aver,stu[i].sum);
f=1;
}
if(f=0)
{
printf("\t\t\t未找到所要查找学生!
!
!
\n");
}
printf("\n*******************************************************************************");
printf("\n\n\t\t\t按任意键返回主菜单!
!
!
");
getch();
}
voidfun4()
{
system("CLS");
intk,f=0;
longnum;
printf("\n请输入您想删除学生的学号:
");
scanf("%d",&num);
for(k=0;kif(stu[k].num==num)
{
{
printf("\n*******************************************************************************");
printf("\n学号\t姓名\t性别\t年龄\t数学\t英语\t课程设计\t平均分\t总分\n");
printf("%ld\t%s\t%c\t%d\t%d\t%d\t%d\t%13.2f\t%.2f\n",stu[k].num,stu[k].name,stu[k].sex,stu[k].age,stu[k].math,stu[k].English,stu[k].programdesign,stu[k].aver,stu[k].sum);
printf("\n*******************************************************************************");
stu[k].num=stu[k+1].num;
strcpy(stu[k].name,stu[k+1].name);
stu[k].sex=stu[k+1].sex;
stu[k].age=stu[k+1].age;
stu[k].math=stu[k+1].math;
stu[k].English=stu[k+1].English;
stu[k].programdesign=stu[k+1].programdesign;
stu[k].aver=stu[k+1].aver;
stu[k].sum=stu[k+1].sum;
}
printf("\n已经删除该学生信息!
!
!
\n");
f=1;
}
if(f=0)
{
printf("\t\t\t未找到该学生!
!
!
");
}
printf("\n\n\t\t\t按任意键返回主菜单!
!
!
");
getch();
}
voidfun5()
{
system("CLS");
inti;
structstudenttemp;
for(i=0;iif(stu[i].sum{
temp=stu[i+1];
stu[i+1]=stu[i];
stu[i]=temp;
}
printf("\n*******************************************************************************");
printf("\n学号\t姓名\t性别\t年龄\t数学\t英语\t课程设计\t平均分\t总分\n");
for(i=0;i{
printf("%ld\t%s\t%c\t%d\t%d\t%d\t%d\t%13.2f\t%.2f\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].math,stu[i].English,stu[i].programdesign,stu[i].aver,stu[i].sum);
}
printf("\n*******************************************************************************");
printf("\n\n\t\t\t按任意键返回主菜单!
!
!
");
getch();
}
voidfun6()
{
system("CLS");
inti,m=0,e=0,p=0,high,low;
floataver;
structstudenttemp;
printf("\n请选择您想查询的科目:
1(数学);2(英语);3(课程设计):
");
scanf("%d",&choose);
printf("\n*******************************************************************************");
{
for(i=0;i{
m=m+stu[i].math;
e=e+stu[i].English;
p=p+stu[i].programdesign;
}
if(choose==1)
{
{
high=stu[0].math;
for(i=0;i{
high=max(stu[i].math,high);
}
}
{
low=stu[0].math;
for(i=0;i{
low=min(stu[i].math,low);
}
}
aver=(float)m/N;
printf("\t数学平均分:
%.2f\t数学最高分:
%d\t数学最低分:
%d",aver,high,low);
}
if(choose==2)
{
{
high=stu[0].English;
for(i=0;i{
high=max(stu[i].English,high);
}
}
{
low=stu[0].English;
for(i=0;i{
low=min(stu[i].English,low);
}
}
aver=(float)e/N;
printf("\t英语平均分:
%.2f\t英语最高分:
%d\t英语最低分:
%d",aver,high,low);
}
if(choose==3)
{
{
high=stu[0].programdesign;
for(i=0;i{
high=max(stu[i].programdesign,high);
}
}
{
low=stu[0].programdesign;
for(i=0;i{
low=min(stu[i].programdesign,low);
}
}
aver=(float)p/N;
printf("\t课程设计平均分:
%.2f\t课程设计最高分:
%d\t课程设计最低分:
%d",aver,high,low);
}
}
printf("\n*******************************************************************************");
printf("\n\n\t\t\t按任意键返回主菜单!
!
!
");
getch();
}
intmain()
{
system("color1E");
while
(1)
{
system("CLS");
intchoose,flag=0;
printf("\t\t\t\t\t\n");
printf("***************************学生成绩管理系统*********************************\n");
printf("\n");
printf("*************************^_^*欢迎使用*^_^*******************************\n");
printf("\n\t\t\t1*******************:
增添\n");
printf("\n\t\t\t2*******************:
显示\n");
printf("\n\t\t\t3*******************:
查找\n");
printf("\n\t\t\t4*******************:
删除\n");
printf("\n\t\t\t5*************:
按总分排序\n");
printf("\n\t\t\t6*************:
按科目查看\n");
printf("\n\t\t\t请输入您选择的操作:
");
scanf("%d",&choose);
while(choose!
=1&&choose!
=2&&choose!
=3&&choose!
=4&&choose!
=5&&choose!
=6)
{
printf("\t\t\t^_^输入错误,请重新输入!
!
!
^_^\n");
scanf("%d",&choose);
}
switch(choose)
{
case1:
fun1();break;
case2:
fun2();break;
case3:
fun3();break;
case4:
fun4();break;
case5:
fun5();break;
case6:
fun6();break;
}
if(flag)break;
}
}
运行结果: