计算机程序设计语言课程设计报告

  • 格式:doc
  • 大小:692.00 KB
  • 文档页数:12

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机程序设计(C语言) 课程设计报告

题目:电子动画时钟

学院:机电工程学院

专业:

班级:090109班

学号:

姓名:

指导教师:

设计日期:

一、概述

选题背景:随着社会的进步和科技的发展,电子钟表逐渐成为了人们生活中不可缺少的一部分。设计思路:(一)功能模块设计,1.电子时钟执行主流程2.电子时钟界面显示3.电子时钟按键控制模块4.时钟动画处理模块(二)数据结构设计结构体2.全局变量(三)函数功能描述()()()()()() clockhandle()()(四)程序实现(五)运行结果。

二、概要设计

、数据结构

此程序中,使用了C语言的time结构体和几个全局变量,结构体

struct time

{

unsigned char ti_min; /*分钟*/

unsigned char ti_hour; /*小时*/

unsigned char ti_hund; /*百分之一秒*/

unsigned char ti_sec; /*秒*/

};

time结构体定义在文件中,可用来保存系统的当前时间,其中各字段的值的含义如下。

char ti_min:保存分钟值。

char ti_hour:保存小时。

char ti_hund:保存百分之一秒,例如,ti_hund=500,表示1/500秒。

char ti_sec:保存秒数。

、全局变量

下面对程序用到的全局变量及数组进行说明.

1. double h,m,s: 此3个全局变量分别用来保存小时,分钟,秒数。

2. double x,x1,x2,y,y1,y2:保存数字时钟中小时,分,秒在屏幕中显示的坐标值。

time t[1]:定义一个time结构类型的数组,此数组只有t[0]一个元素。

模块列表

1.时钟动画处理模块

时钟动画处理模块主要由clockhandle()函数来实现,程序中旧时钟指针的擦除是借助setwritemode(mode)函数设置画线的方式来实现。如果mode=1,则表示画线时用现在特性的线所画之处原有的线性异或(XOR)操作,实际上画出的线是原有线与现在规定的线进行异或后的结果。因此,当线的特性不变时,进行两次画线操作相当于没有画线,即在当前位置处清除了原来的画线。

2.时钟按键控制模块

在电子时钟中,按键控制模块最主要的工作就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作。

3.

数字时钟处理模块

(1)调用digitclock(int x,int y,int clock)函数。在数字时钟r指定位

置显示时,分,秒,其中digithour(double h),int digitour(double h)和digitsec(doubles)用于完成数值的double型向int型转换。

(2)调用drawcursor(int count),clearcursor(int count)函数来完成旧光标的擦除和新光标的绘制。

、程序结构图(也就是模块之间的关系)

三、详细设计

程序预处理模块。包括加载头文件,定义常量,变量,结构体数组和函数原型声明。主控模块main().main()函数主要实现了对电子时钟的初始化工作,及clockhandle()函数的调用。

时钟动画处理模块。

时针按键控制模块。在电子时钟中,按键控制模块最主要的工作就是必须能读取用户按键,对按键值进行判断,并调用相应函数来执行相关操作。流程图如下。

数字时针处理模块。在数字时钟处理模块中,主要实现数字时钟的显示和数字的时钟修改。其中,在数字时钟的修改中,用户可以按Tab键定位需要修改的内容的位置,然后通过按光标上移或下移键来修改时间。

四、调试程序

错误1:

错误现象:Declaration syntan error

错误原因:声明错误,缺分号。

修改方法:在声明语句后添加分号。

错误2:

错误现象:Two few parameters in call to ‘setlinestyle’ in function main

错误原因:语句缺少参数。

修改方法:在main()函数中找到缺少参数的语句添加相应的参数。

错误3:

错误原因:Function call missing)in function clockhandle

错误原因:在clockhandle函数调用的是后函数表达式缺少一个)。

修改方法:找到错误语句添加缺少的表达式符号。

五、心得总结

程序优点:本程序旨在训练学生的基本编程能力,本程序中涉及时间结构体,数组,绘图等方面的知识,通过本程序的训练使学生能对C语言有一个更深刻的了解。掌握利用C语言相关函数开发电子时钟的基本原理,为进一步开发出高质量的程序打下坚实的基础。

程序缺点:程序各个模块之间的控制连接比较繁琐,容易出现错误。

六.附程序清单

#include<>

#include<>

#include<>

#include<>

#define PI

#define UP 0x4800

#define DOWN 0x5000

#define Esc 0x11b

#define TAB 0xf09

int keyhandle (int,int);

int timeupchange (int);

int timedownchange (int);

int digithour (double);

int digitmin (double);

int digitsec (double);

void digitclock (int,int,int);

void drawcursor (int) ;

void clearcursor (int) ;

void clockhandle () ;

double h,m,s ;

double x,x1,x2,y,y1,y2;

struct time t[1] ;

main()

{

int driver,mode=0,i,j;

driver =DETECT;

initgraph (&driver, &mode,"c:\\tc");

setlinestyle (0,0,3);

setbkcolor(0);

line(82,430,558,430);

line(70,62,70,418);

line(82,50,558,50);

line(570,62,570,418);