万年历C++课程设计报告

万年历C++课程设计报告
万年历C++课程设计报告

徐州师范大学科文学院本科生课程设计

课程名称:计算机程序设计实训

题目:万年历的设计

专业班级:电子信息工程 08电信

学生姓名:

学生学号:

日期: 2010/12/20

指导教师:姜芳艽

科文学院教务部印制

指导教师签字:

年月日

目录

摘要 ...................................................错误!未定义书签。

Abstract .............. ...................错误!未定义书签。

1 绪论 ...................................................错误!未定义书签。

课题的设计.................................... 错误!未定义书签。

课题的背景……………………………………………………………………….错误!未定义书签。

课题的目的………………………………………………………………………..错误!未定义书签。

课题的意义………………………………………………………………………..错误!未定义书签。

2 设计方案简述........................... 错误!未定义书签。

设计总体规划.................................. 错误!未定义书签。

实现的功能………………………………………………………………………..错误!未定义书签。

结构模块分析……………………………………………………………………...错误!未定义书签。

3 详细设计............................... 错误!未定义书签。

设计思路...................................... 错误!未定义书签。

设计语言…………………………………………………………………………..错误!未定义书签。

设计程序流程图…………………………………………………………………..错误!未定义书签。

模块详细设计................................... 错误!未定义书签。

大月和小月的定义………………………………………………………………..错误!未定义书签。

闰年与非闰年二月的定义………………………………………………………..错误!未定义书签。

日历表的输出……………………………………………………………………..错误!未定义书签。

4 设计结果及分析......................... 错误!未定义书签。

软件测试....................................... 错误!未定义书签。

设计成果....................................... 错误!未定义书签。

5 总结 ..................................................错误!未定义书签。

参考文献................................. 错误!未定义书签。

附录主要程序代码....................... 错误!未定义书签。

摘要

在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率具有重要意义。随着时代的发展,尽管日历的品种增多、花样也不断翻新,但仍旧保持着古老日历的格局。日历在当今社会的影响也是毋庸置疑的!同时,随着个人电脑的普及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。简易万年历

可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理。这套系统旨在为用户方便有效地进行重要事件的查询和管理。

本系统采用C++语言编写,接针对简单的有效查询信息化系统。该系统具有完整的信息查询功能,充分满足了广大用户的基本需求。

关键词:信息化;万年历;C++语言

Abstract

In the modern information society, there is growing emphasis on effective use of time, while the calendar has become an essential part of working life, convenient and practical calendar for the modern concept of time to improve and optimize the efficient use of time is important. With the development, despite the increasing variety of calendars, patterns have been renovated, but still maintained the pattern of the ancient calendar. The impact of the calendar in today's society is unquestionable!Meanwhile, with the popularity of personal computers, a simple desktop calendar and important events of people's daily routines an important tool to remind the record. Simple calendar can be run on your desktop, the user can mark a variety of different time and holidays and on important events and so cheat the query and manage system is designed to facilitate the effective conduct of the user's query and management of important events.

The system uses C + + language, then query for a simple and effective

information system. The system has complete information inquiry function, fully meet the basic needs of the majority of users.

Keywords:Information; calendar; C + + Language

1 绪论

课题的设计

课题的背景

在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率具有重要意义。同时,随着个人电脑的普及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。简易万年历可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理。

课题的目的

掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。

为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。

为了能更好地了解C++语言,因此开设了此次课程设计,程序设计教学课程的目的不是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识得到应用,更重要的是可以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理

解。

课题的意义

掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。

为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。

为了能更好地了解C++语言,因此开设了此次课程设计,程序设计教学课程的目的不是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识得到应用,更重要的是可以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理解。

2 设计方案简述

设计总体规划

实现的功能

简易万年历主要实现以下几个功能:

①能够显示实现任一年的日期,包括星期;。

②在输入年份后,出现当年的简易万年历;

③能够分21列显示,按照星期形式出现;

④采用图形界面,符合日常使用规范;

结构模块分析

万年历分两大部分:查询输入部分和结果显示部分。查询输入部分包一个文本框,用于输入年份。

当输入完成后,用户图形界面出现相应年月简易的日历表,并且是以星期的格式出现。

3 详细设计

设计思路

设计语言

语言的选择:本系统选择C++语言来编写

设计程序流程图

模块详细设计

大月和小月的定义

void f1(int x) 收测试:把软件系统作为单一实体进行测试,在用户的积极参与使用实际数据进行测试

设计成果

程序设计语言类课程的指导思想是:既能使学生通过学习高级编程语言的知识、编程技术和基本算法,又能掌握程序设计的思想和方法,更具备利用计算机求解实际问题

的能力,能灵活运用高级语言进行程序设计。

