高级程序语言程序设计实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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