C语言课程设计万年历打印

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计万年历打

This model paper was revised by the Standardization Office on December 10, 2020

温馨提示

程序语言:C、C++、C#、Python(红色字体表示本课设使用的程序设计语言)

图形功能选项:Win32控制台程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(黑体标明表示本课设的程序图形类别,默认为非图形界面Win32控制台程序)

数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(黑体标明表示本课设使用的数据结构)

C++语言项:STL库(黑体标明表示使用C++的STL库)

编译环境:Windows 7 64位旗舰版(Linux及其他环境请谨慎下载)

集成开发环境:Visual C++ 、DEVC++、CodeBlocks、Visual Studio 2015均可通过编译。(若无法通过编译运行,则会用浅蓝色字体表示)

分多头文件编译:否(所有代码基本都包含在一个文件内,如需试验头文件功能,请自行参考相关文献)

内容说明:

1、课设题目及预览内容将在第二页开始展示。

2、代码行数:333行

3、目录所示内容,本文基本涵盖,如无内容,会在本页进行说明。

4、附录绝对包含用户使用手册及程序完整源代码和详细注释。

5、如需下载其他头文件(例如DirectX需另行配置),本文会在此进行说明。

6、本文撰写内容仅供学习参考,另外,由于本人水平有限,编写之处难免存在错误和纰漏,恳请各位老师或同学批评指正。

题目:万年历显示

功能要求:

(1)输入一个年份,输出是在屏幕上显示该年的日历。假定输入的年份在1940-2040年之间。

(2)输入年月,输出该月的日历。

(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。

运行截图:

功能(一):

功能(二):

功能(三):

课程设计报告

课题:

学院:

专业:

学生姓名:

学号:

指导老师 :

20XX年XX月XX日目录

摘要

万年历的主要功能是通过C语言编程实现查询某年的日历情况,并且可以查询某年月的日历情况,还可以对某年月日进行计算距今的天数和判断是否为公历节日,其功能和代码满足人性化设计和良好的编程规范要求。

关键词:万年历,C语言编程,人性化设计

需求分析

系统将以用户输入的信息进行功能的选择,提供某年日历的输出、某年某月日历的输出和距今天数的输出及节假日的判断这大三功能。

功能流程图

本程序主要通过获取屏幕输入,然后进行字符串处理,选择相应的功能执行,最后打印输出信息。功能流程图如下:

功能模块图

开始

输入

处理输入信息

判断年

年月日运算,计算距今的天数年月运算,准备

打印某年某月日

年运算,准备打

印某年日历输出

结束

提示信息

打印某年日历

模块

打印某年某月

日历模块

计算距今天数

和判断节日模图功能模块图

数据结构

建立日历信息结构体,结构体成员变量包括月末、月初星期几、屏幕信息左半边日历是否打印完毕。

typedef struct calendar {

int month_end; ....

int printFinished; 程序设计(第四版).北京:清华大学出版社,2010 [2] 林锐着.高质量C 编程指南.北京:电子工业出版社,2001

[3]Stephen .编程精粹:编写高质量C 语言代码.人民邮电出版社,2009 图 程序流程图(一)

是 否

firstFun()函

判断是否打

打印某月日历

结束

图 程序流程图(二) 是 否

secondFun()

判断是否月

打印某月某日的日历

结束 图 程序流程图(三)

thirdFun()函判断是打印信息

结束 计算距今天数

附录

用户使用手册

1、根据屏幕提示,输入即可。

2、输入年份,例如2018年,则会打印2018年的日历。

3、输入年月,例如2018 10(也可以尝试其他的分隔符,例如2018,10),则会打印2018年10的日历。

4、输入年月日,例如2018 10 1(同上),则会输出距今的天数和输出具体的节假日。

程序源代码

#include<>

#include<>

#include<>

#include<>

#define isPrime(year) ((year%4==0&&year%100!=0)||(year%400==0)) ....

int printFinished; irst_day = calculateWeeks(year, i + 1, 1);

switch (fun) {

case 1:firstFun(year, cal); break;

case 2:secondFun(year, month, cal); break;

case 3:thirdFun(year, month, day); break;

}

return 0;

}

void judgmentLeapYear(int year, Calendar *cal)

{

if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))

cal->month_end = 29;

else

cal->month_end = 28;

}

int calculateWeeks(int year, int month, int day)

{

int c, w, y;

y = year % 100;onth_end) { rintFinished = 1; onth_end) { rintFinished) { onth_end || cal[month - 1].printFinished) {

相关文档
最新文档