目前简易万年历系统已具有可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理,可以说达到了简单、方便、易于了解的目的。

5 总结

课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握程序开发技术是十分重要的,而C++语言又是最常见,功能最强大的一种高级语言,因此做好C++语言课程设计是十分必要的。

通过C++课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做程序设计,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说数组的灵活应用,循环语句,if语句……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。

我做的是简易万年历的课程设计,虽然是很简单的一个小的程序,但对我来说却是一个很大的困难。更加是第一次做C++课程设计,所以第一天下午在宿舍做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导

是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还

好时间还算是充裕,只好拿出书本重新复习一下。

开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那

种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多功能上的欠缺和漏洞,可我还是很高兴的。无论如何是自己的

劳动成果,是自己经过努力得到的成绩,同时也是学习C++语言的一次实践作业,自己

进步的证明。

在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂

得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心

理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到

生活中,不畏艰难,勇往直前!

参考文献

1.谭浩强著.《C++面向程序程序设计》.北京:清华大学出版社,

2.吴乃陵,况迎辉,李海文著.《VC++程序设计》.北京:高等教育出版社,

3.邓宗明,张睿哲,张晓竞,等编著.《Visual C++ 编程实用技术与案例》.北京: 清华大学出版社,

4.李海文,吴乃陵等编《C++程序设计及实践教程》北京:高等教育出版社,

5.邓华. Visual C++案例教程[M].北京中科多媒体电子出版社,2001

6.邹筝.Visual c++ 使用教程龚[M].北京:电子工业出版社,2008

7.龚志翔. Visual C++编程实例与技巧集粹[M].北京:北京期望电子出版社,2004

附录主要程序代码

//打印任意年日历

//已知2000 年1 月1 日为星期六,输入任一年的年份后,打印该年的年历。

#include

#include

using namespace std;

int i,c,day,year,k,a[50];

void f1(int x) //大月

{

for( i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000'; //1号前均为空格

for(i=k;i<31+k;i++)

a[i]=a[i-1]+1;

}

void f2(int x) //小月

{

for( i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<30+k;i++)

a[i]=a[i-1]+1;

}

void f3(int x) //闰年二月

{

for( i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<29+k;i++)

a[i]=a[i-1]+1;

}

void f4(int x) //非闰年二月{

for( i=0;i<50;i++)

a[i]=33;

for(i=k-1;i>=0;i--)

a[i]='\000';

for(i=k;i<28+k;i++)

a[i]=a[i-1]+1;

}

void g(int y[],int z) // 输出日历表

{

cout<<"日"<<'\t'<<"一"<<'\t'<<"二"<<'\t'<<"三"<<'\t'<<"四"<<'\t'<<"五"<<'\t'<<"六"<

for(i=0;i<50;i++)

{

if(a[i]==0)

cout<<(char)a[i]<<'\t';

if(a[i]!=0&&a[i]!=33)

cout<

else ;

if(i%7==0)

cout<

}

cout<

}

int main()

{

int s,count=0;

cout<<"请输入年份:";

cin>>year;

cout<

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<<"*********************"<

cout<

k=(day%7+6)%7+1;

cout<<"一月"<

f1(k);

g(a,50);

if((year%4==0&&year%100!=0)||year%400==0) //闰年二月

{

k=((day+31)%7+6)%7+1;

cout<<"二月"<

f3(k);

g(a,50);

day=day+31+29;

}

else //非闰年二月

{

k=((day+31)%7+6)%7+1;

cout<<"二月"<

f4(k);

g(a,50);

day=day+31+28;

}

k=(day%7+6)%7+1;

cout<<"三月"<

g(a,50);

k=((day+31)%7+6)%7+1;

cout<<"四月"<

g(a,50);

k=((day+31+30)%7+6)%7+1;

cout<<"五月"<

g(a,50);

k=((day+31+30+31)%7+6)%7+1; cout<<"六月"<

g(a,50);

k=((day+31+30+31+30)%7+6)%7+1;

cout<<"七月"<

g(a,50);

k=((day+31+30+31+30+31)%7+6)%7+1; cout<<"八月"<

g(a,50);

k=((day+31+30+31+30+31+31)%7+6)%7+1;

cout<<"九月"<

f2(k);

g(a,50);

k=((day+31+30+31+30+31+31+30)%7+6)%7+1;

cout<<"十月"<

f1(k);

g(a,50);

k=((day+31+30+31+30+31+31+30+31)%7+6)%7+1;

cout<<"十一月"<

f2(k);

g(a,50);

k=((day+31+30+31+30+31+31+30+31+30)%7+6)%7+1; cout<<"十二月"<

f1(k);

g(a,50);

return 0;

}

答辩记录表

相关主题
相关文档
最新文档