C语言程序设计作业样板
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C语言程序设计》作业(1)软件功能说明
1.学生查询功能:为了方便学生查找成绩等信息,将所有信息按照需要进行分类。
这样学生能很方便的找到自己所需要的信息。
2.管理员查询功能:管理员可以通过条件选择查询所有信息,并进行排序。
3.添加功能:管理员可以通过填写表格的形式输入学生成绩等相关信息。
4.修改功能:管理员可以对数据库中的信息进行修改。
系统能通过管理员给出的条件查找出所要修改的信息,对修改后的信息进行保存,并自动查找是否是重复信息。
5.删除功能:管理员可以对数据进行删除操作。
系统能够通过管理员给出的条件查找出要删除的信息,并提示是否确定删除,如果确定删除,则把数据库中相关信息删除。
6.汇总功能:管理员可以通过此功能对信息进行汇总。
7.统计功能:管理员可以通过此功能对信息进行统计。
(2)软件结构图和流程图
(3)测试数据截图并对图加以说
《一》输入学生信息(学号,姓名,各科的成绩)
《二》编译成功进入主菜单:
《三》选择1对学生的成绩求总分,平均分:
《四》选择2对学生信息排序
《五》选择3输入要查找的学生的姓名(这里找的是zj)
《六》选择4求各科成绩的最高分和最低分的学生的信息:
(4)软件代码
#include "stdio.h"
#include "stdio.h"
#define m 5
void search(); /*声明按姓名查找学生的信息*/
void ave(); /*声明turn out average*/
void paixu(); /* 声明score pai mingci*/
void maxandmin(); /*声明maxandmin score student's number,name and every course score*/
struct student /*声明define a struct*/
{
int num; /*student’s number */
char name[10];
int math,english,chinese; /*three course score*/
int no; /* student mingci*/
float sum;
float ave;
}stu[m];
main()
{
int i;
int q=0,p;
for(i=0;i<m;i++)
{
printf("num:");
scanf("%d",&stu[i].num);
printf("name:");
scanf("%s",stu[i].name);
printf("input score:");
scanf("%d,%d,%d",&stu[i].math,&stu[i].chinese,&stu[i].english);
printf("\n");
}
system("cls");
while(q==0)
{
printf("\n");
printf("1 find average score\n");
printf("2 find sum score paiming\n");
printf("3 find student name output about student message\n");
printf("4 find the max score and min score student's message\n");
printf("other number exit!\n");
printf("\n");
printf("please input number:\n");
scanf("%d",&p);
switch(p) /*用开关语句SWITCH进行选择*/
{
case 1:ave(stu); break; /*选择1,求平均分*/
case 2:paixu(stu); break; /*选择2,求总分按降序排列*/
case 3:search(stu,m); break; /*选择3,求按姓名查找学生的信息*/ case 4: maxandmin(stu,m); break; /*选择4,求各科的最高分和最
defult :q=1;exit(0);
}
}
getch();
}
void ave(struct student stu[]) /*求学生的平均分*/
{
int i;
printf("1 find aveage score:\n");
printf("num\tname\tsum\tave\n");
for(i=0;i<m;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); }
}
void paixu(struct student stu[]) /*sum score line*/
{
int i,j,a; float t; char b[10];
printf("2 find sum score paiming\n");
for(i=0;i<m;i++)
stu[i].no=i+1; /*gei mingci fu chuzhi*/
for(i=0;i<m-1;i++)
for(j=i+1;j<m;j++)
if(stu[i].sum<stu[j].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<m;j++)
{ printf("%3d\t%s\t",stu[j].num,stu[j].name);
printf("%.0f",stu[j].sum);
printf("\t%d\n",stu[j].no);
}
}
void search(struct student stu[]) /*search student's name*/
{
int i;
char n[10];
printf("3 find student name output about student message\n");
printf("input name:\n");
scanf("%s",n);
for(i=0;i<m;i++) /*use “for circulation” search student’s name*/
if(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; /*分别输出要查找的学生的学号,姓名,总分,平均分,和各科的成绩*/ }
}
Void maxandmin(struct student stu[])
/*输出各科学生的最高分和最低分*/
{
int i,a=0,b=0,c=0,d=0,e=0,f=0;
int maxm,maxc,maxe,minm,minc,mine;
printf("4 find the max score and min score student's message\n"); for(i=0;i<m;i++)
{
if(stu[a].math<stu[I ].math) a=i;maxm=stu[a].math;
if(stu[b].math>stu[i].math) b=i;minm=stu[b].math;
if(stu[c].chinese<stu[i].chinese)c=i;maxc=stu[c].chinese;
if(stu[d].chinese>stu[i].chinese)d=i;minc=stu[d].chinese;
if(stu[e].english<stu[i].english)e=i;maxe=stu[e].english;
if(stu[f].english>stu[i].english)f=i;mine=stu[f].english;
}
printf("the max score\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("the min score \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);
}。