课程设计报告

发布 2022-10-01 03:30:28 阅读 7827

程序设计基础课程设计。

万年历系统。

院系: 计算机科学技术学院

班级: 师计 09-2 班

组长: ***。

组员: 畅通。朴红石。白雪花

指导教师: 黄绍义。

2024年12月24日

1.设计目的。

本程序通过c语言编程实现了一个万年历,能实现基本的万年历功能。万年历的实现核心是要判断闰年和根据给定的日期计算其对应的星期,并按照合适的方式输出日历。

2功能描述。

万年历能实现一些功能,主要包括以下的几点。

1) 日历显示功能。该日历能根据系统日期进行初始化,如果没有任何的输入,则会显示系统日期所在月份的日历,并能突出显示当前日期。

2) 日期查询﹑闰年判断功能。输入日期进行查询,查询后将显示查询日期所在月份的月日,并突出显示查询日期。此外,还将显示查询日期所在年份是否是闰年。

3) 将显示查询日期所在年份是否是闰年。

4) 支持键盘操作。支持键盘操作,可以通过键盘操作调整年份﹑月份和日期,并显示调整后的日期。还可以通过键盘操作复位到系统所在日期等。

5) 参数检查功能。程序还设置有参数检查功能,即对输出的日期进行合法性检查。如果年份﹑月份或者田鼠不合法,查询将被拒绝,并显示提示信息。

3.1总体设计。

1.功能模块图。

本系统包括4个模块,分别是功能控制模块﹑打印输出模块﹑日历显示模块和键值获取模块,如图所示。

图系统模块图。

1. 功能控制模块。该模块用于实现日期有效性检查﹑判断是否是闰年和返回指定日期对应的日期。

2. 打印输出模块。该模块主要是进行输出显示,包括打印指定个数的空格﹑打印分隔线﹑打印用户使用手册﹑打印当前日期对应的星期以及打印指定的星期。

3. 日历显示模块。该模块是系统的核心模块,是用来显示指定日期所在月份的月历。

4. 键值获取模块。该模块接受键盘操作,获取键值,来进行日期调整,并调用日历显示模块中的函数来显示调整后的日历。

2.日历显示流程图。

日历显示是系统的核心模块,它控制着日历的生成和显示。其实现流程如图所示。程序输入的是包含年月日的日期,输出month所在月份的月历,并突出显示day所在的日期和year是否是闰年的标识。

程序首先根据判断year其是否是闰年,如果是则需要将该年2月份的天数设置为29天,接着判断day是否超过month所在的月份的最大天数,如果超过则显示系统日期所在的月历。然后进行星期输出的判断,如果输出的是该月的第一个星期,则判断该星期中还有几天在本月(如,该月1号是星期五,则表示该月第一个星期中只有两天在本月,星期一到星期四在上月,则星期一到星期四在本月就不输出,仅有空格表示),输出完第一周后,接着输出第二到第五(或者六)周,每周7天。在输出过程中,如果遇到了day所在的日期,则突出显示。

3.键值获取流程图。

键值获取实现的是从键盘调整日期并显示调整后的日历。系统首先判断从键盘输入的值,如果是右移键,表示增加月份。如果左移键,表示减少月份。

如果上移键,表示增加年份。如果下移键表示减少年份。如果上翻页键表示减少日期。

如果是下翻页键表示增加日期。如果q/q键表示查询日期,此时将输出提示信息,提示用户输入查询日期。在用户输入查询日期后,系统将调用日期检查函数对输入日期的合法性进行检测,如果输入日期不合格,则提示错误信息并显示当前系统日期所在月的月历;如果是空格键表示重置,显示当前系统日期所在月的月历;如果是esc键表示退出系统,按此键后,系统将询问用户是否确定退出,在得到确定回答(用户输入y/y)后将退出系统。

4. 小结。

通过编译,调试,大概掌握了以下知识点。

1) 函数的自定义和函数的调用方法。

