万年历程序设计_第1页
万年历程序设计_第2页
万年历程序设计_第3页
万年历程序设计_第4页
万年历程序设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

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

2、 期: 2011年12月12日 课程设计地点: 指 导 教 师: 田秀荣 、石海杰 系 主 任: 下达任务书日期: 2011 年 12 月 12 日课 程 设 计 任 务 书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主要参考文献: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 北京航空航天大学出版社 北京2003年1月5设计成果形式及要求:程序运行结果;附

5、:课程设计说明书。6工作计划及进度:2011年12月12日-2011年12月18日,查找资料;12月19日-12月25日,熟悉VC工作环境,上机调试程序;12月26日-12月30日,写设计报告,并答辩。系主任审查意见: 签字: 年 月 日目录1.设计方案简介12. 设计步骤及结果 13. 参考文献 74. 设计评述 81.设计方案简介(1)用C+Source File创建一个新工程,将其命名为Cpp1.(2 ) 根据设计的课题进行程序的设计,通过定义全局变量,定义类PerpetualCalenda,来实现输入任一年任一月将显示出该月的所有日期,对应的星期,并注意闰年的情况(3)最后对此工程进行

6、编译,若有错误,则进行修改,没有错误则运行成功。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 PutinYear();int PutinMonth();int PutinDay();void PrintDate(int ,

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

8、ntMonth(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; while(nMenu!=0);int PutinYear

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

10、&year%100|year%400=0) return 1; else return 0;void GetMonth (int year) /*求月份*/int month;for(month = 1; month = 12; month+) void PrintMonth(int month, int year); PrintMonth(month, year); printf(n);enumSunday, Monday, Tuesday, Wednesday,Thursday, Friday, Saturday;void PrintMonth(int month, int year) /

11、*显示每月*/int weekday, ndays, day;char *MonthName(int month);printf( %s, MonthName(month);printf(n 周日 周一 周二 周三 周四 周五 周六n);int MonthDays(int year, int month);ndays = MonthDays(year, month);int FirstDay(int year, int month);weekday = FirstDay(year, month);void Blank(int weekday);Blank(weekday);for(day =

12、1; day = ndays; day+) printf( %4d, day); if(weekday = Saturday) printf(n); weekday = (weekday + 1) % 7;if(weekday != Sunday) printf(n);char *MonthName(int month)char *name = , 一月, 二月, 三月,四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月 ;return (month 12) ? name1 : namemonth;int MonthDays(int year, int month) /*

13、求每月天数*/int LeapYear(int year);switch(month) case 2 : if(LeapYear(year) return 29; return 28; case 4 : case 6 : case 9 : case 11 : return 30; 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(LeapYe

14、ar(i) weekday = (weekday + 1) % 7;for(i = 1; i month; i+) int MonthDays(int year, int month); weekday = (weekday + MonthDays(year, i) % 7;return 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 yea

15、r,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) printf(n%d-%d-%d is Monday!n,year,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

16、(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(

17、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;运行结果(1)运行万年历初始状态图1 初始状态(2)选择1图2 选择操作1(3)输入年月 图3 输入年月4. 参考文献【1】严华锋 Visual C+课程设计案例精编 中国水利水电出版社 北京 2002年4月【2】 黄维通 Visual C+面向对象与可视化程序设计(第2版) 清华大学出版社 北京 2007年8月【3】 马贵安等 PowerBuilder

18、Win32 API函数调用参考手册 清华大学出版社 北京2004年7月【4】 陈平 Visual C+6.0实例教程 浦东电子出版社 上海 2001年1月【5】 范晓平 跟着实例学Visual C+6.0 北京航空航天大学出版社 北京2003年1月5. 设计评述,设计者对本设计的评述及通过设计的收获体会X3023李鹏:在为期不到两周的课程设计中,我体会颇多,学到很多东西。我懂得了如何用vc+6.0编写应用程序,利用这次机会,我加强了对C+的认识,复习了自己以前的知识,自己的逻辑思考能力也提高不少。从而对Microsoft Visual C+ 6.0又有了更深入的认识!在这次课程设计中,我还懂得了程序开发的一些比较重要的步骤,比如需求分析、总体

温馨提示

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

评论

0/150

提交评论