基于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:。基于c语言的万年历设计
相关推荐
包含的范围很广泛,共有 34 种运算符。 C 语言把括号、赋值、强制类型转换等都作为运算符处理。 从而使 C 语言的运算类型极其丰富,表达式类型多样化。 灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。 (3)数据类型丰富。 C 语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。 能用来实现各种 复杂的数据结构的运算。 并引入了指针概念,使程序效率更高
找尾 { while ( parent[f] 0) { f = parent[f]。 } return f。 关键代码输出最小生成树 以下是主函数部门 int main(void)//主函数 { MGraph *G。 G = (MGraph*)malloc(sizeof(MGraph))。 if (G == NULL) { printf(memory allcation failed
EY3 段产生一个低电平脉冲, picture 计数加 1。 不按 KEY3 时 picture 不变。 当 SW0 为高电平时为自动模式,此时隔一定的时间 picture 自动加 1,并且在自动模式下,每按一次 KEY3, picture 也加 1。 达到了手动与自动相结合控制的目的。 entity control is port( VGA_VS_period :in std_logic。
/输出 Pin 4 ~Pin11 适配器上侧 Pin 4 ~Pin11 8个 I/O 可编程输入 /输出 CLK1 适配器左上方 83 CLK1 全 局 时钟 输入 Clk2 2 CLk2 全 局 时钟 输入 电子科技大学成都学院 12 CLRn 1 Reset 全 局 清零 输入 OE1n 84 OE 全 局 使能 输入 注: Altera 公司的 FLEX10K10 适配器与上述相似 其中
d10n。 PROCESS (clk,cr) BEGIN IF(cr=39。 039。 )THEN vcd10n=0010。 ELSIF (EN1=39。 139。 )THEN IF(CLK39。 EVENT AND CLK=39。 139。 )THEN IF(bcd1n=0)THEN IF(vcd10n=0)THEN vcd10n=0000。 ELSE vcd10n=vcd10n1。 END
ld temp1,a add temp2,a stl a,add_result nop st VAL1,temp1 st VAL2,temp2。 test MPY rsbx FRCT ld temp1,T mpy temp2,a sth a,mpy_i_h stl a,mpy_i_l nop end: b end .end MEMORY { PAGE 0: IPROG: