您的当前位置:首页正文

程序设计技术实验报告模板2014

来源:好兔宠物网
课程名称:

实验项目:

实验地点:

专业班级:

学生姓名:指导教师:

本科实验报告

程序设计技术B 明相校区软件学院机房 软件1416 学号: 2014005970 李凯

曹棣

2014年 月 日

实验名称 实验一 C语言的运行环境和运行过程 实验二 C语言运算符和表达式 实验目的和要求 1. 2. 3. 4. 5. 学会安装C语言编译系统,如:Turbo C、Win-TC、Visual C++等; 学会在上述某种编译系统中程序的编辑、编译、连接和运行; 通过运行简单的C程序,初步了解C源程序的特点; 理解C语言的数据类型,掌握各种常量的表示方法,变量的定义、初始化和赋值; 学会使用C语言的算术运算符以及表达式的求值过程。 实验内容 1. 2. 3. 4. 下载并安装C,语言编译系统,设置编辑。 输入并运行第1章例1-1和例1-2中程序,并记录遇到的问题和解决方法。 输入并运行第2章例2-2和例2-3中程序,并记录遇到的问题和解决方法。 求下面算术表达式的值(先自己分析,再试着用程序求解,比较得到的结果是否一致)。 ⑴ 设x=2,a=7,y=4,求x+a%3*(x+y)%2/4; ⑵ 设a=2,b=3,x=3.5,y=2.5,求(float)(a+b)/2+(int)x%(int)y; 5. 写出下面表达式运算后a的值,设原来a=10。设a和n已定义成整型变量(先自己分析,再试着用程序求解,比较得到的结果是否一致)。 ⑴ a+=a ⑵ a-=2 ⑶ a*=2+3 ⑷ a/=a+a ⑸ a%=(n%=2),n的值等于5; ⑹ a+=a-=a*=a; 主要仪器设备 台式或笔记本电脑 实验记录(写出实验内容中2,3,4,5的程序代码和运行结果)(可分栏或加页) 实验1.1 #include void main() { float a,b,sum,average; scanf(\"%f,%f\ sum=a+b; average=(a+b)/2; printf(\"sum=%f,average=%f\\n\} 实验1.2 #include void main() { float s[10],max,min,sum,score; int i; for(i=0;i<10;i++) scanf(\"%f\ max=min=sum=s[0]; for(i=1;i<10;i++) { if(maxs[i]) min=s[i]; sum+=s[i]; } score=(sum-max-min)/8; printf(\"score=%.4f\} 实验2.2 #include int max(int x,int y) { int z; if(x>y) z=x; else z=y; return z; } void main(main) { int a,b,c; printf(\"a,b=\"); scanf(\"%d,%d\ c=max(a,b); printf(\"max=%d\\n\} 实验4.1 #include void main() { int x=2,a=7,y=4; printf(\"%d\\n\} 遇到的问题和解决方法 存在漏掉字符的问题,还有输出字符时数字与数字间逗号与空格 的使用。 通过返回去检查,问老师问同学,在书上细心寻找,解决了问题。 心得体会 在编写程序时一定要细心仔细,不能马虎,一丁点疏漏就会导致程序的错误,多熟悉书上的知识,多编写多练习,熟能生巧,才能减少程序的错误。 实验名称 实验三 简单程序、分支程序和循环程序设计 实验四 数组应用程序设计 实验目的和要求 1. 2. 3. 4. 5. 6. 7. 理解C语言程序的基本结构和实现基本结构的语句; 熟练应用赋值、输入和输出语句; 理解并掌握关系运算符、逻辑运算符及其表达式的使用; 熟练掌握if语句、switch语句、while语句、do—while语句和for语句的用法; 掌握数组的定义、初始化和数组元素的引用方法; 掌握与数组有关的算法,如:求最大(小)值,排序等; 理解字符数组与字符串的关系,掌握字符串的处理过程和常用字符串处理函数。 实验内容 1. 2. 3. 4. 5. 6. 7. 输入并运行第3章例3-3、例3-6中的程序,通过输出结果理解对应的格式说明。 输入并运行第3章例3-8、例3-10中的程序,注意输入数据的格式。 已知圆柱半径r=1.5,圆柱高h=3,编程求圆周长,圆面积和圆柱体积。 输入一百分制成绩,输出成绩等级A、B、C、D、E。90分以上为A,80~89为B,70~79分为C,60~69分为D,60分以下为E。要求程序能处理错误的输入数据。 -6利用公式:π/4=1-1/3+1/5-1/7+„„,求π的近似值,直到最后一项的绝对值小于10-6为止。(fabs(t)表示t的绝对值,1e-6=1*10)。 在C语言允许的整数范围内验证哥德巴赫猜想,即任意大于6 的偶数都可以表示为两个素数之和,如:100=3+97。 有一个已排好序的数组,输入一个数,要求按原来排序的规律将它插入数组中。 输入一个英文句子,统计单词的个数。 8. 主要仪器设备 台式或笔记本电脑 实验记录(写出实验内容中3,5,6,8的程序代码和运行结果)(可分栏或加页) 实验3 #include void main() { int h=3; float r=1.5,a=3.14,c,s,v; printf(\"c=%f\ printf(\"s=%f\ printf(\"v=%f\} 实验5 #include #include void main() { float a,t,b; int s; s=1,a=0,b=t=1.0; do { s=-s; a+=t; b+=2; t=s/b; } while(\"t=%d\ a*=4; printf(\"a=%4f/n\} 实验8 #include void main() { char s[256],prior=' '; int i,count=0; printf(\"输入一个英文句子:\\n\"); gets(s); for(i=0;s[i]!='\\0';i++) { if(prior==' '&&(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')) } { count++; printf(\"\\n\"); } if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z') printf(\"%c\ prior=s[i]; } printf(\"\\n单词数为:%d\\n\ 遇到的问题和解决方法 在编写完语句后少了或多了分号,对循环语句应用的不熟练。通过仔细回头检查和看书解决了问题。 心得体会 主要还是细心,并且熟悉书上的内容。 实验名称 实验五 指针应用程序设计 实验六 函数应用程序设计 实验目的和要求 1. 2. 3. 4. 理解指针的概念,掌握指针变量的定义和赋值,掌握使用指针变量访问数据的方法; 学会使用指针处理数组中的数据,学会用指针处理字符串; 了解指针数组和指向指针的指针; 掌握C语言函数的定义、调用和声明方法,掌握函数的参数传递方式; 5. 了解变量的作用域和存储类别。 实验内容 1. 2. 3. 4. 输入并运行第5章例5-1、例5-3中的程序,观察输出结果,理解指针变量的用法。 输入并运行第5章例5-5中的程序,掌握使用指针变量访问数组元素的方法。 编程序,输入有一个英文句子,将每个单词的第一个字母改为大写。(使用指针) 设计一函数,判断一个字符串是否是回文。“回文”是一种顺序读和反序读都一样的字符串,例如:“121”“abcba” “ABCCBA”。在主函数中输入字符串并输出判断结果。 5. 编写一个程序,由主函数和如下函数构成。 ⑴设计函数:input(),输入n个无序的整数存储在一个数组中; ⑵设计函数:sort(),用起泡法对数组中的n各数据从大到小排序; ⑶设计函数:search(),用折半查找法在已排序的n个数种查找指定的数据,若存在,返回其所处的位置,否则,将其插入适当位置使数据仍有序。 在主函数中调用上述函数,验证函数的功能。 6. 输入并运行第6章例6-27中的程序,根据输出结果总结局部静态变量的特点。 主要仪器设备 台式或笔记本电脑 实验记录(写出实验内容中3,4,5的程序代码和运行结果)(可分栏或加页) 实验3 #include void main() { char s[255],prrior=' ',*p; printf(\"输入一行英文:\\n\"); gets(s); for(p=s;*p!='\\0';p++) { if(prrior==' '&&*p>='a'&&*p<='z') *p-=32; prrior=*p; } puts(s); } 实验4 #include void main() { char str[81],*p,*q; printf(\"输入一个人字符串:\\n\"); gets(str); for(q=str;*q!='\\0';q++); for(p=str,q--;(p int fac1(); int fac2(); void main() { int i; for (i=0;i<3;i++) printf(\"%5d\ printf(\"\\n\"); for (i=0;i<3;i++) printf(\"%5d\ printf(\"\\n\"); } int fac1() { static int x=1; x*=5; return(x); } int fac2() { int y=1; y*=5; return(y); } 遇到的问题和解决方法 在对指针变量运用的时候还是不熟练,对有些定义不熟悉。通过问同学和仔细看书解决了问题。 心得体会 要熟悉书上的定义,对每一个知识点运用的时候更加熟练。 实验名称 实验七 结构体应用程序设计 实验八 文件操作程序设计 实验目的和要求 1. 理解结构体的概念,掌握结构体类型的定义和结构体变量、数组和指针的定义; 2. 掌握结构体变量和结构体数组的初始化方法; 3. 掌握结构体变量和结构体成员的引用方法; 4. 理解文件、文件类型、文件类型指针,熟悉文件的操作过程。 5. 掌握文件打开、关闭和文件读写等文件操作函数的手机用。 实验内容 1. 输入并运行第7章例7-1中的程序。理解结构体类型、变量和结构体成员。 2. 编写一个程序实现如下功能:定义一个点的结构数据类型,实现下列功能: ⑴输入点的坐标值。 ⑵求两个点中点坐标。 ⑶求两点间距离。 3. 有5个学生,每个学生有3门课的成绩,从键盘输入学生数据(包括学生号,姓名,三门课成绩),计算出平均成绩,将原有数据和计算出的平均分数存放在磁盘文件“stud”中。 4. 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。 主要仪器设备 台式或笔记本计算机 实验记录(写出实验内容中2,3,4的程序代码和运行结果)(可分栏或加页) #include struct complex { float real; float imag; }; int main(void) { struct complex x,y,s,p; scanf(\"%f,%f\ scanf(\"%f,%f\ s.real=x.real+y.real; s.imag=x.imag+y.imag; p.real=x.real*y.real-x.imag*y.imag; p.imag=x.real*y.imag+x.imag*y.real; printf(\"俩复数的和为:%f+%fi\\n\ printf(\"俩复数的积为:%f+%fi\\n\} 2 #include #include #include struct POINT { double x,y; }; int main() { struct POINT point1,point2,pointmid; float lenl; printf(\"输入点1坐标(用逗号隔开横纵坐标):\"); scanf(\"%lf,%lf\ printf(\"输入点2坐标(用逗号隔开横纵坐标):\"); scanf(\"%lf,%lf\ pointmid.x=(point1.x+point2.x)/2; pointmid.y=(point1.y+point2.y)/2; lenl=sqrt((point1.x-point2.x)*(point1.x-point2.x)+(point1.y-point2.y)*(point1.y-point2.y)); printf(\"中点坐标(%.lf,%.lf),两点距离%lf\\n\ return 0; } 4 #include #include int main() { FILE *fa; char s1[256],s2[81],t; int i,j; fa=fopen(\"e:\\\\a.txt\ fgets(s1,80,fa); fclose(fa); fa=fopen(\"e:\\\\b.txt\ fgets(s2,80,fa); puts(s1); puts(s2); strcat(s1,s2); for(i=0;js1[j]) { t=s1[i]; s1[i]=s1[j]; s1[j]=t; } fa=fopen(\"e:\\\\c.txt\ fputs(s1,fa); fclose(fa); puts(s1); return 0; } 遇到的问题和解决方法 结构体理解不够深 通过问老师和查阅资料解决。 心得体会 要多向别人学习,不会就要问。

因篇幅问题不能全部显示,请点此查看更多更全内容