C语言程序设计作业样板.docx
《C语言程序设计作业样板.docx》由会员分享,可在线阅读,更多相关《C语言程序设计作业样板.docx(10页珍藏版)》请在冰豆网上搜索。
C语言程序设计作业样板
《C语言程序设计》作业
(1)软件功能说明
1.学生查询功能:
为了方便学生查找成绩等信息,将所有信息按照需要进行分类。
这样学生能很方便的找到自己所需要的信息。
2.管理员查询功能:
管理员可以通过条件选择查询所有信息,并进行排序。
3.添加功能:
管理员可以通过填写表格的形式输入学生成绩等相关信息。
4.修改功能:
管理员可以对数据库中的信息进行修改。
系统能通过管理员给出的条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复信息。
5.删除功能:
管理员可以对数据进行删除操作。
系统能够通过管理员给出的条件查找出要删除的信息,并提示是否确定删除,如果确定删除,则把数据库中相关信息删除。
6.汇总功能:
管理员可以通过此功能对信息进行汇总。
7.统计功能:
管理员可以通过此功能对信息进行统计。
(2)软件结构图和流程图
(3)测试数据截图并对图加以说
《一》输入学生信息(学号,姓名,各科的成绩)
《二》编译成功进入主菜单:
《三》选择1对学生的成绩求总分,平均分:
《四》选择2对学生信息排序
《五》选择3输入要查找的学生的姓名(这里找的是zj)
《六》选择4求各科成绩的最高分和最低分的学生的信息:
(4)软件代码
#include"stdio.h"
#include"stdio.h"
#definem5
voidsearch();/*声明按姓名查找学生的信息*/
voidave();/*声明turnoutaverage*/
voidpaixu();/*声明scorepaimingci*/
voidmaxandmin();/*声明maxandminscorestudent'snumber,nameandeverycoursescore*/
structstudent/*声明defineastruct*/
{
intnum;/*student’snumber*/
charname[10];
intmath,english,chinese;/*threecoursescore*/
intno;/*studentmingci*/
floatsum;
floatave;
}stu[m];
main()
{
inti;
intq=0,p;
for(i=0;i{
printf("num:
");
scanf("%d",&stu[i].num);
printf("name:
");
scanf("%s",stu[i].name);
printf("inputscore:
");
scanf("%d,%d,%d",&stu[i].math,&stu[i].chinese,&stu[i].english);
printf("\n");
}
system("cls");
while(q==0)
{
printf("\n");
printf("1findaveragescore\n");
printf("2findsumscorepaiming\n");
printf("3findstudentnameoutputaboutstudentmessage\n");
printf("4findthemaxscoreandminscorestudent'smessage\n");
printf("othernumberexit!
\n");
printf("\n");
printf("pleaseinputnumber:
\n");
scanf("%d",&p);
switch(p)/*用开关语句SWITCH进行选择*/
{
case1:
ave(stu);break;/*选择1,求平均分*/
case2:
paixu(stu);break;/*选择2,求总分按降序排列*/
case3:
search(stu,m);break;/*选择3,求按姓名查找学生的信息*/
case4:
maxandmin(stu,m);break;/*选择4,求各科的最高分和最
defult:
q=1;exit(0);
}
}
getch();
}
voidave(structstudentstu[])/*求学生的平均分*/
{
inti;
printf("1findaveagescore:
\n");
printf("num\tname\tsum\tave\n");
for(i=0;i{stu[i].sum=0;
stu[i].sum+=stu[i].math;
stu[i].sum+=stu[i].chinese;
stu[i].sum+=stu[i].english;
stu[i].ave=stu[i].sum/3;printf("%d\t%s\t%.0f\t%.1f\n",stu[i].num,stu[i].name,stu[i].sum,stu[i].ave);
}
}
voidpaixu(structstudentstu[])/*sumscoreline*/
{
inti,j,a;floatt;charb[10];
printf("2findsumscorepaiming\n");
for(i=0;istu[i].no=i+1;/*geimingcifuchuzhi*/
for(i=0;ifor(j=i+1;jif(stu[i].sum{
a=stu[i].num;stu[i].num=stu[j].num;stu[j].num=a;
t=stu[i].sum;stu[i].sum=stu[j].sum;stu[j].sum=t;
strcpy(b,stu[i].name);
strcpy(stu[i].name,stu[j].name);
strcpy(stu[j].name,b);/*运用字符串复制函数交换学生的姓名*/
}
printf("num\tname\tsum\tno\n");
for(j=0;j{printf("%3d\t%s\t",stu[j].num,stu[j].name);
printf("%.0f",stu[j].sum);
printf("\t%d\n",stu[j].no);
}
}
voidsearch(structstudentstu[])/*searchstudent'sname*/
{
inti;
charn[10];
printf("3findstudentnameoutputaboutstudentmessage\n");
printf("inputname:
\n");
scanf("%s",n);
for(i=0;iif(strcmp(n,stu[i].name)==0)/*用字符串比较函数进行比较*/
{
printf("num\tname\tsum\tave\tmath\tchinese\tenglish\n");
printf("%d\t%s\t%.0f\t%.1f",stu[i].num,stu[i].name,stu[i].sum,stu[i].ave);
printf("\t%d\t%d\t%d",stu[i].math,stu[i].chinese,stu[i].english);
break;/*分别输出要查找的学生的学号,姓名,总分,平均分,和各科的成绩*/
}
}
Voidmaxandmin(structstudentstu[])
/*输出各科学生的最高分和最低分*/
{
inti,a=0,b=0,c=0,d=0,e=0,f=0;
intmaxm,maxc,maxe,minm,minc,mine;
printf("4findthemaxscoreandminscorestudent'smessage\n");
for(i=0;i{
if(stu[a].mathif(stu[b].math>stu[i].math)b=i;minm=stu[b].math;
if(stu[c].chineseif(stu[d].chinese>stu[i].chinese)d=i;minc=stu[d].chinese;
if(stu[e].englishif(stu[f].english>stu[i].english)f=i;mine=stu[f].english;
}
printf("themaxscore\n\nnum\tname\tmath\tchinese\tenglish:
\n");
printf("%d\t%s\t%d\n",stu[a].num,stu[a].name,maxm);
printf("%d\t%s\t\t%d\n",stu[c].num,stu[c].name,maxc);
printf("%d\t%s\t\t\t%d",stu[e].num,stu[e].name,maxe);
printf("\n");
printf("theminscore\n\nnum\tname\tmath\tchinese\tenglish:
\n");
printf("%d\t%s\t%d\n",stu[b].num,stu[b].name,minm);
printf("%d\t%s\t\t%d\n",stu[d].num,stu[d].name,minc);
printf("%d\t%s\t\t\t%d",stu[f].num,stu[f].name,mine);
}