C语言课设倒计时Word文档格式.docx
- 文档编号:21837420
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:12
- 大小:59.43KB
C语言课设倒计时Word文档格式.docx
《C语言课设倒计时Word文档格式.docx》由会员分享,可在线阅读,更多相关《C语言课设倒计时Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
(4)目录
(5)正文
(6)主要参考文献
(4)课程设计评分标准
(1)达到课程设计的目的与要求,程序的可读性较好,并调试正确,60分;
(2)能正确回答老师所提问题,可增加10分;
(3)课程设计报告书写规范整齐,可增加10分;
(4)心得体会认真总结,可增加10分;
(5)程序有创新性,可增加10分;
成绩评定实行优秀、良好、中等、及格和不及格五个等级。
不及格者需重做。
(5)课程设计进度安排
(1)准备阶段(6学时):
选择设计题目、了解设计目的要求、查阅相关资料。
(2)程序模块设计分析阶段(8学时):
程序总体设计、详细设计。
(3)代码编写调试阶段(10学时):
程序模块代码编写、调试、测试。
(4)撰写论文阶段(6学时):
总结课程设计任务和设计内容,撰写课程设计论文。
学生签名:
2013年1月6日
课程设计(论文)评审意见
(1)态度评价(20分):
优( )、良( )、中( )、一般( )、差( );
(2)任务难度(20分):
(3)设计分析(20分):
(4)创新性评价(20分):
(5)回答问题(20分):
(6)论文格式规范性及考勤是否降等级:
是( )、否( )
评阅人:
职称:
副教授
2013年1月12日
目 录
第1章系统概要
求两段时间的时间差
基本思路是通过循环对当前时间进行1秒1秒的叠加,统计叠加的秒,直到当前时间与考试时间相等,停止循环,并把统计的秒换算成天、时、分、秒的组合并输出。
最后程序使用者还可以选择是否对输出的时间进行倒数。
设计中可能要考虑的问题:
1.闰年非闰年的处理
2.大小月的处理
3.数据输入错误的处理
4.时间换算的处理
5.如何对最后的时间进行倒数
6.如何在输入出错后重新循环
第2章设计思路与算法
关键算法
(1)判断时间是否正确
用if条件句进行判断,当输入的时间年月日时分秒都在各自的范围之内时,则正确,否则错误。
(2)计算两段时间的时间差
用到for循环if条件句,对当前时间进行+1秒,然后判断秒数是否达到60,达到则分钟进1,依此类推,如果加到月数,利用闰年判断函数和大小月的天数标准进行月数的判断,最后得出两端时间之间的总秒数,循环停止。
接下来利用求余和整除把总秒数换算成天、时、分、秒的格式,接着输出。
(3)对输出时间进行倒数
用到for循环if条件句,先把输出的时间换算成时分秒的格式,接着从小时开始判断,如果小时为0,判断分钟是否为0,如果分钟为0,再判断秒是否为0,秒为0则倒数结束,如果秒数不为0,对秒数减一,如果分钟不为0,再判断秒钟是否为0,如果秒钟为0,则分钟减一,否则秒钟减一,依此类推,每循环一次睡眠一秒,然后调用库函数清屏重新显示时分秒,就这样知直到倒数完,程序结束。
第3章源程序代码
#include<
stdio.h>
windows.h>
//system("
cls"
)的头文件
voidprint_time(inthour,intmin,intsec)//用于倒数时的输出
{
printf("
%2d"
hour);
printf("
:
"
);
min);
sec);
}
intfunc(inty);
//函数声明,计算是否闰年
intmain()
inty,m,d,h,f,s,x;
//考试时间
intyy,mm,dd,hh,ff,ss;
//当前时间
longi;
//秒合
inta,b,c;
请输入您的考试时间(yyyy/mm/dd/hh/ff/ss):
\n"
for(;
;
)
{
scanf("
%d%d%d%d%d%d"
&
y,&
m,&
d,&
h,&
f,&
s);
if(y>
0)//检查输入的考试时间是否正确
if(
((m==1||m==3||m==5||m==7||m==8||m==10||m==12)&
&
(d<
=31&
d>
=1))
||((m==4||m==6||m==9||m==11)&
=30&
=1))
||((m==2&
func(y)==1)&
=29&
func(y)==0)&
=28&
)
if((h>
=0&
h<
24)||(f>
f<
=59)||(s>
s<
=59))
{printf("
break;
else
{
printf("
您输入的时间存在错误,请重新输入:
continue;
}
else
{
printf("
}
printf("
}
}
)//检查今天的时间是否正确
printf("
请输入今天的时间(yyyy/mm/dd/hh/ff/ss):
yy,&
mm,&
dd,&
hh,&
ff,&
ss);
if(yy>
0)
if(((mm==1||mm==3||mm==5||mm==7||mm==8||mm==10||mm==12)&
(dd<
dd>
||((mm==4||mm==6||mm==9||mm==11)&
||((mm==2&
func(yy)==true)&
func(yy)==false)&
=1)))
if((hh>
hh<
24)||(ff>
ff<
=59)||(ss>
ss<
{
printf("
else
continue;
for(i=0;
i++)//对总秒数进行累加
if(y==yy&
m==mm&
d==dd&
h==hh&
f==ff&
s==ss)break;
ss++;
if(ss>
59)
ss=0;
ff++;
if(ff>
ff=0;
hh++;
if(hh>
23)
{
hh=0;
dd++;
intflag=0;
if((mm==1||mm==3||mm==5||mm==7||mm==8||mm==10||mm==12)&
(dd>
31))flag=1;
if((mm==4||mm==6||mm==9||mm==11)&
30))flag=1;
if((mm==2&
func(yy)==1)&
29))flag=1;
func(yy)==0)&
28))flag=1;
if(flag)
dd=1;
mm++;
if(mm>
12)
{
mm=1;
yy++;
}
}
}
a=(i-i%86400)/86400;
//1天有86400秒
i-=a*86400;
b=(i-i%3600)/3600;
i-=b*3600;
c=(i-i%60)/60;
i-=c*60;
距离考试还有:
%d天%d小时%d分%d秒\n"
a,b,c,i);
//计算结束
b+=a*24;
若开始倒计时,请按1,不倒请按0\n"
scanf("
%d"
x);
if(x==1)
while
(1)
{
system("
//清屏,重新显示以下时间
print_time(b,c,i);
//输出时间
if(b==0)
if(c==0)
if(i==0)
break;
else
i--;
c--;
i=59;
}elsei--;
}
else//当hour不等于0时
b--;
c=59;
i--;
elsei--;
Sleep(1000);
//频率为1秒,函数滞留一秒
}else
\n**********谢谢使用***********\n"
return0;
}
intfunc(inty)
if((y%4==0&
y%100!
=0)||y%400==0)return1;
第四章运行结果及分析
图4-1
图4-2
图4-3
选择倒数的过程要过一段时间,所以倒数结束时并不是真正的考试开始,此程序不能循环倒计时,也是一个缺陷。
第五章心得体会
本学期的第一次课设让我对C语言理解得更加深入,为了做好课设,我把重要的知识点都复习了一遍,对顺序结构、选择结构、循环结构理解得更加透彻,但是毕竟没经验,所以一开始还是有点手忙脚乱,最后捋清楚头绪,在草稿纸上写出了大概的过程,心中有了点底,然后就敢开始写代码。
把大体框架打出来后,我开始思考核心代码,也就是怎么计算两段时间的时间差,最后想到用累加秒数算出总秒数、换算出时间的方法,期间我又被闰年非闰年和大小月的问题所困扰,都是硬着头皮解决了,在解决了闰年非闰年和大小月的问题后,我对顺序结构、选择结构、循环结构的复合利用有了更深的了解,也让我大体熟悉了课程设计的设计。
从大的方面来看,这次课设培养了我综合所学知识,发现,提出,分析,和解决问题的能力,特别是锻炼了我的分析解决问题的能力,也让我理解到独立学习的重要性。
一次课程设计,让我深入学习了C语言,同时我掌握了一种学习知识的方法,真是受益匪浅,以后一定还要多多进行这种训练,提高能力。
参考文献
[1]谭浩强.C程序设计[M].北京:
清华大学出版社,2010.6
[2]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 倒计时