1、图形学课程设计课程设计任务书 题目: 电子时钟 学 号 姓 名 专 业 课 程 计算机图形学 指导教师 职称 完成时间:2010 年 12 月-2010 年12 月枣庄学院计算机科学系制课程设计任务书及成绩评定课程设计的任务和具体要求运用图形学所学的知识,使用c语言编写一个图形动画,使自己更好的了解计算机图形学的相关原理,和基本图形的显示和设计方法。指导教师签字: 日期: 指导教师评语成绩: 指导教师签字: 日期: 课程设计所需软件、硬件等WinTC课程设计进度计划起至日期工作内容备注2010-12-152010-12-202010-12-212010-12-26准备资料完成设计参考文献、资料
2、索引序号文献、资料名称编著者出版单位1 计算机图形学教程 孙正兴 机械工业出版社2 计算机图形学理论与实践 李春雨 北京航空航天大学出版社第1章 总体设计1.1、过程流程图1.2、使用库函数1. textbackground()选择新的文本背景颜色 void textbackground(int color); 2. clrscr()清屏函数3. gotoxy() 定位光标void gotoxy(int x, int y); 4. textcolor(); 选择新的文本数字颜色 void textcolor (int color);1.3、运行结果第3章 详细代码#include #inclu
3、de #include #include typedef struct int x; int y; Point; time_t now; struct tm *pt,t1,t2; int printpoint(Point p) Point p1; p1.x=p.x+2; p1.y=p.y+4; gotoxy(p1.x,p1.y); printf(%c%c,2,2); gotoxy(p1.x, p1.y+1); printf(%c%c,2,2); p1.y+=4; gotoxy(p1.x,p1.y); printf(%c%c,2,2); gotoxy(p1.x,p1.y+1); printf(%
4、c%c,2,2); return 0; int print0(Point p) int i=0; for(;i13;i+) gotoxy(p.x+1, p.y+i); if(i=0|i=12) printf(%c%c%c%c%c%c,2,2,2,2,2,2); else printf(%c%4s%c,2, ,2); return 0; int print1(Point p) int i=0; for(;i13;i+) gotoxy(p.x+1, p.y+i); printf(%5s%c, ,2); return 0; int print2(Point p) int i=0; for(;i0&i
5、6) printf(%5s%c, ,2); else printf(%c,2); return 0; int print3(Point p) int i=0; for(;i13;i+) gotoxy(p.x+1, p.y+i); if(i=0|i=6|i=12) printf(%c%c%c%c%c%c,2,2,2,2,2,2); else printf(%5s%c, ,2); return 0; int print4(Point p) int i=0; for(;i13;i+) gotoxy(p.x+1, p.y+i); if(i6) printf(%c%4s%c,2, ,2); else i
6、f(i=6) printf(%c%c%c%c%c%c,2,2,2,2,2,2); else printf(%5s%c, ,2); return 0; int print5(Point p) int i=0; for(;i0&i6) printf(%c,2); else printf(%5s%c, ,2); return 0; int print6(Point p) int i=0; for(;i0&i6) printf(%c,2); else printf(%c%4s%c,2, ,2); return 0; int print7(Point p) int i=0; for(;i13;i+) g
7、otoxy(p.x+1, p.y+i); if(i=0) printf(%c%c%c%c%c%c,2,2,2,2,2,2); else printf(%5s%c, ,2); return 0; int print8(Point p) int i=0; for(;i13;i+) gotoxy(p.x+1, p.y+i); if(i=0|i=6|i=12) printf(%c%c%c%c%c%c,2,2,2,2,2,2); else printf(%c%4s%c,2, ,2); return 0; int print9(Point p) int i=0; for(;i0&i6) printf(%c
8、%4s%c,2, ,2); else printf(%5s%c, ,2); return 0; int clear(Point p) int i=0; for(;i13;i+) gotoxy(p.x,p.y+i); printf(%16s, ); return 0; int printtime(Point p, int n) int a,b; Point pp; a=n/10, b=n%10; pp.x=p.x+8, pp.y=p.y; switch(a) case 0: print0(p); break; case 1: print1(p); break; case 2: print2(p)
9、; break; case 3: print3(p); break; case 4: print4(p); break; case 5: print5(p); break; switch(b) case 0: print0(pp); break; case 1: print1(pp); break; case 2: print2(pp); break; case 3: print3(pp); break; case 4: print4(pp); break; case 5: print5(pp); break; case 6: print6(pp); break; case 7: print7
10、(pp); break; case 8: print8(pp); break; case 9: print9(pp); break; return 0; int main() Point phour, pmin, psec,point1,point2; phour.x=9, pmin.x=32, psec.x=55; phour.y=pmin.y=psec.y=7; point1.x=25, point2.x=49; point1.y=point2.y=7; clrscr(); textbackground(GREEN); /* 设置背景颜色*/ textcolor(RED); /* 设置数字
11、显示颜色*/ now=time(0); pt=localtime(&now); t1=*pt; printtime(phour, t1.tm_hour); printpoint(point1); printtime(pmin, t1.tm_min); printpoint(point2); printtime(psec, t1.tm_sec); while(1) now=time(0); pt=localtime(&now); t2=*pt; if(t2.tm_sec!=t1.tm_sec) t1=t2; clrscr(); printtime(phour, t1.tm_hour); printpoint(point1); printtime(pmin, t1.tm_min); printpoint(point2); printtime(psec, t1.tm_sec); if(bioskey(1)=0) continue; else exit(0); return 0; 第4章 总结在本次课程设计中,通过自己的所学的知识,并在同学的帮助下,完成这个设计。在做这个设计的这段时间里,我学到了我以前没有学到的知识,并巩固了掌握并不牢靠的知识。对c语言图形学有了更深的认识,受益匪浅。