c语言程序设计—时钟旋转模型

合集下载

模拟时钟转动程序

模拟时钟转动程序

东南大学C语言课程设计报告课程名称:计算机综合课程设计学院:土木工程学院设计题目:模拟时钟转动程序级别: B级学生姓名:韦信丞学号: 05114419 同组学生:学号:指导教师:郭恒宁2015年 9 月 1 日C语言课程设计任务书模拟时钟转动程序一、课程设计的内容1、能模拟机械钟表行走2、还要准确利用数字显示日期和时间3、在屏幕上显示一个活动时钟4、按任意键时程序退出。

二、课程设计应完成的工作1、编写完成相应题目的程序2、编写课程设计报告,课程设计报告应该包含以下6部分1)需求分析:包括设计题目、设计要求以及系统功能需求分析2)总体设计:包括系统总体设计框架和系统功能模块图3)详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图4)调试分析过程描述:包括测试数据、测试输出结果以及对程序测试过程中存在问题进行思考(主要问题的出错现象、出错原因、解决方法及其效果等,相应效果截图)5)总结:课程设计完成了哪些主要功能,是否有扩展功能?还有哪些地方需要改进?课程设计的学习与体会?有哪些合理化建议?6)附录:主要原程序代码含必要的注释3、答辩:在实验室建立程序运行环境,并在指导教师的监督下,独立解决问题,运行程序和回答教师的提问。

四、应收集的资料及其主要参考文献[1]谭浩强.C程序设计(第四版),北京:清华大学出版社,2010年6月[2]陈清华朱红 . C语言课程设计案例精选与编程指导(第一版),南京:东南大学出版社,2003年6月[3]顾小晶 . 实用C语言简明教程(第一版),北京:中国电力出版社,2003年9月目录1.设计目的与要求 (4)2.总体设计 (5)3.详细设计 (6)3.1画出钟表的轮廓3.2获取系统时间4.调试分析 (7)5.总结 (10)6.附录(程序) (11)7.答辩记录(正文处留出适当空白) (15)8.指导教师意见(正文处留出适当空白) (16)1.目的与要求要求:1、能模拟机械钟表行走2、还要准确利用数字显示日期和时间3、在屏幕上显示一个活动时钟4、按任意键时程序退出。

模拟时钟转动程序课程设计报告

模拟时钟转动程序课程设计报告

《高级语言》课程设计课题名称模拟时钟转动程序学院信息工程专业网络工程地点 D507 学生姓名钟都华学号 13046130 开课时间 2013 至 2014 学年第 2 学期同组人李卓成绩一、课程设计的目的和要求1.课程设计的目的本程序旨在训练读者的基本编程能力,使读者熟悉C语言图形模式下的编程。

本程序中涉及时间结构体、数组、绘图等方面的知识。

通过本程序的训练,使读者能对C 语言有一个更深刻的了解,掌握利用C语言相关函数开发电子时钟的基本原理,为进一步开发出高质量的程序打下坚实的基础。

2.课程设计的要求能模拟机械钟表行走;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;要准确的利用数字显示日期和时间并且可以根据用户的需求更改当前时间(指针式时钟与数字式时钟实现同步更改);数字式时钟的时间显示与指针式时钟显示一致;可以通过上下键改变当前的时、分、秒;改的时间是小时、分钟、还是秒数;通过Tab键切换按Esc时程序退出。

二、设计如下图,此电子时钟主要由以下4个功能模块组成。

1.界面显示模块电子时钟界面显示在调用时钟运行处理之前完成,在这里主要调用了C语言图形系统函数和自负屏幕处理函数画出时钟程序的主界面。

主界面包括类似Windows自带的电子时钟的界面和帮助界面两部冯。

电子时钟界面包括一个模拟时钟运转的钟表和一个显示时间的数字钟表。

在帮助界面中,主要包括一些按键的操作说明。

2.按键控制模块按键控制模块主要完成两大部分功能。

第一,读取用户按键的键值。

第二,通过对键盘按键值得判断,执行相应的操作,如光标移动、修改时间。

3.时钟动画处理模块在时钟动画处理模块中,它通过对相关条件的判断和时钟坐标值的计算,完成时、分、秒指针的擦除和重绘,以达到模拟时钟运转的功能。

4.数字时钟处理模块在数字时钟处理模块中,它主要实现了数字时钟的显示和数字时钟的修改。

