桌面日历Word文档下载推荐.docx
《桌面日历Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《桌面日历Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
●intweeks(longyear,intmouth,intday);
计算公元某年某月某日是星期几函数。
本函数通过switch语句的镶嵌使用,将计算分为闰年和平年。
●intdays(longyear,intmouth);
此函数模块还是应用switch语句,根据闰年和平年将月份天数做运算,用default:
mouth_days=30;
来代替一年中天数为30的月份。
●intisleap(longyear);
此函数模块的功能是实现闰年与平年的判断。
●voidprint(longyear);
此函数为日历打印公共模块通过函数运算没隔一天输出一个制表符\t,没七天输出一个换行符\n,从而使实现日历分行输出。
●voidopreal();
加载操作(功能选择),此函数为程序的主要部分,此部分主要通过if,elseif,else语据与程序中用户给出的choose值加载相应的功能模块,整个条件共分为7个部分,即程序的6个功能和退出操作,其中功能模块包括输入年,显示该年万年历、查询某年某月的日历、查询某年某月某日为星期几、保存打印年份日历到磁盘、保存打印月份日历到磁盘、查看帮助文件5部分。
前4部分主要是通过for循环语句实现;
查看帮助文件部分是用了printf()语句给与输出,保存打印月份日历到磁盘是通过文件操作实现的,其中包括txt文件的创建、输入、保存、关闭。
3程序流程图
程序整体流程图如图3-1所示:
图3-1程序整体流程图
4系统的运行及说明
4.1系统的运行
系统初始运行时,会显示如图4-1所示的输入界面,用户可以根据提示,进行相应的选择,来完成系统提供的各种功能。
图4-1输入界面
根据提示提示用户选择相应的数字键,按ENTER键后进入相应的功能菜单。
如下图4-2是输入年,显示该年万年历的程序功能截图,此功能通过日历公用打印模块与year函数实现,year函数通过for函数循环打印数字与换行字符从而输出日历。
图4-2输入月份界面
图4-3输入年月查询日历界面
当选择功能2时,输入所查询的年月,系统将会给出相应的日历,如图4-3所示,此功能的实现是通过for语句,循环打印数字,给出相应的月份日历,与功能1的实现相比少一个关于mouth变量的循环。
图4-4输入某年某月某日显示星期几界面
当选择功能3时,输入某年某月某日为星期几,界面如图4-3所示,此模块调用了日历打印中的intweeks(longyear,intmouth,intday)函数,运用switch与case的镶嵌使用以及S=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+C;
Xing_qi=S%7两个函数实现对星期的计算。
图4-5保存打印年份日历到磁盘界面
图4-6保存打印月份日历到磁盘界面
如图4-5为保存打印年份日历到磁盘界面,及图4-6为保存打印月份日历到磁盘界面,两个功能中均用到字符拼接函数strcat();
以及文件操作函数fopen()、fclose(),程序通过函数strcat()拼接文件名与扩展名.txt,通过函数fopen()以写的形式打开文件,通过函数fprintf()传入需要写入的内容即日历内容,在通过函数fclose()关闭并保存文件,实现打印保存日历到磁盘的功能。
图4-6日历帮助文件界面
如图4-6是日历程序帮助文件界面,其中包含程序功能介绍和使用方法两部分。
本功能的实现主要是通过printf()函数实现的。
4.2运行说明
首先打开软件,根据给出的信息输入相应的功能模块数字,输入完毕后按“ENTER”键进入,再根据提示执行相应的操作,程序使用完毕后输入数字7退出程序。
5总结
通过这次实习,让我们初步有了编写系统的能力,我们对很多的函数有了新的认识,也学会了运用多种函数,也明白了编写软件的基本过程,和基本方法。
编写软件的过程中我们又学到了曾经自己不知道的函数或是自己不会的函数的用法。
这次课程设计课总的来说让我受益匪浅。
在软件的设计过程中遇到了很多的困难。
在软件一次一次的调试失败下,曾经想过要放弃。
我最后还是让自己坚持了下来,毫不畏惧困难,在同学的帮助与讲解下我总算是顺利的完成了软件的设计。
在程序的编写过程中我们发现有很多的知识漏洞和缺陷,需要进一步努力学习来完善自己。
在这几天的编写过程中我们对c语言有了更进一步的认识和了解。
此次编程过程的经验和知识肯定能促进我以后的学习。
此次课程设计不仅给了我们很多很好的经验,也让我们体会到了失败时的焦急和难受,也体会到了成功时的兴奋与喜悦。
源程序清单
#include<
iostream.h>
stdio.h>
conio.h>
#include<
string.h>
intweeks(longyear,intmouth,intday);
//计算公元某年某月是星期几函数
intdays(longyear,intmouth);
//计算某年某月总共有多少天的函数
intisleap(longyear);
//判断润年或者平年
voidprint(longyear);
//显示年日历
voidopreal();
//加载操作(功能选择)
voidmain()
{
opreal();
getch();
}
intweeks(longyear,intmouth,intday)//计算公元某年某月某日是星期几函数
{
longS;
intXing_qi,C;
switch(isleap(year))
case0:
//平年计算
switch(mouth)
{
case1:
C=day;
break;
case2:
C=31+day;
case3:
C=59+day;
case4:
C=90+day;
case5:
C=120+day;
case6:
C=151+day;
case7:
C=181+day;
case8:
C=212+day;
case9:
C=243+day;
case10:
C=273+day;
case11:
C=304+day;
case12:
C=334+day;
default:
break;
}break;
case1:
//闰年计算
C=60+day;
C=91+day;
C=121+day;
C=152+day;
C=182+day;
C=213+day;
C=244+day;
C=274+day;
C=305+day;
C=335+day;
}
S=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+C;
Xing_qi=S%7;
returnXing_qi;
intdays(longyear,intmouth)//计算某年某月总共有多少天的函数
intmouth_days;
//某月份天数
switch(mouth)
case3:
case5:
case7:
case8:
case10:
case12:
mouth_days=31;
case2:
switch(isleap(year))
{
case1:
mouth_days=29;
case0:
mouth_days=28;
default:
}break;
default:
returnmouth_days;
intisleap(longyear)//平年返回0,闰年返回1
if((year%4==0&
&
year%100!
=0)||(year%400==0))return1;
elsereturn0;
voidprint(longyear)//显示某年的日历
intmouth,mouth_days,sday,i;
for(mouth=1;
mouth<
=12;
mouth++)
{
printf("
%ld年%d月"
year,mouth);
if(isleap(year))
printf("
(闰年)\n\n"
);
elseprintf("
(平年)\n\n"
sday=weeks(year,mouth,1);
//计算某年某月的1号是星期几
mouth_days=days(year,mouth);
//计算某年某月的有多少天
周日\t周一\t周二\t周三\t周四\t周五\t周六\n\n"
//打印日历
for(i=1;
i<
=sday;
i++)
{
\t"
}
=mouth_days;
i++)//每七天打印换行
%d\t"
i);
if((i+sday)%7==0)
{
printf("
\n"
}
\n\n\n"
}
voidopreal()
staticlongyear;
intchoose,flag=1;
while(flag)
……………………欢迎使用万年历……………………\n\n"
………请输入数字选择功能:
………\n\n"
1.输入年,显示该年万年历;
2.查询某年某月的日历;
3.查询某年某月某日为星期几;
4.保存打印年份日历到磁盘;
5.保存打印月份日历到磁盘;
6.查看帮助文件;
7.退出.\n"
scanf("
%d"
&
choose);
if(choose==1)
{
请输入年份:
"
scanf("
%ld"
year);
这是%ld年的日历!
\n\n"
year);
print(year);
elseif(choose==2)
intmouth,mouth_days,sday,i;
请输入年月(中间用空格隔开):
%ld%d"
year,&
mouth);
elseif(choose==3)
intm,d;
请输入年月日(中间用空格隔开):
%ld%d%d"
m,&
d);
%ld年%d月%d日为星期%d\n\n"
year,m,d,weeks(year,m,d));
elseif(choose==4)
FILE*fp;
charfilename[20];
请输入要打印保存的年份:
请输入保存的文件名:
%s"
filename);
strcat(filename,"
.txt"
if((fp=fopen(filename,"
w"
))==NULL)
cannotopenfile\n"
fprintf(fp,"
\t\t%ld年的日历\n\n"
for(mouth=1;
{
fprintf(fp,"
if(isleap(year))
fprintf(fp,"
elsefprintf(fp,"
sday=weeks(year,mouth,1);
mouth_days=days(year,mouth);
for(i=1;
{
}
if((i+sday)%7==0)
fprintf(fp,"
}
}
fclose(fp);
保存文件成功!
elseif(choose==5)
请输入要打印保存的年月:
\t\t%ld年%d的日历\n\n"
fprintf(fp,"
if(isleap(year))
elsefprintf(fp,"
sday=weeks(year,mouth,1);
mouth_days=days(year,mouth);
for(i=1;
elseif(choose==6)
\n\n\n\n"
\t\t*************欢迎使用多功能万年历*************\t\t\t\t\n"
功能介绍:
本程序具有多种日历查询方法,可以按照年份,月份分别进行查询,同时可以查询给定日期为某个星期的星期几,最显著的功能是,本日历可以根据给定的年份或者月份生成txt文档的日历,操作简单。
使用方法:
1、根据需要选择相应的功能菜单;
2、进入相应的功能菜单后,根据相应的屏幕提示输入相应的年份,或者月份,若同时输入年份和月份,中间请用空格键隔开;
3、当打印日历文件时,输入年,或年月后,会在相对位置与程序相同的地方生成对应名字的txt日历文档;
4、程序使用完毕,按照屏幕提示输入数字键“7”退出程序。
elseif(choose==7)
程序结束,谢谢使用!
break;
else
输入错误,请重新选择!
continue;