《C++课程设计》万年历.doc_第1页
《C++课程设计》万年历.doc_第2页
《C++课程设计》万年历.doc_第3页
《C++课程设计》万年历.doc_第4页
《C++课程设计》万年历.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

辽 宁 工 业 大 学C+语言程序设计课程设计(论文)题目: 万年历 院(系): 软 件 学 院 专业班级: 软件工程 学 号: 学生姓名: 指导教师: 翟宝峰 教师职称: 起止时间: 课程设计(论文)任务及评语院(系):软件学院 教研室:软件教研室学 号学生姓名专业班级课程设计(论文)题目 万年历课程设计(论文)任务任务与要求:(1). 掌握面向对象程序设计语言C+的基本语法(2). 掌握C+面向对象设计的思想(3). 掌握VC+6.0与DEV C+ 开发工具的使用 (4). 运用标准C+规范设计应用程序设计过程中,要严格遵守设计的时间安排,听从指导教师的指导。正确地完成上述内容,规范完整地撰写出设计报告。指导教师评语及成绩 成绩: 指导教师签字: 年 月 日辽 宁 工 业 大 学 课 程 设 计 说 明 书(论 文)目 录第1章 课程设计目的与要求11.1设计目的11.2实验环境11.3预备知识11.4设计要求1第2章 课程设计内容22.1 课题描述22.2 系统设计22.2.1功能分析22.2.2面向对象设计22.2.2类成员描述22.3程序实现22.3.1源码分析22.3.2运行结果2第3章 总结3参考文献4第1章 课程设计目的与要求1.1设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程C+语言教程的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C+语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握面向对象程序设计的方法。(6)熟练掌握C+语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。1.2实验环境硬件要求能运行Windows 操作系统的微机系统。C+语言应用程序开发软件使用:VC+ 系统,或其他C+语言应用程序开发软件。1.3预备知识熟悉C+语言程序设计的基本知识及VC+编辑器的使用方法。1.4设计要求1.仔细分析设计题目,画出程序流程图,编写程序源代码。2.积极上机调试源程序,增强编程技巧与调程能力。3.认真书写课程设计预习报告,课程设计说明书。4.遵守课程设计要求和机房管理制度,服从指导教师的安排,确保课程设计的顺利完成课程设计内容。第2章 课程设计内容2.1 课题描述输入任一年的年份后,如何打印该年的年历2.2 系统设计输入记录 输入源程序,并对各部分有一个详细的解释,说明各个部分的功能,将这个问题模块化,分成几个部分的输入。程序中数据的设计大月小月的判断,闰年非闰年的判断以及年历的排列方式都得用数据的形式给表示出来,所以数据的的设计也是比较多的,具体如下: int i,c,day,year,k,a50; 具体说明如下:i(此变量是用来排列年历的),c(c是和year变量是一样的,是从计算机中输入的),day(day变量是是相差的天数),k(k是用来输出星期的)。程序的函数设计 C+是函数驱动的,所以很多的功能是需要用函数来完成的。本题我们共有6个函数,其中有5个自定义函数和一个主函数。分别是:void f1(int x) ,void f2(int x),void f3(int x) ,void f4(int x) ,void g(int y,int z) 和main函数。各个函数的功能是: f1:判断1号之前的天数并全部用空格填上。 f2:用来判断大小月的。 f3:用来判断并输出闰年的二月的。 f4:用来判断并输出非闰年二月的。 g:用来输出日历表的。 数据结构说明 本系统数据结构较简单,只有一个结构数组,预定50个元素。定义结构类型如下: for( i=0;i50;i+) ai=33;2.2.1功能分析输入任一年的年份后,打印该年的年历2.2.2面向对象设计2.2.2类成员描述各功能模块(函数)的算法处理 1、大月和小月的定义 void f1(int x) /大月 for( i=0;i=0;i-) ai=000; /1号前均为空格 for(i=k;i31+k;i+) ai=ai-1+1; 主要运用了数组的循环语句进行对大月的定义。 void f2(int x) /小月 for( i=0;i=0;i-) ai=000; for(i=k;i30+k;i+) ai=ai-1+1; 依然用数组的循环语句进行对小月的定义。闰年与非闰年二月的定义 void f3(int x) /闰年二月 打印一年日历Void f Void q 主函数 大月 小月 闰年二月 输出日历表一月的定义 闰二月的定义 非闰二月的定 三月 四月 五月 六月 七月 八月 九月 十月 十一月 十二月 非闰年二月 for( i=0;i=0;i-) ai=000; for(i=k;i29+k;i+) ai=ai-1+1; void f4(int x) /非闰年二月 for( i=0;i=0;i-) ai=000; for(i=k;i28+k;i+) ai=ai-1+1; 用两个函数定义了在闰年与非闰年时,二月的不同定义。这主要运用到变量的不同定义。从而分辨出它们的不同,使可打印出任一年的日历。 3、日历表的输出 int s,count=0; coutyear; coutendl; c=year; for(s=1;s=year;s+) if(s-1)%4=0&(s-1)%100!=0)|(s-1)%400=0) count+; day=365*c+count; /相差天数 cout*year年日历*; coutendlendlendlendl; 在此运用了C+中函数的运算,计算出该年的每月每日的不同。还有一年的输入和输出。在C+语言中,函数的运算又分为很多种,此次用的是 在输出时,闰年与非闰年二月的输出法的定义 if(year%4=0&year%100!=0)|year%400=0) /闰年二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f3(k); g(a,50); day=day+31+29; else /非闰年二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f4(k); g(a,50); day=day+31+28; 此处主要运用了if语句来对闰年与非闰年的二月的不同定义的输出。if语句一种2.3程序实现2.3.1源码分析#include #include using namespace std; int i,c,day,year,k,a50; void f1(int x) /大月 for( i=0;i=0;i-) ai=000; /1号前均为空格 for(i=k;i31+k;i+) ai=ai-1+1; void f2(int x) /小月 for( i=0;i=0;i-) ai=000; for(i=k;i30+k;i+) ai=ai-1+1; void f3(int x) /闰年二月 for( i=0;i=0;i-) ai=000; for(i=k;i29+k;i+) ai=ai-1+1; void f4(int x) /非闰年二月 for( i=0;i=0;i-) ai=000; for(i=k;i28+k;i+) ai=ai-1+1; void g(int y,int z) / 输出日历表 cout日t一t二t三t四t五t六endl; for(i=0;i50;i+) if(ai=0) cout(char)ait; if(ai!=0&ai!=33) coutait; else ; if(i%7=0) coutendl; coutendlendlendl; int main() int s,count=0; coutyear; coutendl; c=year; for(s=1;s=year;s+) if(s-1)%4=0&(s-1)%100!=0)|(s-1)%400=0) count+; day=365*c+count; /相差天数 cout*year年日历*; coutendlendlendlendl; k=(day%7+6)%7+1; cout一月endlendl; f1(k); g(a,50); if(year%4=0&year%100!=0)|year%400=0) /闰年二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f3(k); g(a,50); day=day+31+29; else /非闰年二月 k=(day+31)%7+6)%7+1; cout二月endlendl; f4(k); g(a,50); day=day+31+28; k=(day%7+6)%7+1; cout三月endlendl; f1(k); g(a,50); k=(day+31)%7+6)%7+1; cout四月endlendl; f2(k); g(a,50); k=(day+31+30)%7+6)%7+1; cout五月endlendl; f1(k); g(a,50); k=(day+31+30+31)%7+6)%7+1; cout六月endlendl; f2(k); g(a,50); k=(day+31+30+31+30)%7+6)%7+1; cout七月endlendl; f1(k); g(a,50); k=(day+31+30+31+30+31)%7+6)%7+1; cout八月endlendl; f1(k); g(a,50); k=(day+31+30+31+30+31+31)%7+6)%7+1; cout九月endlendl; f2(k); g(a,50); k=(day+31+30+31+30+31+31+30)%7+6)%7+1; cout十月endlendl; f1(k); g(a,50); k=(day+31+30+31+30+31+31+30+31)%7+6)%7+1; cout十一月endlendl; f2(k); g(a,50); k=(day+31+30+31+30+31+31+30+31+30)%7+6)%7+1; cout十二月endlendl; f1(k); g(a,50); return 0; 2.3.2运行结

温馨提示

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

评论

0/150

提交评论