其中,用户可先按Tab键定位需要修改内容的位置,然后通过按光标上移()或下移(功能模块设计1.电子时钟执行主流程此电子时钟执行主流程如右图所示。

模拟时钟转动程序

模拟时钟转动程序

课程设计课程名称高级语言程序课程设计题目名称模拟时钟转动程序学生学院自动化学院专业班级自动化06级(2 )班学号 3106000858 学生姓名霍杰英指导教师杨其宇2007年6月18日广东工业大学课程设计任务书题目名称模拟时钟转动程序学生学院自动化学院专业班级自动化06级(2 )班姓名霍杰英学号3106000858一、课程设计的内容要求:能模拟机械钟表行走,还要准确地利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。

二、课程设计的要求与数据1、进一步掌握和利用C语言进行程设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程序设计开发文档的能力。

三、课程设计应完成的工作1、编写完成相应题目的程序;2、编写课程设计报告,课程设计报告的内容应包括以下6个部分:1) 需求分析:包括设计题目、设计要求以及系统功能需求分析;2) 总体设计:包括系统总体设计框架和系统功能模块图;3) 详细设计:包括主要功能模块的算法设计思路以及对应的工作流程图;4) 调试分析过程描述:包括测试数据、测试输出结果,以及对程序调试过程中存在问题的思考(列出主要问题的出错现象、出错原因、解决方法及效果等,适当的包含结果截图);5) 总结:课程设计完成了哪些功能,有没有什么扩展功能?还有哪些地方需要改进?课程设计过程中的学习体会与收获、对本次课程设计的认识以及自己的建议等内容;6) 附录:主要源程序代码,含必要的注释。

3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解决问题、运行程序和回答教师提出的问题。

四、课程设计进程安排五、应收集的资料及主要参考文献[1] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9[2] 谭浩强. C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,2005.7[3] 夏宝岚张慕蓉夏耘.程序设计教程(第二版)[M],上海:华东理工出版社,2003.1[4] 陈锦昌赵明秀.c语言计算机绘图教程(第一版)[M],广州:华南理工大学出版社,1998.9[5] /course/3_program/c/cshl/2007213/21159.html发出任务书日期:2007年 6 月18 日指导教师签名:计划完成日期:2007年 6 月22 日基层教学单位责任人签章:主管院长签章:目录1 设计目的与要求 (5)2 总体设计 (6)3 详细设计 (7)功能模块设计 (7)3.1画出钟表的轮廓 (7)3.2获取系统时间 (7)3.3让时间和声音动起来 (7)4调试分析 (8)5 总结 (11)6 附录 (12)7 答辩记录 (16)8 指导教师意见 (17)1 目的与要求(1) C题目二十九: 模拟时钟转动程序要求:能模拟机械钟表行走,还要准确地利用数字显示日期和时间,在屏幕上显示一个活动时钟,按任意键时程序退出。

电子钟设计c语言设计

电子钟设计c语言设计

电子钟设计c语言设计电子钟是一种使用数字或者模拟显示时间的时钟。

它通常使用数字显示屏或者液晶屏来显示时间。

电子钟的优势在于与传统机械钟相比,它更加准确、可靠、精准和方便。

通过使用c语言来设计电子钟可以使它更加智能化和强大。

我们知道,c语言是一种通用的高级编程语言,它非常适合用于系统编程和应用程序开发。

电子钟的设计需要运用c语言的数据结构、算法、指针和其他通用编程技术。

设计一个可靠的电子钟需要考虑到准确显示时间、时区调整、闹钟功能、定时器和更多的功能。

在设计电子钟时,我们首先需要考虑到选择合适的开发平台和硬件选型。

例如,我们可以使用Arduino或者Raspberry Pi 等开发板来设计电子钟。

这些开发板既能提供强大的计算能力,又可以提供足够的GPIO引脚和通信接口。

同时,我们还需要选择合适的时钟模块,例如DS1307、DS3231和DS1302等。

接下来,我们可以考虑设计程序框架。

设计程序框架需要考虑到用户需求,从而使程序有条不紊地进行。

我们可以设计菜单选项来满足用户需求,例如时钟显示、日期显示、温度显示等等。

此外,还可以考虑添加一些有趣的功能,例如给予经度和纬度计算日出日落时间以及天气预报等。

电子钟的时间显示通常使用RTC模块与单片机进行通信。

RTC模块可以提供秒、分、时、日、月、年等时间数据。

我们需要从RTC模块读取这些数据,并将它们转换成格式化的字符串进行显示。

我们还需要考虑到时区的调整,以便在不同时区下准确显示时间。

