c语言万年历.doc_第1页
c语言万年历.doc_第2页
c语言万年历.doc_第3页
c语言万年历.doc_第4页
c语言万年历.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言课程设计内容: 课程设计题目:万年历 功能如下:1、查询某年某月某日是星期几 2、打印某年的某月的全月日历 3、打印某年的全年日历 4、退出 具体要求: (1)在住菜单中输入1后,显示:“请输入年月日(XXXX,XX,XX)” 运行后输出:XXXX年XX月XX日是星期X,是否继续查询(Y/N)? 如果输入Y,则重新显示“请输入年月日(XXXX,XX,XX)”,否则回到主菜单. (2)在主菜单中输入2后,显示:“请输入要打印的月份(XXXX)” 运行后输出X月的日历,格式为: XXXX年XX月 S M T W T F S X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X (3)在主菜单中输入3后,显示:“请输入要打印的年份(XXXX)” 运行后输出XXXX年的日历, XXXX X(月数) S M T W T F S X X X X X X X X X X X X X X X X X X X X X X X X X X X X x x S M T W T F S X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 运行完成后显示:“是否继续打印(Y/N)?” 如果输入Y,则重新显示“请输入要打印的年份(XXXX)”,否则回到主菜单。 (4) 在主菜单中输入4后,显示:“是否要真的退出(Y/N)?” 如果输入Y,结束程序运行,否则重新显示主菜单。#include #include typedef struct int year; char month; char day;*DATE;DATE NewDate(void);int DestroyDate(DATE date);int DaysAMonth(DATE date);int CheckDate(DATE date);int SetDate(DATE date,int year,int month,int day);int GetWeek(DATE date);int QueryDay(void);int ShowMonth(DATE date);int QueryMonth(void);int QueryYear(void);int ConfirmExit(void);int Calendar(void);int main() if(Calendar() return 0; else return 1;DATE NewDate(void) DATE date; date=(DATE)malloc(sizeof(*date); return date;int DestroyDate(DATE date) if(!date) return 0; free(date); return 1;int DaysAMonth(DATE date) int days; if(!date) return 0; switch(date-month) case 1: case 3: case 5: case 7: case 8: case 10: case 12: days=31; break; case 4: case 6: case 9: case 11: days=30; break; default: days=0; break; if(date-month=2) if(date-year%4=0 & date-year%400!=0 | date-year%400=0) days=29; else days=28; return days;int CheckDate(DATE date) if(!date) return 0; if(date-monthmonth12) return 0; if(date-daydayDaysAMonth(date) return 0; return 1;int SetDate(DATE date,int year,int month,int day) if(!date) return 0; date-year=year; date-month=month; date-day=day; return CheckDate(date);int GetWeek(DATE date) int year,month,day; if(!date) return 0; year=date-year; month=date-month; day=date-day; if(month=2) month+=12; -year; return (day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7+1;int QueryDay(void) DATE date; char cont; int year,month,day; static char *week=星期一,星期二,星期三,星期四,星期五,星期六,星期日; if(!(date=NewDate() return 0; do printf(请输入年月日(XXXX,XX,XX)); scanf( %d, %d, %d,&year,&month,&day); if(SetDate(date,year,month,day) printf(%4d年%2d月%2d日是%s,是否继续查询(Y/N)?, year,month,day,weekGetWeek(date)-1); scanf( %c,&cont); else printf(日期输入错误!n); while(cont=Y | cont=y); DestroyDate(date); return 1;int ShowMonth(DATE date) int startweek; int days; int i; if(!date) return 0; startweek=GetWeek(date); days=DaysAMonth(date); printf( S M T W S F S n); startweek=startweek%7; for(i=0;istartweek;+i) printf( ); for(i=1;i=days;+i) printf( %2d ,i); startweek=(startweek+1)%7; if(startweek=0) printf(n); if(startweek!=0) printf(n); return 1;int QueryMonth(void) int year,month; DATE date; if(!(date=NewDate() return 0; printf(请输入要打印的月份(XXXX,XX); scanf( %d, %d,&year,&month); if(SetDate(date,year,month,1) printf(%4d年%2d月n,year,month); ShowMonth(date); else printf(月份输入错误!n); DestroyDate(date); return 1;int QueryYear(void) int year; int month; DATE date; char cont; if(!(date=NewDate() return 0; do printf(请输入要打印的年份(XXXX)); scanf( %d,&year); printf(%4d年n,year); for(month=1;month=12;+month) SetDate(date,year,month,1); printf(%2d月n,month); ShowMonth(date); printf(是否继续打印(Y/N)?); scanf( %c,&cont); while(cont=Y | cont=y); DestroyDate(date); return 1;int ConfirmExit(void) char exit; printf(是否要真的退出(Y/N)?); scanf( %c,&exit); if(exit=Y | exit=y) return 1; else return 0;int Calendar(void) int menu=1; int tmp; do switch(menu) case 1: printf(n |1 查星期| |2 月日历| |3 年日历| |4 退出|:); scanf( %d,&tmp); switch(tmp) case 1: menu=11; break; case 2: menu=12; break; case 3: menu=13; break; case 4: menu=14; break; default: printf(选择有误!n); break; break; case 11:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论