用C语言编写一个年历.doc_第1页
用C语言编写一个年历.doc_第2页
用C语言编写一个年历.doc_第3页
用C语言编写一个年历.doc_第4页
用C语言编写一个年历.doc_第5页
已阅读5页,还剩5页未读, 继续免费阅读

下载本文档

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

文档简介

黑龙江八一农垦大学理学院 C 程序设计 课程设计报告 2011 2012 学年第二学期 设计题目 用 C 语言设计一个年历系统 指导教师 魏玉芬 完成时间 2012 年 6 月 13 日 至 2012 年 6 月 20 日 第 一 组报告成员 姓 名专业班级学 号 国斌国斌信息与计算科学信息与计算科学 2011409101220114091012 张超张超信息与计算科学信息与计算科学 2011409104420114091044 关昕关昕信息与计算科学信息与计算科学 2011409104520114091045 刘强强刘强强信息与计算科学信息与计算科学 2011409100220114091002 杨洪全杨洪全信息与计算科学信息与计算科学 2011409100120114091001 成绩评定 分 任课教师签字 2012 年 6 月 20 日 目录 第 1 页 共 10 页 目录目录 1 程序设计与分析 程序设计与分析 2 1 功能分析与任务分配 2 2 流程图 4 3 数据结构 6 2 详细设计 详细设计 8 3 参考文献 参考文献 10 4 附录 附录 10 5 总结 总结 10 黑龙江八一农垦大学理学院 C 程序设计 课程设计报告 Page 2 of 10 1 程序设计与分析 程序设计与分析 1 功能分析与任务分配 一 功能分析 一 功能分析 1 要输入任一年显示出该年的所有月份日期 应该先设计具体的输出格式 如 下 the calendar of the year2012 January Sun Mon Tue Wed Thu Fri Sat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 2 判断是不是闰年 year 4 0 year 100 0 2 字符型 char p 3 字符型数组 week Sun Mon Tue Wed Thu Fri Sat month January February March April May June July August Sep tember October November December 黑龙江八一农垦大学理学院 C 程序设计 课程设计报告 Page 5 of 10 4 指针数组 char week Sun Mon Tue Wed Thu Fri Sat char month January February March April May June July August September October November December 2 详细设计 详细设计 想要编写一个万年历程序 按其要求输出相应的功能 1 首先 需要对任一输入年份进行判断 判断其是平年还是闰年 if month 1 month 3 month 5 month 7 month 8 month 10 month 12 return 1 else if month 2 if year 4 0 year 100 0 else return 3 else return 4 即当上式返回值为 2 的时候 为平年 否则 为闰年 然后 判断这一年的月份 将其分为 4 种类型 即 天数为 31 天的月份 天数 为 28 天的月份 天数为 29 天的月份 和天数为 30 天的月份 对应的函数返回值 分别为 n 1 n 2 n 3 n 4 将以上几部分 综合整理为一个判断函数 其程序为 int judge int year int month 定义 judge 函数 if month 1 month 3 month 5 month 7 month 8 month 10 month 12 天数为 31 天的月份 return 1 else if month 2 if year 4 0 year 100 0 else return 3 else return 4 2 接下来 定义主函数 在这一部分 有一个地方非常关键 那就是对任一年 第一天是星期几的判断 a year year 1 4 year 1 100 year 1 400 7 即 计算后 a 值为 0 1 2 3 4 5 6 分别对应周日 周一 周二 周三 黑龙江八一农垦大学理学院 C 程序设计 课程设计报告 Page 6 of 10 周四 周五 周六 3 然后就是对任一年 月份 星期 和天数的循环 for i 0 i 12 i 月份循环 n judge year i 1 判断情况 为下程序做准备 p month i 指向指针变量的指针 月份输出 printf s n p printf n for j 0 j 7 j 星期循环 p week j printf 6s p printf n for k 0 k a k printf for m 1 m 32 m 每月天数循环 printf 6d m if a m 7 0 printf n 满星期换行 a a m 7 a 为下个月所对应的星期 printf n printf printf n 4 最后 输入任一年份 依次执行程序 输出结果 以 2012 年为例 黑龙江八一农垦大学理学院 C 程序设计 课程设计报告 Page 7 of 10 3 参考文献 参考文献 1 刘明 夏清国 C 程序设计 三导丛书 M 西安 西北工业大学出版社 2003 1 380 黑龙江八一农垦大学理学院 C 程序设计 课程设计报告 Page 8 of 10 2 谭浩强 C 程序设计 第四版 M 中国高等院校计算机基础教育课程体系 规划教材 2010 066130 1 1 330 4 附录 附录 include int judge int year int month 定义 judge 函数 if month 1 month 3 month 5 month 7 month 8 month 10 month 12 天数为 31 天的月份 return 1 else if month 2 if year 4 0 year 100 0 else return 3 else return 4 int main int year i j a n m k 定义变量 char p 指向指针的指针变量 char week Sun Mon Tue Wed Thu Fri Sat char month January February March April May June July Aug ust September October November December printf please inter the year 输入所求年份 scanf d printf n printf the calendar of the year d year printf n a year year 1 4 year 1 100 year 1 400 7 判断每年的第一天是周 几 当 a 值为 0 的时候 对应周日 for i 0 i 12 i 月份循环 n judge year i 1 调用函数 n 值为 1234 代表每月为多少天 p month i 数组名为首地址 加 i 循环 printf s n p 输出月份名 printf n for j 0 j 7 j 星期循环 p week j 数组名为首地址 加 j 循环 黑龙江八一农垦大学理学院 C 程序设计 课程设计报告 Page 9 of 10 printf 6s p 六列 字符串输出 printf n for k 0 k a k a 代表每年第一天 后为每月前空格天数 printf 输出六个空格 for m 1 m 32 m 每月天数循环 printf 6d m 输出格式占六列 右端对齐 if a m 7 0 printf n 满星期换行 if n 1 从此处至以下执行整月停止 else if n 2 else if n 3 else if n 4 a a m 7 a 为每月末行天数 printf n printf printf n 5 总结 总结 通过本次课程设计我们第一次通过自己的实践对书本上的知识进行了与生 活相关的运用 在这个程序中 主要应用了这学期所学习的循环 条件语句 数组以及调用函数 这些知识的应用使我们对课本内容的认识得到了加深 在编写程序的过程中 也出现了很多错误 比如程序语句错误导致检测时 连续报错 函数语句编写错误导致输出结果与实际不符等 出现这些情况后 通过对一些新知识

温馨提示

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

评论

0/150

提交评论