c语言文档格式.docx
- 文档编号:22632620
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:19
- 大小:92.26KB
c语言文档格式.docx
《c语言文档格式.docx》由会员分享,可在线阅读,更多相关《c语言文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
二、算法分析
三、技术难点及解决方案
四、功能框图和程序流程图
五、主要操作界面
六、结论
七、参考文献
八、附录(源程序清单)
我通过对C语言程序设计的学习和这次课程设计,为我们提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,不仅能够锻炼我们的分析解决实际问题的能力、提高我们适应实际环境和实践编程的能力,也能培养我们独立、探索的能力,同时也是对我们所学理论知识和基木技能的全面考核。
C语言课程设计是一门实践性非常强的课程,不但要注重C语言程序设计基本知识的学习,更要注重程序设计技能的培养,使我们能够循序渐进地把握C语言程序设计的技能。
通过课程设计,培养我们阅读和编写
程序的能力,培养计算机程序设计的能力和素质,以及思维方法。
初步积累编程经验,打下良好的计算机应用基础。
c语言的数据结构丰富,具有现代化语言的各种数
据结构。
c的数据类型有整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等,能用来实现各种复杂的数据结构的运算,尤其是指针类型数据,使用起来比较灵活多样。
具有结构化的控制语句,如if-else、do-while、while等。
用函数作为程序的模块单位,便于实现程序的模块化。
c语言是良好的结构化语言,符合现代编程风格的要求。
语法限制不太严格,程序设计自由度大。
例如,对数组下标的越界不作检查,由程序编写者自己保证程序的正确。
对变量的类型使用比较灵活,例如,整型数据与字符型数据允许程序编写考有较大的自由度,因此放了语法查。
程序员应当仔细检查程序,保证其正确,而不要过分依赖c编译程序去查错。
c语言能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
因此,c语言既具有高级语言的功能,又具有低级语言的许多功能,可用来写系统软件。
c语言的这种双重性,使其成为既是成功的系统描述语言,又是通用的程序设计语言。
c语言生成目标代码的质量很高,程序执行效率高。
一般只比汇编程序生成的目标代码效率低10%一20%。
与汇编语言相比,用c语言写的程序可移植性好。
基本上不做修改就能用于各种型号的计算机和各种操作系统。
由于c语言的这些优点,使c语言应用面很广。
许多大的软件都用c语言编写。
这主要是由于c语言的可移植性好和硬件控制能力高,表达和运算能力强。
许多以前只能用汇编语言处理的问题,现在可以改用c语言来处理。
二、算法分析:
本程序是计算二次曲线与X轴所围成的封闭区域的面积。
首先用GET_PAR对输入的参数进行控制,在程序中对输入的参数的要求:
在输入a、b、c的值时必须是“0~9”和“.”。
所以你不能输入其它的字符等。
然后用INIT对图形的模式进行初始化。
再利用定积分将一元二次方程与X轴所围成的封闭区域求出,在这里,在程序中只有当一元二次方程的判别式▲的值大于或等于零时,本程序才会求出二次曲线余X轴所围成的封闭区域的面积。
否则会判你输入错误哟!
例如:
当你输入的a=-1,b=1,c=0时,则你求的面积将显示1.666666;
当你输入的a=1,b=4,c=4时,则你要求的面积为0;
当你输入的a=4,b=3,c=2时,则会提示你你的输入有误。
所以本程序对输入的a、b、c的值要满足▲≥0,不能是▲<0。
再DRAW_XY画出平面直角坐标系—x轴和y轴,且每一格为10个单位。
最后,在本程序中,如果你进入操作时,会看到这一行字“想退出按退出键,继续按其它任何键”,在这其中的退出键是“Esc”。
还有当你不想计算面积的时候可以按空格键退出计算和画图。
调试程序时所遇到的各种困难又使他们对C语言望而却步,使其学习C语言的计划常常半途而废。
即使勉强坚持学完了,也不十分清楚C语言究竟能帮助他们解决现实生活中的什么问题,或者即使能用它去解决一些问题,但总是发现自己编写出来的程序晦涩难懂,有时连自己都看不明白了。
上述问题,在自己的学习实践中,曾尝试过用各种方法来解决这些困难,有过失败的教训,也有一些成功的经验。
程序设计是一项细致的活动,主要是熟练地掌握和使用编程语言。
当然,它也是一项逻辑活动,可以完全独立于具体的编程语言,不受它所依托的具体语言的限制。
它涉及到很多认识上的技巧,例如,对操作环境和相关开发工具的熟悉,对数据结构、算法的合理运用和测试,对机器内部工作的了解等等。
因此,以往我们在介绍程序设计语言时那种只侧重语法知识介绍的教学方法常会给学生一个误导,使学生误以为学习程序设计就是记住那些语法规范而已,因而,常常去赶时髦,一味地追求多学几门程序设计语言,而忽略了对程序设计方法的掌握,忽略了好的程序设计习惯的培养,忽略了缜密思维方式的训练,就好比学习演唱时,忽略了对乐理知识的学习以及发声的训练,一味地追求多学几首歌一样。
用这种打比方的浅显易懂的方式将有关程序设计方面的许多知识自然而然地娓娓道来。
(1)结合简单直观的图示进行难点内容的讲解,因为很多
时候,看一张图要比看一段话更直接、更清楚得多。
例如,在介绍简单变量和指针作函数参数的区别时,我也理解不了,可是画两个图再讲解,其中的差别之处立刻就一目了然了。
还有许多不易理解的算法(如排序、查找、插入、删除等)。
(2)语言叙述通俗易懂,一些易混淆和难理解的概念尽量通过打比方的方法来进行类比。
例如,算法与编程语言、直接寻址与间接寻址、二维数组的行地址与列地址等都是用了比较贴切的比喻来形容它们之间的联系与差别。
(3)程序安排由浅入深、循序渐进,程序内容衔接紧密,难易程度过渡自然。
程序是围绕着结构化与模块化程序设计这个中心,沿着数据结构从简单到复杂这样一条主线来逐步展开有关函数内容的介绍的,这样既可将难点问题分散开来,又可做到在内容上的温故而知新,不仅突出了我们以C语言为依托介绍程序设计方法的宗旨,还强化了使用函数进行编程的训练。
根据我们学习C语言教学的经验,发现例题的选择尤其重要,因此,我们将程序实例视为学生饭桌上的菜肴,力求将其做得不仅营养丰富,而且符合我们胃口,这样,学生才会乐于去品尝,吃得饱、吃得香。
因此,本书在例题、习题和实验题目方面作了精心的挑选和设计,这些程序主要来源于生活,都是发生在我们身边的最熟悉的现实问题,不但内容丰富,涉及面广,而且生动有趣。
程序有针对性,,启发我们的思路,帮助读者自学和练习,使读者打消对程序设计的畏惧心理。
编写程序的第三个出发点就是要加强读者的缜密思维方式的训练和勇于推陈出新的能力的培养。
因此,不同于其他程序,程序的绝大部分程序实例都是以“一题多种解决方
案、一题多种编程方法”的形式出现的,让读者在程序设计时不局限于一种解题思路和一种实现方法,在程序的设计与编写过程中加深对各种语句功能、语法规范、程序结构以及编程方法和技巧的理解,通过一题多问、一题多解带动读者去发掘、去探索、去寻求更好的解决途径,从而达到提高分析问题和解决问题的能力。
四、功能框图和程序流程图
运行环境:
win-tc,turbo-c中。
我的题目是设计一个计算二次曲线与x轴所围成封闭区域的面积的设计,对于我们这些新手来说,这是的考验,我一千次一万次的问自己,怎么才能找到课堂所
学与实际应用的最佳结合点?
怎么才能让自己的程序在篇幅上简单,在使用价值上丰富?
怎样让自己的业余更*近专业?
怎样让自己的计划更具有序性,而不会忙无一
用?
机会是老师,学校,以及无数代教育工作者给的,而能力是自己的,耐性是需要的。
经过自己的琢磨,听取了师姐,师兄们的建议,还查阅了很多书籍,才做到
了心中有数,才了解了C语言课程设计的真正用意——培养自学能力,养成程序编辑的好习惯。
我从来不相信车到山前必有路的说法,认为那只是懒惰者自寻懒惰的
借口,我要积极,要把握,要努力。
我们自己能做到的仅此而已,因为人力也有所不能及。
在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,
怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。
在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。
老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?
在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。
没有了柳暗花明的一天,那么我怎么能说经受住了考验?
谢谢老师的那句话,她说:
人力有所不能及,然而,人的精神是不会败倒的。
我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。
不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。
谢谢给我指点迷津的老师。
谭浩强主编,《C程序设计(第三版)》,清华大学出版社,2005年7月第3版。
谭浩强主编,《C程序设计题解与上机指导(第3版)》,清华大学出版社,2005年7月杨有安陈维曹惠雅徐欣欣鲁丽主编,《程序设计基础教程》(C语言),人民邮电出版社
八、源程序清单
#include"
stdio.h"
math.h"
graphics.h"
conio.h"
#defineDX1e-4
#defineX0220
#defineY0280
#defineMX640
#defineMY480
#definePI3.1415926
#defineWA10
voidGET_PAR(void);
//输入参数
voidINIT(void);
//初始化图形模式
voidDJF(void);
//求积分
voidDRAW_XY(void);
//绘坐标
voidDRAW_FUN(void);
//绘函数图像
floata,b,c,x1,x2,x_print,y_print;
char*buf="
"
;
voidhanzi16(intx,inty,char*s,intcolour)
{
FILE*fp;
charbuffer[32];
registeri,j,k;
unsignedcharqh,wh;
unsignedlonglocation;
if((fp=fopen("
hzk16"
"
rb"
))==NULL)
{
printf("
Cantopenhzk16!
);
getch();
exit(0);
}
while(*s)
qh=*s-0xa0;
wh=*(s+1)-0xa0;
location=(94*(qh-1)+(wh-1))*32L;
fseek(fp,location,SEEK_SET);
fread(buffer,32,1,fp);
for(i=0;
i<
16;
i++)
for(j=0;
j<
2;
j++)
for(k=0;
k<
8;
k++)
if(((buffer[i*2+j]>
>
(7-k))&
0x1)!
=NULL)
putpixel(x+8*j+k,y+i,colour);
s+=2;
x+=16;
fclose(fp);
}
intcharToInt(charch[])
intsum=0,i;
ch[i]!
='
\0'
sum=10*sum+ch[i]-48;
returnsum;
intinputNum(void)
charch,num[9];
inti;
=7;
)
ch=getch();
if(ch>
0'
&
ch<
9'
||ch=='
.'
num[i]=ch;
%c"
ch);
i++;
elseif(ch==13)
break;
num[i]='
returncharToInt(num);
voidGET_PAR(void)
L:
hanzi16(0,8,"
请输入系数"
2);
\n\ny=ax^2+bx+c\n"
setfillstyle(1,0);
bar(0,0,100,20);
\ra="
scanf("
%f"
&
a);
\nb="
b);
\nc="
c);
if(b*b-4*a*c<
0)
inputerror!
pleaseinputagait!
\n"
gotoL;
voidINIT(void)
intdriver=DETECT,mode;
initgraph(&
driver,&
mode,"
voidDJF(void)
floatx,y,s=0.;
\nx1=%.2f,x2=%.2f"
x1,x2);
for(x=x1;
x<
=x2;
x+=(float)DX)
y=a*x*x+b*x+c;
s+=(float)(y*DX);
sprintf(buf,"
s=%f"
fabs(s));
outtextxy((int)x_print,(int)y_print,buf);
voidDRAW_XY(void)
intx,y;
setbkcolor(0);
line(X0-10,10,X0,0);
line(X0,0,X0+10,10);
line(MX-10,Y0-10,MX,Y0);
line(MX-10,Y0+10,MX,Y0);
line(X0,0,X0,MY);
line(0,Y0,MX,Y0);
for(x=0;
=MX-20;
x+=WA)
line(x,Y0-5,x,Y0);
for(y=20;
y<
=MY;
y+=WA)
line(X0,y,X0+5,y);
outtextxy(MX-10,Y0+5,"
x"
outtextxy(WA*x1+X0,Y0-WA,"
x1"
outtextxy(WA*x2+X0,Y0-WA,"
x2"
outtextxy(X0+5,10,"
y"
for(x=-X0;
=MX-X0;
x++)
if((int)(WA*x)%(WA*5)==0)
%d"
x);
outtextxy(X0+WA*x,Y0+5,buf);
for(y=-Y0;
=MY-Y0;
y++)
if((int)(WA*y)%(WA*5)==0)
y);
if((int)y)
outtextxy(X0+WA,Y0+WA*y,buf);
voidDRAW_FUN(void)
floatx,y,x_top,y_top,t;
x1=(-b-sqrt(b*b-4*a*c))/(2*a);
x2=(-b+sqrt(b*b-4*a*c))/(2*a);
x_top=-b/(2*a);
y_top=2*c-b*b/(2*a);
if(x1>
x2)
t=x1;
x1=x2;
x2=t;
}
=X0;
x+=.01)
{
putpixel(WA*x+X0,Y0-WA*y,4);
if(x>
=x1&
=x2)
setcolor(5);
setlinestyle(0,4,4);
delay(5000);
if((int)(WA*x)%3==0)
line(WA*x+X0,Y0-WA*y,WA*x+X0,Y0);
for(x=x_top;
=x_top+WA*5;
x+=.0001)
y=x+y_top/2;
putpixel(WA*x/2+X0,Y0-WA*y/2,4);
x_print=WA*x/2+X0;
y_print=Y0-WA*y/2;
voidmain()
{
intkey;
do
INIT();
hanzi16(100,100,"
按退出键退出,按其他键继续!
key=bioskey(0);
key=key&
0xff?
key&
0x00ff:
key>
if(key==27)
else
cleardevice();
GET_PAR();
DRAW_XY();
DRAW_FUN();
DJF();
}while
(1);
closegraph();
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言