1、c语言程序设计抛物线程序设计基础(C语言)课程设计说明书学 院: 班 级: 学 号: 姓 名: 教 师: 日 期: 2012年6月 18 日课程设计要求:1.本课程设计作为程序设计基础(C语言)的期末考核,占该课程总成绩的70%。2.本课程设计的题目可以由老师指定或学生自选。3.知识点要求包括:(1)文件常用操作(打开,读/写数据,关闭等);(2)选择结构;(3)循环结构;(4)自定义函数;(5)数组的使用;(6)指针的定义与引用;(7)结构体类型的定义与使用注意:需要在源代码相应的位置注释出以上知识点;4.课程设计的主体包括题目名称、算法分析、流程设计、代码设计及运行结果。C设计抛物线计算器
2、算法分析:抛物线计算器程序的开头是文件包含的预处理命令。语言中,预处理命令都是以“#”开头,# include表示包含某个头文件。stdio.h是标准输入输出头文件。(#include#include#include )。然后程序对所做图形的大小模型分辨率进行了设置,将其设置成了合适的图形模式。(initgraph(640, 480);)再依次输入抛物线的四个参数(1初始高度,2初始角度,3初始速度,4重力加速度),并且分别对四个参数的要求以及数值范围进行了规范。然后程序中调用函数公式对其他参数进行计算并且将其输出。再对图形的背景颜色以及线条颜色进行了设置。之后程序利用sprintf命令将输出
3、的数据添加到字符串中。sprintf%指定参数标识符宽度.精度指示符。1. 处理字符方向。负号时表示从后向前处理。2. 填空字元。 0 的话表示空格填 0;空格是内定值,表示空格就放着。3. 字符总宽度。为最小宽度。4. 精确度。指在小数点后的浮点数位数。 最后程序运行正确,数据正确时,将文件保存到指定位置,打开读取保存的函数文件。 流程设计: 操作开始 调整图像模式 输入参数h, v1, a, g h0 v10 N a0 g0 Y调用函数公式计算其他参数,输出其他参数 保存函数,读取函数 N Y 操作结束 代码设计:1. 开始部分#include#include#include #defin
4、e PI 3.1415926double geth_t(double h,double v1,double A,double g,double t);int main(void)2. 图像设置 initgraph(640, 480);3.输入参数计算参数: double h,v1,a,g; char s10; int flag=0; do InputBox(s, 10, 请输入初始高度); sscanf(s, %lf, &h); if(h=0) flag=0; else flag=1; while(!flag); flag=0; do InputBox(s, 10, 请输入出始速度); ssc
5、anf(s, %lf, &v1); if(v1=-90) if(a=90) flag=1; else flag=0; else flag=0; while(!flag); flag=0; do InputBox(s, 10, 请输入重力加速度); sscanf(s, %lf, &g); if(g=0) flag=0; else flag=1; while(!flag); double A=(a*PI)/180; double v2=sqrt(v1*v1+2*g*h); double cosB=(v1*cos(A)/v2; double sinB=sqrt(1-cosB*cosB); doubl
6、e B=acos(cosB); double T=(v1*sin(A)+v2*sinB)/g; double S=v1*cos(A)*T; double b=-B*180/PI; double h_max; double v_max; if(a=det_h) det=det_s; else det=det_h; int s_n=(int)(S/det)+1; setbkcolor(blue); cleardevice(); setcolor(green); line(20,440,460,440); line(40,30,40,460); int points = 40, 30, 35, 40
7、, 45, 40; fillpoly(3, points); int points2 = 460, 440, 450, 435, 450, 445; fillpoly(3, points2); setcolor(red); outtextxy(20,445,0); outtextxy(40+s_n,445,S); outtextxy(20,440-(int)(h/det),H); moverel(40,440-(int)(h/det); int dx=40; int dy=dx*tan(A); linerel(dx,-dy); setcolor(WHITE); char str50; spri
8、ntf(str, 初始高度为%.2f米, h); outtextxy(440, 50, str); sprintf(str, 初速度为%.2f米/秒, v1); outtextxy(440, 70, str); sprintf(str, 初始角度为%.2f度, a); outtextxy(440, 90, str); sprintf(str, 重力加速度为%.2f米/秒2, g); outtextxy(440, 110, str); sprintf(str, 落地时间为%.2f秒, T); outtextxy(440, 130, str); sprintf(str, 落地时速度为%.2f米/秒
9、, v2); outtextxy(440, 150, str); sprintf(str, 落地角为%.2f度, b); outtextxy(440, 170, str); sprintf(str, 落地点水平距离为%.2f米, S); outtextxy(440, 190, str); sprintf(str, 最高点速度为%.2f米/秒, v_max); outtextxy(440, 210, str); sprintf(str, 最高点垂直距离为%.2f米, h_max); outtextxy(440, 230, str); setcolor(YELLOW); int i; moveto(40,440-(int)(h/det); for(i=0;i490&m.x400&m.y490&m.x420&m.y440) char s50; InputBox(s,10,请输入要读取的文件名); loadimage(NULL, s); break; getchar(); closegraph(); return 0;double geth_t(double h,double v1,double A,double g,double t) return (h+v1*t*sin(A)-0.5*g*t*t);运行结果:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1