高级语言程序设计课程设计
题目:
专 业计算机与信息与科学系
班 级计算机1105班
学 生裴和平
学 号 3110307518
指导教师 鲍春波蒋建辉陈乐
起止时间 2012.2.13——2012.2.17
_2012__年 _02___月
题目1:写一个函数计算下列函数的值f(0),f(3),f(-3)。测试之
实现代码:
/*
*函数功能:计算下列函数的值f(0),f(3),f(-3)
*入口参数:定义域 X,值域y
*返回值:y
*/
#include<stdio.h>
int func(int x);
int main()
{
int x;
while(scanf("%d",&x)!=EOF)
{
printf("%d\n",func(x));
}
return 0;
}
int func(int x)
{
int y;
if(x > 0)
{
y=3*x*x-4;
}
else if(x == 0)
{
y=2;
}
else
{
y=0;
}
return y;
}
//本题的的目的是学会判断语句的使用,以及如何连续输入。
题目2:写一个函数可以打印下面的图案
*
***
*****
*******
*****
***
*
要求每个打印语句只打印一个*号 ,测试之
实现代码:
/*
*函数功能:打印菱形
*入口参数:行号i,列号j,k符号*
*返回值:无
*/
#include<stdio.h>
int upangle(int i,int j,int k);
int downangle(int i,int j,int k);
int main()
{
int i,j,k;
upangle(i,j,k);
downangle(i,j,k);
return 0;
}
int upangle(int i,int j,int k)
{
for(i=1;i<=5;i++)
{
for(j=5-i;j>=0;j--)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
}
int downangle(int i,int j,int k)
{
for(i=4;i>=1;i--)
{
for(j=0;j<=5-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
}
//本题的目的是学会for循环语句的使用
题目3:写一个函数void maxMinAver(int *data, int *max, int *min,float * ave,int size), 求一组数据的最大值、最小值和平均值,测试之。其中data指向给定数据的数组的指针,max、min、ave分别指向最大值、最小值和平均值,size是数组的大小。
要求第一个实参是数组,第2、3、4个实参都是对普通的简单变量的某种操作,最后一个实参是数组的大小。测试之
实现代码:
/*
*函数功能:求数据的最大,最小和平均值
*入口参数:数据data,数据大小size
*返回值:最大值max,最小值min,平均值ave
*/
#include<stdio.h>
#include<stdlib.h>
#define SIZE 2
void maxMinAver(int *data,int *max, int *min,float *ave,int size);
int main()
{
int min,max,i;
int size=SIZE;
float ave;
int data[SIZE];
for(i=0;i<size;i++)
{
scanf("%d",&data[i]);
}
maxMinAver(data,&max,&min,&ave,size);
printf("%d %d %f\n",max,min,ave);
return 0;
}
void maxMinAver(int *data, int *max, int *min,float * ave,int size)
{
int i,total;
total=0,*ave=0;
*max=data[0];
*min=data[0];
for(i=0;i<size;i++)
{
total=total+data[i];
}
*ave=(float)total/size;
for(i=1;i<size;i++)
{
if(data[i] > *max)
*max=data[i];
if(data[i] < *min)
*min=data[i];
}
}
//本题主要考指针在数组中的应用,关键在于最大最小值先定义为第一个数据以及参数的指向地址。
题目4 写一个函数用指针型字符串实现两个字符串比较,int mystrcmp(const char *str1, const char *str2),如果大于返回1,等于返回0,小于返回-1,测试之
实现代码:
/*
*函数功能:用指针型字符串实现两个字符串比较
*入口参数:字符串a,b
*返回值:大于返回1,等于返回0,小于返回-1
*/
#include<stdio.h>
int mystrcmp(const char *str1, const char *str2);
int main()
{
int i=0;
char a[80],b[80];
scanf("%s %s",a,b);
i=mystrcmp(a,b);
printf("%d\n",i);
return 0;
}
int mystrcmp(const char *str1, const char *str2)
{
int i;
for(i=0;*(str1+i) != '\0' && *(str2+i) !='\0';i++)
{
if(*(str1+i) > *(str2+i))
{
return 1;
}
else if(*(str1+i) < *(str2+i))
{
return -1;
}
}
if(str1[i]=='\0'&&str2[i]=='\0')return 0;
if(str2[i]=='\0')return 1;
if(str1[i]=='\0')return -1;
}
//本题最主要的是要注意字符串一长一短的比较;刚开始做题时我也忽略了这点,只想到两个字符串自左至右逐个字符相比,直到出现不同的字符。
题目5写一个函数求求圆周率的近视值,精确到小数7位。计算公式是
实现代码:
/*
*函数功能:求圆周率的近似值
*入口参数:分子a,分母b,第i个数,第i个数的值num,第i个数前的积s
*返回值:∏
*/
#include<stdio.h>
#include<math.h>
double func(double s);
int main()
{
double s=1;
printf("∏=%.7f\n",func(s));
return 0;
}
double func(double s)
{
double a=0,b=1;
int i=0;
double num;
double s1=0;
int k;
while(fabs(2*s-2*s1) >= 1e-7)
{
s1=s;
if(i%2 == 0)
a=a+2;
else
b=b+2;
num=a/b;
i++;
s*=num;
}
s=s*2;
return s;
}
//本题目的是学会精度的使用,其次是要善于发现该计算公式的规律。
题目6定义一个学生结构体,取别名STU,包含学号、姓名、数学、语文、计算机、英语等课程成绩,还有总分和平均分,写一个函数实现求一组学生每个学生各门课程的平均值,函数原型为float ave(STU stu[],int size)。测试之。
实现代码:
#include<stdio.h>
#include<string.h>
#define SIZE 2
typedef struct
{
char num[10];
char name[10];
int math;
int english;
int computer;
int chinese;
int sum;
float average;
}STU;
STU stu[SIZE];
float ave(STU stu[],int size);
int main()
{
int i,size=SIZE;
float sum,average;
for(i=0;i<size;i++)
{
scanf("%s %s %d %d %d %d",&stu[i].num,&stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
ave(stu,size);
for(i=0;i<size;i++)
{
printf("%s %s %5.2f\n",stu[i].num,stu[i].name,stu[i].average);
}
return 0;
}
float ave(STU stu[],int size)
{
int i;
int sum=0;
float average=0;
for(i=0;i<size;i++)
{
stu[i].sum=stu[i].math+stu[i].english+stu[i].computer+stu[i].chinese;
stu[i].average=stu[i].sum/4.0;
}
}
//结构体会把调用函数计算出的结果自动带回,注意结构体别名的使用。
题目7 写一个函数能够从文件读入一组学生STU的信息,保存到一个结构体数组中。测试之
实现代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE 2
typedef struct
{
char num[10];
char name[10];
int math;
int english;
int computer;
int chinese;
}STU;
STU stu[SIZE];
void readline(STU stu[]);
int main()
{
int i;
readline(stu);
for(i=0;i<SIZE;i++)
{
printf("%s %s %d %d %d %d\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,
stu[i].computer,stu[i].chinese);
}
return 0;
}
void readline(STU stu[])
{
int i;
FILE *fp;
if((fp=fopen("php.txt","r+")) == NULL)
{
printf("cannot open in file\n");
getch();
exit(1);
}
for(i=0;i<SIZE;i++)
{
fscanf(fp,"%s %s %d %d %d %d",stu[i].num,stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
fclose(fp);
}
//用“r+”方式时该文件应该已经存在,以便能向计算机输入数据。如果不能实现“打开”的任务,fopen函数将会带回一个出错信息,出错原因可能是用“r+”打开一个并不存在的文件。 在使用完一个文件后应该关闭它,以防止再被误用。
题目8 写一个函数能够输出某一学生结构体数组STU stu[10]的信息和每个人的总分、平均分到某一文本文件中,测试之。输出格式是:
“%s %s %d %d %d %d %d %5.2f”
实现代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE 10
typedef struct
{
char num[10];
char name[10];
int math;
int english;
int computer;
int chinese;
int sum;
float average;
}STU;
STU stu[SIZE];
float ave(STU stu[],int size);
void outfile(STU stu[],int size);
int main()
{
int i,size=SIZE;
int sum;
float average;
for(i=0;i<size;i++)
{
scanf("%s %s %d %d %d %d",stu[i].num,stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
ave(stu,size);
outfile(stu,size);
return 0;
}
float ave(STU stu[],int size)
{
int i;
int sum=0;
float average=0;
for(i=0;i<size;i++)
{
stu[i].sum=stu[i].math+stu[i].english+stu[i].computer+stu[i].chinese;
stu[i].average=stu[i].sum/4.0;
}
}
void outfile(STU stu[],int size)
{
FILE *fp;
int i;
if((fp=fopen("struct stu.txt","w+")) == NULL)
{
printf("cannot open infile\n");
getch();
exit(1);
}
for(i=0;i<size;i++)
{
fprintf(fp,"%s %s %d %d %d %d %d %5.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,
stu[i].computer,stu[i].chinese,stu[i].sum,stu[i].average);
}
fclose(fp);
}
//懂得fprintf的作用是将结构体中的整型和实型常量输出到fp指向的文件上。
题目9 写一个函数能够打印输出学生结构体数组STU stu[10]的信息到屏幕上,测试之
实现代码:
#include<stdio.h>
#include<string.h>
#define SIZE 2
typedef struct
{
char num[10];
char name[10];
int math;
int english;
int computer;
int chinese;
int sum;
float average;
}STU;
STU stu[SIZE];
float ave(STU stu[],int size);
void print(STU stu[],int size);
int main()
{
int i,size=SIZE;
int sum;
float average;
for(i=0;i<size;i++)
{
scanf("%s %s %d %d %d %d",stu[i].num,stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
ave(stu,size);
print(stu,size);
return 0;
}
float ave(STU stu[],int size)
{
int i;
int sum=0;
float average=0;
for(i=0;i<size;i++)
{
stu[i].sum=stu[i].math+stu[i].english+stu[i].computer+stu[i].chinese;
stu[i].average=stu[i].sum/4.0;
}
}
void print(STU stu[],int size)
{
int i;
for(i=0;i<size;i++)
{
printf("%s %s %d %d %d %d %d %8.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,
stu[i].computer,stu[i].chinese,stu[i].sum,stu[i].average); }
}
题目10 写一个函数能够把一组学生成绩信息按总分进行排序,测试之。
实现代码:
#include<stdio.h>
#include<string.h>
#define SIZE 2
typedef struct
{
char num[10];
char name[10];
int math;
int english;
float sum;
}STU;
STU stu[SIZE];
float ave(STU stu[],int size);
void exchangeSort(STU stu[],int size);
void print(STU stu[],int size);
int main()
{
int i,j,size=SIZE;
float sum;
for(i=0;i<size;i++)
{
scanf("%s %s %d %d",&stu[i].num,&stu[i].name,&stu[i].math,&stu[i].english);
}
ave(stu,size);
exchangeSort(stu,size);
print(stu,size);
return 0;
}
float ave(STU stu[],int size)
{
int i,j;
float sum=0;
for(i=0;i<size;i++)
{
stu[i].sum=stu[i].math+stu[i].english;
}
}
void exchangeSort(STU stu[],int size)
{
int i, j ,tmp;
float temp;
char tmpstr[size];
for(i=0; i<size-1; i++)
{
for(j=i+1; j<size; j++)
{
if(stu[i].sum > stu[j].sum)
{
temp=stu[i].sum;stu[i].sum=stu[j].sum;stu[j].sum=temp;
strcpy(tmpstr,stu[i].num);strcpy(stu[i].num,stu[j].num);strcpy(stu[j].num,tmpstr);
strcpy(tmpstr,stu[i].name);strcpy(stu[i].name,stu[j].name);strcpy(stu[j].name,tmpstr);
tmp=stu[i].math;stu[i].math=stu[j].math;stu[j].math=tmp;
tmp=stu[i].english;stu[i].english=stu[j].english;stu[j].english=tmp;
}
}
}
}
void print(STU stu[],int size)
{
int i;
for(i=0;i<size;i++)
{
printf("%5s %10s",stu[i].num,stu[i].name);
printf("%8.2f\n",stu[i].sum);
}
}
//注意字符串的赋值不是用等号,而是用strcpy( ,);字符串不能和一个字符等价,操作过程中不小心常会犯这样的错误。
题目11 写一个函数能够查找给定学号的学生成绩信息,如果找到打印成绩信息,如果没有,显示“not found!”.测试之。
实现代码:
#include<stdio.h>
#include<string.h>
#define SIZE 2
typedef struct
{
char num[10];
char name[10];
int math;
int english;
int computer;
int chinese;
float average,sum;
}STU;
STU stu[SIZE];
void choose(STU stu[],int size);
int main()
{
int i,j,size=SIZE;
float sum,average;
for(i=0;i<size;i++)
{
scanf("%s %s %d %d %d %d",&stu[i].num,&stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
choose(stu,size);
return 0;
}
void choose(STU stu[],int size)
{
int i;
char num[10];
int flag=0;
scanf("%s",&num);
for(i=0;i<size;i++)
{
if(strcmp(num,stu[i].num) == 0)
{
printf("%5s %10s %d %d %d %d",stu[i].num,stu[i].name,stu[i].math,
stu[i].english,stu[i].computer,stu[i].chinese);
flag=1;
}
}
if(!flag)printf("not found!\n");
}
//此题我使用flag作为查找的标志,flag为0时表示没有查找到,为1表示为找到;并使用字符串比较方法来对应要查找的学号。
题目12 设计一个界面函数,包含上述11个题目的调用,即
请选择
1 调用第一个函数(具体的函数名)
2 调用第二个函数(具体的函数名)
3
4 。。。
。。。
5 10 调用第10个函数(具体的函数名)
继续吗?输入y继续下一次选择,输入n结束
实现代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#define SIZE 2
typedef struct
{
char num[10];
char name[10];
int math;
int english;
int computer;
int chinese;
float sum;
float average;
}STU;
STU stu[SIZE];
void meau();
int func();
int upangle();
void maxMinAver();
int mystrcmp();
double PI();
float ave();
void readfile();
void outfile();
void print();
void exchangeSort();
void search();
int main(void)
{
char choose='\0',yes_no='\0';
do{
start:
meau();
scanf("%f",&choose);
switch(choose)
{
case '1':func();break;
case '2':upangle();break;
case '3':maxMinAver();break;
case '4':mystrcmp();break;
case '5':PI();break;
case '6':ave();break;
case '7':readfile();break;
case '8':outfile();break;
case '9':print();break;
case 'A':exchangeSort();break;
case 'B':search();break;
case '0':exit(0);
default:printf("error!\n");break;
}
printf("继续吗(y/n)?\n");
do{
yes_no=getch();
}while(yes_no!='y' && yes_no!='n');
}while(yes_no == 'y');
return 0;
}
void meau()
{
printf(" 欢迎来到调用函数游戏,请选择: \n");
printf("=======================================================\n");
printf(" 1 第一个函数 \n");
printf(" 2 第二个函数 \n");
printf(" 3 第三个函数 \n");
printf(" 4 第四个函数 \n");
printf(" 5 第五个函数 \n");
printf(" 6 第六个函数 \n");
printf(" 7 第七个函数 \n");
printf(" 8 第八个函数 \n");
printf(" 9 第九个函数 \n");
printf(" A 第十个函数 \n");
printf(" B 第十一个函数 \n");
printf(" 0 退出 \n");
printf("=======================================================\n");
}
int func()
{
}
int upangle()
{
}
void maxMinAver()
{
}
int mystrcmp()
{
}
double PI()
{
}
float ave()
{
}
void readfile()
{
}
void outfile()
{
}
void print()
{
}
void exchangeSort()
{
}
void search()
{
}
题目13 创建一个工程文件,包含三个文件,第一个是主函数所在的源文件,含有显示界面,选择1-10,调用不同的函数,第二个是各个函数所在的源文件,第三个是各个函数原型所在的头文件。
实现代码:
main:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include"myfuncs.h"
int main(void)
{
char choose='\0',yes_no='\0';
do{
start:
meau();
choose=getch();
switch(choose)
{
case '1':func();break;
case '2':upangle();break;
case '3':maxMinAver();break;
case '4':mystrcmp();break;
case '5':PI();break;
case '6':ave();break;
case '7':readfile();break;
case '8':outfile();break;
case '9':print();break;
case 'A':exchangeSort();break;
case 'B':search();break;
case '0':exit(0);
default:break;
}
printf("继续吗(y/n)?\n");
do{
yes_no=getch();
}while(yes_no!='y' && yes_no!='n');
}while(yes_no == 'y');
return 0;
}
myfuncs.h:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#ifndef MYFUNCS_H
#define MYFUNCS_H
#define SIZE 2
typedef struct
{
char num[10];
char name[10];
int math;
int english;
int computer;
int chinese;
float sum;
float average;
}STU;
STU stu[SIZE];
void meau();
void func();
void upangle();
void maxMinAver();
void mystrcmp();
void PI();
void ave();
void readfile();
void outfile();
void print();
void exchangeSort();
void search();
#endif
myfuncs.c:
#include<stdio.h>
#include"myfuncs.h"
void meau()
{
printf(" 欢迎来到调用函数游戏,请选择: \n");
printf("=======================================================\n");
printf(" 1 第一个函数 \n");
printf(" 2 第二个函数 \n");
printf(" 3 第三个函数 \n");
printf(" 4 第四个函数 \n");
printf(" 5 第五个函数 \n");
printf(" 6 第六个函数 \n");
printf(" 7 第七个函数 \n");
printf(" 8 第八个函数 \n");
printf(" 9 第九个函数 \n");
printf(" A 第十个函数 \n");
printf(" B 第十一个函数 \n");
printf(" 0 退出 \n");
printf("=======================================================\n");
}
void func()
{
int x,y;
while(scanf("%d",&x)!=EOF);
if(x > 0)
{
y=3*x*x-4;
}
else if(x == 0)
{
y=2;
}
else
{
y=0;
}
printf("%d\n",y);
}
void upangle()
{
int i,j,k;
for(i=1;i<=5;i++)
{
for(j=5-i;j>=0;j--)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
for(i=4;i>=1;i--)
{
for(j=0;j<=5-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("\n");
}
}
void maxMinAver()
{
int min,max,i;
int size=SIZE;
int total=0;
float ave=0;
int data[SIZE];
for(i=0;i<size;i++)
{
scanf("%d",&data[i]);
}
max=data[0];
min=data[0];
for(i=0;i<size;i++)
{
total=total+data[i];
}
ave=(float)total/size;
for(i=1;i<size;i++)
{
if(data[i] > max)
max=data[i];
if(data[i] < min)
min=data[i];
}
printf("%d %d %f\n",max,min,ave);
}
void mystrcmp()
{
int i=0;
char str1[80],str2[80];
scanf("%s %s",str1,str2);
for(i=0;str1[i] != '\0' && str2[i] !='\0';i++)
{
if(str1[i] > str2[i])
{
printf("1\n");
}
else if(str1[i] < str2[i])
{
printf("-1\n");
}
if(str1[i]=='\0'&&str2[i]=='\0')printf("0\n");
if(str2[i]=='\0')printf("1\n");
if(str1[i]=='\0')printf("-1\n");
}
}
void PI()
{
int i=0;
double num;
double s=1,s1=0;
double a=0,b=1;
while(fabs(2*s-2*s1) >= 1e-8)
{
s1=s;
if(i%2 == 0)
a=a+2;
else
b=b+2;
num=a/b;
i++;
s*=num;
}
s=s*2;
printf("∏=%.7f\n",s);
}
void ave()
{
int i,size=SIZE;
float sum=0,average=0;
for(i=0;i<size;i++)
{
scanf("%s %s %d %d %d %d",&stu[i].num,&stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
for(i=0;i<size;i++)
{
stu[i].sum=stu[i].math+stu[i].english+stu[i].computer+stu[i].chinese;
stu[i].average=stu[i].sum/4.0;
}
for(i=0;i<size;i++)
{
printf("%s %s %5.2f\n",stu[i].num,stu[i].name,stu[i].average);
}
}
void readfile()
{
int i;
FILE *fp;
if((fp=fopen("php.txt","r+")) == NULL)
{
printf("cannot open in file\n");
getch();
exit(1);
}
for(i=0;i<SIZE;i++)
{
fscanf(fp,"%s %s %d %d %d %d",stu[i].num,stu[i].name,&stu[i].math,
&stu[i].english,&stu[i].computer,&stu[i].chinese);
}
fclose(fp);
for(i=0;i<SIZE;i++)
{
printf("%s %s %d %d %d %d\n",stu[i].num,stu[i].name,stu[i].math,
stu[i].english,stu[i].computer,stu[i].chinese);
}
}
void outfile()
{
int i,size=SIZE;
float sum=0,average=0;
for(i=0;i<size;i++)
{
scanf("%s %s %d %d %d %d",stu[i].num,stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
for(i=0;i<size;i++)
{
stu[i].sum=stu[i].math+stu[i].english+stu[i].computer+stu[i].chinese;
stu[i].average=stu[i].sum/4.0;
}
FILE *fp;
if((fp=fopen("struct stu.txt","w+")) == NULL)
{
printf("cannot open infile\n");
getch();
exit(1);
}
for(i=0;i<size;i++)
{
fprintf(fp,"%s %s %d %d %d %d %d %5.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,
stu[i].computer,stu[i].chinese,stu[i].sum,stu[i].average);
}
fclose(fp);
}
void print()
{
int i,size=SIZE;
float sum=0,average=0;
for(i=0;i<size;i++)
{
scanf("%s %s %d %d %d %d",stu[i].num,stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
for(i=0;i<size;i++)
{
stu[i].sum=stu[i].math+stu[i].english+stu[i].computer+stu[i].chinese;
stu[i].average=stu[i].sum/4.0;
}
for(i=0;i<size;i++)
{
printf("%s %s %d %d %d %d %d %8.2f\n",stu[i].num,stu[i].name,stu[i].math,stu[i].english,
stu[i].computer,stu[i].chinese,stu[i].sum,stu[i].average);
}
}
void exchangeSort()
{
int i,j,size=SIZE;
int tmp;
float temp,sum=0;
char tmpstr[size];
for(i=0;i<size;i++)
{
scanf("%s %s %d %d",&stu[i].num,&stu[i].name,&stu[i].math,&stu[i].english);
}
for(i=0;i<size;i++)
{
stu[i].sum=stu[i].math+stu[i].english;
}
for(i=0; i<size-1; i++)
{
for(j=i+1; j<size; j++)
{
if(stu[i].sum > stu[j].sum)
{
temp=stu[i].sum;stu[i].sum=stu[j].sum;stu[j].sum=temp;
strcpy(tmpstr,stu[i].num);strcpy(stu[i].num,stu[j].num);strcpy(stu[j].num,tmpstr);
strcpy(tmpstr,stu[i].name);strcpy(stu[i].name,stu[j].name);strcpy(stu[j].name,tmpstr);
tmp=stu[i].math;stu[i].math=stu[j].math;stu[j].math=tmp;
tmp=stu[i].english;stu[i].english=stu[j].english;stu[j].english=tmp;
}
}
}
for(i=0;i<size;i++)
{
printf("%5s %10s",stu[i].num,stu[i].name);
printf("%8.2f\n",stu[i].sum);
}
}
void search()
{
int i,j,size=SIZE;
int flag=0;
float sum,average;
char num[10];
for(i=0;i<size;i++)
{
scanf("%s %s %d %d %d %d",&stu[i].num,&stu[i].name,&stu[i].math,&stu[i].english,
&stu[i].computer,&stu[i].chinese);
}
scanf("%s",&num);
for(i=0;i<size;i++)
{
if(strcmp(num,stu[i].num) == 0)
{
printf("%5s %10s %d %d %d %d",stu[i].num,stu[i].name,stu[i].math,
stu[i].english,stu[i].computer,stu[i].chinese);
flag=1;
}
}
if(!flag)printf("not found!\n");
}
第13题流程图
课程设计心得体会:
通过这次实训,增加了我学习软件技术的兴趣,虽然还不明确软件技术包含的具体内容,但从C语言这门课程开始,已发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用基础知识,对计算机的机体也有了一个大体的了解。
这次实训在实际操作过程中犯的一些错误让我受益颇多,发现了很多平时没注意到的细节,在以后的上机中应更加注意,从而对这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。
通过实际操作,学会 C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。
在此希望以后应多进行这样的实训,加长时间,培养学生独立思考问题的能力,提高实际操作水平。
参考的文献:《C程序设计第三版 谭浩强》