C程序设计万年历说明书Word下载.doc

上传人:wj 文档编号:3951147 上传时间:2023-05-02 格式:DOC 页数:12 大小:80.50KB
下载 相关 举报
C程序设计万年历说明书Word下载.doc_第1页
第1页 / 共12页
C程序设计万年历说明书Word下载.doc_第2页
第2页 / 共12页
C程序设计万年历说明书Word下载.doc_第3页
第3页 / 共12页
C程序设计万年历说明书Word下载.doc_第4页
第4页 / 共12页
C程序设计万年历说明书Word下载.doc_第5页
第5页 / 共12页
C程序设计万年历说明书Word下载.doc_第6页
第6页 / 共12页
C程序设计万年历说明书Word下载.doc_第7页
第7页 / 共12页
C程序设计万年历说明书Word下载.doc_第8页
第8页 / 共12页
C程序设计万年历说明书Word下载.doc_第9页
第9页 / 共12页
C程序设计万年历说明书Word下载.doc_第10页
第10页 / 共12页
C程序设计万年历说明书Word下载.doc_第11页
第11页 / 共12页
C程序设计万年历说明书Word下载.doc_第12页
第12页 / 共12页
亲,该文档总共12页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C程序设计万年历说明书Word下载.doc

《C程序设计万年历说明书Word下载.doc》由会员分享,可在线阅读,更多相关《C程序设计万年历说明书Word下载.doc(12页珍藏版)》请在冰点文库上搜索。

C程序设计万年历说明书Word下载.doc

二.应用程序要求、目的

主题:

目的:

实现对年月的查询

三.应用程序简介

(1)基本结构:

整个程序有cls_screen(清屏)、judgement(判断是否为闰年)、show_week(记录周几)、print_year(查询某年)、print_year_month(查询某年某月)等自定义函数,程序中涉及到switch语句、for语句、if语句等和多次函数调用语句,开头定义了day_of_month[]数组,主要目的是将12个月每个月有多少天依次排出,在后面又用if语句判断二月的天数是28还是29。

在主函数中运用while语言与switch语句的嵌套,是程序拥有了循环的功能。

用fflush(stdin);

语句清除输入缓存,使程序在使用过程中不会太过眼花缭乱。

万年历的编程,需要两个方面的讨论和研究,一是要在用户输入年份的时候,判断该年是否为闰年,而对于闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。

所以会改变day_of_month[]数组中的二月份的数值。

二是在用户输入年月份的时候,判断该年该月的第一天是周几,从来好排列。

而对于判断周几,需要运用公式:

w=(y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1)%7并用if语句使用判断。

通过这两个方面的讨论和实现,才能合理的编程出万年历的基本程序代码。

(2)源程序代码:

#include<

stdio.h>

#include<

string.h>

time.h>

math.h>

windows.h>

intyear,month,day;

intday_of_month[12]={31,28,31,30,31,30,31,31,30,31,30,31};

intcurrent_year,current_month,current_day;

voidcls_screen()

{

printf("

请按任意键返回!

\n"

);

getchar();

system("

cls"

}

intjudgement(inty)

if(y%400==0||(y%100!

=0&

&

y%4==0))

return1;

elsereturn0;

intshow_week(intyear,intmonth,intday)

/*公式:

w=(y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1)%7*/

intw,k;

intyear_last=year%100,c=year/100,m=month;

if(month==1)

year_last-=1;

elseif(month==2)

year_last-=1;

w=(year_last+year_last/4+c/4-2*c+26*(m+1)/10+day-1);

if(w<

0)

k=(w%7+7)%7;

elsek=w%7;

returnk;

voidprint_year(intyear)

inti,k,x,first_week;

printf("

请输入想要查询的年份(格式如2012):

"

scanf("

%d"

&

year);

=======================%d年===========================\n"

year);

if(judgement(year))

day_of_month[1]=29;

elseday_of_month[1]=28;

for(i=1;

i<

13;

i++)

first_week=show_week(year,i,1);

=====================%d月日历如下========================\n"

i);

Sun\tMon\tTue\tWed\tThu\tFri\tSat\n"

for(x=1;

x<

=first_week;

x++)

\t"

if(x%7==0)printf("

for(k=1;

k<

=day_of_month[i-1];

k++)

%d\t"

k);

x++;

voidprint_year_month()

intk,x,first_week;

请输入想要查询的年月(格式如201212):

do

%d%d"

year,&

month);

if(month<

1||month>

12)

您输入的月份有误哦~请输入正确的月份\n"

}while(1>

month||month>

12);

=====================%d年%d月======================\n"

year,month);

first_week=show_week(year,month,1);

=day_of_month[month-1];

voidmain()

intchoice,year,month,day,flag=1,option;

charc,k,ch;

while

(1)

===========================欢迎来到XXX的万年历============================\n"

请选择:

********1.查找某一年的年历********\n"

********2.查找某一月的月历********\n"

********0.退出********\n"

==============================================================================\n"

请输入您的选择:

"

scanf("

option);

switch(option)

case1:

print_year(year);

cls_screen();

doyouwanttocontinue?

(Y/N)"

fflush(stdin);

%c"

ch);

if(ch=='

N'

||ch=='

n'

break;

case2:

print_year_month();

case0:

}}}

2:

程序的运行环境

本程序运行环境为VC

选择“1”并查询2012年的日历。

显示2012年的日历:

可以按任意键返回。

出现“是否继续的提示语”按y可继续查询某年的日历。

按n可返回开始时的画面,再继续选择。

选择“2”,查询2012年9月的月历。

此程序开始有提示语问候,使用户使用时亲切便捷,并实现了循环的过程,可以无限循环的查询你想知道年份月份的日历,在循环的过程中加有清屏的效果。

在编译程序时,对蔡勒公式的不熟悉,导致程序在年月之间的错误,但在之后的调试中逐步掌握了这个公式,并解决了这一系列的问题。

12

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2