




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 武汉某央企面向社会公开招聘44人备考考试题库附答案解析
- 2025下半年云南省现代农业发展(云南农垦)集团有限责任公司招聘21人 (第一批)备考考试题库附答案解析
- 2025湖南湘潭消防招聘消防执勤车驾驶员、战斗员70人备考考试题库附答案解析
- 工厂安全培训活动课件
- 鄂州宣传活动策划方案设计
- 2026中国农业银行大连市分行校园招聘205人备考练习题库及答案解析
- 再攀峰峦 共创辉煌
- 药剂科抗生素使用指南
- 月饼与中秋庆典
- 动脉钙化分子机制-洞察及研究
- DB3205∕T 1105-2023 房屋安全鉴定服务规范
- 2025年6月黑吉辽蒙高考地理真题完全解读
- 广告标识牌采购投标方案
- (高清版)DG∕TJ 08-59-2019 钢锭铣削型钢纤维混凝土应用技术标准
- 大坝帷幕灌浆及充填灌浆施工方案
- 2025年浦发银行校园招聘笔试参考题库(含答案)
- 冲孔灌注桩施工方案
- 部编新人教版三年级上册语文教材培训
- 2024-2025学年浙江省金华市东阳市七年级(上)期末数学试卷(含答案)
- 高压输电线路维护保养方案
- 学校“1530”安全教育记录表(2024年秋季全学期)
评论
0/150
提交评论