显示年历C课程设计报告
- 格式:doc
- 大小:66.00 KB
- 文档页数:12
c 课程设计年历显示一、教学目标本课程的教学目标是使学生掌握年历的显示方法,能够使用编程语言实现一个简单的年历显示程序。
具体来说,知识目标包括了解年历的基本结构和显示原理,掌握编程语言的基本语法和常用函数;技能目标包括能够编写简单的年历显示程序,能够根据需要调整程序的结构和功能;情感态度价值观目标包括培养学生对编程语言的兴趣,增强学生解决问题的信心和耐心。
二、教学内容本课程的教学内容主要包括年历的基本结构和显示原理,编程语言的基本语法和常用函数,以及年历显示程序的编写和调试。
具体来说,将讲解年历的基本结构,包括日历、月历和年份,以及如何显示这些信息;将介绍编程语言的基本语法和常用函数,包括数据类型、运算符、控制结构等;最后,将指导学生编写和调试一个简单的年历显示程序,让学生通过实践掌握编程技巧。
三、教学方法本课程的教学方法包括讲授法、讨论法、案例分析法和实验法。
首先,将通过讲授法向学生介绍年历的基本结构和显示原理,编程语言的基本语法和常用函数;其次,将通过讨论法引导学生进行思考和讨论,提高学生对年历显示程序的理解和认识;然后,将通过案例分析法分析一些典型的年历显示程序,让学生了解不同的编程方法和技巧;最后,将通过实验法让学生动手编写和调试年历显示程序,培养学生的实践能力和解决问题的能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书将提供年历显示程序的相关理论和示例,供学生预习和复习;多媒体资料将通过图像、视频等形式展示年历显示程序的效果和原理,帮助学生更好地理解课程内容;实验设备将支持学生进行年历显示程序的编写和调试,让学生在实践中掌握编程技巧。
五、教学评估本课程的教学评估将采用多元化的评估方式,包括平时表现、作业和考试等,以全面、客观、公正地评估学生的学习成果。
平时表现将根据学生在课堂上的参与度、提问和回答问题的表现等进行评估;作业将根据学生的完成情况和质量进行评估;考试将采用笔试和机试相结合的方式,测试学生对年历显示程序的掌握程度。
c语言课程设计万年历一、课程目标知识目标:1. 理解C语言中结构体、数组、函数等基本概念,并能运用这些知识实现万年历的基本功能;2. 学会使用循环、判断等控制结构,实现对日期的有效处理;3. 了解并掌握C语言中模块化编程的方法,将万年历功能划分为独立的功能模块。
技能目标:1. 能够独立编写C语言程序,实现万年历的日期显示、查询、切换等功能;2. 学会使用调试工具,对程序进行调试和优化,提高程序的稳定性;3. 学会在团队协作中发挥个人优势,与他人共同完成程序设计。
情感态度价值观目标:1. 培养学生积极思考、勇于探索的精神,增强学生对编程的兴趣和热情;2. 培养学生良好的编程习惯,遵循编程规范,注重代码的可读性和可维护性;3. 培养学生的团队协作意识,学会与他人沟通、分享、互助,共同进步。
课程性质:本课程为实践性较强的课程,要求学生在掌握C语言基本知识的基础上,运用所学知识完成万年历的设计与实现。
学生特点:学生具备一定的C语言基础,对编程有一定了解,但实践经验不足。
教学要求:结合学生特点,注重理论与实践相结合,引导学生主动参与,培养学生的编程能力和团队协作能力。
通过课程学习,使学生能够独立完成万年历的设计与实现,提高学生的编程水平和实际操作能力。
二、教学内容1. C语言基本语法复习:回顾结构体、数组、函数等基本概念,确保学生能够熟练运用;相关教材章节:第一章至第四章。
2. 控制结构:讲解循环、判断等控制结构在万年历中的应用;相关教材章节:第五章。
3. 模块化编程:引导学生将万年历功能划分为独立的功能模块,讲解模块之间的调用关系;相关教材章节:第六章。
4. 程序调试与优化:介绍调试工具的使用,教授学生如何找出并解决程序中的错误;相关教材章节:第七章。
5. 项目实践:指导学生按照教学大纲,分阶段完成万年历的设计与实现;相关教材章节:全书综合应用。
教学进度安排:1. 第一周:C语言基本语法复习;2. 第二周:控制结构;3. 第三周:模块化编程;4. 第四周:项目实践(第一阶段:功能设计);5. 第五周:项目实践(第二阶段:功能实现);6. 第六周:项目实践(第三阶段:调试与优化)。
c 课程设计显示年历一、教学目标本课程的教学目标是使学生掌握C语言编程的基本技能,能够使用C语言编写简单的程序,并理解程序的基本运行原理。
具体包括以下几个方面:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
2.技能目标:学生能够运用C语言编写简单的程序,包括输入输出、流程控制、数组和字符串操作等。
3.情感态度价值观目标:通过课程的学习,学生能够培养编程思维,提高解决问题的能力,增强对计算机科学的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等。
具体安排如下:1.第一章:C语言概述,介绍C语言的历史和发展,理解C语言的特点和优势。
2.第二章:基本数据类型和运算符,学习整型、浮点型、字符型等数据类型,掌握各种运算符的使用方法。
3.第三章:控制结构,学习条件语句、循环语句等控制结构,理解程序的流程控制。
4.第四章:函数,学习函数的定义和调用,理解函数的参数传递和返回值。
5.第五章:数组和字符串,学习数组的声明和使用,掌握字符串的基本操作。
6.第六章:指针,学习指针的概念和用法,理解指针与数组、函数的关系。
7.第七章:结构体和联合体,学习结构体的声明和使用,了解联合体的特点和应用。
8.第八章:文件操作,学习文件的打开、关闭、读写等基本操作。
三、教学方法本课程采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:通过教师的讲解,使学生掌握C语言的基本语法和编程技巧。
2.案例分析法:通过分析典型的编程案例,使学生理解编程的实际应用和解决问题的方法。
3.实验法:通过上机实验,使学生动手编写程序,提高编程能力和解决问题的能力。
四、教学资源本课程的教学资源包括教材、实验设备等。
1.教材:选用《C程序设计语言》作为主要教材,辅助以相关参考书和在线资源。
2.实验设备:为学生提供计算机实验室,配备必要的开发环境和编程工具。
C语言课程设计报告题目:编写万年历系统年级:专业:班级:姓名:学号:目录第1章设计目的第2章需求分析第3章概要设计第4章源程序清单第5章执行结果1)登陆界面2)显示当前日月历3)显示具体日期信息第6章程序问题调试与课程设计心得第1章设计目的设计目的(实验要求):1.模仿现实生活中的挂历.2.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).3.当系统日期变到下一月时,系统自动翻页到下一月.第2章需求分析(1)程序运行时,首先给出菜单选项和输入提示:(2)用户可以通过主菜单选择不同选项。
输入1,通过输入当前日期可显示当前月的日历;输入2,通过输入具体日期(中间以空格分开)可显示该日具体信息;输入3,则退出查询系统。
第3章概要设计1.菜单选择界面可通过下面所示函数时现;主要思路:通过while语句与swich…case以及if条件语句实现菜单的循环功能和不同选项的功能实现。
闰年与平年的判断:代码如下:void main(){int year,month,day,a,b;while(1){printf("\n\n\n\n");printf("**********************************************************\n\n");printf(" * * \n");printf(" Welcome to enter calendar system \n");printf(" * * \n\n");printf("**********************************************************\n\n\n");printf(" 1 The month of current date 2 Date 3 Exit\n");printf(" please import your choose<1~3>,press Enter to define: ");scanf("%d",&b);switch(b){case 1:printf("\n Please import the year,month and day which you want tocheck,the year,month and day separation by blank space: ");scanf("%d%d%d",&year,&month,&day);a=x3(year,month,1);if(a==0){printf("Error!Please import again.\n");break;}yueli(year,month,day);break;case 2:printf("\n Please import the year,month and day which you want to check,the year,month and day separation by blank space: ");scanf("%d%d%d",&year,&month,&day);a=x3(year,month,day);if(a==0){printf("Error!Please import again.\n");break;}rili(year,month,day);break;case 3:exit(0);default:printf("Error!Please import again.\n\n");}}2.闰年的判断:计算所输入的年份是否可被4整除,若不能被整除,为平年。
课课程设计c语言年历显示一、教学目标本节课的教学目标是使学生掌握C语言编程的基本技巧,学会使用C语言编写年历显示程序。
具体来说,知识目标包括了解C语言的基本语法、数据类型、运算符、控制结构等;技能目标包括能够运用C语言编写简单的程序,并具备一定的调试和纠错能力;情感态度价值观目标包括培养学生的编程兴趣,提高学生解决问题的能力。
二、教学内容本节课的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。
具体安排如下:1.引言:介绍C语言的历史和发展,以及本节课的学习目标。
2.数据类型和变量:讲解C语言的基本数据类型(整型、浮点型、字符型等)和变量,以及如何声明和使用变量。
3.运算符:介绍C语言的基本运算符(算术运算符、关系运算符、逻辑运算符等),以及运算符的优先级。
4.控制结构:讲解C语言的条件语句(if-else)和循环语句(for、while),以及它们的嵌套使用。
5.实践环节:引导学生编写年历显示程序,巩固所学知识。
三、教学方法本节课采用讲授法、讨论法和实验法相结合的教学方法。
首先,通过讲授法向学生传授C语言的基本语法、数据类型、运算符和控制结构等知识;其次,通过讨论法引导学生探讨编程中的问题,培养学生的编程思维;最后,通过实验法让学生动手编写年历显示程序,提高学生的实际编程能力。
四、教学资源本节课的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书用于为学生提供丰富的学习材料,多媒体资料用于辅助讲解和演示,实验设备用于让学生进行实践操作。
此外,还可以利用网络资源,如在线编程平台,让学生进行在线编程练习,巩固所学知识。
五、教学评估本节课的教学评估主要包括平时表现、作业和考试三个部分。
平时表现占30%,主要评估学生在课堂上的参与程度、提问回答等情况;作业占40%,主要评估学生的编程能力和理解程度;考试占30%,主要评估学生对C语言基本语法、数据类型、运算符和控制结构的掌握程度。
中国海洋大学青岛学院C语言课程设计报告书题目日历显示学生姓名指导教师学院专业班级组内分工目录1 前言 (1)2 需求分析 (2)3 模块设计图及组内分工 (3)4 NS流程图清单 (5)5 存储结构及函数说明 (8)6 课程设计结果 (9)7 实践心得体会 (14)前言设计目的:1.加深对《C语言程序设计》课程所学知识的理解,进一步巩固C语言语法规则。
学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。
2.对题目的理解:1.本程序设计了一个比较完整的有一定功能的日历显示系统。
2.该题目要求熟练的掌握C语言的基本知识。
中包括数据类型(int、char);运算类型(算术运算、逻辑运算、自增运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构),进一步掌握各种函数的应用,包括时间函数等。
2 需求分析该系统共有四个大部分:日历显示功能、日历查询和闰年判断功能、参数检查功能、选做(通过键盘操作选择各个菜单)。
本系统通过对某天的查询、闰年的判断,日期的合法性判断,日期的调整等各部分进行了有效的计划,组织和控制,得到了一个功能比较完整并能实现一定功能的日历显示系统。
日历显示功能:判断星期,根据公式有年月日判断星期:打印时,通过第一天星期的判断,得到后面的日期,通过定长度输出。
对于初始输入当前日历,可通过函数取出系统时间进行初始化。
日历查询和闰年判断功能:闰年的判断,日期的查询,就是直接打印该天所在月份的日历。
参数检查功能:判断日期是否合法,如果合法,再判断闰年,之后判断二月份是否满足要求。
如果输入不合法或者不满足输入要求,则要求重新输入。
选做(通过键盘操作选择各个菜单):捕获键盘的输入,再判断哪个键的输入,根据某键的输入,则设置相应的年或月或日的值,再属性输出,则可以实现日期的调整。
3 模块设计图及组内分工模块一:日历显示功能判断星期,根据蔡勒公式,有年月日判断星期:nDay=year-1+(year-1)/4+(year-1)/400+ndayw=nDay%7;其中year:要查询的年份,nday:从该年的一月一日起到该天的天数,w:得出的星期数,w==0代表星期天打印月历时,通过第一天星期的判断,依次得到后面的日期,通过定长度输出,遇到星期六就换行输出,因此可以按照月历的格式输出。
目录一、设计任务,目的与要求 (2)1.设计内容: (2)2.设计目的: (2)3.设计要求: (3)二、概要设计 (3)1.需求分析: (3)2.设计流程: (3)1设计要求: (3)2总体设计: (4)三、运行结果及分析 (5)1.程序运行测试: (5)2.进入程序菜单: (5)3.1号键功能: (6)3.2号键功能: (6)4.3号键功能: (7)5.0号键功能: (7)四、源代码 (7)一、设计任务,目的与要求1.设计内容:年历显示功能要求:1.输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
2.输入年月,输出该月的日历。
3.输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
2.设计目的:本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言C++(或C)》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:1. 巩固和加深学生对C++(或C)语言课程的基本知识的理解和掌握2. 掌握C++(或C)语言编程和程序调试的基本技能3. 利用C++(或C)语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C++(或C)语言解决实际问题的能力3.设计要求:1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告及程序代码二、概要设计1.需求分析:目前的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基于该程序所开发的各种应用程序中的日历程序。
然而,这些程序都是千遍一律的局限于一个很短的时间内。
但是,很多情况下,特别是在众多的科学领域中,一个时间跨度较大的程序是有参考价值的。
C++程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本就弥补了这一领域的空白。
万年历作为日常中的一种小工具,它具有多方面的小工能,主要在日期的显示上给人以直观的表达效果,在日期的查询上方便简洁,还有就是在某些节日的提醒上都给我们带来极大的方便,是一种比较实用的小工具。
c 课程设计日历显示一、教学目标本课程的目标是让学生掌握日历显示的基本知识和技能,能够运用编程语言实现简单的日历显示功能。
具体的学习目标包括:1.知识目标:学生需要了解日历的基本结构和相关概念,掌握日历显示的原理和方法。
2.技能目标:学生能够运用编程语言编写日历显示的程序,具备一定的编程能力和问题解决能力。
3.情感态度价值观目标:学生通过完成日历显示的项目,培养对编程和计算机科学的兴趣和热情,提高自我学习和探索的能力。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.日历的基本结构和相关概念:介绍日历的基本组成部分,如年、月、日、星期等,以及与之相关的概念如闰年、公历、农历等。
2.日历显示的原理和方法:讲解日历显示的基本原理和方法,包括日期计算、星期计算、闰年判断等。
3.编程实现日历显示:通过编程语言(如C语言)编写日历显示的程序,涉及变量定义、循环结构、条件语句等编程基础。
三、教学方法为了达到课程目标,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:教师通过讲解和演示,向学生传授日历的基本知识和编程方法。
2.讨论法:教师引导学生进行思考和讨论,通过提问和回答的方式促进学生的理解和思考。
3.案例分析法:教师通过分析具体的日历显示案例,让学生理解和掌握编程的思路和方法。
4.实验法:学生通过动手编写程序,实现日历显示的功能,培养编程能力和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选择合适的编程教材,提供日历显示的相关知识和编程指导。
2.参考书:提供相关的参考书籍,供学生进一步学习和深入研究。
3.多媒体资料:制作课件和教学视频,通过图文并茂的方式展示日历的基本知识和编程方法。
4.实验设备:提供计算机和其他实验设备,让学生能够实际编写程序并进行实验。
五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用多种评估方式相结合的方法。
C语言课程设计—年历显示系统Revised by Liu Jing on January 12, 2021课程设计报告课程设计报告题目:年历显示系统姓名:XXX学号:XXXX专业:XXXX班级: XXXX1指导教师:XXX职称:XXX2012年 6 月 20 日目录97.参考文献 (13)1.摘要C语言是近年在国内外得到迅速推广应用的一种语言。
C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。
因此,C语言特别适合于编写各种软件。
目前流行的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基础于该程序所开发的各种应用程序中的日历程序。
然而,这些程序都千篇一律的局限在一个很短的时间范围内。
(Windows各个版本一般都局限在1980年至2099年这一范围内),但是,在很多情况下,特别是在众多的科学研究领域中,一个时间跨度较大的日历程序是很有参考价值的。
C程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本填补了这一领域的空白,同时用铁的事实强有力的告诉世人:C程序设计语言作为计算机语言家族的新生事物,其发展前景是极为广阔的。
【关键字】C语言计算机日历程序2.设计要求输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间;1、输入年,输出该年的日历。
2、输入年月,输出该月的日历。
3、输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
3.思想构架3.1闰年问题:每400年整一闰,或每4年且不为百年的一闰。
(原因:地球绕太阳一周的时间是365天5小时46秒,为了使一年的天数为整数,将一年的天数定为365天,余下的时间积累起来,四年就是23小时15分4秒,将近一天,把这一天加在某年的二月而成29天,该年称为闰年,其它年称为平年。
但四年加一天又多用了44分56秒,这个数积满400年为三天。
显示年历C课课程设计一、教学目标本课程的教学目标是使学生掌握显示年历C的基本概念、设计和实现方法。
通过本课程的学习,学生应能够:1.理解显示年历C的基本原理和特点;2.掌握显示年历C的设计方法和实现技巧;3.能够独立完成显示年历C的编写和调试;4.培养学生的编程思维和问题解决能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.显示年历C的基本概念:介绍显示年历C的定义、功能和应用场景;2.显示年历C的设计方法:讲解显示年历C的设计思路、步骤和关键算法;3.显示年历C的实现技巧:介绍显示年历C的编程实现方法,包括界面设计、数据处理等;4.编程实践:指导学生独立完成显示年历C的编写和调试,培养学生的实际编程能力。
三、教学方法为了达到本课程的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解显示年历C的基本概念、设计方法和实现技巧,使学生掌握相关知识;2.案例分析法:分析典型示例,使学生更好地理解显示年历C的设计和实现过程;3.实验法:引导学生进行编程实践,培养学生的实际操作能力和问题解决能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的学习资料;2.多媒体资料:制作课件、演示文稿等多媒体资料,提高课堂教学效果;3.实验设备:提供充足的计算机设备,确保学生能够进行编程实践;4.在线资源:推荐合适的在线学习平台和论坛,便于学生交流和拓展学习。
五、教学评估本课程的教学评估将采用多元化、全过程的评价方式,全面客观地反映学生的学习成果。
评估内容包括:1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,以考查学生的学习态度和课堂表现;2.作业:布置适量作业,评估学生的作业完成质量,以检验学生对知识点的掌握程度;3.实验报告:评估学生在实验过程中的操作技能和问题解决能力,以培养学生的实践能力;4.考试成绩:期末进行统一考试,全面测试学生对本课程知识的掌握程度。
c 日历显示课程设计一、课程目标知识目标:1. 让学生掌握日历的基础知识,包括星期、日期、月份和年份的表示方法。
2. 使学生了解不同历法的起源和特点,如公历、农历等。
3. 让学生学会如何使用日历查找特定日期,并了解日期与星期的对应关系。
技能目标:1. 培养学生动手制作日历的能力,运用所学知识设计简单的日历。
2. 提高学生运用日历进行时间管理和计划安排的能力。
3. 培养学生通过观察和思考,发现日历中隐藏的规律和周期性现象。
情感态度价值观目标:1. 培养学生珍惜时间、合理安排生活的意识。
2. 激发学生对历史文化的兴趣,了解历法发展的历史背景。
3. 培养学生合作交流、共同探讨的学习氛围,增强团队协作意识。
本课程针对五年级学生设计,结合学生的年龄特点和认知水平,注重知识性与趣味性的结合。
通过本课程的学习,使学生能够更好地了解时间概念,培养时间管理能力,同时提高学生的动手实践和团队协作能力。
课程目标旨在将理论知识与实际应用相结合,使学生在轻松愉快的氛围中掌握日历知识,培养良好的情感态度和价值观。
二、教学内容1. 日历的基础知识:包括星期的表示、日期、月份和年份的认识,以及日历的布局和结构。
- 教材章节:第三章“时间的计量”2. 历法的介绍:比较公历、农历等不同历法的特点和用途。
- 教材章节:第三章“历法的故事”3. 日历的使用方法:教授如何利用日历查询特定日期、计算日期间隔和判断星期。
- 教材章节:第三章“日历的运用”4. 制作手工日历:指导学生动手制作简单日历,加深对日历构成的理解。
- 教材章节:第三章“实践活动”5. 时间管理和计划安排:讨论如何合理安排时间,提高效率。
- 教材章节:第三章“时间管理”6. 日历中的规律和周期性:探索日历中的周期性现象,如闰年、季节变化等。
- 教材章节:第三章“时间的秘密”教学内容按照以上安排进行,确保学生能够系统地学习和掌握日历知识。
在教学过程中,结合实际案例和生活应用,使学生能够将所学知识内化为实际能力,培养良好的时间管理习惯。
c 课程设计年历显示一、课程目标知识目标:1. 学生能理解年历显示的基本概念,掌握年、月、日之间的关系。
2. 学生能运用所学知识,自主编制简单年历,并正确显示年份、月份及日期。
3. 学生了解不同国家和文化中年历的表示方式,拓展知识视野。
技能目标:1. 学生能够运用数学运算,进行日期的计算,提高逻辑思维能力。
2. 学生通过小组合作,学会与他人沟通、协作,共同完成年历显示的设计。
3. 学生能够运用信息技术工具,如Excel等软件,进行年历的编制和展示。
情感态度价值观目标:1. 学生培养对时间管理的重视,树立珍惜时间的意识。
2. 学生在学习过程中,增强对中华传统文化的认识,培养民族自豪感。
3. 学生通过小组合作,培养团队精神,学会尊重和包容他人。
本课程针对小学四年级学生,结合数学、信息技术和传统文化等多学科知识,旨在提高学生的综合素养。
课程注重实用性,引导学生将所学知识运用到实际生活,激发学生的学习兴趣和积极性。
同时,课程充分考虑学生的年龄特点和认知水平,以生动形象的方式呈现年历知识,使学生在轻松愉快的氛围中学习。
通过本课程的学习,学生将能够掌握年历显示的基本技能,培养良好的时间观念和团队协作精神。
二、教学内容1. 年历基本知识:介绍年、月、日的关系,引导学生理解平年与闰年的区别,掌握各月份天数的规律。
2. 年历编制方法:讲解如何利用数学运算,进行日期的计算,教授简单的年历编制方法,如表格法和循环法。
3. 年历与文化:介绍中华传统文化中年历的起源、发展及特点,让学生了解不同民族的年历习俗,增强文化认同感。
4. 信息技术应用:指导学生运用Excel等软件,进行年历的编制和美化,培养学生的信息技术素养。
教学内容安排与进度:第一课时:年历基本知识,理解年、月、日关系,平年与闰年的判断。
第二课时:年历编制方法,学习表格法和循环法,进行实际操作练习。
第三课时:年历与文化,了解中华传统文化中年历的习俗,进行课堂讨论。
千里之行,始于足下。
C语言万年历设计报告以下是一个关于C语言万年历设计报告的例子,共计约:设计报告:C语言万年历1. 引言万年历是一种用来显示特定年份日历的工具。
本设计报告将介绍一个使用C语言编写的万年历程序,它可以接受用户输入的年份,并显示该年份的日历。
2. 设计目标本程序的主要设计目标是实现以下功能:- 接受用户输入的年份。
- 检查年份的有效性。
- 显示该年份的万年历。
3. 设计思路万年历程序的设计思路如下:- 首先,接受用户输入的年份。
这可以通过使用C语言的scanf函数等方法来实现。
- 然后,检查年份的有效性。
年份必须大于0且小于或等于当前年份。
这可以通过使用C语言的条件语句来实现。
- 接下来,确定年份的第一天是星期几。
这可以通过查找该年份第一天距离已知星期几(比如星期一)的天数来实现。
- 然后,确定该年份每个月的天数。
根据已知的规则(比如闰年规则),计算每个月的天数。
- 最后,根据以上信息,显示该年份的日历。
可以使用C语言的循环语句和格式化输出函数来实现。
第1页/共2页锲而不舍,金石可镂。
4. 主要函数本程序将包含以下主要函数:- int isLeapYear(int year):判断给定年份是否是闰年。
根据已知的闰年规则进行计算,并返回一个布尔值。
- int getFirstDayOfWeek(int year):确定给定年份的第一天是星期几。
根据该年份的第一天距离已知星期几的天数进行计算,并返回一个整数(代表星期几)。
- void printCalendar(int year):根据给定年份的信息,打印该年份的日历。
5. 测试和调试在开发过程中,可以使用一些测试和调试方法来确保程序的正确性和稳定性。
比如:- 输入测试:使用各种不同类型的数据(正常、边界和异常)进行测试,确保程序在各种情况下都能正常工作。
- 边界测试:测试该程序处理边界条件的能力,比如闰年、非闰年、最小年份、最大年份等。
南京航空航天大学金城学院《C语言程序设计》课程设计实验报告题目: _ 年历显示班级:学号:姓名:成绩:指导教师:完成日期:年月日目录一、程序的主要功能二、系统总框架图三、各模块的功能四、功能模块图五、程序结构流程图六、试验结果七、编程体会八、参考资料九、附录:程序清单及源程序一、程序的主要功能(1)可根据菜单进行日历显示(2)输入年月日显示当天星期几,是否为公历节日(3)自动获取系统当前日期,与输入日期比较(4)输入年月日,显示距今多少天二、系统总框架图三、各模块的功能int total (int yeara) //计算公元一年一月一日到输入年份之前的总天数int where (int yearb,int monb) //判断每月天数void when (int day) //判断输入日期是星期几void why(int month,int day) //公历节日判断void output_year() //年份输出void output_month() //年月输出void output_day() //年月日输出int main () //主函数四、功能模块图五、程序结构流程图六、试验结果七、编程体会刚开始没有想到去怎么做,查找资料知道了公元一年一月一日是星期一的切入点,然后事情就变得简单了。
还有就是在主函数中利用do while实现功能的循环。
最麻烦的是系统当前时间的获取,通过百度的查找,懂得了用tm 时间结构。
这次课设让我对c语言有了更深的认识八、参考资料(1)chinaunix博客(2)比特网(3)百度文库九、附录:程序清单及源程序#include <stdio.h>#include <time.h>int total (int yeara) //计算公元一年一月一日到输入年份之前的总天数{int i,s=0,a;for (i=1;i<=yeara-1;i++){if (i%4==0 && i%100!=0 || i%400==0)a=366;elsea=365;s=s+a;}return s;}int where (int yearb,int monb) //判断每月天数{int tian;switch (monb){case 1: tian=31;break;case 2:if(yearb%4==0 && yearb%100!=0 || yearb%400==0)tian=29;elsetian=28;break;case 3: tian=31;break;case 4: tian=30;break;case 5: tian=31;break;case 6: tian=30;break;case 7: tian=31;break;case 8: tian=31;break;case 9: tian=30;break;case 10: tian=31;break;case 11: tian=30;break;case 12: tian=31;break;}return tian;}void when (int day) //判断输入日期是星期几{switch(day){case 1: printf("该日为星期一\n");break;case 2: printf("该日为星期二\n");break;case 3: printf("该日为星期三\n");break;case 4: printf("该日为星期四\n");break;case 5: printf("该日为星期五\n");break;case 6: printf("该日为星期六\n");break;case 7: printf("该日为星期日\n");break;}}void why(int month,int day) //公历节日判断{if(month==1)if(day==1)printf("该日是元旦\n");elseprintf("该日不是公历节日!\n");if(month==3){switch(day){case 8: printf("该日是国际妇女节\n"); break;case 12: printf("该日是植树节\n"); break;default : printf("该日不是公历节日!\n"); break;}}if(month==4)if(day==5)printf("该日是清明节\n");elseprintf("该日不是公历节日!\n");if(month==5){switch(day){case 1: printf("该日是劳动节\n"); break;case 4: printf("该日是五四青年节\n"); break;default : printf("该日不是公历节日!\n"); break;}}if(month==6)if(day==1)printf("该日是儿童节\n");elseprintf("该日不是公历节日!\n");if(month==7)if(day==1)printf("该日是中国建党节\n");elseprintf("该日不是公历节日!\n");if(month==8)if(day==1)printf("该日是建军节\n");elseprintf("该日不是公历节日!\n");if(month==9){switch(day){case 3: printf("该日是抗日战争胜利纪念日\n"); break;case 10: printf("该日是教师节\n");break;default : printf("该日不是公历节日!\n"); break;}}if(month==10)if(day==1)printf("该日是国庆节\n");elseprintf("该日不是公历节日!\n");}void output_year() //年份输出{int year,d,di,did,z,j;printf("请输入年份(eg:2015):");scanf("%d",&year);z=total(year);for (j=1;j<=12;j++){d=z%7;printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf (" %d月份\n",j);printf ("sun mon tue wed thu fri sat\n");if (d<6)for (di=1;di<=d+1;di++)printf(" ");for (did=1;did<=where(year,j);did++){printf ("%d",did);if (did<10)printf (" ");elseprintf (" ");if (did==6-d || (did-6+d)%7==0 || did==where(year,j))printf ("\n");}z=z+where(year,j);}main();}void output_month() //年月输出{int year,m,n,d,di,did,j,Z,D;printf ("请输入所查日历的年月(eg:2015 01):");scanf ("%d%d",&m,&n);Z=total(m);for (j=1;j<=n-1;j++){D=where(m,j);Z=Z+D;}d=Z%7;printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf (" %d月份\n",n);printf ("sun mon tue wed thu fri sat\n");if (d<6)for (di=1;di<=d+1;di++)printf(" ");for (did=1;did<=where(m,n);did++){printf ("%d",did);if (did<10)printf (" ");elseprintf (" ");if (did==6-d || (did-6+d)%7==0 || did==where(m,n))printf ("\n");}main();}void output_day() //年月日输出{int d,h,j,k,l,x,y,z,Z,Z1,D,jian,judge;time_t timep;struct tm *p;time(&timep); //系统时间获取p =localtime(&timep); //此函数获得的tm结构体的时间,是已经进行过时区转化为本地时间printf ("请输入年月日(eg:2015 01 01):");scanf ("%d%d%d",&x,&y,&z);judge=where(x,y);if(judge<z || y>12)printf("输入日期不存在!");else{Z=total(x);for (j=1;j<=y-1;j++){D=where(x,j);Z=Z+D;}Z=Z+z;h=1900+p->tm_year;//时间赋值k=1+p->tm_mon;l=1+p->tm_mday;Z1=total(h);for (j=1;j<=k-1;j++){D=where(k,j);Z1=Z1+D;}Z1=Z1+l;jian=Z1-Z;printf ("输入日期距今有%d天\n",jian);d=Z%7;when(d);why(y,z);}main();}int main (){int number;printf("\n\n*************查询方式************* \n");printf("* 1.查询某年的日历 * \n");printf("* 2.查询某月的日历 * \n");printf("* 3.查询特定的日期 * \n");printf("* 4.查询结束--退出 * \n");printf("********************************** \n");do{printf("请输入查询方式:");scanf("%d",&number);switch(number){case 1: output_year(); break;case 2: output_month(); break;case 3: output_day(); break;case 4: break;default : printf("输入错误!\n--------------\n");break;}}while (number!=1 && number!=2 && number!=3 && number!=4);}。
C语言课程设计一、题目及功能描述题目:万年历的设计利用C语言设计出万年历,使其实现如下要求1、输入一个年份,在屏幕上输出该年的年历(包括每月的天数和所对应的星期几),并且在每月的左上角或右上角打印出相应的年份和月份,要求输出界面尽可能整齐、美观,符合年历显示规范。
假定输入的年份在1-9999年之间。
2、输入年月,输出该月的月历。
3、输入年月日,输出距今天还有多少天,是星期几,是否是公历节日。
:4、指定键盘的某些键,用于控制变换不同年、月、日的显示。
即:当前若正在显示2011年的年历,按下键盘“←”方向键后,年历变为2010年的。
二、使用的所有变量的说明变量说明:(以下均为整型变量)year 表示年份的变量month 表示月份的变量day 表示日期的变量select 表示菜单选择的变量i 表示月份的变量j 表示一个月中的某一天的变量sum 判断某天是一年中的第几天的变量number判断某天离公元1年1月1日还有几天的变量a[] 表示每月天数的数组变量year1 系统时间年份的变量month1 系统时间月份的变量day1 系统时间日期的变量三、程序清单及其说明#include "time.h" /*包含的头文件*/#include "stdio.h"#include "math.h"#include "windows.h"#include "conio.h"#define KEYNUMUp 0x48 /*宏定义*/#define KEYNUMDown 0x50#define KEYNUMLeft 0x4b#define KEYNUMRight 0x4d#define KEYNUMPageUp 0x49int eachyeartotal(int year,int month,int day); /*函数声明*/int counterdays(int year,int month,int day);int nowtime(int year,int month,int day);int week(int year,int month,int day);int maxDay(int year,int month);int isleap(int year);void whatweek(int year,int month,int day);void display(int year ,int month);void display2(int year,int month);void display3(int year,int month,int day) ;void setDay1(int year,int month,int day);void setDay2(int year,int month,int day);void setDay3(int year,int month,int day);void jieri(int month,int day);void display1(int year);void getmenu();void main() /*主函数*/{int year,month,day,select;while(1){getmenu();printf(" 请输入相应数字:"); /*菜单选择*/scanf("%d",&select);system("cls");switch(select){case 1: /*当选择为1时显示年历*/printf(" 年历显示:输入年(如2011):");scanf("%d",&year);if(year>0&&year<10000) /*显示年份从0-10000 */{display1(year); /*调用函数*/printf(" 提示按↑:上一年按↓:下一年按其他键:返回菜单\n\n");setDay1( year,month, day);}elsesystem("cls");printf(" 输入无效,重新输入!\n");break;case 2: /*当选择为2显示月历*/printf(" 月历显示:输入年月(如2011,6):");if(year>0&&year<10000&&month>=1&&month<=12){display2(year,month);printf(" 提示按←:上个月按→:下个月按其他键:返回菜单\n\n");setDay2( year,month, day);}elsesystem("cls");printf(" 输入无效,重新输入!\n");break;case 3: /*当选择为3时显示日期*/printf(" 日期显示:输入年月日(比如2011,6,23):");scanf("%d,%d,%d",&year,&month,&day);if(year>0&&year<10000&&month>=1&&month<=12&&day>=1&&day<=maxDay(year,month) ){display3(year,month,day);printf(" 提示按PageUp:前一天按PageDown:后一天按其他键:返回菜单\n\n");setDay3( year,month, day);}elsesystem("cls");printf(" 输入无效,重新输入!\n");break;case 4:exit(0);default: /*当输入其他数字时,输入无效,重新输入*/system("cls");printf(" 输入无效,重新输入!\n");}}}int isleap(int year) /*判断是否为闰年*/{if(year%4==0&&year%100!=0||year%400==0)return 1;elsereturn 0;int maxDay(int year,int month) /*每月的天数*/{int a[]={31,28,31,30,31,30,31,31,30,31,30,31}; /*每个月中的天数*/ if(isleap( year))a[1]=29; /*闰年2月份有29天*/ return a[month-1];}int eachyeartotal(int year,int month,int day) /*判断某天是一年中的第几天*/ {int i,sum=0;for(i=1;i<month;i++)sum+=maxDay(year,i);sum+=day;return sum;}int week(int year,int month,int day) /*对天数进行判断确定是星期几*/ {int number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+eachyeartotal(year,month,day);number=number%7 ;return number;}void display(int year ,int month) /*输出年月*/{int max,number,i,j=1;max=maxDay(year,month);number=week(year,month,1);printf(" %4s %4s %4s %4s %4s %4s %4s\n","Sun","Mon","Tue","Wed", "Thu","Fri","sat");for(i=0;i<number;i++)printf(" "); /*1号前的星期补空格*/ while(j<=max){printf("%6d",j);if (i%7==6)printf("\n"); /* 每7格换一行*/i++;j++;printf("\n\n");}void display1(int year) /*输出年历*/{int i;printf("\n");for(i=1;i<=12;i++){printf("%d 年%d 月\n\n ",year,i);display(year,i);}}void display2(int year,int month) /*输出月历*/{printf("\n%d 年%d 月\n ",year,month);display(year,month);}void display3(int year,int month,int day) /*输出日历*/{whatweek( year,month,day);jieri(month,day);counterdays(year,month, day);}int counterdays(int year,int month,int day) /*判断今天距特定日期的天数*/{int year1, days0,days1,month1,days, day1;time_t timep;struct tm *p;time(&timep);p=gmtime(&timep);year1=(1900+p->tm_year) ;month1=(1+p->tm_mon) ;day1=(p->tm_mday); /*获取系统时间year1、month1、day1分别为年、月、日*/days0=(year-1)*365+(year-1)/4-(year-1)/100+(year-1)/400+eachyeartotal(year,month,day);days1=(year1-1)*365+(year1-1)/4-(year1-1)/100+(year1-1)/400+eachyeartotal(year1,month1,daydays=days0-days1; /*计算出两个日期之间的时间差*/printf("\n 今天距%d年%d月%d日还有%d天\n\n",year,month,day,days);return days;}void whatweek(int year,int month,int day) /*判断是星期几*/{int number;number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+eachyeartotal(year,month,day); number=number%7 ;switch( number){case 0:printf( "\n %d年%d月%d日是星期日",year,month,day);break;case 1:printf( "\n %d年%d月%d日是星期一",year,month,day);break;case 2:printf( "\n %d年%d月%d日是星期二",year,month,day);break;case 3:printf( "\n %d年%d月%d日是星期三",year,month,day);break;case 4:printf( "\n %d年%d月%d日是星期四",year,month,day);break;case 5:printf( "\n %d年%d月%d日是星期五",year,month,day);break;case 6:printf( "\n %d年%d月%d日是星期六",year,month,day);break;default:system("cls");printf(" 出现错误!\n" );}}void jieri(int month,int day) /*判断是否公历节日*/{if(month==1)switch(day){case 1:printf(",这天是元旦");}if(month==2)switch(day){case 14:}if(month==3)switch(day){case 8:printf(",这天是妇女节");break;case 12:printf(",这天是植树节");}if(month==4)switch(day){case 1:printf(",这天是愚人节");}if(month==5)switch(day){case 1:printf(",这天是劳动节");break;case 4:printf(",这天是青年节");}if(month==6)switch(day){case 1:printf(",这天是儿童节");}if(month==7)switch(day){case 1:printf(",这天是建党节");}if(month==8)switch(day){case 1:printf(",这天是建军节");}if(month==9)switch(day){printf(",这天是教师节");}if(month==10)switch(day){case 1:printf(",这天是国庆节");}}void setDay1(int year,int month,int day) /*通过键盘“↑”“↓”控制年历的变换*/ { char k;getch();k=getch();switch(k){case KEYNUMUp: /*“↑”年份减小*/ if(year<2){system("cls");printf(" 警告!超出范围!\n");break;}year--;display1(year);setDay1(year,month,day);break;case KEYNUMDown:/*“↓”年份变大*/ year++;display1(year);setDay1(year,month,day);break;default:system("cls");}}void setDay2(int year,int month,int day) /*通过键盘“←”“→”控制月历的变换*/char k;getch();k=getch();switch(k){case KEYNUMLeft: /*“←”月份变小*/if(month<2){month+=12;year--;}if(year<1){system("cls");printf(" 警告!超出范围!\n");break;}month--;display2(year , month);setDay2(year,month,day);break;case KEYNUMRight:/*“→”月份变小*/if(month>11){month-=12;year++;}if(year<9999);month++;display2(year , month);setDay2(year,month,day);break;default:system("cls");;}}void setDay3(int year,int month,int day) /*通过键盘“PageUp”“PageDown”控制日期的变换*/{char k;getch();switch(k){case KEYNUMPageUp: /*“PageUp”日期变小*/ if(day<2){month--;day=maxDay(year,month);}if(month<1){month+=12;year--;}if(year<1){system("cls");printf(" 警告!超出范围!\n");break;}day--;display3(year , month,day);setDay3(year,month,day);break;case KEYNUMPageDown: /*“PageDown”日期变大*/ day++;if(day>maxDay(year,month)){day=1;month++;}if(month>12){month-=12;year++;}if(year<10000);display3(year , month,day);setDay3(year,month,day);break;default:system("cls");;}}{printf(" ************主菜单************\n\n");printf(" * 欢迎进入万年历系统*\n\n");printf(" * 1、年历显示*\n\n");printf(" * 2、月历查询*\n\n");printf(" * 3、日期查询*\n\n");printf(" * 4、退出系统*\n\n");printf(" ******************************\n\n"); }四、运行结果清单打开软件,进入如下菜单界面,输入数字进行选择1年历的显示(1)输入数字1进入年历的显示(2)输入年份2011,显示2011年的年历如下(3)按↑键盘显示上一年(2010年)的年历,显示如下(4)按↓键盘显示上一年(2012年)的年历,显示如下2、月历的显示(1)在菜单中选择2,进入月历的显示,输入2011,6,显示2011年6月份的月历,显示效果如下(2)按←键盘显示上一个月(5月)的月历,显示效果如下(3)按→键盘显示上上个月(7月)的月历,显示效果如下3、日历的显示(1)输入选择3进入日历的显示,如图输入2011,10,1显示这天的星期,是否为公历节日,距离现在还有多少天(2)按PagDown显示前一天的日历,显示如下(3)按PagUp显示后一天的日历,显示如下4 退出程序输入选择4,显示如下界面,按任意键退出程序五、总结和体会。
c语言年历显示课课程设计一、教学目标本课程的目标是让学生掌握C语言编程的基本技能,能够使用C语言编写简单的程序,以实现年历的显示功能。
通过本课程的学习,学生将了解C语言的基本语法和编程思想,培养逻辑思维能力和问题解决能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和数据类型。
2.理解函数的定义和调用。
3.学习循环和条件语句的使用。
4.了解字符串操作和文件操作的基本方法。
技能目标包括:1.能够使用C语言编写简单的程序。
2.能够运用循环和条件语句实现年历的显示功能。
3.能够利用字符串操作和文件操作处理年历数据。
情感态度价值观目标包括:1.培养学生对编程的兴趣和热情。
2.培养学生解决问题的自信心和耐心。
3.培养学生团队合作和自主学习的意识。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、函数、循环和条件语句、字符串操作和文件操作。
具体安排如下:1.第一章:C语言概述–介绍C语言的历史和发展–解释C语言的特点和优势2.第二章:基本语法和数据类型–讲解变量、常量的声明和赋值–介绍数据类型的定义和使用3.第三章:函数–讲解函数的定义和声明–演示函数的调用和返回值4.第四章:循环和条件语句–介绍循环语句的原理和用法–讲解条件语句的判断和执行5.第五章:字符串操作–讲解字符串的基本操作方法–演示字符串的输入和输出6.第六章:文件操作–介绍文件的概念和文件指针–讲解文件的读写和操作方法三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式。
1.讲授法:教师通过讲解和示范,引导学生掌握C语言的基本概念和编程方法。
2.讨论法:教师学生进行小组讨论,鼓励学生提出问题和建议,促进学生之间的交流和合作。
3.案例分析法:教师提供实际的编程案例,学生通过分析和解题,培养解决问题的能力。
4.实验法:学生通过编写和运行程序,实践所学知识,巩固编程技能。
四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:《C程序设计语言》(K&R)2.参考书:《C Primer Plus》(Deitel)3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)通过以上教学资源的使用,学生将能够更好地学习和实践C语言编程,提高编程技能和解决问题的能力。
C语言课程设计报告书设计人:查波学号:201201466院系:电信学院班级:电气11203指导老师:杜红一.设计要求1.能够显示星期。
2.能够显示年月日。
二.设计目的1. 通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!2. 通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。
为后续各门计算机课程的学习和毕业设计打下坚实基础。
三.设计思想1. 总天数的算法:首先用if语句判断定义年到输入年之间每一年是否为闰年,是闰年,该年的总天数为366,否则,为355。
然后判断输入的年是否为定义年,若是,令总天数S=1,否则,用累加法计算出定义年到输入年之间的总天数,再把输入年的一月到要输出的月份之间的天数累加起来,若该月是闰年中的月份并且该月还大于二月,再使总天数加1,否则,不加,既算出从定义年一月一日到输出年的该月一日的总天数。
2 .输出月份第一天为星期几的算法:使总天数除以7取余加2得几既为星期几,若是7,则为星期日。
3. 算出输出月份第一天为星期几的算法:算出输出月份第一天为星期几后,把该日期以前的位置用空格补上,并总该日起一次输出天数直到月底,该月中的天数加上该月一日为星期几的数字再除以7得0换行,即可完整的输出该月的日历。
四.要用到的函数和语句1.<stdio.h>/*头文件*/2.main() /*主函数*/3.printf(),4.scanf()5.if 语句6.for 语句7.IsLeapYear(int) /*定义函数*/流程图五.程序运行结果六.源代码#include <stdio.h>int IsLeapYear(int);main(){int i;int day;int year;int temp;int temp_i;long int Year_days = 0; //输入的年份之前的所有年的天数之和int Year_Start = 1; //当前年份int Per_Year_Days;int month_day[]={31,28,31,30,31,30,31,31,30,31,30,31,29}; //第n月的天数printf("请输入年份: ");scanf("%d",&year);while(Year_Start < year) //求输入的年份之前的所有年的天数之和{if( IsLeapYear( Year_Start ) ) //当前年份是闰年Per_Year_Days = 366; //则当前年份的天数为366天else //当前年份是平年Per_Year_Days = 365; //则当前年份的天数为365天Year_days = Year_days + Per_Year_Days; //当前年份之前的所有年的天数之和Year_Start++;}for( temp = 1; temp <=12; temp++ ) //一个for循环内部嵌套一个for循环和两个while循环{switch( temp ){case 1:printf(" *****************一月(%d)********************\n",year);break; //break:跳出switch语句,执行switch 语句后面的语句case 2:printf(" *****************二月(%d)********************\n",year);break;case 3:printf(" *****************三月(%d)********************\n",year);break;case 4:printf(" *****************四月(%d)********************\n",year);break;case 5:printf(" *****************五月(%d)********************\n",year);break;case 6:printf(" *****************六月(%d)********************\n",year);break;case 7:printf(" *****************七月(%d)********************\n",year);break;case 8:printf(" *****************八月(%d)********************\n",year);break;case 9:printf(" ******************九月(%d)*******************\n",year);break;case 10:printf(" ******************十月(%d)*******************\n",year);break;case 11:printf(" ******************十一月(%d)*****************\n",year);break;case 12:printf(" ******************十二月(%d)*****************\n",year);break;}i = Year_days % 7; //输入的年份的前一年的最后一天对应星期i(i=1~6)星期天(i=0) printf("星期一星期二星期三星期四星期五星期六星期天\n");if( i != 0 ) //i=0不需输出空格for( temp_i = 0; temp_i < i; temp_i++) //temp_i用来计输出的空格数printf(" "); //输出七个空格,保持数据右对齐,输入的年份的第一天对应星期i+1 (i=0~5)星期天(i=6)day = 1;if( IsLeapYear(year) && temp == 2) //输入的年份为闰年且当前月份为2月(确定闰年二月的月历)while( day <= month_day[12] ) //day<=29时进行循环{if( day >1 ) //(一个if语句嵌套两个if语句)如果day >1 ,则执行if( Year_days % 7 == 0 ),否则(即day=1)执行printf(" %d ",day),(两个空格)if( Year_days % 7 == 0 ) //如果Year_days % 7 == 0,则执行printf("\n");否则执行空语句“;”,不进行任何处理printf("\n");if( day >= 10 ) //如果if( day >= 10 ),则执行printf(" %d ",day),(一个空格);否则执行空语句“;”,不进行任何处理printf(" %d ",day);//四个空格,当数大于10时与小于10的数右对齐elseprintf(" %d ",day);//五个空格,当数小于10时与大于10的数右对齐Year_days++;//Year_days自增,day++;//day自增,换到下一天}else //输入的年份为平年或当前月份不是2月while (day <= month_day[temp-1]) //day<=当前月份的天数时进行循环if( day > 1 )//(一个if语句嵌套两个if语句)如果day >1 ,则执行if( Year_days % 7 == 0 ),否则(即day=1)执行printf(" %d ",day),(两个空格)if( Year_days % 7 == 0 )//如果Year_days % 7 == 0,则执行printf("\n");否则执行空语句“;”,不进行任何处理printf("\n");if( day >=10 ) //如果if( day >= 10 ),则执行printf(" %d ",day),(一个空格);否则执行空语句“;”,不进行任何处理printf(" %d ",day);//四个空格,当数大于10时与小于10的数右对齐elseprintf(" %d ",day);//五个空格,当数小于10时与大于10的数右对齐Year_days++;day++;}printf("\n");} //外层for循环结束} //主函数结束int IsLeapYear( int year ) //定义被调函数(用户函数),(不)是闰年则返回1 (0),使条件语句的条件为真(假){if ((year %4 == 0) && (year % 100 != 0) || //输入的年份能被4且不能被100整除或(year % 400 == 0) ) //输入的年份能被400整除(为闰年)return 1; //条件语句的条件为真elsereturn 0; //条件语句的条件为假}六.实验小结为期两个星期的课程设计很是短暂,由于本人水平有限,程序设计比较简单,没有多少复杂的语句,这是一个很好的锻炼机会,很多以前没看懂的都得到了答案,程序虽小,也费了一番功夫,同时上网借鉴了别人的程序,深为感谢,感谢老师的指导。
c 年历显示课程设计一、课程目标知识目标:1. 学生能够理解年历的基本概念,掌握年、月、日的关系及其在年历中的表示方法。
2. 学生能够运用所学知识,独立制作并填写任意给定年份的年历。
3. 学生能够解释平年和闰年的区别,并准确判断给定年份的类型。
技能目标:1. 学生通过小组合作,培养解决实际问题的能力和团队协作能力。
2. 学生能够运用数理逻辑思维,解决与年历相关的问题,提高逻辑思维和分析能力。
3. 学生通过动手制作年历,锻炼动手能力和创造力。
情感态度价值观目标:1. 学生在探究年历的过程中,培养对时间管理和生活规划的重视,树立时间观念。
2. 学生通过学习年历的制作过程,激发对传统文化的兴趣,弘扬中华民族优秀传统文化。
3. 学生在学习过程中,树立积极的学习态度,培养自主学习、终身学习的理念。
本课程针对小学四年级学生设计,结合学生年龄特点和认知水平,注重培养学生的动手操作能力和团队协作能力。
课程内容与教材紧密关联,旨在帮助学生掌握年历知识,提高时间管理能力,同时培养学生的文化素养和价值观。
通过具体可衡量的课程目标,教师可以有效地进行教学设计和评估,确保课程目标的实现。
二、教学内容本章节教学内容主要包括以下三个方面:1. 年历基本知识:介绍年、月、日的关系,讲解平年和闰年的判断方法,以及各个月份的天数和排列规律。
对应教材第四章第一节。
2. 年历制作方法:指导学生如何制作年历,包括表格的设计、日期的填写以及美化装饰等。
通过实际操作,让学生掌握年历的制作技巧。
对应教材第四章第二节。
3. 传统文化拓展:结合年历的制作,介绍我国传统节日和二十四节气,让学生了解传统文化,增强民族自豪感。
对应教材第四章第三节。
教学大纲安排如下:第一课时:年历基本知识学习,讲解年、月、日的关系,平年和闰年的判断方法。
第二课时:年历制作方法学习,示范制作过程,学生动手实践,完成年历制作。
第三课时:传统文化拓展,介绍传统节日和二十四节气,学生了解并欣赏传统文化。
年历c语言课程设计一、课程目标知识目标:1. 理解年历的基本概念,掌握C语言中结构体、数组的使用。
2. 学会使用循环、条件判断等基本控制结构完成年历的编写。
3. 掌握如何在C语言中实现日期的输入、输出和计算。
技能目标:1. 能够运用所学知识,独立完成一个简单的年历程序设计。
2. 培养学生的编程思维和问题解决能力,提高逻辑思维能力。
3. 提高学生在实际编程中调试和修改程序的能力。
情感态度价值观目标:1. 培养学生积极探究、合作交流的学习态度,增强学习兴趣。
2. 培养学生严谨、细心的编程习惯,树立正确的编程价值观。
3. 增强学生的团队协作意识,提高沟通与表达能力。
本课程针对高中年级学生,结合C语言课程特点,以年历程序设计为主题,旨在巩固学生所学C语言知识,提高编程实践能力。
课程目标具体明确,符合学生认知水平,注重培养学生的编程兴趣和团队协作能力,为后续深入学习奠定基础。
通过本课程的学习,学生将能够独立完成年历程序设计,并在实践中不断提高编程技能。
二、教学内容1. 复习C语言基本语法:变量、数据类型、运算符、控制结构(循环、条件判断)。
2. 结构体和数组的应用:介绍结构体定义和使用,数组存储日期信息。
- 结构体:定义日期结构体,包含年、月、日等信息。
- 数组:创建月份天数数组,实现日期计算。
3. 编写年历程序:- 输入年份,判断闰年和平年,输出对应月份天数。
- 使用循环和条件判断,打印出整年日历。
- 引导学生优化代码,提高程序执行效率。
4. 实践与拓展:- 学生独立完成一个年历程序设计,并进行调试和优化。
- 引导学生思考如何将年历功能进行拓展,如添加节假日信息、纪念日等。
5. 课程进度安排:- 第一课时:复习C语言基本语法,介绍结构体和数组应用。
- 第二课时:讲解年历程序设计思路,编写核心代码。
- 第三课时:学生实践,完成年历程序设计,并进行调试和优化。
- 第四课时:课程总结,拓展思考,展示优秀作品。
c 课程设计显示年历一、教学目标本课程的教学目标是使学生掌握C语言编程的基本技能,能够使用C语言编写简单的程序,理解C语言的基本数据类型、运算符、控制结构等基本概念,培养学生的编程思维和解决问题的能力。
具体来说,知识目标包括:掌握C语言的基本数据类型(整型、浮点型、字符型等)、运算符(算术运算符、关系运算符、逻辑运算符等)、控制结构(顺序结构、选择结构、循环结构等);理解函数的定义和调用方式,掌握常用的库函数。
技能目标包括:能够使用C语言编写简单的程序,解决实际问题;能够阅读和理解简单的C语言程序;能够编写符合规范的C语言程序,养成良好的编程习惯。
情感态度价值观目标包括:培养学生对计算机科学的兴趣和热情,提高学生主动学习和探索问题的意识;培养学生团队合作的精神,提高学生沟通和协作的能力。
二、教学内容本课程的教学内容主要包括C语言的基本概念、数据类型、运算符、控制结构、函数等。
具体安排如下:1.C语言的基本概念:介绍C语言的发展历史、特点和应用领域,使学生了解C语言的基本情况。
2.数据类型:介绍整型、浮点型、字符型等基本数据类型,使学生掌握不同数据类型的定义和使用方法。
3.运算符:介绍算术运算符、关系运算符、逻辑运算符等,使学生理解不同运算符的功能和用法。
4.控制结构:介绍顺序结构、选择结构、循环结构等,使学生掌握程序的控制流程。
5.函数:介绍函数的定义、声明和调用方式,使学生理解函数的作用和原理。
6.常用的库函数:介绍C语言中常用的库函数,如数学函数、输入输出函数等,使学生学会使用库函数解决实际问题。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。
1.讲授法:通过讲解C语言的基本概念、语法规则等,使学生掌握C语言的基本知识。
2.案例分析法:通过分析典型的C语言程序,使学生理解程序的设计方法和编程技巧。
3.实验法:通过上机实验,使学生亲自编写C语言程序,培养学生的实际编程能力。
目录一、设计任务,目的与要求.............................错误!未指定书签。
1.设计内容: ................................................错误!未指定书签。
2.设计目的: ................................................错误!未指定书签。
3.设计要求: ................................................错误!未指定书签。
二、概要设计 .....................................................错误!未指定书签。
1.需求分析: ................................................错误!未指定书签。
2.设计流程: (3)1设计要求:...........................................错误!未指定书签。
2总体设计:...........................................错误!未指定书签。
三、运行结果及分析.........................................错误!未指定书签。
1.程序运行测试: ........................................错误!未指定书签。
2.进入程序菜单: ........................................错误!未指定书签。
3.1号键功能: .............................................错误!未指定书签。
3.2号键功能: .............................................错误!未指定书签。
4.3号键功能: .............................................错误!未指定书签。
5.0号键功能: .............................................错误!未指定书签。
四、源代码 (6)一、设计任务,目的与要求1.设计内容:年历显示功能要求:1.输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
2.输入年月,输出该月的日历。
3.输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
2.设计目的:本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言C++(或C)》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:1. 巩固和加深学生对C++(或C)语言课程的基本知识的理解和掌握2. 掌握C++(或C)语言编程和程序调试的基本技能3. 利用C++(或C)语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C++(或C)语言解决实际问题的能力3.设计要求:1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告及程序代码二、概要设计1.需求分析:目前的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基于该程序所开发的各种应用程序中的日历程序。
然而,这些程序都是千遍一律的局限于一个很短的时间内。
但是,很多情况下,特别是在众多的科学领域中,一个时间跨度较大的程序是有参考价值的。
C++程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本就弥补了这一领域的空白。
万年历作为日常中的一种小工具,它具有多方面的小工能,主要在日期的显示上给人以直观的表达效果,在日期的查询上方便简洁,还有就是在某些节日的提醒上都给我们带来极大的方便,是一种比较实用的小工具。
给人的需求性很大,学生在做此万年历课程设计的同时,能够认识到C++编程给人带来的便捷,也能够清楚万历年表编程的出入。
对培养学生的创新能力和动手能力具有很大的作用。
1设计要求:(1)程序运行时,首先给4出个菜单选项的内容和输入提示:1 显示某一年的日历2 显示某一月的月历3查找某一天0 退出(2)用户可以通过主菜单选择不同的选项:若选择1,则通过输入年份,显示输出该年每个月的日历;若选择2,则通过输入年月,显示输出该月的日历;若选择3,则通过输入年月日,输出该天所在月的月历、该天是星期几、是否阳历节日、距今多少天;若选择0,则退出。
(流程图)依据课程设计的要求,需要设计一个菜单功能,进入程序后,有菜单可以提供选择,选择1,进入年历显示阶段,年历显示完毕,再次进入菜单选择。
选择2,进入月历显示阶段,月历显示完毕,再次进入菜单选择。
选择3,进入日期查询阶段,日期查询完毕,再次进入菜单。
选择0,退出程序。
三、运行结果及分析1.程序运行测试:在电脑中打开C++应用程序, 首先进入VC++6.0,将程序代码输入,编译,组建,调试。
观察运行结果,和各个功能情况。
2.进入程序菜单:(图1:菜单页面)说明:该页面表示进入菜单选项,根据选项进入相应的功能。
3.1号键功能:输入1,按enter键后:输入要显示的年份:2013(图2,显示2013年年历查询结果)3.2号键功能:输入2按enter键后:输入年月,例如2013 1(图3,2013年1月月历查询结果)4.3号键功能:输入3按enter键后:输入年月日,如3013 1 1(图4,2013年1月1查询结果)显示查询天所在月月历,并标识出该天,同时显示是否阳历节日,距今多少天。
5.0号键功能:退出程序。
四、源代码#include<iostream>#include<iomanip>using namespace std;int dayofmonth[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//定义全¨局变量,每月的天数//函数IsLeap判断是否为闰¨年bool IsLeap(int year){if(year%400==0||(year%100!=0&&year%4==0))return 1;else return 0;}//函数getdays计算从1年1月1日起到输入日一共有多少天int getdays(int year,int month,int day){int i,sum=0;for(i=1;i<year;i++){if(IsLeap(i)) sum+=366;else sum+=365;}if(IsLeap(year)) dayofmonth[2]=29;//为闰年时二月有29天for(i=1;i<month;i++) sum+=dayofmonth[i];sum+=day;return sum;}//函数Initdate获得现在的时间int Initdate(int &y, int &m, int &d, int &h, int &min, int &sec){int sum;time_t t;time( &t );struct tm * local_time = localtime( &t );sec = local_time->tm_sec;min = local_time->tm_min ;h = local_time->tm_hour ;d = local_time->tm_mday ;m = local_time->tm_mon+1;y = local_time->tm_year+1900;sum=getdays(y,m,d);return sum;}//打印一年的年历void printyear(){system("cls");int s,year,month;int a[10],b[10];cout<<"请输入要查找的年份;cin>>year;cout<<"========================The Calender of Year"<<year<<"========================="<<endl;int i=1;for(i=1;i<=12/3;i++) //3确定每一行显示三个月的月历{cout<<"--------------------------------------------------------------------------"< <endl;for(int h=1;h<=3;h++){int m=3*(i-1)+h;cout<<" "<<m<<"月 "; //打印月份名称}cout<<endl<<"--------------------------------------------------------------------------"<<endl;for(int j=0;j<3;j++)cout<<"Su "<<"Mo "<<"Tu "<<"We "<<"Th "<<"Fr "<<"Sa "<<" ";cout<<endl;for(int j=0;j<3;j++){month=3*(i-1)+j+1;s=getdays(year,month,1); //计算从年月日起到所查找¨年每月第ì天一共有多少|天s=s%7;for(int m=0;m<s;m++) cout<<" ";//每月第一天之前打印空格if(IsLeap(year)) dayofmonth[2]=29;b[j]=dayofmonth[month];for(int k=1;k<8-s;)//由1开始打印每月月历第一行{cout<<setw(2)<<setfill(' ')<<k<<" ";k++;a[j]=k;}cout<<" ";}cout<<endl;for(int w=1;w<=5;w++)//打印每月月历其余行{for(int j=0;j<3;j++){int m=1;for(m=1;m<=7;m++,a[j]++){if(a[j]>b[j]) break;cout<<setw(2)<<setfill(' ')<<a[j]<<" ";if(m==7) cout<<" ";}for(int n=1;a[j]>b[j],n<=8-m;n++)cout<<" ";if(a[j]>b[j]&&m!=8) cout<<" ";}cout<<endl;}}cout<<"============================================================================ "<<endl;}//打印某3月的月历void printfmonth(int year,int month ,int day){system("cls");int i,s;s=getdays(year,month,1); //计算从1年1月1日起到所查找月第一天一共有多少|天s=s%7;cout<<"=========="<<year<<" 年¨o"<<month<<" 月?"<<"========="<<endl;cout << "Sun\tMon\tTue\tWed\tThu\tFri\tSat\n";//for ( i = 0; i < s; ++i )cout << '\t';if ( s == 6 )cout.put( '\n' );for ( i = 1; i <= dayofmonth[month]; ++i ){if(i==day) cout<<"★"<<i<<"\t";elsecout << i << '\t';if ( (i+s) % 7 == 0 )cout << '\n';}cout<<endl;cout<<"=========================="<<endl;}//查找某一天void lookday(int year,int month ,int day){system("cls");int s,y, m, d, h, min, sec,S,sum;s=getdays(year,month,day); //计算从年月日起到查找日一共有多少′天?sum=s%7;printfmonth(year,month,day);//打印查找日所在月的月历并标识出该天cout<<year<<"-"<<month<<"-"<<day<<" is ";switch(sum)//判断所查找天是星期几{case 0:cout<<"Sunday"<<endl;break;case 1:cout<<"Monday"<<endl;break;case 2:cout<<"Tuesday"<<endl;break;case 3:cout<<"Wednesday"<<endl;break;case 4:cout<<"Thursday"<<endl;break;case 5:cout<<"Friday"<<endl;break;case 6:cout<<"Saturday"<<endl;break;}switch(month)//判断查找天是否阳历节日先由月份判断是否有节日的月份再由日判断是否为节日{case 1:switch(day){case 1:cout<<"元旦(New year's day)"<<endl;break;default:cout<<"不是阳历节日"<<endl;}break;case 3:switch(day){case 8:cout<<"妇女节¨(Women's Day)"<<endl;break;case 12:cout<<"植树节(Arbor Day)"<<endl;break;default:cout<<"不是阳历节日"<<endl;}break;case 5:switch(day){case 1:cout<<"劳动节(Labor Day)"<<endl;break;case 4:cout<<"中国青年节(Chinese Youth Day)"<<endl;break;default:cout<<"不是阳历节日"<<endl;}break;case 6:switch(day){case 1:cout<<"儿童节(Children's Day)"<<endl;break;default:cout<<"不是阳历节日"<<endl;}break;case 8:switch(day){case 1:cout<<"建军节(the Army's Day)"<<endl;break;default:cout<<"不是阳历节日"<<endl;}break;case 9:switch(day){case 10:cout<<"教师|节(Teacher's Day)"<<endl;break;default:cout<<"不是阳历节日¨"<<endl;}break;case 10:switch(day){case 1:cout<<"国庆节(National Day)"<<endl;break;default:cout<<"不是阳历节日"<<endl;}break;default:cout<<"不是阳历节¨日"<<endl;}S=Initdate(y,m,d,h,min,sec);//计算从1年1月1日起到现在一共2有多少天?¨?//计算查找日距今有多少天if(S<s)cout<<"距今还有"<<s-S<<"天"<<endl;elsecout<<"已经过去"<<S-s<<"天"<<endl;}//主函数显示程序菜单int main(){int choice,year,month,day;for(;1;)//显示程序菜单,为永真,每次查找完回到程序菜单ì{cout<<"===================================菜单选项==================================="<<endl;cout<<"请选择:"<<endl;cout<<"* * * * * * * * 1.查找某一年的年历 * * * * * * * *"<<endl;cout<<"* * * * * * * * 2.查找某一月的月历 * * * * * * * *"<<endl;cout<<"* * * * * * * * 3.查找某一天 * * * * * * * *"<<endl;cout<<"* * * * * * * * 0.退出 * * * * * * * *"<<endl;cout<<"============================================================================ =="<<endl;cin>>choice;if(choice==1) printyear();//选择1,查找¨某年年历else if(choice==2)//选择,查找某月月历{ int day=0;cout<<"请输入要查找的年月(格式如¨2012 12):";cin>>year>>month;if(month>12) //判断输入的年月是否存在,不存在提示重新输入cout<<"输入的年月不存在,请重新输入"<<endl;else printfmonth(year,month,day);//输入的年月存在,查找某月月历¤¨2 }else if(choice==3)//选择,查找某天{cout<<"请输入要查找的日期(格式如 2012 12 31):"<<endl;cin>>year>>month>>day;//判断输入的年月日是否存在,不存在提示重新输入,存在则查找if(month>12)cout<<"输入的月份不存在,请重新输入!"<<endl;elseswitch(month){case 4:case 6:case 9:case 11: //4,6,9,11月有30天{if(day>=1&&day<=30) lookday(year,month,day);else cout<<"输入的日期不存在,请重新输入!"<<endl;} break;case 2:{if(IsLeap(year))//闰年时二月有29天{if(day>=1&&day<=29) lookday(year,month,day);else cout<<"输入的日期不存在,请重新输入!"<<endl;}else if(day>=1&&day<=28)//非闰年时二月有28天lookday(year,month,day);else cout<<"输入的日期¨存在,请重新输入!"<<endl;} break;default: //1,3,5,7,8,10,12月有31天{if(day>=1&&day<=31) lookday(year,month,day);else cout<<"输入的日期不存在,请重新输入!"<<endl;}}}else if(choice==0)//选择,退a出{cout<<"谢谢使用!"<<endl;break;} else cout<<"输入错误!请按照提示输入!"<<endl;}}。