C语言课程设计报告--万年历
(7页)
本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!
9.90 积分
海南大学三亚学院C语言程序设计课程设计报告设计题目:万年历班 级 计算机科学与技术0902学 号 0910710076 姓 名 黄穗东 指导教师 刘小飞 起止时间 2010-9-1 至 2010-9-6 2010 年 夏 季学期一、 需求分析 本课程设计主要是完成一个万年历系统的编写 。模仿现实生活中的挂历,以系统当前日期的月份为准显示当前月份的每一天(显示出日期及对应的星期几), 当系统日期变到下一个月时 ,系统自动翻页到下一月。从系统获取时间判断该年是否为闰年输出31天判断该月是大月还是小月输出30天输出29天输出28天二、概要设计图(1)万年历的流程图从系统获取年月日之后 ,判断该年是否为闰年,若是闰年,且当月为2月,则输出29天;若不是闰年,则2月输出28天。 判断该月为大月还是小月,大月输出31天,小月输出30天。如图(1)。三、详细设计 (1)判断年份是否是闰年的语句:if(year%4==0&&year%100!=0||year%400==0)用一个逻辑表达式包含所有的闰年条件的if语句。 能被4整除,但不能被100整除,为闰年,或能被400整除,为闰年 。(2)输出系统时间的程序#includeusing namespace std;int main(){ cout<<__date__ nowtime tm localtime timeinfo->tm_year + 1900;month = timeinfo->tm_mon + 1;(4)函数w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1计算出每月第一天是星期几。(5)输出格式的实现 如果该月第一天是星期日, 输出日期,每两个日期间用setw控制符设置字段宽度为4,当排满7天换行 ,到输出本月全部日期为止 。如果该月第一天不是星期日,空出前面几天,输出日期,每两个日期间用setw控制符设置字段宽度为4, 排满第一行后换行,再排满7天换行, 到输出本月全部日期为止。if(a==7) {for(i=1;i<=b;i++) {cout<#include #include #includeusing namespace std;int leap (int year) { if(year%4==0&&year%100!=0||year%400==0) //判断是否是闰年return 1; else return 0; } int days_month (int year,int month) //判断大月和小月{ if(month==1||month==3||month==5||month==7||month==8||month==10||month==12) //找出大月return 31; if(month==4||month==6||month==9||month==11) //找出小月return 30; if(month==2&&leap(year)==1) return 29; //判断二月是29天还是29天else return 28; } int firstday(int year,int month) {int w; w=(1+2*month+3*(month+1)/5+year+year/4+year/400-year/100)%7+1; //判断每个月开始的第一天是星期几return w; } int main() {int i,j=1,k=1,a,b,month,year; cout<<__date__ nowtime tm localtime timeinfo->tm_year + 1900;month = timeinfo->tm_mon + 1;b=days_month(year,month); a=firstday (year,month); cout<
天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。