2) if语句和switch语句的运用方法。

3) 闰年的判断方法和星期的计算方法。

4) 系统日期的获取。

5) 字体颜色的设置。

6) 屏幕输出的方法。

(7) 光标定位、产生中断等。

5.1运行结果。

1. 程序开始与退出。

程序以系统的日期进行初始化,程序开始时显示的是系统日期所在月的月历,如图5.1所示。图中第一行显示了该年是否是闰年(绿色字迹突出显示),图的右边部分显示的是用户使用手册,图的左边部分显示了该月的月历,包括日期和其对应的星期,并突出显示了当前日期(程序是2024年12月21日运行的)。

图5.1 程序开始。

要想退出程序,可按esc键。程序将询问用户是否确定退出,如图5.2所示。

如果要确定退出可输入“y”或者“y”,按enter键即可。这里,由于我们还要继续操作,所以不退出程序,而输入“n”表示不退出程序。

图 5.2 退出程序。

2. 移动上下键

移动上下键可以调整日期中表示年的部分。控制向上键可以增加年份,如图5.3所示。

系统日期是2024年6月17日,星期一,按向上键后,程序将显示2024年6月的月历。通过图中第一行可以得知,2024年是闰年。此外,在图中左下部分的“the day you choose is:

” 下的日期变为“2008-6-17,tuesday”,这表示当前选择的日期是2024年6月17日,星期二。

图5.3上一键操作。

按space(空格)键后,将恢复到程序开始的状态。此时,按向下键,将减少年份,如图5.4所示。其各个操作和按向上键的意义是一样的。

图5.4 下一键操作。

3. 移动左右键。

移动左右键可以调整日期中表示月的部分。控制向左键可以减少月份,如图5.5所示。

在图5.4的情况下按space键重置程序到开始状态。系统日期是 2024年6月17日,星期一,按向左键后,程序将显示2024年5月的月历。

图中左上部分的表示月份的“june 6”变为“may 5”了,在图中左下部分的“the day you choose is:”下的日期变为“2007-5-17,thursday”,这表示当前选择的日期是2024年5月17日,星期四。

图5.5 左移键操作。

按space键将程序重置到开始状态。按右移键可以增加月份,如图5.6所示。其各个操作和按向左键的意义是一样的。

图5.6 右移键操作。

5. 查询日期。

1) 日期查询。

如果要查询某一个日期,可以按q或者q键进行。如图5.7所示,按q键后,将出现提示性语句“input date(eg,2007-6-17):

”其中“(eg,2007-6-17)”是输入示例,只有按照这样的输入才被程序所接受。输入示例的日期是读取的系统日期。我们再次输入北京奥运会的开幕日期“2008-8-8”。

课程设计报告格式 课程设计

洛阳理工学院。课程设计说明书。课程名称。设计课题。专业。班级。学号。姓名。完成日期2014年12月26日。问题描述 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的内容要求。基本要求 小四宋体,行间距单倍行距,每段缩进两个字符。叙述一下设计的基本要求。测试数据 小四宋体,行间距单倍行距,每...

课程设计总结,课程设计报告

课程设计总结,课程设计报告。3.尝试应用项目管理软件进行项目进程的规划管理 绘制甘特图,不作硬性要求 二 选题说明。人事管理是企业信息管理的重要部分,面对大量的人事工资信息,财务部门采用人力处理将浪费大量的时间 人力和物力,且数据的准确性低。因此,开发一个界面友好,易于操作的人事工资管理软件进行自动...

课程设计 课程设计报告格式

学校名。课程设计报告。课程名称 c语言程序设计 系别 专业班级 学号。姓名。课程题目 企业人事管理系统 完成日期 指导老师 年月日。附件。课程设计的内容。企业人事管理系统 本项目的目标是开发一个功能实用,操作简便,简单明了的人事管理系统。能够录入人事的基本资料,在操作上能够完成诸如添加 修改 删除 ...