c语言课程设计报告

上传人:壹****1 文档编号:487589934 上传时间:2023-09-15 格式:DOCX 页数:17 大小:149.59KB
返回 下载 相关 举报
c语言课程设计报告_第1页
第1页 / 共17页
c语言课程设计报告_第2页
第2页 / 共17页
c语言课程设计报告_第3页
第3页 / 共17页
c语言课程设计报告_第4页
第4页 / 共17页
c语言课程设计报告_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《c语言课程设计报告》由会员分享,可在线阅读,更多相关《c语言课程设计报告(17页珍藏版)》请在金锄头文库上搜索。

1、C语言课程设计报告 万年历设计人:贾伟涛 学号: 班级:13电信应电班 指导老师: 日期:2014年6月9日内容提要通过大一下学期对 C 语言的学习,了解到了很多 C 语言的相关知识。学习的 过程虽然有很多困惑,但是当自己能够独立的看懂和独立的完成一个简单的程序 时,心中就会收获无限的喜悦和成就感。我虽然可以看懂一些简单的程序,编写 一些简单的计算程序,更多的是学会了一种思想编程,它让我在去思考很多 日常生活中的事物是怎么样通过一个个小小的函数实现功能的,激发我对c语言 的兴趣。C语言是近年在国内外得到迅速推广应用的一种机器语言。C语言功能丰富, 表达能力强,使用灵活方便,应用面广,目标程序效

2、率高,可移植性好,既具有 高级语言的优点,又具有低级语言的许多特点。因此,C语言特别适合于编写各 种软件。在这次的课程设计中我将把日常生活中最经常接触的日历的查询,利用C 语言的程序编成一个简单的万年历查询系统。通过这个小小的系统可以实现很 多功能。在程序中你能看到很多熟悉的C语言关键字,同时也加入了很多自己课 外了解到的一些关键字。在不断的调试中最终才获得最为完整的程序。接下来就 是我的C语言课程设计的具体内容来了,大家拭目以待吧!目录一、系统功能和数据说明二、问题分析三、程序总体设计及功能结构框图四、程序流程图五、源程序代码六、使用说明七、个人心得八、参考文献一、系统功能和数据说明(一)功

3、能简介在日常生活中能接触到很多不同类型的日历,在日历上我们通常希望它能简单明了 的给我们最想要的日期信息。在我的万年历系统当中,就是将日历,月历做的简单明了, 很方便我们的查询使用。下面是它要实现的一些基本功能:C语言编写万年历查询系统:(1) 输入年份,判断是否为闰年(2) 输入年月日,判断是星期几(3) 输入年份,打印出12个月的月历(4) 输入年月,打印出本月的日历另新增:(1) 对输入指令错误的提示(2) 加入了调用系统时间函数(3) 还添加了欢迎界面并进行界面优化(二)程序中的数据说明 in t days12 = 31, 28, 31, 30, 31, 30, 31, 31, 30,

4、 31, 30, 31;这是定义的关于每个月天数的数组,根据大小月以及二月份的特殊情况将每个月的 天数变为数组中的元素存入数组当中。其中days1=28,是将闰年二月的天数28天作 为初始元素存入。在经过yearMonth函数后就可以给days1 中存入正确的月天数。 tm *tp;char *week = 一,二,三,四,五,六,日;这两组数据设计都利用了指针定义,利用指针可以提高程序的可读性,可以更方便 使用。这两个数组的作用是用于调用系统时间,而定义的星期数组*week和年月日变 量航卩,由于还没学到指针,在这里查阅了很多资料,并也借鉴了前辈们的很多程序。二、问题分析对于闰年的判断,能被

5、4整除但不能被100整除,或者能被400整除的年份为闰年,否则为平年。日期的查询,就是直接打印改天所在月份的月历。程序难点在于判断星期,但根据公式,我们可以很容易地用年月日推断出星期:weekday=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7;其中year:要查询的年份day:从该年的一月一日起到该天的天数weekday :得出的星期数。在打印月历时,只要知道第一天的星期,就可以依次输入后面的日期,通过一 定长度输出日期,在遇到某天时星期天时,就换行输出,因此可以按照月历的格式 输出。对于初始输入当前系统时间,可以通过

