《C语言万年历课程设计报告》Word格式文档下载.docx
- 文档编号:13047239
- 上传时间:2022-10-03
- 格式:DOCX
- 页数:26
- 大小:320.51KB
《C语言万年历课程设计报告》Word格式文档下载.docx
《《C语言万年历课程设计报告》Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《C语言万年历课程设计报告》Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
四、详细设计 7
4.1程序流程图 7
4..2关键算法与技术实现 9
五、测试运行 11
5..1系统测试方案 11
5.2运行结果分析 12
六、设计体会 16
主要参考文献 18
附录 2
4
一、设计任务与要求
1.1设计任务与要求
在一周内用C语言编写出一套“万年历系统”,该系统要求操作简单,界面清晰,能完成万年历的基本功能,即判断闰年、查询星期、查看日历等功能,并且能提示用户的错误输入。
从而实现万年历的一些基本功能。
1.2选题目的与意义
在现代社会中,拥有准确的时间是非常重要的,所以,日历是日常生活中不可缺少的一个东西。
当然,日历并非仅仅具有查阅日期的功能,它还可以具有查阅星期、星座、凶吉等功能。
以前的日历都是厚厚的一堆纸叠起的,人们如果随身携带非常不方便,而且人手翻起来很麻烦,还浪费时间。
其次,以前的日历内容功能简单,只能查阅当年的日期、星期和农历,如果人们想知道今年是否是闰年,或者属相星座等,都不能从中获取,必须通过自己脑子算,大大降低了人们的工作效率。
而且如果一个人不知道如何去判断闰年、星座、属相等,那他最终也不知道这些信息。
所以通过编写一个“万年历系统”,从而轻松达到判断闰年、查询星期、查看日历等功能。
通过万年历的设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关,更加了解了c语言的好处和其可用性。
同时增加了同学之间的团队合作精神,更加也体会到以后在工作中团队合作的重要性和必要性。
二、需求分析
2.1用户需求
(1)有美观大方的主界面,能保证用户方便、直观、快捷的熟悉该系统的各项功能。
(2)有严密正确的数据验证功能和数据处理功能,并对数据进行保存和提取。
(3)系统一定要有可靠性。
2.2开发环境
Windows7,MicrosoftVisualC++6.0(SP6中文版)。
三、系统概要设计
3.1系统总体设计
通过此次课程设计可以复习巩固C语言的基础知识的同时,进一步加深对C语言的理解和掌握。
该系统就运用到了数组、函数、循环等数据结构进行设计的一个简单的查询判断系统,是程序具有判断、查询、打印等功能。
主要的设计思想是通过不同的函数模块来实现并调用的,将这些不同的数据结构组成一个整体就是此次设计的系统概要。
该软件以菜单形式进入主界面,并以菜单形式完成用户的各项要求。
系统能根据用户要求不退出某一功能继续使用该功能,或者返回到主菜单进行其他功能操作。
3.2功能模块设计
该软件整体调用关系如图3.1
图3.1
8
3.3各功能函数的设计
该系统包含的库函数具体有:
#include<
stdio.h>
#include<
string.h>
time.h>
该系统包含的文件具体有:
#include"
main.c"
/*主函数文件*/
#include"
input.c"
/*判断输入界面文件*/#include"
zhujiemian.c"
/*主界面文件*/
#include"
run_nian.c"
/*判断闰年函数文件*/#include"
cha_xing_qi.c"
/*查询星期函数文件*/#include"
cha_ri_li.c"
/*查询日历函数文件*/#include"
da_ri_li.c"
/*打印日历函数文件*/
(1) 菜单选择模块完成用户命令的接收,此模块也是万年历系统的入口,用户根据自己需要进入各项功能模块完成功能实现。
(2) 所设计的系统为用户提供清晰的操作提示,并负责检查用户是否输入有误,以正确形式输入数据和命令。
(3) 闰年判断系统完成用户的对某一年是否是闰年的判断;
(4) 查询日历系统完成用户对某一月或一年的日历查询;
(5) 查询星期系统完成用户对某一天的星期的查询。
(6) 完成各项功能,退出系统。
四、详细设计
4.1程序流程图
(1)闰年判断系统
图4.1
(2)查询日历系统
图4.2
(3)查询星期系统
图4.3
(4)打印日历系统
图4.4
4.2关键算法与技术实现
对题目分析后,采用将每个功能分别编译实现,在通过函数的包含和调用等方法实现各项功能间的连接为设计思想。
该软件将各个功能列为菜单,方便用户随时
调用各个功能,以实现万年历查询、管理、打印等功能。
具体功能算法如下:
(1)闰年判断系统
直接用闰年的定义判断输入年份,即能被400整除或者能被4整除但又不是100的倍数就定义为闰年。
伪代码如下:
if(year能被400整除||(year能被4整除&
&
year不能被100整除))输出结果;
(2)查询星期系统
首先要知道1900年1月1日是星期一,每过一个平年星期数加1(365%7==1),而每
过一个闰年星期数加2(366%7==2),所以先求出输入年距元年一共过了多少闰年和平年,
再求出1月到输入月过了多少个月,并累加各月天数,最后加上输入天距当月的1号过了
多少天。
星期数就是以上求出的所有天数和年数的总和模7的值。
伪代码如下:
if(year是闰年)month[2]=29;
/*如果是闰年,2月就改为29天*/week=(year-1)+(year-1)/400+(year-1)/4-(year-1)/100;
/*计算经过了平、润总年份*/
for(i从1到m)week+=month[i];
/*累加过了月份的总天数*/week=week+d;
/*加上这月过了的天数*/
week=week%7;
/*模7就是星期数*/
(3)查询日历系统
先引用查询星期系统,求出输入这月1号的星期数,将1号找到星期对应的位置,逐
日打印,打印一个星期数加1,如果星期模7等于0就换行。
部分代码如下:
week=search(year,mon,1);
/*先查当月1号的星期*/switch(week) /*找到对应的星期数对齐*/
{
case0:
printf("
"
);
break;
/*周日*/
case1:
"
break;
/*周一*/
…………
case6:
/*以此类推,找到周六*/
}
if(year是闰年)month[2]=29;
9
for(i从1到当月天数)
打印日期;
week++;
if(week%7==0)换行;
(4)打印日历系统
引用查询日历系统,最外面一个n从1到12的循环,打印n月的日历即可。
伪代码如下:
for(i从1到12)打印输入年i月的日历;
10
五、测试运行
5.1系统测试方案
进入闰年判断系统,输入‘2012’,查看输出,应是闰年。
再选择继续操作,输入‘2013’,查看输出,应不是闰年。
最后返回主菜单继续后面系统的操作。
进入查询日历系统,输入‘2012,7’,查看输出,看是否与事实相符。
再选择继续操
作,输入‘2012,8’,查看输出结果。
最后返回主菜单继续后面系统的操作。
进入查询星期系统,输入‘2012,7,10’,查看输出,应是星期二。
再选择继续操作,
输入‘1900,1,1’,查看输出,应是星期一。
进入打印日历系统,输入‘2012’,查看输出,看是否与事实相符。
选择返回主菜单推出系统程序。
(5)报错系统
进入主菜单后,选择‘6’,看是否报错并提示重新输入。
再进入查询星期系统,输入“2012,13,32”,看系统是否报错并提示重新输入,判断完成后,输入‘2’,看是否报错并提示重新输入。
15
5.2运行结果分析
主菜单界面
图5.1
图5.2
图5.3
图5.4
图5.5
图5.6
图5.7
图5.8
图5.9 图5.10
图5.11 图5.12
图5.13
图5.14
图5.15
六、设计体会
感想
本次用C语言编写的万年历系统主要实现了年历、月历、日历的显示,并进行了闰年和星期的判断。
最终的设计结果也达到了预期的效果,是一次成功的程序设计。
在设计初期,我首先预习了需要用到的算法,熟悉了基本程序后,再开始广泛的查阅有关万年历的相关资料,并结合查找到的资料,整理出设计思路和整体框架,画出流程图,最后写出源程序。
在编写程序的过程中,我将各个功能分成不同的函数,逐一编写每个函数,并在主函数及其他地方调用,最后编译成功。
在这次编写的过程中,也遇到了不少的问题,比如如何获取系统时间,如何将阿拉伯数字转化成中文数字输出,如何计算任意时间的时间差。
这些困难,最后都通过上网查阅资料以及询问老师、同学得以
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言万年历课程设计报告 语言 万年历 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)