课程设计实验报告万年历Word格式.docx

上传人:b****7 文档编号:22105528 上传时间:2023-02-02 格式:DOCX 页数:45 大小:440.79KB
下载 相关 举报
课程设计实验报告万年历Word格式.docx_第1页
第1页 / 共45页
课程设计实验报告万年历Word格式.docx_第2页
第2页 / 共45页
课程设计实验报告万年历Word格式.docx_第3页
第3页 / 共45页
课程设计实验报告万年历Word格式.docx_第4页
第4页 / 共45页
课程设计实验报告万年历Word格式.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

课程设计实验报告万年历Word格式.docx

《课程设计实验报告万年历Word格式.docx》由会员分享,可在线阅读,更多相关《课程设计实验报告万年历Word格式.docx(45页珍藏版)》请在冰豆网上搜索。

课程设计实验报告万年历Word格式.docx

用户多次进行输入,知道用户满意为止。

本程序中,因为要用到万年历的时间校对系统,所以,在设计的时候,我定义了一个时间类:

clock类;

由于系统要同步到本地的时间〔即为运行时电脑上显示的时间〕,这里用到了structtime结构体,接下来就是万年历的查询系统功能里面的函数,这些函数要实现的有指导用户进行操作的选项的界面,有计算该月的1号是星期几的函数,有输出每周即每月的表头函数、判断是否为闰年、判断每个月有多少天、要查询的那天距今天有多少天、判断所要查询的年份有多少天、计算指定日期距今天有多少天等函数。

其中,共含一个主函数文件、三个功能文件、一个功能函数头文件、界面文件以及时钟类文件。

其中,功能函数是主要的函数实现部分,时钟类则主要是实现万年历时间系统。

在此只涉及部分函数的实现细节,其他函数详看程序源代码:

本程序中,我只设计了一个clock类,类里面有实现时间系统校对功能的私有量,在进行时间校对的过程中,我选择了重载的方法,以到达自己想要的结果。

函数部分的实现则是比较普通的,没有什么特殊的地方。

其中有如下函数需要实现:

intweek(inty,intm);

//计算该月一号是星期几

voidprintweek();

//输出每周表头

voidprintmonth(intm);

//输出每月表头

intleep(inty);

//判断该年是否闰年

intmd(inty,intm);

//判断该月有多少天

voidother(intyear);

intdays1(inty,intm,intd);

//计算该天时这一年的第几天

intdays2(inty);

//判断该年有多少天

intdays3(inty);

//计算从元年到该之年前总天数

inttotaldays(inty,intm,intd);

//计算指定日期距今天的天数

intyi();

//实现万年历的时间校对功能

inter();

//进入万年历的系统功能

intfirst();

//实现第一个功能

intsecond();

//实现第二个功能

voidthird();

//实现第三功能

//inttiangandizhi();

intjiemian1();

//界面1

intjiemian2();

在jiemian(),intmd()及voidthird()的实现过程中,我选用了switch-case套用switch-case语句;

在intweek()函数中,我采用了蔡勒公式用于计算每个月的星期一是多少,其他函数的实现详看源代码。

在这个程序设计中,有好多知识是我以前没有接触过得,这一点还是比较欣慰的吧,例如,system〔“pause”〕有着清屏作用,还有就是计算每个月的1号是星期几的问题以及程序运行后背景与字体颜色的变换要用到system〔“color”,9b〕

#include<

iostream>

fstream>

//文件输出

stdlib.h>

//清屏

iomanip>

//控制宽度

#include<

time.h>

//这两个头文件是为了调用系统时间的

stdio.h>

conio.h>

sstream>

usingnamespacestd;

//以下六个函数是第三个功能里的

intjiemian()

{

system("

cls"

);

color9d"

//控制程序背景和字体的颜色,均为16进制,9背景颜色,d字体颜色

cout<

<

setw(6)<

"

"

====================================================================="

endl;

==========★=======================================★================"

╬---★★★★★★★★--------╬"

╬╬"

╬★欢送进入万年历的页面★╬"

╬★★★★╬"

╬★★╬"

╬*****----该万年历有以下功能供您选择----*****╬"

╬*★*....1.万年历的时间校对系统....*★*╬"

╬★*....2.万年历的查询系统.........★*╬"

╬*★*..0.退出..................*★*╬"

╬★......................★╬"

========================WvWvW★★★WvWvW============================="

endl<

cout<

请输入您要使用的功能的序号〔回车键确认〕:

;

intn;

cin>

>

n;

switch(n)

{

case1:

yi();

break;

case2:

er();

case0:

exit(0);

}

pause"

return0;

}

