高级程序语言程序设计实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

高级语言程序设计课程设计题目:多重模块管理

专业计算机

班级1306班

学生林道松

学号**********

指导教师鲍春波/肖琳

起止时间2014-2-17—2014-2-21

2014年2月

目录

A组题目 (1)

系统分析 (30)

系统设计 (30)

系统实现 (31)

运行测试 (32)

心得体会 (35)

参考文献 (35)

A组题目

题目1:

写一个函数计算下列函数的值f(0),f(3),f(-3),测试之。

函数如下:

解:

#include

int main()

{int f(int n);

int num,result;

printf("input the x : ");

scanf("%d",&num);

result=f(num);

printf("the result is %d\n",result);

}

int f(int n)

{ int s;

if(n>0) s=3*n*n-4;

if(n==0) s=2;

if(n<0) s=0;

return s;

}

评析:这是一个简单的选择判断结构,只需将条件编写清楚即可。

题目2:

写一个函数void maxMinAver(int *data, int *max, int *min,float * ave,int size), 求一组数据的最大值、最小值和平均值,测试之。其中data指向给定数据的数组的指针,max、min、ave分别指向最大值、最小值和平均值,size是数组的大小。

要求第一个实参是数组,第2、3、4个实参都是对普通的简单变量的某种操作,最后一个实参是数组的大小。测试之

解:

#include

#include

void maxMinAver(int *data,int *max, int *min,float * ave,int size);

int main()

{

int n,i;

int max,min;

float ave;

int *data;

printf("please enter the numbers:\n");

scanf("%d",&n);

data=(int*)malloc(n*sizeof(int));

for(i=0;i

scanf("%d",&data[i]);

maxMinAver(data,&max,&min,&ave,n);

printf("max:%d\nmin:%d\nave:%.1f\n",max,min,ave);

return 0;

}

void maxMinAver(int *data,int *max, int *min,float * ave,int size)

{

int i,sum=0;

*max=data[0];

*min=data[0];

for(i=0;i

{

if(*max<=data[i])

*max=data[i];

if(*min>=data[i])

*min=data[i];

sum+=data[i];

}

*ave=(float)sum/size;

}

评析:这是一个以指针为参数的函数,用冒泡法对数组中的每一个数进行比较,这道题目的需要注意的地方就是在函数的调用需注意函数实参,以及对数组内存空间的申请。

题目3:

写一个函数用指针型字符串实现两个字符串比较,int mystrcmp(const char *str1, const char *str2),如果大于返回1,等于返回0,小于返回-1,测试之

解:

#include

int mystrcmp(const char *str1, const char *str2);

int main()

{

char str1[100],str2[100];

scanf("%s %s",str1,str2);

printf("%d\n",mystrcmp(str1,str2));

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;

if(*(str1+i) < *(str2+i))

return -1;

if(*(str1+i) ==*(str2+i))

return 0;

}

}

评析:这道题的比较方法是将字母一一进行对比,利用指针将字母一个个进行比较,

需要注意的地方就是取*运算。

题目4:

定义一个学生结构体,取别名STU,包含学号、姓名、数学、语文、计算机、英语等课程成绩,还有总分和平均分,写一个函数实现求一组学生每个学生各门课程的平均值,函数原型为float ave(STU stu[],int size)。测试之。

解:

#include

#include

#define SIZE 2

typedef struct student

{

int num;

char name[10];

float math;

float english;

float computer;

float chinese;

float total;

float average;

}STU;

STU stu[SIZE];

float ave(STU stu[],int size);

int main()

{

int i;

printf("please input the studet's information:\n");

for(i=0;i

相关文档
最新文档