已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目目 录录 第第 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 1 2 用户可以通过主菜单选择不同选项 输入 1 通过输入年份可显 示一年每个月份的日历 输入 2 通过输入年份和月份 中间以空格分 开 可显示该月的日历 若输入 3 通过输入年份月份和日期 中间以 空格分开 可显示该日的星期 输入 0 则退出查询系统 第 2 章 概要设计 1 菜单选择界面可通过下面所示函数时现 菜单选择界面可通过下面所示函数时现 主要思路 主要思路 通过 while 语句与 swich case 以及 if 条件语句实现菜单的循环功能和不 同选项的功能实现 闰年与平年的判断 代码如下 void main int year month day a b while 1 printf n n n n printf n n printf 3 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 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 5 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 第 3 章详细设计 include include 定义头文件 int runnian int year 定义变量 if year 4 0 else return 0 int day1 int year int month int a 12 31 28 31 30 31 30 31 31 30 31 30 31 定义数组确定 12 个 月每个月的天数 if runnian year 如果输入年份是闰年 a 1 29 二月 29 天 return a month 1 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 7 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 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 printf 闰年 年份为闰年 则输出 闰年 else printf 平年 printf d 年 d 月 d 日 10s n n year month day Week2 number 按年 月 日输出结果 void x2 int year int month int max number i j 1 max day1 year month number week1 year month 1 printf 2s 2s 2s 2s 2s 2s 2s n 星期日 星期一 星期二 星期三 星期四 星期五 星期六 按 照间隔打印日历 for i 0 i number i printf while j max printf 8d j if i 7 6 printf n i j printf n n int x3 int year int month int day if year 0 month12 dayd ay1 year month 当输入植出现这些情况时 9 return 0 返回 0 else return 1 返回 1 void nianli int year int i printf n for i 1 i 12 i if runnian year printf 闰年 else printf 平年 printf d 年 d 月 n n year i void yueli int year int month if runnian year printf 闰年 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 case 1 选择 1 时 printf n 请输入您要查的年份 给出输入提示 scanf d 输入查询的年份 a x3 year 1 1 if a 0 printf 错误 请您重新输入 n 输入植异常时报错 break 11 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 登陆界面 图图 4 1 登陆界面提供了四个选项进行选择 并提示输入后的操作方法 2 显示某年全年日历 13 图图 4 2 输入指令后 依次打印出每个月份的日历 并显示平年或者闰年 3 3 显示某月日历 图图 4 3 15 第 5 章 课程设计心得 通过本次课程设计我第一次通过自己的实践对书本上的知识进行了与生 活相关的运用 在这个程序中 主要应用了这学期所学习的循环 条件语 句 数组以及调用函数 这些知识的应用使我对课本内容的认识得到了加 深 在编写程序的过程中 也出现了很多错误 比如程序语句错误导致检 测时连续报错 函数语句编写错误导致输出结果与实际不符等 出现这些 情况后 通过对一些新知识的学习和对网上相关资料的阅览 我发现了自 己的程序的问题所在并进行了改正 最后得到了正确的结果 在程序的编写完成后 我按照要求对程序进行了拓展 在输出年 历的基础上增加了月历及确定日期的输出 本来设想增加农历生肖功能 但是由于程序过于复杂 最终没能在规定时间内调试成功 参考文献参考文献 1 杨文君 杨柳 C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年安徽扬子职业技术学院单招职业技能测试必刷测试卷及答案解析(夺冠系列)
- 2026年亳州职业技术学院单招职业适应性测试题库附答案解析
- 2026年云南特殊教育职业学院单招综合素质考试必刷测试卷及答案解析(名师系列)
- 2026年娄底幼儿师范高等专科学校单招职业适应性考试必刷测试卷带答案解析
- 2026年唐山海运职业学院单招职业适应性考试题库带答案解析
- 2026年山东信息职业技术学院单招职业倾向性考试必刷测试卷及答案解析(名师系列)
- 2026年嵩山少林武术职业学院单招职业技能考试必刷测试卷及答案解析(夺冠系列)
- 2026年四川电力职业技术学院单招职业倾向性测试必刷测试卷及答案解析(名师系列)
- 2026年浙江特殊教育职业学院单招职业技能考试必刷测试卷及答案解析(夺冠系列)
- 2026年内蒙古民族幼儿师范高等专科学校单招职业倾向性考试题库及答案解析(名师系列)
- DB13∕T 2783-2018 冬小麦小定额灌溉技术规程
- 骨科的课件教学课件
- 苗木种植承包合同
- 电除颤操作及评分标准
- 梁板结构:双向板
- 冶金物理化学相图
- 胸腔积液护理查房课件
- 2024年12月浙江省大学英语三级考试真题试卷
- T∕CFA 0308053-2019 铸造企业清洁生产要求 导则
- 老年失能全周期综合康复管理模式专家共识
- 第九单元 文人情致 课件高一音乐人音版(2019)必修 音乐鉴赏
评论
0/150
提交评论