14_万年历程序设计[1]_(1)

上传人:aa****6 文档编号:29213228 上传时间:2018-01-22 格式:DOC 页数:14 大小:77.50KB
返回 下载 相关 举报
14_万年历程序设计[1]_(1)_第1页
第1页 / 共14页
14_万年历程序设计[1]_(1)_第2页
第2页 / 共14页
14_万年历程序设计[1]_(1)_第3页
第3页 / 共14页
14_万年历程序设计[1]_(1)_第4页
第4页 / 共14页
14_万年历程序设计[1]_(1)_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《14_万年历程序设计[1]_(1)》由会员分享,可在线阅读,更多相关《14_万年历程序设计[1]_(1)(14页珍藏版)》请在金锄头文库上搜索。

1、1中北大学课 程 设 计 说 明 书学生姓名: 李 鹏 学 号: X23 学生姓名: 任 鱼 学 号: X29 学生姓名: 杨卫东 学 号: X44 学 院: 信息商务学院 专 业: 电子信息工程 题 目:多媒体技术与程序设计实践: 万年历程序设计 指导教师: 田秀荣、石海杰 职称: 讲师 2011 年 12 月 12 日2中北大学课程设计任务书2011/2012 学年第 1 学期学 院: 信息商务学院 专 业: 电子信息工程 学生姓名: 李 鹏 学 号: X23 学生姓名: 任 鱼 学 号: X29 学生姓名: 杨卫东 学 号: X44 题 目:多媒体技术与程序设计实践: 万年历程序设计 起

2、 迄 日 期: 2011 年 12 月 12 日 课程设计地点: 指 导 教 师: 田秀荣 、石海杰 系 主 任: 下达任务书日期: 2011 年 12 月 12 日3课 程 设 计 任 务 书1设计目的:通过设计,明确万年历的设计思想和设计过程,扎实掌握 VC、C+或 C 语言编程的整体框架和步骤,使学生具有一定综合分析问题和解决问题的能力。2设计内容和要求(包括原始数据、技术参数、条件、设计要求等):功能说明:输入任一年任一月将显示出该月的所有日期,对应的星期,并注意闰年的情况。显示格式是 VC+6.0 运行模式。设计要求:课程设计的目的在于培养学生的综合素质,要求学生做到:(1)根据题目

3、要求查阅有关资料,确定方案,写出设计方案;(2)根据对选题的理解,消化查阅资料,给出相关设计的流程图;(3) 在 C 语言、C+或 VC 环境下,实现各项功能;(4) 对结果进行分析总结。3设计工作任务及工作量的要求包括课程设计计算说明书(论文) 、图纸、实物样品等:设计工作任务:(1) 了解课题背景,掌握基本技术,制定程序设计框架。(2) 完成设计内容:包括程序流程图和完成实现功能的程序代码,写出设计说明书。(3) 设计答辩。工作量的要求:(1) 通过查阅资料了解与万年历相关的基本理论、原理以及背景知识,理解选题意义;(2) 掌握与万年历相关的设计思想、原理、设计框架和步骤;(3) 完成万年

4、历程序的功能和程序代码的实现;(4) 通过实验验证程序代码的可行性;(5) 给出设计总结。4课 程 设 计 任 务 书4主要参考文献:1 严华锋 Visual C+课程设计案例精编 中国水利水电出版社 北京 2002年4月2 黄维通 Visual C+面向对象与可视化程序设计(第2版) 清华大学出版社 北京 2007年8月3 马贵安等 PowerBuilder Win32 API 函数调用参考手册 清华大学出版社 北京 2004年 7 月4 陈平 Visual C+6.0 实例教程 浦东电子出版社 上海 2001 年 1 月5 范晓平 跟着实例学 Visual C+6.0 北京航空航天大学出版

