电子万年历——沐雨先生
目录
一、设计内容
二、概要设计
三、实验流程图
四、源程序
五、运行结果
六、总结反思
一、设计内容
用户有两个选择,可以输入某年某月输出单月的日历,也可以输入一个年份得到全年的
日历。
二、概要设计
1. 功能模块:if—else 语句实现功能选择
2. 各个模块详细的功能描述:
主函数运行后,程序提供给用户两个选项,用户可以输出某年某月的日历或某年全
年的日历。用户输入选择后,判断选择的合法性。根据用户的选择调用不同的函数实现
对应功能。
三、实验流程图
四、源程序
#include<stdio.h>
int firstdayofyear(int year);
int firstdayofmonth(int year ,int month );
int isleapyear(int year);
int dayofmonth(int year ,int month);
int main()//输入年打印出此年的日历。
{ int a[12][6][7]={0};
int year,yue;//年,月
int i,j,k,z,n,shu;//z标记星期,n为几号
printf("请输入年份:");
scanf("%d",&year);
printf("请输入月份:");
scanf("%d",&yue);
z=firstdayofyear(year);
//printf("%d",z);
for(i=0;i<12;i++)
{ k=z%7;//确定从周几开始
n=1;//每个月1号开始
for(j=0;j<6;j++)
{ for( ;k<7;k++,n++)
{ if(n>dayofmonth(year,i+1))//确保日期不超
break;
a[i][j][k]=n;//将日期赋给每天
//printf("%d",a[i][j][k]);
z=k+1;//记录明天是周几
}
k=0;//下一行周日开始
}
}
//printf("%d",z);
printf("-----------%d年%d月-----------\n",year,yue);//输出月历
printf("%3d SUN MON TUE WED THU FRI SAT\n",yue);
for(j=0;j<6;j++)
{ printf(" ");
for(k=0;k<7;k++)
{ if(a[yue-1][j][k]!=0)
printf("%2d ",a[yue-1][j][k]);
else
printf(" ");//无日期的空格代替输出
}
printf("\n");
}
printf("\n-------------------------%d年的年历-------------------------\n",year);//输出年历
for(i=0;i<6;i++)//六次大输出
{ printf("%3d SUN MON TUE WED THU FRI SAT ",i+1);
printf("%3d SUN MON TUE WED THU FRI SAT \n",i+7);
for(j=0;j<6;j++)//每月6行
{ printf(" ");//对齐
for(k=0;k<7;k++)//每天
{ if(a[i][j][k]!=0)
printf("%2d ",a[i][j][k]);//i+1月的日期
else
printf(" ");//无日期的空格代替输出
}
printf(" ");//对齐
for(k=0;k<7;k++)
{ if(a[i+6][j][k]!=0)
printf("%2d ",a[i+6][j][k]);//i+7月日期
else
printf(" ");//无日期的空格代替输出
}
printf("\n");
}
}
return 0;
}
int firstdayofyear(int year) /*求某年的第一天是星期几*/
{ int i;
long n,days=year;
days=days*365; /* printf("\n%ld",days);*/
for(i=1;i<year;i++)days=days+isleapyear(i); /*printf("\n%ld",days);*/
n=days%7;
return n;
}
int firstdayofmonth(int year ,int month ) /* 求某年某月的第一天是星期*/
{ int i,days=0, weekdays;
weekdays=firstdayofyear(year);
for(i=1;i<month;i++)days+=dayofmonth(year,i);
return (days+weekdays)%7;
}
int isleapyear(int year)//编写函数int isleapyear(int year);判某年是否为闰年,如该年为闰年返回1,否则返回0。编写主函数输入年份给出该年是否为闰年。
{ int z;
if( (year%4==0 && year%100!=0) || year%400==0 )
z=1;
else
z=0;
//printf("%d",z);
return z;
}
int dayofmonth(int year ,int month)//编写函数int dayofmonth(int year ,int month);计算某年某月有几天。主函数中输入任意的年和月,给出此年该月有几天。
{ int z;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
z=31;
else if(month==4||month==6||month==9||month==11)
z=30;
else if(month==2)
if(isleapyear(year))
z=29;
else
z=28;
return z;
}
五、运行结果
六、总结反思
问题不大,耐心写程序。
电子万年历——沐雨先生相关推荐
- Android万年历课程设计,电子万年历的设计(课程设计)
摘要: 随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变.尤其是单片机技术的应用产品已经走进了千家万户.电子万年历的出现给人们的生活带来的诸多方便.本设计主要是以单片机 ...
- 60秒计时器的仿真电路_DS1302的电子万年历,时间、闹钟可调,带温度农历显示,原理图、仿真和代码...
获取设计资源,请见文末说明~ 设计要求 1.显示公历年.月.日.星期.时.分.秒: 2.可随时调校年.月.日.时.分.秒: 3.能显示农历时间,并能标明平润年: 4.具有闹钟设定提醒功能: 5.能够显 ...
- 万年历24节气C语言,电子万年历24节气c程序
电子万年历24节气的c程序 /* 1 2 3 4 5 6 7 8 9 10 11 12 单位:月*/ {0x59,0x38,0x5A,0x49,0x5A,0x5B,0x6C,0x7C,0x7C,0x8 ...
- c语言编写闹钟主程序流程图,基于STC15W4K58S4单片机的电子万年历设计源码与报告(数码管显示)...
基于STC15W4K58S4单片机的电子万年历(数码管显示)该压缩包包含源码TXT文件 源工程文件(Keil uVision4文件)和课程设计报告 电子时钟的设计 -单片机综合设计报告 目录 1 任 ...
- 基于51单片机的电子万年历的设计-源代码
电子万年历的设计目录 电子万年历的设计 电子万年历的系统整体设计框图 所需要的元件 DS18B20模块 DS18B20的特点 DS18B20内部结构 DS18B20管脚排列 DS1302模块 SPI时 ...
- 基于51单片机的电子万年历设计
基于51单片机的电子万年历 1)LCD1602显示时间.日期.星期.温度 2)按键可调整时间日期星期 3)整点报时 4)DS1302时钟芯片 5)DS18B20温度传感器 6)闹钟功能 7)判断闰年 ...
- c语言电子万年历大作业,C语言实现一个简单的电子万年历
最近帮朋友做一些C语言的练习题,期间遇到了个比较有意思的题目,意在考察模块化程序设计,大致要求如下: 电子万年历: 1.编写函数int isleapyear(int year);判某年是否为闰年,如该 ...
- 基于c52万年历c语言,基于STC89C52单片机的可测温式电子万年历
随着科技的发展,生活中电子万年历越来越普遍,功能也越来越多.根据人们的日常基本需求,设计一种电子万年历,可以实现测温.闹钟.秒表和语音报警等功能,为人们的日常生活提供舒适和便捷,具有重要的使用价值. ...
- 如何在51单片机实现电子万年历
如何在51单片机实现电子万年历 51单片机制作万年历的基本功能部分,软件特性可以在proteus上仿真,使用51单片机定时器T0做万年历计时信号源,电子万年历计时系统在timer模块,本模块主要是将年 ...
- 【002】基于51单片机的电子万年历proteus仿真设计
一.资料内容(私信获取) (1).基于51单片机的电子万年历proteus仿真设计一份: (2).基于51单片机的电子万年历proteus仿真设计keli源代码一份: (3).基于51单片机的电子万年 ...
最新文章
- C#利用Graphics类绘制进阶--绘制商品69码EAN-13
- undo表空间文件丢失恢复(4)--无备份无recover的情况下恢复
- 迅雷官方回应“被拖库”致密码泄露:恶意造谣
- HTTP基础认证Basic Authentication
- Windows 服务全攻略(1)
- IT十八掌作业_java基础第十六天_GUI/socket
- easyui中获取getEditor为空情况
- php 常用简单函数,PHP中常用函数简单介绍
- centos 6.5 配置网络
- java中 private final_Java笔记:final与private关键字
- 论文浅尝 | Iterative Cross-Lingual Entity Alignment Based on TransC
- 计算机模拟专业,2017年数值模拟专业知识题库
- 如何让大数据从发现价值到创造价值
- [转]编程的首要原则(s)是什么?
- 今天我必须要全网曝光这几个公众号
- opencv C++ 旋转任意角度图片
- LeetCode题解:幂集
- 安装惠普M1136打印机一直处于“新设备已连接”状态 解决方法
- 高通APQ8074(骁龙800)处理器
- moss列表 查看字段长度
热门文章
- 用ADB操纵手机实现连点器(折衷案)
- 短视频推广引流方案怎么做?看这五点,让你快速裂变涨粉
- Linux软链接的创建,删除,修改
- idea 安装Vue插件 超详细
- 一个简单易用的m3u8下载器,支持下载m3u8链接或文件为mp4或ts格式
- php 磅和像素的换算,将g/cm³换算为磅每液量加仑(美国) (克每立方厘米换算为磅每液量加仑(美国))...
- Jmeter使用HTTP代理服务器无法打开网页问题的解决方法
- MathType输入花体字
- 树莓派开发笔记(八):GPIO口的I2C使用(BME280三合一传感器:温度、湿度、气压测量)
- 解决Nvidia 显卡驱动安装失败的方法