万年历显示c语言设计,万年历C语言设计

《万年历C语言设计》由会员分享,可在线阅读,更多相关《万年历C语言设计(11页珍藏版)》请在人人文库网上搜索。

1、标准万年历的设计:要求:模仿现实生活中的挂历,能够显示年历、月历、日历,并具备退出功能。当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。当系统日期变到下一月时,系统自动翻页到下一月。万年历的程序流程图:主要程序流程图:Memu-slect()=1Printf(“输入年月日计算星期”)开始Memu-slect()=2Memu-slect()=3Memu-slect()=4Printf(“输入年月日计算星期”)Printf(“输入年月日计算星期”)Printf(“输入年月日计算星期”)结束具体对于月份和年份的程序图如下:上图为计算星期方法 上图为打印日历程序图万年历的设。

2、计的程序源代码:#include #include #include void f()int day,month,year,sum,leap,S;printf(n请输入年月日n);scanf(%d%d%d,&year,&month,&day);while(1)if(month12|month31|day2)sum+;S=(year-1+(year-1)/4-(year-1)/100+(year-1)/400+sum)%7;switch(S)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 0:printf(星期日n);break;void g()int i,j=1,k=1,a,b,month,year;printf(n输入年月:n);scanf(%d%d,&year,&month);while(1)if(month12|month6);return cn;万年历的运行结果截图万年历的日历功能的实现:月历功能的实现:年历功能的实现:文案。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 基于arduino的办公室环境监测与可视化系统完整源码及资料+项目说明(课程设计).zip基于arduino的办公室环境监测与可视化系统完整源码及资料+项目说明(课程设计).zip 主要内容 在办公环境下,人们需要控制并了解办公环境的数据。因此基于arduino的办公室环境监测与可视化系统需要完成对基本环境数据的采集与显示、对部分数据的可视化、对功能的控制、常用功能的集成等工作。所以,本系统采用arduino UNO作为下位机实现数据的采集、功能的控制、数据的发送等功能。上位机方面,利用java实现定制的串口通讯与数据转发工具、利用python实现本地数据可视化、利用mysql与javaweb实现云端数据存储与云端数据可视化。 **基本要求:** 1. 下位机需要利用arduino UNO3实现基本的控制功能、数据采集功能、数据发送功能、基本环境控制功能。 2. 上位机: (1) 利用java编写串口通讯与数据转发到云端工具。 (2) 利用python编写本地数据可视化脚本。 (3) 利用云端的mysql数据库以及web服务器分别实现数据的存储和web端数据可视化。 # 1 需求说明 # 2 功能描述 ## 2.1 系统功能描述 ### 2.1.1 下位机功能描述 1. Arduino系统总控制模块:实现对数据发送、光控、风控的关闭与打开;实现了万年历、温湿度数据显示;实现了红外信号的控制。 2. Arduino数据发送模块:实现了温湿度数据的串口发送。 3. Arduino功能模块:实现风控与光控功能。 ### 2.1.2 上位机功能描述 1. 串口通讯模块与数据转发模块:通过java Swing实现的串口通讯与数据转发到云端数据库。 2. 数据可视化脚本:通过python matplotlib库实现对云端数据的加载和数据的可视化绘图 3. Web服务器:通过java web相关技术搭建可访问的数据可视化网站。 # 3 系统设计及实现 ## 3.1 系统总体设计 1. 下位机: 利用三个arduino UNO3 实现三大模块:控制模块、数据发送模块、功能模块。 2. 上位机: 利用java实现串口通讯与数据转发; 利用python实现本地数据可视化。 利用mysql实现数据的存储 利用web实现云服务器 ## 3.3 系统设计准备 ### 3.3.1 器材 Arduino UNO3:3个 DTH11:1个 光敏传感器:2个 红外传感器:1个 LCD1602:1个 电机:1个 电位器:1个 LED:若干 电阻:若干 杜邦线:若干 面包板:若干 ### 3.3.2 环境 1. 下位机: (1) VS 2015 (2) Arduino IDE 1.8 (3) Fritzing (4) 串口通讯助手 2. 上位机: (1) JDK1.8+Eclipse+windowbulider (2) Python3.5+pycharm+pip matplotlib (3) Mysql 5.5+Navicat12 (4) Eclipse EE+Tomcat8+JDK1.8+jQuery+JavaScript+echarts-all ### 3.3.3 实物连接 ## 3.4 系统下位机设计 ### 3.4.1 控制台模块实现 1. 完成功能: 控制数据是否可以上传到云端 控制风扇工作 控制光控灯工作 万年历显示 温湿度显示 2. 实现方案: 采用红外控制lcd1602显示指定菜单,提示指定键可以操作开关。开关使用引脚电平高低控制其他的arduino。温湿度通过接入指定的引脚的数据进行读入。 ### 3.4.2 数据上传模块实现 1. 完成功能:完成数据发送到串口 2. 实现方案:采用Arduino Serial 3. 效果展示:数据库的数据如图所示: 【备注】 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载使用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程,如有问题或建议,请及时沟通。 5.期待你能在项目找到乐趣和灵感,也欢迎你的分享和反馈!
以下是一个简单的 Verilog 万年历功能设计图,它可以显示当前年份、月份日期,以及周几: ```verilog module calendar( input clk, reset, output [3:0] year, output [3:0] month, output [4:0] day, output [2:0] weekday ); reg [3:0] year_reg; reg [3:0] month_reg; reg [4:0] day_reg; reg [2:0] weekday_reg; wire leap_year = ((year_reg % 4 == 0) && (year_reg % 100 != 0)) || (year_reg % 400 == 0); // 计算下一天的日期和星期 always @(posedge clk) begin if (reset) begin year_reg <= 4'b0000; month_reg <= 4'b0001; day_reg <= 5'b00001; weekday_reg <= 3'b000; end else begin // 计算当前月份的天数 case (month_reg) 4'b0001, 4'b0003, 4'b0005, 4'b0007, 4'b0008, 4'b0010, 4'b0012: day_reg <= 5'b00001; 4'b0004, 4'b0006, 4'b0009, 4'b0011: day_reg <= 5'b00000; 4'b0010: day_reg <= leap_year ? 5'b00000 : 5'b00001; 4'b0010: day_reg <= leap_year ? 5'b00001 : 5'b00010; endcase // 计算下一天的日期和星期 if (day_reg == 5'b11111) begin day_reg <= 5'b00001; if (month_reg == 4'b0001) begin month_reg <= 4'b0010; end else if (month_reg == 4'b0010) begin month_reg <= 4'b0011; end else if (month_reg == 4'b0011) begin month_reg <= 4'b0001; year_reg <= year_reg + 4'b0001; end else begin month_reg <= month_reg + 4'b0001; end end else begin day_reg <= day_reg + 5'b00001; end // 计算星期几 if (weekday_reg == 3'b010 && day_reg == 5'b00001) begin weekday_reg <= 3'b000; end else if (weekday_reg == 3'b100) begin weekday_reg <= 3'b000; end else begin weekday_reg <= weekday_reg + 3'b001; end end end assign year = year_reg; assign month = month_reg; assign day = day_reg; assign weekday = weekday_reg; endmodule ``` 这个模块有四个输出端口:year、month、day 和 weekday,分别表示当前年份、月份日期和星期几。根据输入的时钟信号 clk,模块会计算下一天的日期和星期,并将结果输出到输出端口。在计算过程,模块使用了一个 leap_year 信号来判断当前年份是否为闰年。当 reset 为 1 时,模块会将日期重置为 0001 年 01 月 01 日,星期为星期一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值