《C语言课程设计日历显示》由会员分享,可在线阅读,更多相关《C语言课程设计日历显示(17页珍藏版)》请在人人文库网上搜索。

1、中国海洋大学青岛学院C语言课程设计报告书题 目日历显示学生姓名指导教师学 院专业班级组内分工姓名主要任务占系统比例日期判断,日期调整50%日期查询,闰年判断,主函数50%目 录1 前言12 需求分析23 模块设计图及组内分工34 NS流程图清单55 存储结构及函数说明86 课程设计结果97 实践心得体会14前言设计目的:1 加深对C语言程序设计课程所学知识的理解,进一步巩固C语言语法规则。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。2 对题目的理解:1. 本程序设计了一个比较完整的有一定功能的日历显示系统。2. 该题目要求熟练的掌握C语言的基本知识。。

2、中包括数据类型(int、char);运算类型(算术运算、逻辑运算、自增运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构),进一步掌握各种函数的应用,包括时间函数等。2 需求分析该系统共有四个大部分:日历显示功能、日历查询和闰年判断功能、参数检查功能、选做(通过键盘操作选择各个菜单)。本系统通过对某天的查询、闰年的判断,日期的合法性判断,日期的调整等各部分进行了有效的计划,组织和控制,得到了一个功能比较完整并能实现一定功能的日历显示系统。日历显示功能:判断星期,根据公式有年月日判断星期:打印时,通过第一天星期的判断,得到后面的日期,通过定长度输出。对于初始输入当前日历,可通过函数取。

3、出系统时间进行初始化。日历查询和闰年判断功能:闰年的判断,日期的查询,就是直接打印该天所在月份的日历。参数检查功能:判断日期是否合法,如果合法,再判断闰年,之后判断二月份是否满足要求。如果输入不合法或者不满足输入要求,则要求重新输入。选做(通过键盘操作选择各个菜单):捕获键盘的输入,再判断哪个键的输入,根据某键的输入,则设置相应的年或月或日的值,再属性输出,则可以实现日期的调整。3 模块设计图及组内分工模块一:日历显示功能判断星期,根据蔡勒公式,有年月日判断星期:nDay=year-1+(year-1)/4+(year-1)/400+ndayw=nDay%7;其中year:要查询的年份,nda。

4、y:从该年的一月一日起到该天的天数,w:得出的星期数,w=0代表星期天打印月历时,通过第一天星期的判断,依次得到后面的日期,通过定长度输出,遇到星期六就换行输出,因此可以按照月历的格式输出。对于初始输入当前日历,可以通过中的time和localtime函数取出系统时间进行初始化。time_t timer;struct tm *gmt;time(timer);gmt=localtime(&timer); gmt就是一个时间结构体,可以从中取出年月日。模块二:日历查询和闰年判断功能闰年的判断,能被4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。日期的查询,就是直接打印该天所在。

5、月份的日历。模块三:参数检查功能判断日期是否合法,可以先判断年月日是否有小于0的值,月和日是有超出最大值12和31,如果通过此判断合法,再判断是否是闰年,如果是闰年,则判断二月份是否满足要求,闰年二月不能超过29天,平年二月不能超过28天。再查询过程中,如果发现输入不合法或者不满足输入要求,则要求重新输入。模块四:选做(通过键盘操作选择各个菜单)通过两个getch();捕获键盘的输入,将后一个getch()的返回值付给整型或字符型k, k为相应键的assci值,判断assci 值,就可以知道是那个键的输入(包括对上一年,下一年,上一月,下一月,昨天,明天等日期的调整)。若捕获到某键的输入,则设。

6、置相应的年或月或日的值,再进行属性输出,就可以实现日期的调整。4 NS流程图清单模块一用到的NS图:模块二用到的NS图:模块三用到的NS图:模块四对应的NS图:5 存储结构及函数说明主要函数:int runYear(int year) ;该函数判断某年是否是闰年,参数year表示要判断的年份,返回值1表示该年,为闰年,0表示该年为平年。struct tm *gmt=getDay();该函数用以取得系统的时间。该函数没有参数,返回值类型为struct tm *,是一个包含时间的结构体,int dayExame(int year,int month,int day)该函数用以判断输入的年份是否合法。

7、,参数为要判断的年月日,返回值为1表示日期合法,为0表示不合法。int getwDay(int year,int month,int day)该函数用以根据一个日期推断星期,参数为要判断的年月日。返回值为整型,123456分别表示星期一到星期六,0表示星期天。void setDay(int &year,int &month,int &day)该函数调整当前日期,参数为引用类型,分别为当前日期的年月日,没有返回值。void checkCalender()该函数用以显示要查询的日期的月历,无参数和返回值。void inline backMenu()改函数为内联函数,用以实现完成某项功能后按任意字符。

8、键返回主菜单,无参数和返回值。void mainMenu(int &year,int &month,int &day)该函数参数为系统日期,无返回值,用户在该函数执行时可以选择功能。6 课程设计结果1进入程序后显示2按任意字符键返回主菜单3进入主菜单后,按1.,显示当前时间4在主菜单界面按2,进行日立的查询,并经行日期的合法性判断和闰年的判断。例1输入2009 11 6,由于输入合法,会显示月历例2输入2009 11 31,由于输入不合法,会进行报错,要求重新输入此情况下,当输入正确的日期后,就可以显示当前的月历,然返回主菜单5在主菜单输入3,进行日期调整界面,可以通过方向键以及PageUp和PageDown进行日期的调整;按上下键后出现以下结果:6在主菜单中输入4,进入帮助界面7在主界面中输入5,程序退出7 实践心得体会此程序是我们所写的第一个功能比较完整的能实现一定的实际功能的程序,代码比较短,不到250行,实现的功能有显示当前日历,进行某天的查询,闰年的判断,日期的合法性判断,日期的调整,然后在程序编写过程中,遇到一些细节性的问题,比如在乱输入的情况下,有时会出现程序崩溃,后来通过修改,修正了漏洞。到写到报告为止,漏洞基本人被找出,并得到修正。通过写这个程序,我们对程序的健壮性有了深刻的认识,也更加注意程序的细节问题。