classClock{

public:

Clock(inta=0,intb=0,intc=0):

hour(a),minute(b),second(c){}

voidsettime(inta=0,intb=0,intc=0){

hour=a;

minute=b;

second=c;

voidshowtime(){

现在时间为"

hour<

:

minute<

second<

}

voidoperator++(int){

second++;

if(second==60){

second=0;

minute++;

if(minute==60){

minute=0;

hour++;

if(hour==24)

hour=0;

voidoperator--(int){

second--;

if(second==-1){

second=59;

minute--;

if(minute==-1){

minute=59;

hour--;

if(hour==-1)

hour=23;

private:

inthour,minute,second;

};

intyi(){

chara,i,temp[30];

intb,c,d,shi,fen,miao;

time_tt;

time(&

t);

structtm*now;

//tm结构体,得到本地时间

now=localtime(&

strftime(temp,30,"

%H"

now);

istringstreaminput3(temp);

input3>

shi;

%M"

istringstreaminput4(temp);

input4>

fen;

%S"

istringstreaminput5(temp);

input5>

miao;

Clockmyclock;

myclock.settime(shi,fen,miao);

myclock.showtime();

是否要调整时间,如果是请按y,按其他键继续返回主菜单"

a=getch();

if(a=='

y'

){

请问是要将现在的时间调大还是调小,如果调大请按m,否者按n"

do{

i=getch();

if(i=='

m'

请输入要增加小时的个数:

b;

b*=3600;

while(b--)

myclock++;

请输入要增加分钟的个数:

c;

c*=60;

while(c--)

请输入要增加的秒数:

d;

while(d--)

elseif(i=='

n'

请输入要减少小时的个数:

myclock--;

请输入要减少分钟的个数:

请输入要减少的秒数:

elsecout<

输入有误,请重新输入"

}while(i!

='

&

i!

jiemian();

inter(){

jiemian1()<

jiemian2()<

intmain(){

jiemian()<

//调用jiemian函数,到达页面

yi()<

intjiemian1()

{

=============================================================="

╬***********************************************************╬"

╬╬"

╬〔二〕现在进入万年历查询系系统╬"

╬该系统有以下功能可供您选择╬"

jiemian2();

intjiemian2()

╬系统功能╬"

╬1、查询某年的日历╬"

╬2、查询某年某月的日历╬"

╬3、查询某年某月某日的信息╬"

╬4、返回╬"

first();

second();

case3:

third();

case4:

jiemian();

default:

cout<

}}while(n<

1||n>

4);

点任意键返回主菜单"

intfirst()//第一个功能,查询某年的日历

ofstreamoutfile("

第一个功能.txt"

ios:

out);

//定义一个文件输出流对象outfile

inty,m,w,d,i,day;

请输入你要查询的年份:

y;

您所查询的内容如下:

y<

年日历"

other(y);

outfile<

//输出到文件

for(m=1;

m<

=12;

m++)

intm1,y1;

//m1是指月份,y1是指年份

m1=m;

y1=y;

if(m1<

3)

{

m1+=12;

y1--;

}//在蔡勒公式中,某年的1,2月份要看作是上一年的13,14月份

w=week(y1,m1);

//调用week函数,计算该月一号是星期几

day=md(y,m);

//调用md函数,判断该月有多少天

printmonth(m);

//调用printmonth函数,输出月份表头

outfile<

月份"

printweek();

setw(8)<

Sun"

Mon"

Tues"

Wed"

Thurs"

Fri"

Sat"

//输出到文件

for(i=0;

i<

w;

i++)//假设每个月前面有空的,将其空出,w是指每个月的1号是星期几

cout<

outfile<

}

for(d=1;

d<

=day;

d++,w++)//输出该月的日历,day是指每个月的天数

if(w%7==6)

{

cout<

outfile<

}

outfile.close();

//关闭文件

intsecond()//第二个功能查询某年某月的日历

第二个功能.txt"

请输入你要查询的年月:

y>

m;

w=week(y,m);

day=md(y,m);

年"

月"

printweek();

for(i=0;

i++)

for(d=1;

d++,w++)

if(w%7==6)//w%7是判断换行不行的,星期日在第一位,星期六在最后一位

voidthird()//第三个功能,查询某年某月某日的信息

//cout<

tiangandizhi()<

第三个功能.txt"

inty,m,d,n;

请输入您要查询的年月日:

m>

n=totaldays(y,m,d);

距离今天还有"

n<

天"

intmonth,day;

month=(y+y/4+5-42+26*(m+1)/10+d)%7;

//蔡勒公式,用于计算星期几

switch(m)

switch(d)

这天是元旦!

break;

b

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

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1