万年历c++设计.docx

上传人:b****3 文档编号:4138189 上传时间:2022-11-28 格式:DOCX 页数:15 大小:59.92KB
下载 相关 举报
万年历c++设计.docx_第1页
第1页 / 共15页
万年历c++设计.docx_第2页
第2页 / 共15页
万年历c++设计.docx_第3页
第3页 / 共15页
万年历c++设计.docx_第4页
第4页 / 共15页
万年历c++设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

万年历c++设计.docx

《万年历c++设计.docx》由会员分享,可在线阅读,更多相关《万年历c++设计.docx(15页珍藏版)》请在冰豆网上搜索。

万年历c++设计.docx

万年历c++设计

面向对象技术实验报告

(万年历)

1.实验目的

掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。

为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。

为了能更好地了解C++语言,因此开设了此次课程设计,程序设计教学课程的目的不是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。

一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识得到应用,更重要的是可以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理解。

2.功能简介

万年历,输入年份,可以显示出这一年的每个月份和所对应的星期天,可以查询每一天.

第1页共14页

 

3•流程图

打印一年日历

1

fX

z、

Voidf

Voidq

主函数

hJ

LJ

L7

非闰年二月

输岀日历表

闰二^定Ti

一月的定义

闰年二月

大月

小月

非闰二月的定

四月

五月

「六月

zs

七月

hJ

百J

L

义J

厂八月'

LJ

广九月、

LJ

「十月'

L」

厂十一月”

s

Lj

十二月

 

 

4•代码

#include

#includeusingnamespacestd;

inti,c,day,year,k,a[50];

大月

voidf1(intx)//

{

for(i=0;i<50;i++)

a[i]=33;

号前均为空格

for(i=k-1;i>=0;i--)a[i]='\000:

〃1

for(i=k;i<31+k;i++)

a[i]=a[i-1]+1;

voidf2(intx)//

{

for(i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<30+k;i++)

a[i]=a[i-1]+1;

}

voidf3(intx)//

{

for(i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<29+k;i++)

a[i]=a[i-1]+1;

}

voidf4(intx)//

{

for(i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<28+k;i++)

a[i]=a[i-1]+1;

}

voidg(inty[],intz)//

{

cout<<"日"<<'\t'<<"一"<<'\t'<<"

"<<'\t'<<"六"<

for(i=0;i<50;i++)

{

if(a[i]==0)

cout<<(char)a[i]<<'\t';

if(a[i]!

=0&&a[i]!

=33)

cout<

else;

if(i%7==0)

cout<

}

cout<

}

intmain()

小月

闰年二月

非闰年二月

输出日历表

"<<'\t'<<"三"<<'\t'<<"四"<<'\t'<<"

 

{

ints,count=0;

cout<<"请输入年份:

cin>>year;cout<

c=year;

for(s=1;s<=year;s++)

if(((s-1)%4==0&&(s-1)%100!

=0)||(s-1)%400==0)

count++;

day=365*c+count;//

cout<

k=(day%7+6)%7+1;

cout<<"一月"<

g(a,50);

if((year%4==0&&year%100!

=0)||year%400==0)//闰年二月{

k=((day+31)%7+6)%7+1;

cout<<"二月"<

f3(k);

g(a,50);

day=day+31+29;

}

非闰年二月

else//

{k=((day+31)%7+6)%7+1;

cout<<"二月"<

g(a,50);day=day+31+28;

}k=(day%7+6)%7+1;

cout<<"三月"<

g(a,50);

k=((day+31)%7+6)%7+1;

cout<<"四月"<

g(a,50);

k=((day+31+30)%7+6)%7+1;

cout<<"五月"<

f1(k);

g(a,50);

k=((day+31+30+31)%7+6)%7+1;

cout<<"六月"<

f2(k);

g(a,50);

k=((day+31+30+31+30)%7+6)%7+1;

cout<<"七月"<

f1(k);

g(a,50);

k=((day+31+30+31+30+31)%7+6)%7+1;

cout<<"八月"<

f1(k);

g(a,50);

k=((day+31+30+31+30+31+31)%7+6)%7+1;

cout<<"九月"<

f2(k);

g(a,50);

k=((day+31+30+31+30+31+31+30)%7+6)%7+1;

cout<<"十月"<

f1(k);

g(a,50);

k=((day+31+30+31+30+31+31+30+31)%7+6)%7+1;

cout<<"十一月"<

f2(k);

g(a,50);

k=((day+31+30+31+30+31+31+30+31+30)%7+6)%7+1;

cout<<"十二月"<

f1(k);

g(a,50);

return0;

}