c语言多功能日历菜单,C语言课程设计日历显示相关推荐

  1. c语言课程设计 日历显示,c语言课程设计_电子日历.doc

    c语言课程设计_电子日历 第 PAGE \* Arabic \* MERGEFORMAT 14 页第 PAGE \* Arabic \* MERGEFORMAT 14 页 课 程 设 计( 论 文 ) ...

  2. c语言学生成员管理代码报告怎么写,C语言学生通信录管理系统课程设计报告

    <C语言学生通信录管理系统课程设计报告>由会员分享,可在线阅读,更多相关<C语言学生通信录管理系统课程设计报告(18页珍藏版)>请在人人文库网上搜索. 1.实验名称 :学生通信 ...

  3. ★C/C++语言期末课程设计★——万年历显示系统(详细报告+源代码+详细注释)

    万年历显示系统报告 一.描述         大家好!我是小浝仔,今天给大家分享C/C++语言期末课程设计--万年历显示系统,这个程序是用C/C++语言程序编写的,运行环境为VisualC++6.0, ...

  4. c语言个人小管家数据的定义,c语言个人财务小管家课程设计

    1.个人小管家应用系统给家庭提供了一个管理个人财务的平台,主要用于对家庭成员收 入.支出进行添加.查询.删除.修改以及打印的操作,使得家庭财务收支状况一目了然.主要功能包括:(1)主菜单.主要包括收入 ...

  5. c语言上机指导答案清华,第一章自测练习答案清华大学c语言习题实验指导及课程设计...

    第一章自测练习答案清华大学c语言习题实验指导及课程设计 第一章 自测练习参考答案 一.简答题 1.源程序是程序员创建的,目标程序是编译器创建的,可执行程序是连接器创建的. 2.步骤如下:1)说明程序需 ...

  6. c语言经典案例 俄罗斯方块,C语言实现俄罗斯方块经典游戏课程设计

    C语言实现俄罗斯方块经典游戏课程设计 计算机实习报告 一.功能说明 1.1总体功能说明 本工程用C++语言实现了俄罗斯方块经典游戏. 俄罗斯方块游戏特点:俄罗斯方块的基本规则是通过键盘控制移动.旋转和 ...

  7. 速算C语言程序设计,C语言速算24数据结构课程设计最终版(备份存档)

    <C语言速算24数据结构课程设计.doc>由会员分享,可免费在线阅读全文,更多与<C语言速算24数据结构课程设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com ...

  8. 24速算c语言实训报告ppt,C语言速算24数据结构课程设计.doc

    C语言速算24数据结构课程设计.doc 课程设计论文题 目 名 称 速算 24 课 程 名 称 数据结构课程设计 学 生 姓 名 王浩明 学 号 0941301253 系 .专 业 信息工程系.信息类 ...

  9. 单片机c语言 课程设计报告,C语言编写单片机万年历系统课程设计报告98分

    <C语言编写单片机万年历系统课程设计报告98分>由会员分享,可在线阅读,更多相关<C语言编写单片机万年历系统课程设计报告98分(30页珍藏版)>请在人人文库网上搜索. 1.多功 ...

  10. java课程设计日历记事本_《Java程序设计》课程设计日历记事本.doc

    <Java程序设计>课程设计日历记事本 PAGE PAGE 2 本科生课程设计 课程名称 Java程序设计课程设计 课程编号 j1620011 题目 日历记事本 学号 2008116222 ...

最新文章

  1. Springboot+vue前后端分离考试系统
  2. C#方法带不确定个数参数
  3. 智能助手被指侵犯用户隐私,美三大科技巨头或面临调查;传小米已解散其VR头显Mi VR团队;特斯拉成立反欺诈部门……...
  4. P2805 [NOI2009]植物大战僵尸
  5. 【二叉树的迭代版后序遍历】LeetCode 145. Binary Tree Postorder Traversal
  6. Ubuntu 14.04 设置静态IP地址全攻略
  7. 对XSCJ数据库进行数据查询 -- 学生成绩管理系统
  8. 云痕大数据 家长登录_云痕大数据查成绩app
  9. 如何快速的切换EXCEL
  10. 云计算在互联网发展史中的坐标
  11. r5 5500参数 r5 5500有核显吗 锐龙r5 5500相当于i几
  12. PS修改PSD源文件
  13. 05_01_拉钩教育课程管理系统之一:项目介绍
  14. python-GDAL总结
  15. 1978-2018各省人均GDP数据
  16. 使用JDK的JAXB将XML转化为JAVA对象,原生支持
  17. Java学习 输出1-1000以内的质数
  18. 3.2 网络节点架构
  19. 如何让本地的 Neo4j 支持 APOC 库
  20. 计算机二级证书对审计应聘有什么帮助,计算机二级证书有什么用 含金量高吗...

热门文章

  1. 松下机器人找原点步骤_松下机器人操作规程
  2. 手写instanceof
  3. 经纬度(度分秒)坐标转换为小数格式(weixin公众号【图说GIS】)
  4. Spring动态代理中有什么方法不会被代理探究
  5. 基于单片机的音频信号分析仪毕业设计
  6. photoshop cc 2019 下载教程
  7. 诗词经典唯美名句赏析
  8. 关于42步进电机驱动——基于STM32 HAL库实现
  9. 轻量级的无线抓包(microsoft network monitor)
  10. 如何利用python监控主机存活并邮件、短信通知