当前位置:
文档之家› 万年历C语言课程设计(内附程序)
万年历C语言课程设计(内附程序)
12
第五章 参考文献 1.《C 程序设计(第 3 版)》.谭浩强.清华大学出版社.2012. 2.《C 语言程序设计案例实践》.李丹程.清华大学出版社.2009
第六章 附(程序源代码)
13
万年历:
#include<stdio.h>
#include<time.h>/*时间和日期*/
#include<conio.h>
并显示调整后的日期。还可以通过键盘操作复位到系统所在的日期。
5. 输入任意年份,将该年份每月的日历写入文件。
(3) 各模块的功能及分析。
1. 定义全局变量及数组。
2. 程序共由十一个函数构成,其功能分别为:
a. showtime() 显示系统日期所在月份的日历。
b. refer()
查询日期并显示所在年份是否为闰年。
2.1 系统概述..................................................................................................................... 5 2.2 系统的构成................................................................................................................. 5 2.3 各模块的功能............................................................................................................. 5 2.4 系统的运行环境......................................................................................................... 5 3.系统实现..........................................................................................................................6 4.总结................................................................................................................................11 5.参考文献..........................................................................................................................12 6.附录(程序源代码)......................................................................................................13
case 6:
2
目录 1.选题的意义........................................................................................................................4 2.系统的分析......................................................................................................................5
{
struct tm*local;
lt=time(NULL);
local=localtime(<);
return local->tm_year+1900; /*系统年份从 1900 年为 0 年开始计算*/
}
int nowmonth() /*系统的月份*/
{
struct tm*local;
lt = time(NULL);
local=localtime(<);
return local->tm_mon+1;
}
int nowday() /*系统在哪一天*/
{
struct tm*local;
lt=time(NULL);
local=localtime(<);
return local->tm_mday ;
}
int isleap(int year) /*判断是否是闰年*/
#include<stdlib.h>
time_t lt;
char key;
int mon[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31}, /*定义各个月的天数*/
{0,31,29,31,30,31,30,31,31,30,31,30,31}} ;
int nowyear() /*系统的年份*/
c. setdate() 设定系统的初始日期。
d. print()
打印指定年份的每月日历并写入文件。
e. nowday() 提取系统所在日期的日
f. nowmonth() 提取系统所在日期的月份
g. nowyear() 提取系统所在日期的年份
h. isleap() 想判断给定年份是否为闰年
i. isweek() 判断给定日期是星期几,周日到周六分别为 0 到 6
j. errortest() 判断输入的日期是否合法并给出提示
k. main()
主函数,程序开始运行并转至 showdate()
(4) 系统的运行环境
VC++6.0
5
主流程图:
第三章 系统的实现
b. showdate()
6
c. refer()
d. setdate()
7
e. nowday()
f. nowmonth()
日期。
2. 日期查询、闰年判断功能。输入日期进行查询,查询后将显示查询日
期所在的月份,并突出显示查询日期。如是闰年,则给出提示。
3. 日期合法性检查功能。程序还设置有对输入的日期进行合法性检查的
功能,如果年份、月份或者天数不合法,查询将被拒绝,并显示提示
信息。
4. 支持通过键盘设定系统日期。通过键盘的操作调整年份、月份和日期,
{
void refer();
if(month>12||month<1&&day>31||day<1)
{
printf("输入有错误,按任意键返回,重新输入\n");
if(getch()){system("cls");refer();}}/*输入日期不合法时候报错*/
switch(month)
{
case 4:
石家庄铁道大学课程设计
C 语言课程设计 万年历
单 位 电气与电子工程 学院(系) 班级 学号 学生姓名 指导教师
完成日期 2013 年 7 月 8 日
1
摘要
本课程设计报告介绍的是 C 语言实习中的万年历项目。该报告共分五章,第 一章介绍选题意义,也就是我选择万年历作为课题项目的理由。第二章是系统的 分析,包括系统概述,系统的构成,其中包括各个模块功能的分析介绍,该章节 的最后介绍了各部分的功能,即组成程序的各个函数的功能介绍。第三章是系统 的实现,即为各个功能的实现而服务的十个自定义函数的流程图,通过这十个流 程图,您可以快速地明白程序功能的实现过程。第四章是总结,即本人在设计万 年历程序过程中的心得,以及在整个程序设计过程中我的工作过程,也体现了我 的设计思路。第五章是参考文献,在这里我主要查阅了《C 程序设计(第三版)》 中的 C 函数附表,另外有几处欠缺的知识,我借鉴了另一本书上的相关部分。第 六章,也是最后一章,我把整个程序的源代码及其注释附上。由于本人水平所限, 程序也不可能很完美,必定有一些漏洞和拖沓,还请谅解。好了,从这里开始, 我将与你们分享我我在整个万年历程序设计析
(1) 系统概述: 该程序可以实现系统当前日期所在月份的日历显示功能,
日期查询功能,程序的初始日期设定功能,还有把给定年份的日历输出到
txt 文档中的功能。
(2) 系统的构成:
1. 日历显示功能。该日历能够根据系统日期自动进行初始化,如果没有
任何的输入,则会显示系统日期所在月份的月历,并能突出显示当前
3
第一章 选题的意义 (1) 通过万年历的设计,使我们掌握软件开发过程的问题分析、系统设 计、程序编写、测试等基本方法和技能。 (2) 通过万年历的设计,熟练掌握 C 语言中的分支、循环、数组、函数、 文件操作等的综合运用。 (3) 通过万年历的设计,可以培养独立思考、综合运用所学有关相应知 识的能力,更好地巩固《C 程序设计》课程中的所学内容。 (4) 通过万年历的设计,可以强化自己的动手编程能力,更加深刻地感 受 C 语言的优点。 (5) 万年历与我们的生活联系密切,通过万年历的设计,我们可以感受 知识与实践相结合的乐趣。
{
allday=allday+mon[isleap(year)][j];
}
allday=allday+day;
week=(allday-1)%7; /*计算当天为星期几,星期日至六为 0 至 6*/
return week ;
}
void errortest(int year,int month,int day)
int i,j,week; int allday=0 ; for(i=0;i<year;i++) {