c语言大作业年历显示,c语言程序设计年历显示-20210411020129.docx-原创力文档

Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

Company Document number:WTUT-WT88Y-W8BBGB-BWYTT-19998

c语言程序设计年历显示

计算机科学与技术学院

课程设计报告

2012 — 2013学年第 一 学期

课程名称 C/C++高级语言程序设计课程设计

设计题目 年历显示

学生姓名

学 号

专业班级

指导教师

2012 年 9 月 20 日

目 录

TOC \o "1-2" \h \z \u

一、课程设计问题描述

1.课程设计题目

年历显示

2.设计任务要求

功能要求

(1)输入一个年份,输出是在屏幕上显示该年的日历。假定输

的年份在1940-2040年之间。

(2)输入年月,输出该月的日历。

(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。

二、总体设计

1.总体思路

想要实现输出某年的日历,必须知道一个常识,那就是公元一年一月一日是星期一,这是一个重要的切入点。如果知道了这一点,那问题就迎刃而解了。我们可以先计算出公元一年一月一日到这年一月一日之前的总天数,这用for语句较易实现,不过要注意到平年与闰年的区别。有了总天数,再除以7,余数是什么,那这年的一月一日就是星期几,如此依次写出一月的日历。然后一月的天数加上总天数得到的结果再除以7,如此知道二月一日是星期几,写出二月的月历。如此便可以依次写出一到十二月的日历。至于输入年月,输出该月的日历,思路相同。至于判断是否为公历节日,用一个if语句便可实现。

2.遇到的问题

(1)函数的调用与套用,具体来说就是如何在一个构造的函数中调用另一个构造函数。

(2)把每月的日历设计的美观,如何让星期和下面的数字对齐。

(3) 如何把握日历的前几天的空格,使每月的第一天正好对在它应该的星期下。

3.问题的解决

第一个问题我通过查书,需要先把调用的函数在该构造函数中声明。至于第二和第三个问题,都是通过反复调试,反复修改,最后基本达到了要求。

4.大概的流程图

开始输入你查询的年份

开始

输入你查询的年份

输入年月

输入年月日和当前日期

判断所输入的年份是否为闰年

判断所输入的年份是否为闰年

判断当天是星期几,是否为法定假日how(),where()how(),where()

判断当天是星期几,是否为法定假日

how(),where()

how(),where()

how(),where(),why(),when()

输出该年的日历

输入所查询月份的日历

结束

结束

三、详细设计

1.显示输入年份的日历

当我们输入年份任意公元后的年份year时,可以通过一个for语句,算出从公元一年到year-1年的总天数,这其中要注意平年与闰年的区别,平年365天,闰年是366天,把这一部分用how()函数表示。算出总天数Z后,用Z除以7,余数是d,则year这一年的一月一日便是星期d。如此则一月的日历可表示出来。然后把Z加上一月的天数tian得到的新值赋给Z,再用Z除以7,重新得到新的余数d,如此可知二月的第一天是星期几,可表示出二月的日历。依次循环,用for(i=0;i<12;i++)语句可表示出该年的日历。注意闰年二月是29天,平年是28天。

开始

开始

输入year

输入year

S=0,i=1

S=0,i=1

是否为闰年

是否为闰年

YNS=S+365S=S+366

Y

N

S=S+365

S=S+366

i++

i++

i<=year

i<=year

输出s

输出s

结束

结束

2.显示所查询月份的日历

当我们输入year和month时,同上,用how()函数算出公元一年一月一日到year-1年的总天数Z,再用一个for(i=1;i

3.判断当天是星期几,是否为法定假日

当我们输入year,month和day,同上,算出从公元一年一月一日到month-1月以前的总天数Z,再加上day赋值给Z, 用Z除以7得余数d,那本天便是星期d。调用when()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值