闹钟功能是电子钟的一个重要特性。

我们可以设计界面来设置闹钟时间和日期。

当闹钟响起时,电子钟可以触发警报并发出声音或声音和振动提醒。

我们还可以增加关闭闹钟的选项,以便用户可以在闹钟响起时快速关闭它。

另一个特色功能是定时器,它可以用来进行倒计时或计时操作。

我们可以使用按钮或者旋转编码器来设置定时器时间。

定时器可以在倒计时或计时完成时发出警报来通知用户,以便执行相应的操作。

最后,我们需要考虑到电子钟的可扩展性和灵活性。

用c语言实现钟表

用c语言实现钟表
要使用 C 语言编写一个简单的钟表程序,你可以按照以下步骤进行:
1. 引入所需的头文件:你需要引入一些头文件来实现程序的功能,例如 stdio.h、stdlib.h、time.h 等。
2. 定义程序的数据结构:你可以定义一个结构体来表示钟表的时间,包括时、分、秒等字段。
3. 获取当前时间:使用 time 函数获取当前系统时间,并将其转换为时、分、秒等字段。
localTime->tm_sec);
22.
23.
// 暂停一秒钟
Байду номын сангаас
24.
sleep(1);
25. }
26.
27. return 0;
28. }
29. 这个程序会不断获取当前系统时间,并输出格式为"时:分:秒"的钟表界面。程序会每 秒钟更新一次时间,并在终端上显示。你可以根据需要进行适当的修改和扩展,例
time_t currentTime = time(NULL);
17.
struct tm *localTime = localtime(&currentTime);
18.
19.
// 输出钟表界面
20.
system("clear"); // 清屏(适用于 Linux 和 Mac)
21.
printf("%02d:%02d:%02d\n", localTime->tm_hour, localTime->tm_min,
7. 下面是一个简单的 C 语言实现钟表的代码示例:
8. c 复制代码
9. #include <stdio.h>
10. #include <stdlib.h>

C语言运动的时钟

C语言运动的时钟

#include <graphics.h>#include <windows.h>#include <conio.h>#include <math.h>#define PI 3.1415926int main(void) //函数原型声明{voidDralDial();voidDrawHand(inthour, int minute, int second);initgraph(600, 600); //初始化600×600的绘图窗口setbkcolor(LIGHTMAGENTA); //设置背景色cleardevice(); //清空屏幕DralDial(); //画表盘setcolor(MAGENTA); //刻字outtextxy(235, 160, " 韩晶");outtextxy(235, 130, " 数计学院");outtextxy(235, 100, "武汉轻工大学");setwritemode(R2_XORPEN); //设置异或绘图方式SYSTEMTIME t; //定义变量保存当前时间while(!kbhit()){GetLocalTime(&t); //获取当前时间DrawHand(t.wHour, t.wMinute, t.wSecond); //画表针 Sleep(1000);DrawHand(t.wHour, t.wMinute, t.wSecond); //擦表针}closegraph(); //关闭绘图窗口return 0;}void DralDial() /*画表盘*/{inti;int x1, y1, x2, y2,x3,y3; //表心坐标系坐标char rome[][3]= {"12","1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11" } ; //数字setcolor(LIGHTGRAY); //画圆circle(300, 300, 250);circle(300, 300, 260);for(i = 0; i< 59; i++) // 画60条短线{setcolor(LIGHTGRAY);x1 = (int)(300 + (sin(i * PI / 30) * 250));y1 = (int)(300 - (cos(i * PI / 30) * 250));x2 = (int)(300 + (sin(i * PI / 30) * 260));y2 = (int)(300 - (cos(i * PI / 30) * 260));line(x1, y1, x2, y2);if(i%5==0){x3 = (int)(290 + (sin((i - 0.2) * PI / 30) * 220));y3 = (int)(290 - (cos((i - 0.2) * PI / 30) * 220));setcolor(YELLOW); //写表盘数字setfont(24, 0, "黑体");outtextxy(x3 , y3, rome[i / 5]);}}}void DrawHand(int hour, int minute, int second) //画指针{intxhour, yhour, xminute, yminute, xsecond, ysecond; //表心坐标系指针坐标 xhour = (int)(130 * sin( hour * PI / 6 + minute * PI / 360 + second * PI / 1800));yhour = (int)(130 * cos( hour * PI / 6 + minute * PI / 360 + second * PI / 1800));xminute = (int)(145 * sin( minute * PI / 30 + second * PI / 1800));yminute = (int)(145 * cos( minute * PI / 30 + second * PI / 1800));xsecond = (int)(200 * sin( second * PI / 30));ysecond = (int)(200 * cos( second * PI / 30));// setlinestyle(PS_SOLID, NULL, 10); //画时针setcolor(LIGHTGREEN);line(300 + xhour, 300 - yhour, 300 -xhour / 6, 300 + yhour / 6);// setlinestyle(PS_SOLID, NULL, 7); //画分针setcolor(LIGHTCYAN);line(300 + xminute, 300 - yminute, 300 -xminute / 4, 300 + yminute / 4);// setlinestyle(PS_SOLID, NULL, 3); //画秒针setcolor(RED);line(300 + xsecond, 300 - ysecond, 300 -xsecond / 3, 300 + ysecond / 3); }。

C语言模拟时钟转动程序

C语言模拟时钟转动程序
{
int x,y,i,k=1;
int gdriver=9,gmode=2;
unsigned char h,m,s;
int o,p,q;
float n;
struct time t[1];
struct date d[1];
initgraph(&gdriver,&gmode,"c:\\tc");
initgraph(&gdriver,&gmode,"c:\\tc");
#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y)
void init() /*划时钟边框函数*/
{
int i,l,x1,x2,y1,y2;
setbkcolor(1);
circle(300,240,200);
circle现方式做保护处理对用户上传分享的文档内容本身不做任何修改或编辑并不能对任何下载内容负责
模拟时钟转动程序
1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111
d(150,n,30); /*画出时针*/
setcolor(14); /*设置分针颜色*/
d(170,m,6); /*画出分针*/
setcolor(4); /*设置秒针颜色*/
d(190,s,6); /*画出秒针*/
while(!kbhit()) /*控制程序按下任意键退出*/
{
while(t[0].ti_sec==s)
o=d[0].da_year;
p=d[0].da_mon;

C语言模拟时钟转动课设报告-附代码

C语言模拟时钟转动课设报告-附代码

模拟时针转动程序姓名:学号:完成日期:2012年12月设计目的加深对讲授内容的理解,尤其是一些语法规定。

通过课程设计,自然地、熟练地掌握。

熟悉所用的计算机系统的操作方法,也就是熟悉语言程序开发的环境。

学会上机调试程序。

熟悉C语言图形模式下的编程,掌握利用C语言相关函数开发电子时钟的基本原理。

能模拟机械钟表行走;要准确地利用数字显示时间;在屏幕上显示一个活动时钟;程序界面设计合理,色彩得体大方,显示正确;各指针运动规律正确;数字式时钟的时间显示与指针式时钟显示一致。

总体设计电子时钟的功能描述电子时钟流程图模块描述动画处理模块在屏幕上显示sin和cos型的动态函数图像,显示运动的问候语。

转时针动处理模块指针式的时钟表盘为椭圆形并且圆周上有分布均匀的12个刻度刻度显示清楚钟面上有长度不相同的指针即时针、分针、秒针指针的运动具有规律性为顺时针。

数字时钟处理模块数字钟显示时间的格式是年月日时分秒小时为24进制,分钟和秒是60进制,指针式的时钟和数字式的时钟显示的时间同步且两个时钟所显示的时间与计算机的系统时间一致。

详细设计time结构体strume time{usigned char ti_min;usigned char ti_hour;usigned char ti_hud;usigned char ti_sec;};time 结构体定义在dos.h文件中,可以保存系统的当前时间。

全局变量double h,m,s;这三个变量分别保存小时,分钟,秒。

double x,y,x1,y1,x2,y2;保存数字时钟中小时分钟秒在屏幕中显示的位置。

struct time t[1];定义一个time结构类型的数组。

函数功能的描述1.def()函数原型: void def()def()函数是用来输出一组彩带的,通过输入位置和颜色的变化来输出sin型的彩带,且在整个函数中保留结果。

2. abc()函数原型: void abc()abc()函数是用来在退出系统是输出运动的问候语,函数类型单一且比较简单。

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

计算机物理建模课程设
计报告
题目:时钟旋转模拟
学院:理学院
专业:物理学
班级:2010126156
姓名:黄帅
指导教师:杨先卫
设计日期:2012年4月30日
一.选题背景:在现代社会里,科学技术高度发展,特别是计算机技术开发突飞猛进,大量的网络设计,计算机程序设计应运而生,并且在多方面领域得到广泛的应用。

现在利用C语言程序来解释一些物理现象,通过学习语言,我们了解了C语言的语言编程的过程。

下面是利用C语言程序来模拟时钟旋转。

二.设计思想:程序在C语言环境下,调用大量库函数,图形函数,数学函数,还有for语句do while等循环语句
三. 主要解决问题的方法及技术关键.
1、主要问题及解决方法:
主要调用到graphics.h,math.h,dos.h等重要库函数,运用循环体等进行编译。

2.技术关键
掌握for语句do while等循环语句的运用,及图形函数,数学函数等函数的应用。

三、程序流程
开始——初始化图形设计——设置窗体的背景色、前景色及画笔——画出时钟的框架、标题及分秒的刻度——调用时钟处理程序——获取当前时间并显示——调用消息处理函数刷新窗口显示——判断修改是增
加还是减少——退出(Esc)
四.程序清单:
#include<graphics.h>
#include<math.h>
#include<dos.h>
#define pi 3.1415926
#define X(a,b,c) x=a*cos(b*c*pi/180-pi/2)+300;
#define Y(a,b,c) y=a*sin(b*c*pi/180-pi/2)+240;
#define d(a,b,c) X(a,b,c);Y(a,b,c);line(300,240,x,y) void init()
{int i,l,x1,x2,y1,y2;
setbkcolor(1);
circle(300,240,200);
circle(300,240,205);
circle(300,240,5);
for(i=0;i<60;i++)
{if(i%5==0) l=15;
else l=5;
x1=200*cos(i*6*pi/180)+300;
y1=200*sin(i*6*pi/180)+240;
x2=(200-l)*cos(i*6*pi/180)+300;
y2=(200-l)*sin(i*6*pi/180)+240;
line(x1,y1,x2,y2);
}
}
main()
{
int x,y;
int gd=VGA,gm=2;
unsigned char h,m,s;
struct time t[1];
initgraph(&gd,&gm,"d:\\wintc\\bgi"); init();
setwritemode(1);
gettime(t);
h=t[0].ti_hour;
m=t[0].ti_min;
s=t[0].ti_sec;
setcolor(7);
d(150,h,30);
setcolor(14);
d(170,m,6);
setcolor(4);
d(190,s,6);
while(!kbhit())
{while(t[0].ti_sec==s)
gettime(t);
sound(400);
delay(70);
sound(200);
delay(30);
nosound();
setcolor(4);
d(190,s,6);
s=t[0].ti_sec;
d(190,s,6);
if (t[0].ti_min!=m)
{
setcolor(14);
d(170,m,6);
m=t[0].ti_min;
d(170,m,6);
}
if (t[0].ti_hour!=h)
{ setcolor(7);
d(150,h,30);
h=t[0].ti_hour;
d(150,h,30);
sound(1000);
delay(240);
nosound();
delay(140);
sound(2000);
delay(240);
nosound();
}
}
getch();
closegraph();
}
六、设计结果说明
1、设计优点:整个程序过程简单明了,容易理解,而
且操作简单。

并且运用了简单的C语言知识,巩固C语
言运用的目的。

2、设计不足:由于对C语言了解的得还不够深入,
所以程序的某些地方还有些不足,要想效果更加好,还需
加以修改。

七 .在设计过程中的感受:
首先经过两周的编程实习,并在后一段的报告总结,我对
C语言这门科有新的认识,本人实在是获益不浅!要想编
写一个准确、高效并有使用价值的程序,一定先要对课本
知识熟悉,还要掌握必要的上机操作能力,写程序其实很
容易而关键在于调试程序。

这次设计,让我重新掌握了C语
言,而且还得到了用C语言解决实际问题的宝贵经验。

其次, 通过此次编程我也发现了自己在学习中的错误和不足,复习了以前学过的知识。

同时也学到了一些没学过的知识,让我从中收益非浅,也为期末考试准备了一下!更重要的是培养了独立思考问题和解决问题的能力,熟悉了一些基本操作和解决问题的方法!
再则, 因为初次接触等原因此次设计遇到了许多问题,我深刻体会到老师发挥的重要作用,C语言程序对我们来说比较难,在匆忙的学习中更是难上加难,似乎觉得自己仅是个匆匆过客,但在老师的帮助下我学会了如何调试,如何查找系统没有提示的错误,最后终于排除万难把程序搞定,体会到原来编程也挺有意思的快感.我想没有老师的帮助我很难在短期内把程序设计做的这样好,在此特地感谢老师的帮助。

相关文档
最新文档