5、社 北京 2003 年 1 月5设计成果形式及要求:程序运行结果;附:课程设计说明书。6工作计划及进度:2011 年 12 月 12 日-2011 年 12 月 18 日,查找资料;12 月 19 日-12 月 25 日,熟悉 VC 工作环境,上机调试程序;12 月 26 日-12 月 30 日,写设计报告,并答辩。系主任审查意见:签字: 年 月 日5目录1.设计方案简介12. 设计步骤及结果 13. 参考文献 74. 设计评述 861.设计方案简介(1)用 C+Source File 创建一个新工程,将其命名为 Cpp1.(2 ) 根据设计的课题进行程序的设计,通过定义全局变量,定义类Per

6、petualCalenda,来实现输入任一年任一月将显示出该月的所有日期,对应的星期,并注意闰年的情况(3)最后对此工程进行编译,若有错误,则进行修改,没有错误则运行成功。2.设计步骤及结果程序为:#include #include #include void mnumain()/*显示菜单*/printf(n 万年历n);printf(*n);printf(t1:按年查询n);printf(t2:按月查询n);printf(t3:按日查询n);printf(t0:退出n);printf(*n);void main()/*主函数*/int date,year,month,day; int Pu

7、tinYear();int PutinMonth();int PutinDay();void PrintDate(int ,int, int);char ch;int nMenu;domnumain();ch=getch();nMenu=ch-0;switch(nMenu)7case 1:printf(你选择的是按年查询n); year = PutinYear ();void GetMonth(int year);GetMonth (year);break;case 2:system(cls);printf(你选择的是按月查询n);year=PutinYear ();month=PutinMo

8、nth ();void PrintMonth(int month, int year);PrintMonth(month, year);printf(n);break;case 3:system(cls);printf(你选择的是按日查询n);year=PutinYear ();month=PutinMonth ();day=PutinDay ();PrintDate(year,month,day);break;case 0:system(cls);printf(你选择的是退出);getch();break;default:printf(你的选择是错误的!n);getch();break;wh

9、ile(nMenu!=0);int PutinYear() /*按年查询*/int year;while(1)printf(请输入年份 : );scanf(%d, 8return year;int PutinMonth() /*按月查询*/int month;while(1)printf(请输入月份 :);scanf(%d,return month;int PutinDay(void) /*按日查询*/int day;while(1)printf(请输入日期 :);scanf(%d,return day;int LeapYear(int year) /*判断闰年*/if(year%4=0&ye

10、ar%100|year%400=0)return 1;elsereturn 0;void GetMonth (int year) /*求月份*/int month;for(month = 1; month 12) ? name1 : namemonth;int MonthDays(int year, int month) /*求每月天数*/int LeapYear(int year);switch(month)case 2 :if(LeapYear(year)return 29;10return 28;case 4 : case 6 : case 9 : case 11 : return 30

11、;default : return 31;int FirstDay(int year, int month) /*求一年第一天*/int i, weekday;weekday = Monday;for(i = 1; i year; i+)weekday = (weekday + 365) % 7;if(LeapYear(i)weekday = (weekday + 1) % 7;for(i = 1; i month; i+)int MonthDays(int year, int month);weekday = (weekday + MonthDays(year, i) % 7;return

12、weekday;void Blank(int weekday)int i;for(i = 0; i weekday; i+)printf( );void PrintDate(int year,int month,int date) /*显示具体日期*/int day; int getday(int year,int month,int date);day=getday(year,month,date);if(day=0)printf(n%d-%d-%d is Sunday!n,year,month,date);if(day=1)11printf(n%d-%d-%d is Monday!n,ye

13、ar,month,date);if(day=2)printf(n%d-%d-%d is Tuesday!n,year,month,date);if(day=3)printf(n%d-%d-%d is Wednesday!n,year,month,date);if(day=4)printf(n%d-%d-%d is Thursday!n,year,month,date);if(day=5)printf(n%d-%d-%d is Friday!n,year,month,date);if(day=6)printf(n%d-%d-%d is Saturday!n,year,month,date);int getday(int year,int month,int date) /*求累计天数*/int flag,s,i;int a13=0,31,28,31,30,31,30,31,31,30,31,30,31;int cont=0;flag=LeapYear(year);if(flag=1)a2+;for(i=1;imonth;i+)cont=cont+ai;cont=cont+date;s=year+1+(year-1)/4+(year-1)/100+(year-1)/400+cont;return s%7;12运行

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号