1、1 安装Eclipse开发环境;2 学习开发环境的使用;3 在下,编写程序,完成实数的四则运算功能;(三)、发挥部分根据自己的程序开发水平,完成其他可展示功能程序。-1-二过程(如实际程序开发、电子制作,详细说明有关原理、开发过程、调试过程、结果)(一)、在LINUX下Shell命令行内执行四则运算1、在Linux根目录root下创建自己的工作目录:rootlocalhost#mkdirstdstd#cdstd#mkdircalculatecalculate#addsubmuldivlsadd div mul sub2.在上述的工作目录下编写四则运算的代码。(1)目录下add#viadd.cf
2、loatadd(floata,floatb) returna+b;add.h#ifndefADD_H_#defineb);#endifadd.o:cc-c-oadd.o(2)subsub#sub.csub(floatreturna-b;-11-sub.hSUB_H_sub.o:sub.o(3)mul#mul.cmul(floatreturn a*b;mul.hMUL_H_mul.o:mul.o(4)divdiv#div.cdiv(floata/b;div.h12DIV_H_x,floaty);div.o:div.o(5)calculatecal.c#include#includeadd.hsu
3、b.hdiv.hmul.hintmain(void)m=1;a=0;b=0;sum=0;minus=multi=divide=char c=constEPSILON=1e-10;while(m=1)printf(请输入两个实数:n);scanf(%f%f,&a,&运算符号是:scanf(%sc);switch(c)case+:sumadd(a,b);%f+%f=%fn,a,b,sum);break;-minus=sub(a,b);%f-%f=%fn,a,b,minus);*multi=mul(a,b);%f*%f=%fn,a,b,multi);/if(b-EPSILON)&(bEPSILON)
4、错误,除数不能为!elsedivide%f/%f=%fn,a,b,divide);default未知运算符!输入1继续,输入其他退出程序!%dm);vpath%add.cadd%add.h%sub.csub%sub.h%mul.cmul%mul.h%div.c%div.hobjcal.odiv.otest$(obj)cal.c-Iclean:rm-rf*.o上述程序中使用了gcc与makefile在的终端命令中有指令预处理(Pre-Processing)使用-E参数可以让在预处理结束后停止编译过程:#-Ehello.chello.i编译(Compiling)下一步是将hello.i编译为目标代
5、码,这可以通过使用-c参数来完成:-xcpp-outputchello.o或者汇编(Assembling)链接(Linking)hello.ohelloMakefile就是“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译。命令执行时,需要一个Makefile文件,以告诉命令需要怎么样的去编译和链接程序。的规则:target. :mand也就是一个目标文件,可以是ObjectFile,也可以是执行文件。还可以是一个标签(Label)。就是,要生成那个所需要的文件或是目标。command也就是需要执行的命令。这是一个文件的依赖关系,target这一个或多个的目标文件依赖于中的
6、文件,其生成规则定义在中。中如果有一个以上的文件比文件要新的话,command所定义的命令就会被执行。是如何工作的:命令。那么,1、make会在当前目录下找名字叫“Makefile”或“makefile”的文件。2、如果找到,它会找文件中的第一个目标文件(target),并把这个文件作为最终的目标文件。3、如果edit文件不存在,或是所依赖的后面的.o文件的文件修改时间要比这个文件新,那么,他就会执行后面所定义的命令来生成这个文件。4、如果所依赖的.o文件也存在,那么会在当前文件中找目标为.o文件的依赖性,如果找到则再根据那一个规则生成.o文件。5、C文件和H文件存在时会生成文件,然后再用文件
7、生命的终极任务,也就是执行文件了。这就是整个的依赖性,make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么就会直接退出,并报错,而对于所定义的命令的错误,或是编译不成功,make根本不理。只管文件的依赖性。Vpath中如果没有指明这个变量,make只会在当前的目录中去找寻依赖文件和目标文件。如果定义了这个变量,那么,make就会在当当前目录找不到的情况下,到所指定的目录中去找寻文件了。Vpath的使用方法:directories为符合模式的文件指定搜索目录。vapth使用方法中的需要包含“%”字符。“%”的意思是
8、匹配零或若干字符,(需引用“%”,使用“%)例如,“%.h”表示所有以“.h”结尾的文件。指定了要搜索的文件集,而则指定了的文件集的搜索的目录。(如果某文件在当前目录没有找到的话)我们可以连续地使用语句,以指定不同搜索策略。如果连续的语句中出现了相同的new-source;(4)、新建头文件:headfile;(5)、在source中输入name,输入文件名要加上后缀.c或.h;(6)、在窗口中输入需要的程序和各个头文件,复制上述代码即可;(7)、单击“BuildDebugfortest”,然后再单击“Runtest”运行。(三)、其他可展示功能程序十进制正整数转换为二进制或八进制math.h
9、ten_two(intnum)int i=0;arr20=;for(ii+)arrinum%2;/if(num=0)for(;ii-),arri);arr20;ten_eight(inti=0;8;main(void)selecta20=;请输入一个十进制整数nnum);十进制转二进制,2十进制转八进制nselect);switch(select)转换为二进制:ten_two(num);转换为八进制:ten_eight(num);您的输入有误,请重新输入!运行结果如下:请输入一个十进制数8十进制转八进制10001012三、小结这一周的课程设计是本学期所有课程设计里最令我纠结的一个,归根结底还是
10、个大问题:一个是基础知识掌握不牢;二是就是设计时粗心大意,小错误不断;三是检错能力差,不能根据报错结果找出错误原因。以下是我设计时遇到的问题及解决方法:1.编辑头文件时,分号容易漏掉,导致语法性错误2.Makefile时前面的空格一定要用TAB键,否则检测会报“缺少分隔符”3.GCC的调试中出现了一些语法错误,gcc有很多种写法规则,因为类别太多导致容易混淆。4.编写不规范,错误很多,多目录下的与同目录下的虽然不同,但也有相同之处,不能做到举一反三。5.关于如何在主程序下的中引用add、sub等的makefile, 通过查资料在陈浩编写的“跟我一起写Makefile”找到了答案。问题看上去虽然不多,但每一个问题都曾使我焦头烂额很长时间,一直到星期四下午才把一切都弄好。这次课程设计虽然给我带来了很多麻烦,但也同时激发了我对软件设计的挑战和兴趣,这次设计是结束了,但我会在课余时间继续专研,扩展自己该领域的知识面,不断的前进与挑战自我。成绩 日期 批阅人
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1