《C语言万年历课程设计报告》Word格式文档下载.docx

上传人:wj 文档编号:13047239 上传时间:2022-10-03 格式:DOCX 页数:26 大小:320.51KB
下载 相关 举报
《C语言万年历课程设计报告》Word格式文档下载.docx_第1页
第1页 / 共26页
《C语言万年历课程设计报告》Word格式文档下载.docx_第2页
第2页 / 共26页
《C语言万年历课程设计报告》Word格式文档下载.docx_第3页
第3页 / 共26页
《C语言万年历课程设计报告》Word格式文档下载.docx_第4页
第4页 / 共26页
《C语言万年历课程设计报告》Word格式文档下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

《C语言万年历课程设计报告》Word格式文档下载.docx

《《C语言万年历课程设计报告》Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《C语言万年历课程设计报告》Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。

《C语言万年历课程设计报告》Word格式文档下载.docx

四、详细设计 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语言编写的万年历系统主要实现了年历、月历、日历的显示,并进行了闰年和星期的判断。

最终的设计结果也达到了预期的效果,是一次成功的程序设计。

在设计初期,我首先预习了需要用到的算法,熟悉了基本程序后,再开始广泛的查阅有关万年历的相关资料,并结合查找到的资料,整理出设计思路和整体框架,画出流程图,最后写出源程序。

在编写程序的过程中,我将各个功能分成不同的函数,逐一编写每个函数,并在主函数及其他地方调用,最后编译成功。

在这次编写的过程中,也遇到了不少的问题,比如如何获取系统时间,如何将阿拉伯数字转化成中文数字输出,如何计算任意时间的时间差。

这些困难,最后都通过上网查阅资料以及询问老师、同学得以

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1