_fFs\C*iMFf-qXjLa-vfevuQiXrF-iain-

.ww,

|g.冃

H

——

LLy

TT

-二r.

1

:

"E

IH

■4

St.

V

M

V

IR1

11

IN

II

14

H••

1f・

1M

1

MM

1

NN

M:

1

SE-4

b-E=.

:

^EM

3EV

IPf

K冃

H

——

=

t±y

T7

._j_d~x

I

:

-!

4

:

.

<.

H

1M

IIII

1>!

HIII

14

I

1f>

1

IIM

1■/

:

-;M

:

1

Zi:

-!

U:

l

N>4

□eTz

^EN

34■/

lM

III1

七冃

H

——

LLy

TT

-二r.

1

^E

III

■4

"■

r.

h

M

■z

Hkfl

■1

I託

i:

i

14

II

1■・

HP

1N

I■/

:

-!

M

之1

KN

^E:

I

SC4

:

■!

r.

E-EP

:

:

-:

H

KF

IPI

Lii冃

5•代码分析

大月和小月的定义

大月

voidf1(intx)//

{

for(i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';//1号前均为空格

for(i=k;i<31+k;i++)

a[i]=a[i-1]+1;

}

主要运用了数组的循环语句进行对大月的定义。

voidf2(intx)//小月

{

for(i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<30+k;i++)

a[i]=a[i-1]+1;

}

依然用数组的循环语句进行对小月的定义。

数组的循环语句是C++中一个很重要的知识,数组可以节省很多的定义,一个句子就可以就可以输出很多的数,这样大大减少了计算机的存储空间。

这正是一个很打的进步。

2.5.2闰年与非闰年二月的定义

voidf3(intx)//闰年二月

{

for(i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<29+k;i++)

a[i]=a[i-1]+1;

}

voidf4(intx)//非闰年二月

{

for(i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<28+k;i++)

a[i]=a[i-1]+1;

}

用两个函数定义了在闰年与非闰年时,二月的不同定义。

这主要运用到变量的不同定义。

从而分辨出它们的不同,使可打印出任一年的日历。

2.5.3日历表的输出

ints,count=0;

cout<<"请输入年份:

cin>>year;

cout<

c=year;

for(s=1;s<=year;s++)

if(((s-1)%4==0&&(s-1)%100!

=0)||(s-1)%400==0)

count++;

cout<

在此运用了C++中函数的运算,计算出该年的每月每日的不同。

还有一年的输入和输出。

在C++语言中,函数的运算又分为很多种,此次用的是在输出时,闰年与非闰年二月的输出法的定义if((year%4==0&&year%100!

=0)||year%400==0)//闰年二月

{

k=((day+31)%7+6)%7+1;

cout<<"二月"<

f3(k);

g(a,50);

day=day+31+29;

}

else//非闰年二月

{

k=((day+31)%7+6)%7+1;

cout<<"二月"<

f4(k);

g(a,50);

day=day+31+28;

}此处主要运用了if语句来对闰年与非闰年的二月的不同定义的输出。

if语句一种可跳过不符合条件的语句,继续下面的语句的执行。

它具有很强的实用性。

在实际的操作中经常会用到的,是一个很重要的知识。

6.改进措施

程序的显示面板颜色程序没有,太难看了,因此将面板颜色的程序加上了

西安科技大学2009级C++实验报告

7.改进后的代码

#include

#include#includeusingnamespacestd;inti,c,day,year,k,a[50];

voidf1(intx)//大月

{

for(i=0;i<50;i++)

a[i]=33;for(i=k-1;i>=0;i--)

a[i]='\000';//1号前均为空格for(i=k;i<31+k;i++)

a[i]=a[i-1]+1;

}

voidf2(intx)//小月

{

for(i=0;i<50;i++)a[i]=33;

for(i=k-1;i>=0;i--)a[i]='\000';

for(i=k;i<30+k;i++)a[i]=a[i-1]+1;

}

voidf3(intx)//闰年二月

{

for(i=0;i<50;i++)a[i]=33;

for(i=k-1;i>=0;i--)a[i]='\000';

for(i=k;i<29+k;i++)a[i]=a[i-1]+1;

}

voidf4(intx)//非闰年二月

{

for(i=0;i<50;i++)a[i]=33;

for(i=k-1;i>=0;i--)a[i]='\000';

for(i=k;i<28+k;i++)a[i]=a[i-1]+1;

voidg(inty[],intz)//输出日历表

{

cout<<"日"<<'\t'<<"——"<<'\t'<<"二"<<'\t'<<"三"<<'\t'<<"四"<<'\t'<<"五"<<'\t'<<"六"<

{

if(a[i]==0)

cout<<(char)a[i]<<'\t';

if(a[i]!

=0&&a[i]!

=33)

cout<

else;

if(i%7==0)

cout<

}

cout<

}

intmain()

{

ints,count=0;

HANDLEhStdout=:

:

GetStdHandle(STD_OUTPUT_HANDLE);

:

:

SetConsoleTextAttribute(

hStdout,

FOREGROUND_RED|BACKGROUND_BLUE);

system("colorac");

cout<<"请输入年份:

";

cin>>year;

cout<

c=year;

for(s=1;s<=year;s++)

if(((s-1)%4==0&&(s-1)%100!

=0)||(s-1)%400==0)

count++;

day=365*c+count;

//相差天数

cout<<"*********************"<

cout<

年日历*********************";

k=(day%7+6)%7+1;

cout<<"一月"<

//闰年二月

g(a,50);

if((year%4==0&&year%100!

=0)||year%400==0){

k=((day+31)%7+6)%7+1;

cout<<"二月"<

f3(k);

g(a,50);day=day+31+29;

}

else//非闰年二月

{k=((day+31)%7+6)%7+1;

cout<<"二月"<

f4(k);

g(a,50);day=day+31+28;

}k=(day%7+6)%7+1;

cout<<"三月"<

f1(k);

g(a,50);

k=((day+31)%7+6)%7+1;

cout<<"四月"<

f2(k);

g(a,50);

k=((day+31+30)%7+6)%7+1;

cout<<"五月"<

f1(k);

g(a,50);

k=((day+31+30+31)%7+6)%7+1;

cout<<"六月"<

f2(k);

g(a,50);

k=((day+31+30+31+30)%7+6)%7+1;

cout<<"七月"<

f1(k);

g(a,50);

k=((day+31+30+31+30+31)%7+6)%7+1;

cout<<"八月"<

f1(k);

g(a,50);

k=((day+31+30+31+30+31+31)%7+6)%7+1;

cout<<"九月"<

f2(k);

g(a,50);

k=((day+31+30+31+30+31+31+30)%7+6)%7+1;cout<<"十月"<

f1(k);

g(a,50);

k=((day+31+30+31+30+31+31+30+31)%7+6)%7+1;cout<<"十~■月"<

f2(k);g(a,50);

k=((day+31+30+31+30+31+31+30+31+30)%7+6)%7+1;cout<<"十二月"<

f1(k);

g(a,50);

return0;

}

 

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

当前位置:首页 > 小学教育 > 语文

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

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