6、=3000|year=12|month=31|day/标准输入输出函数#includestdlib.h/清屏函数 system()#includewindows.h/延时函数 Sleep()#include /调用系统时间函数time ()在程序中运用了大量的自定义函数,都涉及为了使程序更简介明了。其中有:int isLeapYear(int year)/判断是否为闰年void hy()/欢迎信息;void Time() /获取系统时间;int whichWeekday(int year, int month, int day)/判断某天为星期几;void yearMon th(int yea

7、r, int mon th)/打印某年某月的月历;void mon thDay(int year)/输入年份,打出个月历;void menu()/主菜单;void main()/主函数;这些函数的定义及其相应的内部程序共同构筑起了这个万年历查询系统的总程序。其中isLeapYear函数是用来判断输入的年份是否为闰年,实现了预计功能的第一个方面;whichWeekday函数则是为了实现判断星期而编写的;yearMonth函数则是为了实现月历而编写的;Time ()函数则是为调用系统时间而编写,该Time ()函数 采用指针形式定义了*week数组和*tp变量;yearMonth, monthDa

8、y这两个函数的共同 使用就能够完成输出年历的功能。四、程序流程图(一)总流程图(二)算法说明1. 总天数的算法:isLeapYear函数的使用,判断出了输入年份是否为闰年的信息。判断一年是否为闰年的方法是:该年分而能被4整除但不能被100整除,或者是能被400整除。判断是否为闰年的流程图:yeai%4=0?yaiolOOhO否是yeaio400=02. 输入日期计算星期几:利用 whichWeekday 函数可以判断出星期,然后对于输入的日期可以通过公式weekday=(day+2*m ont h+3*(mon th+l)/5+year+year/4-year/100+year/400)%7

9、计算就可 以输出相应的星期数。int whichWeekday(int year, int month, int day)/判断某天为星期几int weekday;if (month = 1 | month = 2)/公式中要把月和月换成是上一年的月和月month += 12; year -= 1; weekday=(day+2*month+3*(month+1)/5+year+year/4-year/100+year/400)%7; /计算星期的公 式return weekday+1;3. 对输入信息的汇总:void yearM ont h(i nt year, int mont h)/ 打

10、印某年某月 的月 历,void monthDay(int year)/输入年份,打出个月历;通过这两个函数可以将输入数据的具体 信息通过完整日历的形式表示出来。void yearMonth(int year, int month)/打印某年某月的月历int i,j=0;int weekday; /计算这个月第一天是星期几weekday = whichWeekday(year, month, 1);printf(n%d 年4 月 n,year,month);printf(n);printf(“星期一星期二星期三星期四星期五星期六星期天n);if(isLeapYear(year) & month

11、= 2)days1 = days1 + 1;printf();for(i = 1; i weekday; i +)printf();for(i = 0; i 8 - weekday; i +)printf(%6d, i+1);printf( );printf(n );for(i = 9-weekday; i = daysmonth-1; i +,j+) if(j = 7)j = 0;printf(n );printf(%6d , i);n);printf(n void monthDay(int year)/输入年份,打出个月历int i;for(i = 0; i 12; i +)yearMon

12、th(year,i+1); printf(nn);五、源程序代码#include/标准输入输出函数#include/清屏函数 system()#include/延时函数 SleepO#include /调用系统时间函数time ()int days12 = 31,28, 31,30,31,30,31,31,30,31,30,31;/每月的天数,闰年二月要加int isLeapYear(int year)/判断是否为闰年if(year%4 = 0 & year%100 != 0 | year%400 = 0)return 1;elsereturn 0;void hy()/欢迎信息printf(n

13、欢迎使用万年历查询系统nn”);Sleep(700);/延时毫秒printf(”祝您每天好心情! nnn);Sleep(1000);printf(”版本:v2.0nnn);Sleep(1000);printf(”正在进入功能菜单,请稍候n);Sleep(5000);/延时秒void Time() /获取系统时间time_t t;struct tm *tp;static char *week二,二,三,四,五,六,日;t=time(NULL);tp=localtime(&t);printf(tn);printf(tt 系统时间日期:d 年4 月4 日,tp-tm_year+1900,tp-tm_mon+1,tp-tm_mday);printf( %d:%d:%d ,tp-tm_hour,tp-tm_min,tp-tm_s

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

当前位置:首页 > 建筑/环境 > 建筑资料

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