欢迎来到天天文库
浏览记录
ID:12477647
大小:72.50 KB
页数:15页
时间:2018-07-17
《判断某个点与某条直线的关系》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课程设计任务书题目:判断某个点与某条直线的关系一、课程设计时间20。二、课程设计内容用C语言编写软件完成以下任务:一条直线要么通过某个点,要么不通过。用C语言写程序,功能如下:从键盘先输入1条直线的2个坐标对,然后再输入任意1个坐标对,最后判断2者的关系,并给予适当的关系评价。三、课程设计要求程序质量:²贯彻结构化的程序设计思想。²至少有“输入决定直线的2个坐标对”、“输入任意1个坐标对”、“判断2者关系”、“退出”四个菜单。²用户界面友好,功能明确,操作方便。²代码应适当缩进,并给出必要的注释,以增强程序的可读性。²代码应适当缩进,并给出必要的注释,以增强程序的可读性。课程设计说明书
2、:²课程结束后,上交课程设计说明书和源程序。课程设计说明书的内容参见提供的模板。四、指导教师和学生签字指导教师:学生签名:五、成绩六、教师评语目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段8四、个人总结10五、参考文献11六、完整源程序1113一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为三个模块,其中每一个模块对应一个函数,他们的功能分别是:调用子函数,判断两数是否相等,带入预设函数判断点与直线关系。在这些函数当中,前三个函数的实现严格按照题目的要求,而后面的清屏函数属于附加功能。1、调用子函数通过switch来调用四个子函数;2、判断两数
3、是否相等用if函数判断所输入的两点是否能组成直线;3、带入预设函数判断点与直线关系将待判断点带入预设函数,通过if判断此点是否在之前输入的两点所组成的直线上;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。13二、程序流程图开始1、程序总体结构图菜单Switch选择退出清屏判断点直线关系输入待判断点输入组成直线的两点图1程序总体结构图子函数(输入组成直线的两点)13子函数(输入组成直线的两点)输入两点坐标x1y1,x2y2X1==x2&&y1==y2NY所输入点不能组成直线子函数(输入待判断点)13输入待确定点子函数(判断
4、点与直线关系)a=(y1-y2)/(x1-x2)b=(x1*y2-x2*y1)/(x1-x2)y0=a*x0+bNY此直线通过这个点此直线不通过这个点主函数图2子函数工作细则132、调用子函数(1)主函数调用子函数开始菜单Switch选择退出清屏判断点直线关系输入待判断点输入组成直线的两点子函数(输入组成直线的两点)(2)判断两数是否相等13输入两点坐标x1y1,x2y2X1==x2&&y1==y2NY所输入点不能组成直线子函数(输入待判断点)(3)带入预设函数判断点与直线关系子函数(判断点与直线关系)13a=(y1-y2)/(x1-x2)b=(x1*y2-x2*y1)/(x1-x2)
5、y0=a*x0+bNY此直线通过这个点此直线不通过这个点主函数三、核心技术的实现说明及相应程序段本程序主要由四13个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。在这些函数当中,主函数调用子函数,判断所输入点是否能形成直线,判断点与直线关系是程序的重点,下面分别进行说明。1、主函数调用子函数通过while(1)的真循环来进行switch的子函数调用,通过屏幕提示,来选择要进行的步骤,输入代码,通过switch……case……函数,来调用想运行的子函数。直到当输入代码5时,想退出,函数通过return跳出while循环,函数运行结束。voidmain
6、(){charchoice;menu();choice=getch();while(1){switch(choice){case'1':m();break;case'2':n();break;case'3':p();break;case'4':q();break;case'5':return;}13choice=getch();}}2、判断两数是否相等当调用子函数m时,进行输入两点坐标,并判断所输入的两点是否能构成直线,若不能,则重新输入,若能,则继续进行下一步骤。子函数m通过do……while……语句来进行循环,在循环体中,用if函数进行判别,若x1==x2&&y1==y2成立,则显
7、示“重新输入字样”,while判断为真,继续进行循环,直到x1==x2&&y1==y2值为0时,跳出,执行下一步骤。voidm(){puts("输入决定直线的2个坐标对:");do{scanf("%f%f%f%f",&x1,&y1,&x2,&y2);if(x1==x2&&y1==y2)puts("以上2个坐标对无法决定1条直线,请重新输入2个不相同的坐标对:");}while(x1==x2&&y1==y2);}3、带入预设函数判断点与直线关系当
此文档下载收益归作者所有