版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、计算机程序训练设计说明书指导老师:杨树恒姓名:宫长莲学号: 0705010106日期:2009年6月12日一 题目在屏幕上画一个矩形,每按一次键盘,该矩形转动 45 度,该矩形的大小和转动方向由键盘输入, 并将输入的数据送文件保存, 按回车键结束程序, 功能延伸:(改变数据文件的内容后,再根据数据文件里的数据绘制图形)二 问题描述1 输入信息:从键盘输入所需结构体变量,控制键盘参数,变量2 显示信息:显示器硬件的类型,打开图形模式,背景颜色,填充颜色3 输出信息:利用画图函数绘制矩形, 通过控制键盘上的值, 使其每按一次旋转45度4 存盘:将源程序保存在 D 盘下的 file1 文件内三 系统
2、设计说明系统功能分析:1 系统用到的数据类型程序设计一般由两个部分组成: 算法和数据结构, 合理的选择数据结构和处理这些数据结构具有同样的重要性, 在程序设计中, 由于要画一个矩形,使其能够转动,并将输入的数据送往文件保存, 当要在读数据时,打开文件,调用画图函数,得到所需要的结果。主要包括如下:#include/* 标准库函数 */#include /* 图形函数 */#include/* 数学函数 */#include/* 基本输入输出函数 */#define PI 3.1415926/* 宏定义PI */float th=PI/180/* 定义全局变量 th*/structbbint a
3、;int b;int r;int theta;int arf; bb;/* 定义结构体类型名 */* 圆心的横坐标 a*/* 圆心的纵坐标 b*/* 圆的半经 r*/* 矩形顶点与 x 轴的夹角 theta*/* 矩形对角线的夹角arf*/* 结构体变量名 bb*/2 main() 主函数程序采用主函数调用矩形函数来实现,在主函数中,将变量值赋予结构体变量中,同时将输入的其他数据放入文件中保存,在主函数中定义键盘控制参数,测定显示器硬件的类型,打开图形模式3juxing() 函数函数 juxing() 用当前绘图,给定圆心坐标,确定圆上的四个点,连线,形成矩形4save()文件保存前面讲到的数
4、据的输入和输出式以终端为对象,当程序关闭后,数据也丢失了,所以为了能 随时查阅数据,必须将数据输出到磁盘上文件上保存起来, 使用时再从磁盘中读入到内存中, 这就用到了磁盘文件的读写操作以设置背景四功能描述系统包括的功能模块,模块功能描述,各模块间的层次结构相互调用关系)以及模块之间的信息交换问题1 本程序是由主函数, juxing()函数,save()文件保存函数, cleardevice() 清屏函数, setbkcolor()设背景色函数, setcolor()设置颜色函数,setfillstyle()设置填充图样和颜色函数, floodfill() 填充闭域函数2 程序实现简单的如下功能
5、:主函数中控制图形打开模式,必要的3 输入输出,调用 juxing 画图函数,利用数学函数功能画出图形,4 并将输入的变量值赋予结构体变量中,并利用 save函数使其保5 存在文件中,并将其输出到磁盘中。三 功能图开始执行 main()函数定义变量,确定矩形的中心点,根据半径和角度的变化,在圆上找四个点,连线画矩形调用 save()函数,将数据输出到磁盘文件上保存,以便于下次运行时直接调用调用 juxing() 画图函数 ,以 a0,b0 为圆心, r 为半径,取角 theta,arf,画矩形结束四算法设计( 1) 预处理命令:宏定义 PI,文件包含命令( 2) 在主函数定义结构体类型名,结构
6、体变量 bb,结构体成员列表,文件指针 *p ,控制键盘参数 t1,t2,测定显示器硬件的类型,将图形驱动软件装入内存,图形初始化( 3) 调用 save()文件保存函数,创建 D 盘内 file1 文件,将读取的数据存入文件中( 4) 调用 cleardevice()函数,清除整个屏幕,将当前位置移到屏幕原点,调用 setcolor()函数,设置当前绘图颜色,用 setfillstyle( )函数,设置图形填充和颜色, setbkcolor()函数设置背景颜色, floodfill() 函数,填充闭域并设置边界颜色(5) 调用 bioskey()函数,取键盘上的值,取上键,每按一次,矩形顺时
7、针转动 45 度,取下键矩形逆时针转动45 度,按回车键结束程序(6) 调用 juxing() 函数画矩形,以 a0,b0,为圆心, r 为半径,取角 theta,arf, 得到四个点,连线,画出图形五参考文献1 谭浩强著, C 程序设计(第二版)北京:清华大学出版社, 19992 谭浩强编著, C+程序设计,北京清华大学出版社, 20043 谭浩强编著, C 程序设计教程,北京:高等教育出版社六 结束语向屏幕输入 a0,b0,r,arf,theta的值,运行程序得到结果, 实践证明,C 语言实验课教学的改进增强了学生的学习热情, 让学生从枯燥无味的语言学习中解放出来, 在一定程度上提高了学生
8、程序的编写、 调试、优化等能力;对今后学习其他计算机课程打下良好的基础。七源程序代码#include #include #include/* 图形函数 */* 数学函数 */#include#define PI 3.1415926 /*宏定义PI */float th=PI/180;/* 定义全局变量th */struct bbint a;int b;int r;int theta;int arf;bb;void main()int i=0;FILE *fp;/* 文件指针 */int t1,t2;int a0,b0,r,theta,arf;void save();int gd=DETECT,
9、gm;initgraph(&gd,&gm,c:tc);printf(if you want input,please press y,if you want to call saved file,press anykeyn);if(getchar()=y)printf(please input the a0,b0,r,arf,theta:n);scanf(%d%d%d%d%d,&a0,&b0,&r,&arf,&theta);bb.a=a0;bb.b=b0;bb.r=r;bb.theta=theta;bb.arf=arf;save();elsefp=fopen(d:file1,rb);fread
10、(&bb,sizeof(struct bb),1,fp);a0=bb.a;b0=bb.b;r=bb.r;theta=bb.theta,arf=bb.arf;fclose(fp);cleardevice();setbkcolor(BLUE);setcolor(4);juxing(a0,b0,r,arf,theta);setfillstyle(1,2);floodfill(a0,b0,4);while(1)t1=t2=bioskey(0);t1=t1&0xff;t2=t1? 0:t28;switch(t2)case 72:cleardevice();theta+=45;juxing(a0,b0,r
11、,arf,theta);setfillstyle(1,i+);floodfill(a0,b0,4);break;case 80:cleardevice();theta-=45;juxing(a0,b0,r,arf,theta);setfillstyle(1,i-);floodfill(a0,b0,4);break;if(k1=13) break;juxing(a0,b0,r,arf,theta)int i;int a5,b5;a0=a0+r*cos(theta*th);b0=b0+r*sin(theta*th);a1=a0+r*cos(theta+arf)*th);b1=b0+r*sin(theta+arf)*th);a2=a0+r*cos(theta*th+PI);b2=b0+r*sin(theta*th+PI);a3=a0+r*cos(theta+arf)*th+PI);b3=b0+r*sin(theta+arf)*th+PI);a4=a0;b4=b0;for(i=0;i4;i+)line(ai,bi,a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 淮阴师范学院《体育舞蹈专项理论与实践(6)》2021-2022学年第一学期期末试卷
- 淮阴师范学院《科学社会主义理论与实践》2022-2023学年第一学期期末试卷
- 淮阴师范学院《工程造价案例分析》2022-2023学年第一学期期末试卷
- 淮阴师范学院《电磁场与电磁波》2021-2022学年期末试卷
- 淮阴工学院《移动平台应用开发》2023-2024学年期末试卷
- 淮阴工学院《外国文学》2022-2023学年第一学期期末试卷
- DB3711-T 157-2024苹果生产社会化服务规范
- 学前教育:安全礼仪不玩餐具教案
- 中地数码集团实习报告
- 合成材料制造中的绿色工艺与生产方式考核试卷
- 部编版小学语文三年级上册基础知识试题含答案(全册)
- S7-1200PLC技术及应用 课件 项目17 步进电机控制
- 2024年中国老年糖尿病诊疗指南解读(2024年版)
- 《生物技术制药》课程介绍与教学大纲
- 第30课 家居收纳技巧 课件 2023-2024学年苏教版初中劳动技术七年级上册
- 2024年福建漳平闽投抽水蓄能有限公司招聘笔试冲刺题(带答案解析)
- 2024中国一汽校园招聘1000+岗位高频考题难、易错点模拟试题(共500题)附带答案详解
- GB/T 19533-2024汽车用压缩天然气钢瓶定期检验与评定
- MH-T 5011-2019民用机场沥青道面施工技术规范
- 安捷伦气相色谱仪原理
- 在线网课学习知道《婺文化英语教程(上海财大浙江学院)》单元测试考核答案
评论
0/150
提交评论