1、项目案例报告000项 目 案 例 报 告课程名称: 高级语言程序设计 院 系: 计算机科学与信息工程学院 学生姓名: 张东洋 学 号: 201203030031 专业班级: 12级软件工程1班 指导教师: 周 晏 2013年 03月案例一【案例内容】请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。【案例分析】在主函数中调用函数fun,编写fun函数功能是计算n门课程的平均分,返回结果。 【案例实现】 #include float fun ( float *a, int n
2、) float *p,sum=0.0,j; /定义一个指针变量*p,接收参数 int i; for(p=a,i=0;i5;i+) /循环实现累加 sum=sum+(*p+); /计算平均值 j=sum/n; return j; /返回值main() float score30=90.5,72,80,61.5,55, aver; aver=fun(score,5); /调用函数fun printf(nAverage score is :%5.2fn,aver);【案例验证】图 上机测试【案例总结】(1)复习巩固了函数的调用,对调用有更深的理解。(2)能利用指针编写较简单的程序。(3) 对数组名作
3、函数参数有了了解。案例二【案例内容】 请编写一个函数fun,它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较长的字符串。若两个字符串长度相同,则返回第一个字符串。【案例分析】 可以先计算出每个字符串的长度i,j,然后比较它们的大小,如果i大则输出对应的字符串;如果j大则输出对应的字符串。【案例实现】#include char *fun ( char *s, char *t) char *p,*q; int i=0,j=0; p=s; q=t; /指针变量分别指向 while(*p+!=0) /判断有多少个字符 i+; /输出字符的个数 while(*q+
4、!=0) j+; p=s; q=t; /使指针变量p,q分别指向字符串第一个字符 printf(the longer is:n); if(ij) return p; /返回较长的字符串 else return q; main( ) char a20,b10; printf(Input 1th string:); gets(a); /输入字符串a printf(Input 2th string:); gets( b); /输入字符串b printf(%sn, fun(a, b ); /函数调用 return 0;【案例验证】 输入:asdfgh zxcvb 输出:asdfgh 图 上机测试【案例
5、总结】(1)此程序应用了while判断,对以前的知识作了复习。(2)对指针作函数参数有了理解。(3)对于指针变量多次指向时,要重新声明指向首个元素。案例三【案例内容】 请编一个函数fun(char*s),该函数的功能是把字符串中的内容逆置。例如:字符串中原有的字符串为abcdefg,则调用该函数后,串中的内容为gfedcba。【案例分析】 输入一个字符串,先计算出来有多少个字符,运用几个语句使首尾交换,达到把字符串中的内容逆置的目的。【案例实现】#include #include #define N 81void fun ( char *s) /形参是指针变量 int i,j,n=0,m; c
6、har *p,temp; /定义指针变量p p=s; /使p指向首个字符 while(*p+!=0) n+; /计算出输入的字符个数 m=(n-1)/2; p=s; for(i=0;i=m;i+) j=n-1-i; temp=*(p+i); *(p+i)=*(p+j); *(p+j)=temp; /把ai,aj交换 main() char aN; printf ( Enter a string : ); gets ( a ); /输入字符 printf ( The original string is: ); puts( a ); fun ( a ); /调用fun函数 printf(n);
7、printf ( The string after modified : ); puts ( a );【案例验证】 输入:asdfghjkl 图 上机测试【案例总结】(1)对用指针编写程序有了更深一层的理解。(2)对于指针变量多次指向时,要重新声明指向首个元素。案例四【案例内容】 请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,若原来的字符串为CEAedca,则排序后输出为CedcEAa。【案例分析】 此程序和对一个字符串排序一致,只是把首尾的两个不计,调用函数fun对它操作即可。【案例实现】#include #include void
8、fun( char *s,int num) int i,j,k; char t; /定义变量 for(i=1;inum-2;i+) k=i; for(j=i+1;jsk)k=j; if(k!=i) t=si;si=sk;sk=t; /对除首尾字符降序排列 main() char s10; printf(输入7个字符的字符串:); gets(s); /输入7个字符的字符串 fun(s,7); /调用函数 printf(%sn, s); return 0;【案例验证】输入:aobpsuh输出:auspobh 图 上机测试【案例总结】(1)基本的数据变换要掌握。(2)对指针进行操作要明白它的指向。(
9、3)对于更深一层的指针还要钻研。案例五【案例内容】 请编写函数fun,该函数的功能是:判断字符串是否为回文?若是则函数返回1,主函数中输出YES,否则返回0,主函数中输出NO。回文是指顺读和倒读都一样的字符串。例如,字符串LEVEL是回文,而字符串123312就不是回文。【案例分析】 调用函数fun,编写语句判断输入的字符串的首尾字符是否一样,返回1或0,继而输出yes或no判断是否是回文数。【案例实现】#include #define N 80int fun(char *str) char *p; /定义指针变量p int m,n=0,i,j,z; p=str; /指针变量p指向字符首个字符
10、 while(*p+!=0) n+; /计算输入的字符个数 m=(n-1)/2; p=str; /重新指向 for(i=0;i=m;i+) j=n-1-i; if(*(p+i)!=*(p+j) /判断首尾字符是否相等 return (z=0); /如果不等,返回z=0,否则返回z=1 main() char sN ; printf(Enter a string: ) ; gets(s) ; /输入字符串 printf(nn) ; puts(s) ; /输出输入的字符串 if(fun(s) /调用函数 printf( YESn) ; else printf( NOn) ; /输出结果 retur
11、n 0;【案例验证】输入:zxcvbvcxz输出:zxcvbvcxz YES 图1 上机测试输入:asdfgghhj输出:asdfgghhj NO 图2 上机测试【案例总结】(1)通过此题复习了回文数的编程语句,又学习了用指针表示方法。(2)对于一题有多个答案方向时,应该分个写出。(3)通过以上几题的练习,对指针有了深入的理解。指导教师评语:1、项目案例报告:a、内容: 不完整 完整 详细 b、案例分析: 较差 合理 非常合理c、实现: 未实现 部分实现 全部实现 d、文档格式: 不规范 基本规范 规范 2、上机测试: a、未能完全理解题目,测试情况较差 b、部分理解题目,部分测试情况正确 c、理解题目较清楚,测试情况基本正确 d、理解题目透彻,测试情况正确 项目案例报告成绩: ,占总成绩比例: 60% 项目案例其它环节成绩:环节名称: 上机测试 ,成绩: ,占总成绩比例: 40% 总 成 绩: 指导教师签字:年 月 日
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1