基于c语言的万年历设计内容摘要:

合于多种操作系统 , 如 DOS、 UNIX,也适用于多种机型。 当然, C 语言也有自身的不足,比如: C 语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数族下标越界不作检查等。 从应用的角度, C 语言比其他高级语言 较难掌握。 总之, C 语言既有高级语言的特点,又具有汇编语言的特点;既是一个成功的系统设计语言,有时一个使用的程序设计语言;既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序;是一种受欢迎、应用广泛的程序设计语言 C 语言版本。 5 程序设计 设计过程和理论根据 理论根据 经分析该题目要求我们熟练的掌握 C 语言的基本知识。 其中包括数据类型( int、 char);运算类型(算术运算、逻辑运算、自增运算、赋值运算等);程序南昌航空大学科技学院计算机课程设计 13 结构(顺序结构、判断选择结构、循环结构),进一步掌握各种函数的应用, 包括时间函数等。 任何一个程序的基本开发过程都是大同小异的。 就算简单的只有几行的小程序,也需要完整的结构,一般包括:问题描述、需求分析、概要设计、详细设计、程序代码和调试运行 6 个大的阶段。 设计过程 1)输入年份和月份,判断输入的年份是否为闰年。 2)以 1900 年 1 月 1 日星期一为标准,计算从 1900 年到 year 年 1 月 1 日的天数。 3)判断每个月的天数 days。 4)计算 year 年 month 月 1 日距离 1900 年 1 月 1 日的天数。 5)确定 year 年 month月的第一天为周几。 6)确定当月的日期 ddd 7)输出日历。 主要函数的说明和编程的流程图 主要函数的说明 语句来循环表示从 1900 到 year 年之间的时间段,用 if 语句来判断是否为闰年。 如果是闰年,每年 366 天;如果不是闰年,每年 365 天。 1)判断是否为润年 判断某一年是否为闰年的条件只要满足下列二者之一即可: ①年份能够被 4 整除,且不被 100 整除; ②年份能够被 4 整除,且能被 400 整除。 代码如下: int isRunNian(int y) { return (y % 4 == 0 amp。 amp。 y % 100 != 0 || y % 400 == 0) ? 1 : 0。 } 2)以 1900 年 1 月 1 日星期一为标准,计算从 1900 年到 year 年 month 月 1 日的天数。 南昌航空大学科技学院计算机课程设计 14 ① 计算从 1900 年 1 月 1 日到 year 年 1 月 1 日的前一天的天数。 在这一步 中,需要定义整型变量作为循环变量、整型变量用来表示总天数。 其中需要for ② 计算从 year 年 1 月 1 日到 year 年 month 月 1 日前一天的天数。 这就需 要 对每个月的天数进行判断,天数需要用整型变量 days 表示。 大月 31 天,小月 30 天, 闰年的 2 月是 29 天,非闰年的 2 月是 28 天,这需要用 switch 语句来实现。 ③ 将第一步、第二步中所计算的天数进行计算 3) 计算 year 年 month 月的第一天是周几 用整型变量 days 来表示。 用计算得到的总天数除以 7,用整型变量 y 表示。 如果结果为 0,那么 month 月的第一天是周日,如果结果不是 0,那么 month月的第一天 y 的数值。 4)确定当日的日期 ddd = 5)输出日历 编程的流程图 南昌航空大学科技学院计算机课程设计 15 开始 获得系统当前时间 清屏 Ch=ESC? 打印万年历 Ch=0? Ch=输入查询时间 Switch(ch) Year Year++ Month Month++ 判断润平年函数 打印某年日历函数 打印带表格的万年历 求星期几 计算某个月的天数 退出 是 是 否 否 南昌航空大学科技学院计算机课程设计 16 6 程序代码如下 /* * 程序名称 : 万年历 * 功能描述 : 在字符界面下显示万年历的功能 . * 设计编程 : 江运豹 * 时 间 : 20206 */ include include include include include define CURU 72 define CURD 80 define CURL 75 define CURR 77 define ESC 27 void printWNL(int, int)。 //简单格式打印万年历 void printWNL2(int, int,int)。 //打印带表格的万年历 int Week(int,int,int)。 //求星期几 int getDays(int, int)。 //计算某个月的天数 int isRunNian(int)。 //判断是否闰年 /* *主函数 ,应用程序入口 */ void main() { 南昌航空大学科技学院计算机课程设计 17 int year,month,ddd。 struct tm t。 char ch。 _getsystime(amp。 t)。 //标准函数 , 获得系统当前时间 year = + 1900。 //得到当前年份 month = + 1。 //得到当前月份 ddd =。 do { system(cls)。 //调用 DOS 清屏命令 printWNL2(year,month,ddd)。 //自定义函数 , 打印万年历 ch = getch()。 //获得无回显控制台输入字符 if(ch == ESC) //ESC 键,退出循环 ,结束程序 break。 else if(ch == 0) //若值为零,则用户敲了功能键,继续获取后续代码。 ch = getch()。 switch(ch) { case CURL: year。 break。 //左键减年 case CURR: year++。 break。 //右键加年 case CURU:。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。