C语言万年历课程设计.doc_第1页
C语言万年历课程设计.doc_第2页
C语言万年历课程设计.doc_第3页
C语言万年历课程设计.doc_第4页
C语言万年历课程设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

万年历课程设计 1 目目 录录 第第 1 1 章需求分析章需求分析 6 6 第第 2 2 章章 概要设计概要设计 6 6 第第 3 3 章详细设计章详细设计 1111 第四章第四章 运行结果及分析运行结果及分析 1717 1 登陆界面 17 2 显示某年全年日历 17 3 3 显示某月日历 18 第第 5 5 章章 课程设计心得课程设计心得 2020 参考文献参考文献 2121 第 1 章需求分析 1 程序运行时 首先给出四个菜单选项和输入提示 图图 1 1 2 用户可以通过主菜单选择不同选项 输入 1 通过输入年份可显 示一年每个月份的日历 输入 2 通过输入年份和月份 中间以空格分 开 可显示该月的日历 若输入 3 通过输入年份月份和日期 中间以 空格分开 可显示该日的星期 输入 0 则退出查询系统 第 2 章 概要设计 3 1 菜单选择界面可通过下面所示函数时现 菜单选择界面可通过下面所示函数时现 主要思路 主要思路 通过 while 语句与 swich case 以及 if 条件语句实现菜单的循环功能和不 同选项的功能实现 闰年与平年的判断 代码如下 void main int year month day a b while 1 printf n n n n printf n n printf n printf 欢迎进入万年历查询系统 n printf n n printf n n n printf 1 年历 2 月历 3 日历 4 退出 n printf 请输入您的选择 按回车键确定 scanf d switch b case 1 printf n 请输入您要查的年份 scanf d a x3 year 1 1 if a 0 printf 错误 请您重新输入 n break nianli year break case 2 printf n 请输入您要查的年和月 年月之间用空格隔开 scanf d d a x3 year month 1 if a 0 printf 错误 请您重新输入 n break yueli year month break case 3 printf n 请输入您要查的年月日 年月日之间用空格隔开 scanf d d d a x3 year month day if a 0 printf 错误 请您重新输入 n break rili year month day break case 4 exit 0 default printf 错误 请您重新输入 n n 5 2 显示一年的日历 可通过函数显示一年的日历 可通过函数 void x1 实现 实现 思路如下 思路如下 先判断输入年份是否为闰年 若为闰年 则定义二月为 29 天 通过调用函数判断是否为闰年及每个月的天数通过调用函数判断是否为闰年及每个月的天数 依次打印 12 个月的月份 打印每个月的日历 显示个每个月的日历 printf 2s 2s 2s 2s 2s 2s 2s n 星期日星期日 星期一星期一 星期二星期二 星期三星期三 星期四星期四 星期五星期五 星期六星期六 3 闰年的判断 闰年的判断 计算所输入的年份是否可被 4 整除 若不能被整除 为平年 若可 被 4 整除 计算此年份能否被 100 整除 不能被 100 整除则为闰年 既 能被 4 整除 也能被 100 整除的年份 若也能被 400 整除 则为闰年 否则为平年 闰年 366 天 平年 365 天 图图 2 1 代码 代码 int runnian int year if year 4 0 else return 0 4 判断某月的天数 判断某月的天数 通过函数 通过函数 int day1 int year int month int a 12 31 28 31 30 31 30 31 31 30 31 30 31 若为闰 则二月为 29 天 图图 2 2 代码 代码 if runnian year a 1 29 7 第 3 章详细设计 include include include using namespace std int runnian int year 函数 判断是否闰年 if year 4 0 是则返回 1 值 else return 0 否则返回 0 值 int day1 int year int month 函数 计算输入该 月份的天数 int a 13 0 31 28 31 30 31 30 31 31 30 31 30 31 定义数组确定 12 个月每个月的天数 if runnian year 调用闰年判断函数 a 2 29 如果为闰年 则二月份天数为 29 否 则默认为 28 return a month 返回该月份的天数值 int day2 int year int month int day 函数 计算从该年第一天到该天的天数 int i sum 0 for i 1 i month i sum day1 year i 计算今年这个月前的总天 数 sum day 计算今年今天距一月一号的天数 return sum 返回从该年的第一天到该天的天数 int week1 int year int month int day 函数 判断该天的星期数 int number year 1 year 1 4 year 1 100 year 1 400 day2 year month day 蔡勒公式 number 7 蔡勒公式 return number 返回该天的星期数 可用作日历显 示需要 char Week2 int number 函数 用语文的方式输出 显示星期数 switch number 分类一周七天 case 0 return 星期日 case 1 9 return 星期一 case 2 return 星期二 case 3 return 星期三 case 4 return 星期四 case 5 return 星期五 case 6 return 星期六 default return 错误 请 您重新输入 不符和上面七种情况的报错提示 void x1 int year int month int day 函数 头 显示 输出显示年月日 int number week1 year month day 该天的星 期数赋值 if runnian year cout 闰年 年份为闰年则输出 闰年 else cout 平年 cout year 年 month 月 day 日 Week2 number 按年 月 日输出结果 void x2 int year int month 函数 图表 body 显示 int max number i j 1 max day1 year month 该月的天数的赋值 number week1 year month 1 该月第一天的星 期数的赋值 cout setw 8 SUN setw 8 MON setw 8 TUE setw 8 WED setw 8 THU setw 8 FRI s etw 8 SAT endl for i 0 i number i cout 找出该月一号所在的位置 while j max cout setw 8 j if i 7 6 printf n 判断输出是否要换行 i j cout endl endl int x3 int year int month int day 函数 判断 输入值的正误 if year 0 month12 dayd 11 ay1 year month 当输入植出现这些情况时 return 0 返回 0 else return 1 返回 1 void nianli int year 函数 年历 int i printf n for i 1 i 12 i if runnian year cout setw 10 闰年 else printf 平年 printf d 年 d 月 n n year i x2 year i void yueli int year int month 函数 月历 if runnian year cout setw 10 闰年 else printf 平年 printf d 年 d 月 n n year month x2 year month void rili int year int month int day 函数 日历 printf n x1 year month day void main int year month day a b while 1 printf n n n n printf n n printf n printf 欢迎 进入万年历查询系统 n printf n n printf n n n printf 1 年历 2 月历 3 日 历 4 退出 n printf 请输入您的选择 按回车键确定 scanf d switch b 13 case 1 选择 1 时 printf n 请输入您要查的年份 给出输入提示 scanf d 输入查询的年份 a x3 year 1 1 if a 0 printf 错误 请您重新输入 n 输入植异常时报错 break nianli year break case 2 选择二时 printf n 请输入您要查的年和月 年月之间用空格隔开 给出输入提示 scanf d d 输入需要查询的年 月 a x3 year month 1 if a 0 printf 错误 请您重新输入 n break yueli year month break case 3 选择 3 时 printf n 请输入您要查的年月 日 年月日之间用空格隔开 给出输入提示 scanf d d d 输入年 月 日 a x3 year month day if a 0 printf 错误 请您重新输 入 n 输入植异常时报错 break rili year month day break case 4 exit 0 default printf 错误 请您重 新输入 n n 第四章 运行结果及分析 1 登陆界面 15 图图 4 1 登陆界面提供了四个选项进行选择 并提示输入后的操作方法 2 显示某年全年日历 图图 4 2 输入指令后 依次打印出每个月份的日历 并显示平年或者闰年 3 3 显示某月日历 17 图图 4 3 第 5 章 课程设计心得 通过本次课程设计我第一次通过自己的实践对书本上的知识进行了与生 活相关的运用 在这个程序中 主要应用了这学期所学习的循环 条件语 句 数组以及调用函数 这些知识的应用使我对课本内容的认识得到了加 深 在编写程序的过程中 也出现了很多错误 比如程序语句错误导致检 测时连续报错 函数语句编写错误导致输出结果与实际不符等 出现这些 情况后 通过对一些新知识的学习和对网上相关资料的阅览 我发现了自 己的程序的问题所在并进行了改正 最后得到了正确的结果 在程序的编写完成后 我按照要求对程序进行了拓展 在输出年 历的基础上增加了月历及确定日期的输出 本来设想增加农历生肖功能 但是由于程序过于复杂 最终没能在规定时间内调试成功 19 参考

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论