計算機程式設計 C語言 課程設計報告

2021-07-07 10:47:20 字數 3638 閱讀 6494

課程設計報告

題目:電子動畫時鐘

學院: 機電工程學院

專業:班級:090109班

學號:姓名:

指導教師:

設計日期:

一、概述

選題背景 :隨著社會的進步和科技的發展,電子鐘錶逐漸成為了人們生活中不可缺少的一部分。設計思路:

(一)功能模組設計,1.電子時鐘執行主流程2.電子時鐘介面顯示3.

電子時鐘按鍵控制模組4.時鐘動畫處理模組(二)資料結構設計1.time結構體2.

全域性變數(三)函式功能描述1.keyhandle()2.timeupchange()3.

timedownchange()4.digitclock()5.drawcursor()6.

clearcursor()7.void clockhandle()8.main()(四)程式實現(五)執行結果。

二、概要設計

2.1、資料結構

此程式中,使用了c語言的time結構體和幾個全域性變數,1.time結構體

struct time

;time結構體定義在dos.h檔案中,可用來儲存系統的當前時間,其中各字段的值的含義如下。

1.unsigned char ti_min:儲存分鐘值。

2.unsigned char ti_hour:儲存小時。

3.unsigned char ti_hund:儲存百分之一秒,例如,ti_hund=500,表示1/500秒。

4.unsigned char ti_sec:儲存秒數。

2.2、全域性變數

下面對程式用到的全域性變數及陣列進行說明.

1. double h,m,s: 此3個全域性變數分別用來儲存小時,分鐘,秒數。

2. double x,x1,x2,y,y1,y2:儲存數字時鐘中小時,分,秒在螢幕中顯示的座標值。

3.struct time t[1]:定義乙個time結構型別的陣列,此陣列只有t[0]乙個元素。

2.3 模組列表

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)函式來完成舊游標的擦除和新游標的繪製。

2.4、程式結構圖(也就是模組之間的關係)

三 、詳細設計

3.1程式預處理模組。包括載入標頭檔案,定義常量,變數,結構體陣列和函式原型宣告。

3.2主控模組main().main()函式主要實現了對電子時鐘的初始化工作,及clockhandle()函式的呼叫。

3.3時鐘動畫處理模組。

3.4時針按鍵控制模組。在電子時鐘中,按鍵控制模組最主要的工作就是必須能讀取使用者按鍵,對按鍵值進行判斷,並呼叫相應函式來執行相關操作。流程圖如下。

3.5數字時針處理模組。在數字時鐘處理模組中,主要實現數字時鐘的顯示和數字的時鐘修改。

其中,在數字時鐘的修改中,使用者可以按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 3.1415926

#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()

setcolor(15) ;

line(424,315,424,325);

for(i=0,m=0,h=0;i<=11;i++,h++)

for(i=0,m=0 ;i<=59;m++,i++)

setcolor(4) ;

outtextxy(182,125, "help" ) ;

setcolor(5) ;

outtextxy(140,185, "tab :cursor move ") ;

outtextxy(140,225, "up : time ++") ;

outtextxy(140,265, "down : time--") ;

outtextxy(140,305, "esc : quit system! " ) ;

outtextxy(140,345, "version : 2.0") ;

setcolor(12);

outtextxy(150,400, "nothing is more important than time !" ) ;

clockhandle() ;

計算機程式設計c語言課程設計報告

課程設計報告 題目 學院 專業 班級 姓名 指導教師 答辯日期 一 選題背景 問題提出 在應用電腦的過程中,往往需要使用計算器,來執行簡單的運算,但系統提供的計算功能過於煩瑣,而且有些程式並不提供計算功能。為此,這裡用c語言編制了幾個函式,用於程式中時,可達到計算的目的.二 設計思路 簡單的計算器是...

《C語言程式設計》課程設計報告模版

寧波工程學院 2013 2014 學年第二學期 電信學院 c語言課程設計報告 題目班級 姓名學號 指導教師 2014 年 6 月 目錄 2 1 系統功能和結構 3 1.1系統設計目的 3 1.2系統功能分析 3 1.3系統結構分析 3 2 核心技術介紹 3 3 函式功能介紹 3 4 設計體會及總結 ...

C語言程式設計課程設計報告 內容要求

摘要主要內容為本課程設計報告的簡單說明 主要寫三個方面 做的什麼 最麼做的 設計的程式能幹什麼,200 關鍵詞 陣列 檔案 消費管理 3 5個關鍵字,與本報告有關 目錄1 需求分析 主要介紹該軟體具有哪些詳細的功能,及軟體的介面要求 資訊儲存要求等 要把軟體的所有的功能全部寫在該部分 2 系統分析與...