C语言程序设计万年历

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C语言课程设计报告

题目:万年历系统

设计者:李文杰

专业班级:软件工程(.net)一班

学号:************

指导教师:***

2011年6月30日

河南理工大学计算机科学与技术学院

目录

一、C语言课程设计任务书 (3)

1、C语言课程设计目的和要求 (3)

1.1目的: (3)

1.2要求: (3)

二、本组课题及本人任务 (3)

三、程序功能简介 (4)

四、主题内容 (4)

1、题目与要求 (4)

1.1 问题提出 (4)

1.2 本系统涉及的知识点 (5)

1.3 功能要求 (5)

2、功能设计 (6)

2.1 算法设计 (6)

3、程序流程图.. (8)

4、程序代码设计 (9)

4.1输入及年份平润确定模块 (9)

4.2求星期天数模块 (9)

4.3求月份天数模块 (11)

4.4查询模块 (11)

4.5输出及验证模块 (12)

4.6说明: (12)

5、C程序设计总结 (12)

6、结束语 (13)

参考文献 (13)

一、C语言课程设计任务书

1、C语言课程设计目的和要求

1.1目的:

1)复习、巩固C语言的基础知识,进一步加深对C语言的理解和掌握;

2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力;

3)培养学生在项目开发中团队合作精神、创新意识及能力。

1.2要求:

1)、对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;

2)、系统设计要实用,编程简练,可用,功能全面

3)、说明书、流程图要清楚

4)、记录设计情况(备查,也为编写设计说明书作好准备);

5)、要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。

6)、设计上交内容:设计报告一份(按格式书写);源程序盘一张(能编译成可执行文件并能正常运行,可一个班交一张光盘)。

二、本组课题及本人任务

经考虑及尝试,本人决定选择题目2.2编写一个万年历系统,完成对日期的查询输出。

1设计编写一个C程序—“万年历”。

2输入任一年将显示出该年的所有月份日期,对应的星期。

3 下一行显示星期,从周日到周六,中英文都可以。

4 下一行开始显示日期从1号开始,并按其是周几实际情况与上面的星期数垂直对齐。

5 月份:中文英文都可以,注意闰年情况。

三、程序功能简介

模仿现实生活中的挂历.

当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).

当系统日期变到下一月时,系统自动翻页到下一月.

四、主题内容

1、题目与要求

1.1 问题提出

本人计划编写一个万年历查询系统,模仿现实生活中的挂历,实现多日期的变更了解。

1.2 本系统涉及的知识点

1. 程序的三种基本结构:顺序,选择,循环。if语句的嵌套,for语句的嵌套。

2. 定义整型,字符型,指针变量,字符型数组和指针数组。数组的初始化和引用和指针的使用。

3. 函数的定义、声名、调用以及函数的返回值。

4. 赋值语句的使用。

5. 输入(scanf)输出(printf)函数的应用。

6. 算术运算符、关系运算符和逻辑运算符的应用。

1.3 功能要求

1、建立日历基础信息,输入当前日期时间为本系统时间基数;

2、根据年份平润规律得出所要了解年份的平润;

3、以每七天为一个循环的规律得出星期天数;

4、根据月份天数规律得出所要了解月份天数;

5、输入日期查询;

6、输出。

2、功能设计

2.1 算法设计

1、本系统需要实现的功能要求:

利用switch语句设计如图1所示的主菜单:

请输入选项编号(1~7)

图1 日历查询系统主菜单

2、选择3后,调用排序函数,进入函数后利用switch语句实现一个如图2所示的菜单,该菜单中每个选项调用一个函数。

图2 排序子菜单

3、根据所选菜单编写相应模块图

1)输入函数leap 、count ,将当前基数时间输入及求出所要了解年份的平润;

2)通过switch 函数求出星期天数;

3)通过switch 函数求出月份天数;

4)输入日期查询;

5)输出及验证。

3、程序流程图

(成立)

4、程序代码设计

4.1输入及年份平润确定模块

1)函数原形:void count(int year, int month)

2)功能:利用if循环语句和count、leap函数完成对基数日期的输入和对所要了解的日期所在年份的平润。

3)模块源代码:

#include

#define YEAR 365

int leap(int year)

{

int n;

n=(year%4==0&&year%4!=0||year%400==0);

return(n);

}

void count(int year, int month) /*基:2000年1月*/

{

int i,day,first_day,flag,year1,year2,temp=6;

flag=leap(year);

year1=year/100; /*相差几百年*/

year2=year%100; /*中间几十年*/

if(year>=2000) /*大于2000年*/

{

year1-=20;

day=year1/4; /*百闰年数*/

day+=(YEAR+24)*year1+YEAR*year2+(year2-1)/4; /*2000年至现年总天数*/

if(year>2000)day++; /*加上2000年闰年2月的29天*/

4.2求星期天数模块

1)函数原型:switch(month)

2)功能:利用switch语句完成万年历中对星期天数的求解。

3)模块源代码:

相关文档
最新文档