资源描述:
《万年历设计报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
万年历设计报告522020年4月19日
1文档仅供参考C语言程序设计实训任务书题目:万年历学生姓名:学号:班级:_物联网工程_题目类型:软件工程(R)指导教师:一、设计目的1.进一步掌握和利用C语言进行程序设计的能力;2.进一步理解和运用结构化程序设计的思想和方法;3.初步掌握开发一个小型实用系统的基本方法;4.学会调试一个较长程序的基本方法;5.学会利用流程图或N-S图表示算法;6.掌握书写实训开发文档的能力(书写实训报告)。二、设计任务及内容用C语言编写万年历1.功能选择能够用菜单实现。例如能够选择1按年查询2按月查询3按日查询0退出用户经过不同的数字进入不同的菜单2.万年历显示公元后任何年份的日历,类似于一般挂历上的格式3.输入年份,判断是否为闰年522020年4月19日
2文档仅供参考4.输入年月日,判断改日为星期几5.输入年份,打出12个月历,输入月份,打出该月的日历6.要求用多个函数实现三、设计要求1.用C语言实现系统;2.利用结构体、数组等实现数据结构设计;3.系统的各个功能模块要求用函数的形式实现;4.文档:实训说明书每个学生一份,并装在统一的资料盒中。5.光盘:每个学生文档和程序资料分别建在一个以自己学号和姓名命名的文件夹下,并要求每班负责人汇总每个学生的文件放在以班级姓名命名的文件夹下,刻录成一张光盘,放在一个专门的资料袋中。四、提交的成果1.设计任务书一份(学校统一格式)2.设计说明书一份,内容包括:1)中文摘要100字,关键词3-5个。2)C语言课程实训题目、内容、要求。3)总体设计(包含几大功能模块)。4)详细设计(各功能模块的具体实现算法——流程图)522020年4月19日
3文档仅供参考5)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。6)调试分析(包含各模块的测试用例,及测试结果。)7)总结(实训完成了哪些功能,还有哪些地方需要改进,及经过实训有何收获,调试程序的体会等)8)参考文献、致谢等。五、主要参考资料1.王连相.《C/C++程序设计》武汉大学出版社2.谭浩强《C语言程序设计(第2版)学习指导》清华大学出版社3.杨莉,龚义建《C语言程序设计实训指导教程》华中科技大学出版社4.张小东,郑宏珍《C语言程序设计与应用》人民邮电出版社5.郭翠英《C语言C语言课程实训案例精编》中国水利水电出版社6.郭有强《C语言程序设计》清华大学出版社7.李丹程,刘莹,那俊《C语言程序设计案例实践》清华大学出版社8.李丽娟《C语言程序设计教程》人民邮电出版社9.武雅丽,王永玲,解亚利《C语言程序设计》清华大学出版社六、各阶段时间安排(共1周)日期内容地点522020年4月19日
4文档仅供参考星期一教师讲解设计要求,准备参考资料1B203星期二分析系统,方案设计1B203星期三方案设计,编程1B203星期四调试程序,书写实训说明书1B203星期五完成实训说明书,答辩1B203522020年4月19日
5文档仅供参考摘要C语言在近年来国内外得到了很广泛的推广,而电子万年历也是人们在日常的生活需求中必不缺少的一部分。我们经过这学期对C语言的学习,做出了一个万年历程序。该程序实现了简易的万年历的功能,实现了万年历的四个基本功能。当进入此程序,经过界面的提示能够很容易的进入万年历功能选择所实现的功能。此万年历有以下四个常能用的功能:按年查询、按月查询、按日查询、打印整年日历。这四个常见功能基本满足了人们在生活中的对万年的需求,本万年历跨度较其它万年历稍大一些,能够查询到更广的年历。关键词:C语言;电子万年历;数组522020年4月19日
6文档仅供参考522020年4月19日
7文档仅供参考目录1绪论11.1设计目的11.2设计背景11.3需求背景11.4小组分工72总体设计32.1总模块设计32.2使用头文件说明32.3使用变量声明42.4运用到C语言的函数42.5函数调用关系53详细设计63.1函数运行流程图63.2闰年判断模块73.3年历打印模块83.4星期计算模块93.5打印月历模块113.6日期合法性检查模块13522020年4月19日
8文档仅供参考4调试分析144.1错误分析144.2错误修改144.3运行程序154.4闰年的判断154.5星期计算的功能164.6月历查询功能174.7打印整年年历功能185源程序清单19总结26致谢27参考文献28522020年4月19日
9文档仅供参考522020年4月19日
10文档仅供参考1绪论本课题主要是针对简易电子万年历的功能,以及子模块的设计展开探究。课题主要包括了使用C语言来调用各个模块的函数,使这些函数相互之间联系起来,解决用户需要的简易问题,同时考察组员对C语言中的函数、顺序、循环、if语句的嵌套、for语句的嵌套的操作能力。而且在探究的过程中培养组员分析问题和解决问题的能力,提高组员之间团结合作的能力。1.1设计目的1.经过实训能够综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关。更加了解了C语言的好处和其可用性。同时增加了同学之间的团队合作精神,更加也体会到以后在工作中团队合作的重要性和必要性。2.经过实训,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。1.2设计背景C语言是近年在国内外得到迅速推广应用的一种机器语言。C522020年4月19日
11文档仅供参考语言功能丰富,表示能力强,应用灵活方便,应用范围广,目标成序效率高,可移植,极有高级语言的优点,又具有低级语言的许多特点。因此,C语言特别适合于编写各种软件。在这次的实训中我将把日常生活中最经常接触的——日历的查询,利用C语言的程序编成一个简单的万年历查询系统。经过这个小小的系统能够实现部分功能。在程序中你能看到很多熟悉的C语言关键字,同时也加入了很多自己课外了解到的一些关键字。1.3需求背景当前比较流行电子万年历程序,比较典型的是windows中各版本的日历程序。可是这些程序总是有一定的限制,需要一个跨度很大的日历来方便人们的生活,而C语言程序与设计充分发挥了这个优点,用很短的文本填补了这一个空白。同时也用强有力的证据告诉人们C语言这个新生事物的应用范围是极其广阔的。1.4小组分工组内成员是一个整体,小组是一个团队,强调集体行动,不搞个人主义,组内对于各种任务要有明确分工,而且要明确落实到人。组长:白博康在以身作则的基础上,对组员的学习、行为、思想等进行监督、督促和指导。包括随时与指导老师联系,分派组员任务。同时负责实训内容的收尾、排版、制图、检查错误、部分程序的调试等工作。522020年4月19日
12文档仅供参考组员:蔡家豪在报告书中做了很大的贡献,在我们的报告书中担任了流程图制作,资料搜集的工作,为我们的工作顺利进行起到了很大的作用。同时为组内同学做好了后勤保障工作。组员:程虞华在我们组中寻找源代码以及对源代码进行改进,为我们提供了程序设计的基础,并和其它组员一起查询错误。在报告书中为我们编辑了详细程序这一部分。同时协助其它组员进行实训中表格的制作,流程图的制作。522020年4月19日
13文档仅供参考2总体设计2.1总模块设计用户经过不同的数字进入不同的菜单,万年历显示公元后任何年份的日历,类似于一般挂历上的格式,输入年份,判断是否为闰年;输入年月日,判断为星期几;输入年份,打印出查询月历;输入年份,打出该月的日历。万年历闰年判断星期查询月历查询打印整年日历图2.1功能模块图2.2使用头文件说明本程序应用到的头文件:522020年4月19日
14文档仅供参考#include "stdio.h" 在使用标准函数库中的输入输出函数时,编译系统要求程序提供有关的信息(例如对这些输入输出函数的声明),#include的作用就是用来提供这些信息的,stdio.h是C编译系统提供的一个文件名,stdio是“standardinput&output”的缩写,即有关标准输入输出的信息。在程序中用到系统提供的标准函数库中的输入输出函数时,应在程序的开头写上一行:#include"stdio.h"或者是#include,这样才能调用库函数。二者主要在于查找效率上有差别,#include一般用包含系统文件,它是查找先从系统目录查找开始查找;#include"stdio.h"一般用包含项目文件,它是查找先从项目目录查找开始查找。在编写C语言中,常见到printf()和scanf()函数,她们就是stdio.h中的两个标准输入输出函数,因此编程语句中如果要用到此两个函数就一定要在头文件中加入#include。#include "windows.h" 头文件封装了库函数以及一些类,将一些复杂的工作由库函数处理,而用户不必把精力放在这些地方。比如说cout<<,为标准输出流,其实说到底还是函数调用,不过这个函数有些特殊,用的是522020年4月19日
15文档仅供参考运算符重载,确切地说是重载了“<<”运算符,作用是将键盘输入的在屏幕上打印出来,这个功能要是由我们去写,估计也得学个两三年才有可能。因此就简化了操作。而这一系列的函数都在头文件中包含(是一个函数库)。在调用时包含后便可直接用。2.3使用变量声明表2.2变量的声明变量变量说明表示月份的变量表示年份的变量NameOfMonth表示月份的变量WeekDay表示日期的变量Choise>表示菜单选择的变量x表示月份的变量y表示一个月中的某一天的变量sum判断某天是一年中的第几天的变量number判断某天离公元1年1月1日还有几天的变量a[]表示每月天数的数组变量2.4运用到C语言的函数在程序中应用了大量的自定义函数,都为了使程序更简洁明了。其中:int IsLeapYear() /*判断是否为闰年*/ char*NameOfMonth() /*判断某天是一年中的几月*/ char*WeekDay() /*对天数进行判断确定是星期几*/ 522020年4月19日
16文档仅供参考intjiri()/*判断这一月的总天数*/intX=(int)(year/100);/*世纪数*/intY=X-(int)(X/4);/*如果按4年一闰来算,Y指的是比实际上多算的天数,在下面需要减去*/intGetDayOfMonth()/*输出某一年中的月历*/inttmp_days=GetDays(year,month,1);/*本月积日*/intShowCalendar()/*输出某一年的某一月的详细日历*/intDateCheck/*判断合法性*/jiri=GetDays(year,month,1);/*获取特定日期的总天数*/ShowCalendar(year,month,1);}/*输出年历*/int counterdays() /*判断今天距特定日期的天数*/ intdayofweek() /*判断是星期几*/ intGetDays /*判断今天的日期*/ 2.5函数调用关系上述函数调用关系如下图所示:否是主函数main()IsLeapYearShowCalendarGetDaysGetDayOfMonthDateCheck(是否合法)结束522020年4月19日
17文档仅供参考图2.5函数调用关系3详细设计3.1函数运行流程图经过外部菜单的功能和相应的提示进行输入即进入所要运行的功能。定义了一个主函数intmain()这个函数就是我们整个程序运行的主要框架。经过while这个主循环让用户输入相应的功能前的代码来实现想要的功能。经过在Choise>之后输入所需运行的程序的代码进行执行相应的程序。调用闰年判断判断该年是否闰年输入年月3调用打印月历打印该月月历调用年历打印打印该年年历判断该日为星期几数字判断输入年份输入年月日1或4214调用星期判断开始输入选项522020年4月19日
18文档仅供参考图3.1函数运行流程图3.2闰年判断模块用户经过输入1进入闰年判断的程序,进入闰年判断后,经过对函数int IsLeapYear() 的循环进行判断,最后输出结果,输出结果后返回主菜单。开始输入yearyear%4==0year%100!=0year%400==0是闰年非闰年返回否是是否是522020年4月19日
19文档仅供参考图3.2闰年判断模块进入菜单选择闰年判断功能,输入进行查询,查询后将显示查询的年份是否为闰年。若是,则显示此年为闰年,若不是闰年则显示此年不是闰年。首先第一步定义了IsLeapyear这个函数,这个函数主要是为实现闰年判断这个功能的。经过year%4==0&&year%100!=0||year%400==0判断输入的该年是否为闰年,从而经过接下的步骤return返回相应的数据。相关代码如下:intIsLeapYear(intyear){if(year%4==0&&year%100!=0||year%400==0){return1;/*闰年返回1*/}else522020年4月19日
20文档仅供参考{return0;/*平年返回0*/}}3.3年历打印模块经过输入4,选择打印整年日历功能,输入正确即可执行,输入不正确返回主界面。打印该年月份返回年份判断输入年份调用大小月判断函数调用闰年判断函数图3.3年历打印模块进入主界面后,用户经过选择打印整年日历的功能。进入打印整年日历的程序中后,用户只需输入想要打印当年的年份,接下来就是对月份的判断,此时年份的判断已经经过了,这时先对大月小月进行判断,if522020年4月19日
21文档仅供参考中列出的都是小月,经过判断大小月和之前石否为闰年的判断接下来进一步对二月的天数进行确定。当return0之后,这些月份都为小月,每都有30天,之前判断的闰年此时调用判断闰年的函数,用是否闰年对二月的天数进行判断,系统即可进行打印,该程序在循环中截止于break,打印部分的程序如下:if(uMonth==4||uMonth==6||uMonth==9||uMonth==11){if(uDay>30){return0;}}elseif(uMonth==2){if(IsLeapYear(uYear)){if(uDay>29){return0;}}else{if(uDay>28){return0;}}}return1;522020年4月19日
22文档仅供参考}printf("请输入要判断的年份:Year>");scanf("%d",&year);for(month=1;month<=12;month++){ShowCalendar(year,month,1);}break;3.4星期计算模块进入主界面菜单之后,经过用户选择星期计算即可查询某一天是星期几,需要用户输入按“年月日”的格式进行输入,输入后,系统将判断输入的该年该月的这一天为星期几并显示出来。这个程序的运行要基于之前的日历的计算。开始输入年月日调用打印年历的函数调用打印月历的函数输出这一天为星期几返回522020年4月19日
23文档仅供参考图3.4星期计算模块开始星期的计算。星期的计算需要调用两次函数,需要调用判断年历的函数,经过定位到所需函数的一年,接下来继续判断函数所在的月,经过调用按月历查询的函数,将这一天的具体日期定位到那一月的月历中,在查询到的那一月对该日的星期数进行判断,最后输出该日的星期数。相关代码如下:case2:printf("请输入要判断的日期(空格隔开):YearMonthDay>");scanf("%d%d%d",&year,&month,&day);totaldays=GetDays(year,month,day);522020年4月19日
24文档仅供参考printf("%d年%d月%d日是%s\r
25\r
26",year,month,day,WeekDay[(totaldays+1)%7]);break;3.5打印月历模块经过之前对年的判断,现在可经过输入某一年的某一个月来打印该月的日历。在打印月历的时候,需要调用之前的年历的函数。开始输入一个年月调用年历的函数打印出输入的该年的月份的日历返回图3.5年历打印模块代码如下:if(month<=2&&month>0522020年4月19日
27文档仅供参考{year--;/*把1月、2月视为上一年的13月、14月(纯粹为了计算需要)*/month+=12;}sum=(int)(365.25*(year-1900))+(int)(30.6*(month+1))+day-Y-49;/*以365.25(原来实际太阳年是365.2425天)来计算是为了计算按4年一闰的整数年总天数,加上月份天数再加上余下天数,减掉多闰天数,再减掉一个偏差值(多加的)*//*月份以30.6天的平均值计算。最后减去的49,是多加的一个月以及其余相差天数的和,可得到191月1日的积日为0*/}returnsum;/*返回距离191月1日的总天数(积日)*/}intGetDayOfMonth(intmonth,intyear){inttmp_days=GetDays(year,month,1);/*本月积日*/intDayOfMonth=0;month++;/*下个月*/522020年4月19日
28文档仅供参考if(month>12){month=1;/*遇到月份为12月的情况,月份为1,年份加1*/year++;}DayOfMonth=GetDays(year,month,1);/*下个月的积日*/DayOfMonth-=tmp_days;/*下月1日的总天数(距离191月1日的积日)减去当前月1日的总天数*/returnDayOfMonth;/*返回当前月总天数*/}进入主界面菜单之后,经过用户选择月历查询的功能即可进入阅历查询的功能。进入月历查询的功能之后,用户需输入具体的年月进行查询。输入的格式为:“年月”,输入后,系统将进入年和月的循环结构中进行计算,计算完成之后,此循环中止于break。case3:printf("请输入要显示的月份(空格隔开):YearMonth>");scanf("%d%d",&year,&month);ShowCalendar(year,month,1);break;522020年4月19日
29文档仅供参考3.6日期合法性检查模块在使用输入时,总会有输入错误的情况,根据不同情况下输入错误的情况,程序也做出了相应的判断。详细情况如下:在闰年判断的过程中,经过之前的判断,在最后进行合法性的判断,判断输入的年份是否合法。intIsLeapYear(intyear){if(year%4==0&&year%100!=0||year%400==0){return1;/*闰年返回1*/}else{return0;/*平年返回0*/}}intDateCheck(intuYear,intuMonth,intuDay)/*合法返回true,非法或超出范围返回false*/{522020年4月19日
30文档仅供参考在年份的判断中if(uYear<1901||uYear>9999||uMonth<1||uMonth>12||uDay<1||uDay>31)是对年份合法性的判断,年份判断成功之后即可执行if之后的语句,进行下一步月份的判断。if(uYear<1901||uYear>9999||uMonth<1||uMonth>12||uDay<1||uDay>31){return0;}在之前的天数判断后,此时就有对输入有误日期判断的语句,经过这几句调用了之前的intyear和intday进行求和,之后若有错误,即返回输出日期有误。intGetDays(intyear,intmonth,intday){intsum=0;if(DateCheck(year,month,day)==0){return-1;/*日期有误*/}522020年4月19日
31文档仅供参考4调试分析4.1错误分析在我们调试程序的过程中,同时出现了很多的问题。我们将程序输入C-Free中提示了以下的错误:1、系统提示了:error:‘main’mustreturn‘int’.经过我们对问题的分析,我们发现在C-Free编译器中main函数的前缀不能够是void,必须是int才能够运行,这是编译器不同造成的错误2、系统提示了:error:‘printru’dosenotnameatype.经过我们的分析和资料的查询,我们发现是头文件的名字和自定义函数的名字有了冲突,此时,经过我们对自定义函数名称的改变,程序此处错误被解决3、系统提示了:waring:nonewlineatendoffile.经过我们查询相关资料发现,这句话的英文意思是说文末没有换行符。在代码中我们添加了
32,此时此处的错误被解决4、系统提示了:error:expectedunqualified-idbefore“int”error:expected’)’before“int”error:’leap’wasnotdeclaredinthisscope经过我们又一次对程序的检查,发现是在声明的时候少定义了一个变量,int后缺少了底下所要的变量,我们根据下方的程序,添加了相应的变量,程序能够运行出来了。522020年4月19日
33文档仅供参考4.2错误修改1、在程序运行后,我们发现在主循环的程序中主界面里出现了很多的问号,我们又一次打开程序的源代码,发现程序中的printf中不小心误打了很多的问号,此时显示出了很多的问号。我们删除了这些问号,程序运行之后变为正常2、程序运行之后,我们在调试的过程中发现,显示出想要的结果之后,可是无法返回到主页面中。我们认为是少定义了这样的一个功能,经过返回源代码查看之后,在if的循环之后添加了return,以及相应的返回值,问题得以解决。4.3运行程序进入主界面菜单,输入数字进行选择图4.主界面菜单522020年4月19日
34文档仅供参考4.4闰年判断功能按1,进入闰年判断的步骤,之后输入年份,进行闰年的判断,测试运行结果如下图4.3闰年判断的运行结果4.5星期计算功能星期计算功能如下图所示:522020年4月19日
35文档仅供参考图4.4-1进入星期计算的功能在这一步继续输入年月日,程序进行判断图4.4-2星期判断的运行结果522020年4月19日
36文档仅供参考4.6月历查询功能月历查询功能如图所示:图4.5-1进入月历查询的功能在进入月历查询的程序后,输入年月查询该月的详细日历522020年4月19日
37文档仅供参考图4.5-2月历查询的详细运行结果4.7打印整年年历功能选择打印整年日历522020年4月19日
38文档仅供参考图4.6-1选择打印整年日历功能进入打印整年日历功能图4.6-2整年年历运行结果5源程序清单#include#includechar*NameOfMonth[12]={"January","February","March","April","May","June","July","August","September","October","November","December"};522020年4月19日
39文档仅供参考char*WeekDay[7]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};intIsLeapYear(intyear){if(year%4==0&&year%100!=0||year%400==0){return1;/*闰年返回1*/}else{return0;/*平年返回0*/}}intDateCheck(intuYear,intuMonth,intuDay)/*合法返回true,非法或超出范围返回false*/{if(uYear<1901||uYear>9999||uMonth<1||uMonth>12||uDay<1||uDay>31){return0;}522020年4月19日
40文档仅供参考if(uMonth==4||uMonth==6||uMonth==9||uMonth==11){if(uDay>30){return0;}}elseif(uMonth==2){if(IsLeapYear(uYear)){if(uDay>29){return0;}}else{if(uDay>28){return0;}522020年4月19日
41文档仅供参考}}return1;}intGetDays(intyear,intmonth,intday){intsum=0;if(DateCheck(year,month,day)==0){return-1;/*日期有误*/}if(year>=1901){intX=(int)(year/100);/*世纪数*/intY=X-(int)(X/4);/*如果按4年一闰来算,Y指的是比实际上多算的天数,在下面需要减去*/if(month<=2&&month>0){522020年4月19日
42文档仅供参考year--;/*把1月、2月视为上一年的13月、14月(纯粹为了计算需要)*/month+=12;}sum=(int)(365.25*(year-1900))+(int)(30.6*(month+1))+day-Y-49;/*以365.25(原来实际太阳年是365.2425天)来计算是为了计算按4年一闰的整数年总天数,加上月份天数再加上余下天数,减掉多闰天数,再减掉一个偏差值(多加的)*//*月份以30.6天的平均值计算。最后减去的49,是多加的一个月以及其余相差天数的和,可得到191月1日的积日为0*/}returnsum;/*返回距离191月1日的总天数(积日)*/}intGetDayOfMonth(intmonth,intyear){inttmp_days=GetDays(year,month,1);/*本月积日*/intDayOfMonth=0;month++;/*下个月*/if(month>12)522020年4月19日
43文档仅供参考{month=1;/*遇到月份为12月的情况,月份为1,年份加1*/year++;}DayOfMonth=GetDays(year,month,1);/*下个月的积日*/DayOfMonth-=tmp_days;/*下月1日的总天数(距离191月1日的积日)减去当前月1日的总天数*/returnDayOfMonth;/*返回当前月总天数*/}int(intyear,intmonth,intday){inti,j,count;intjiri=0;/*积日*/intdayofweek=0;/*星期*/if(DateCheck(year,month,day)==0){printf("输入日期有误!\r
44");/*日期不合法或超出范围,年历从19开始*/return0;}522020年4月19日
45文档仅供参考printf("\t%d%s\r
46",year,NameOfMonth[month-1]);printf("--------------------------------------\r
47");printf("SunMonTueWedThuFriSat\r
48");printf("--------------------------------------\r
49");jiri=GetDays(year,month,1);/*获取距离191月1日的总天数*/dayofweek=(1+jiri)%7;//月首星期,因为191月1日星期一count=GetDayOfMonth(month,year);for(i=0;i50文档仅供参考if((j+1)%7==0){if(i!=count){printf("\r
51");//满7天,换行}}}printf("\r
52--------------------------------------\r
53\r
54");return1;}intmain(){intyear,month,day,nChoise=0;inttotaldays=0;while(1)//主循环{printf("******************欢迎使用万年历********************\r
55");522020年4月19日
56文档仅供参考printf("$菜单$\r
57");printf("$1.闰年判断2.星期计算$\r
58");printf("$$\r
59");printf("$3.月历查询4.打印整年日历$\r
60");printf("$$\r
61");printf("****************************************************\r
62");printf("输入对应的序号进行相关操作:Choise>");scanf("%d",&nChoise);switch(nChoise){case1:printf("请输入要判断的年份:Year>");scanf("%d",&year);if(year<1900||year>9999){printf("输入年份超出范围!");break;}522020年4月19日
63文档仅供参考if(IsLeapYear(year)==1){printf("%d年是闰年!\r
64\r
65",year);}else{printf("%d年不是闰年!\r
66\r
67",year);}break;case2:printf("请输入要判断的日期(空格隔开):YearMonthDay>");scanf("%d%d%d",&year,&month,&day);totaldays=GetDays(year,month,day);printf("%d年%d月%d日是%s\r
68\r
69",year,month,day,WeekDay[(totaldays+1)%7]);break;case3:printf("请输入要显示的月份(空格隔开):YearMonth>");scanf("%d%d",&year,&month);ShowCalendar(year,month,1);522020年4月19日
70文档仅供参考break;case4:printf("请输入要判断的年份:Year>");scanf("%d",&year);for(month=1;month<=12;month++){ShowCalendar(year,month,1);}break;default:printf("无效的菜单项!\r
71");break;}system("pause");system("cls");}return0;}522020年4月19日
72文档仅供参考总结整个设计经过了软件和硬件上的调试。我想这对于自己以后的学习和工作都会有很大的帮助。在这次设计中遇到了很多实际性的问题,在实际设计中才发现,书本上理论性的东西与在实际运用中的还是有一定的出入的,因此有些问题不但要深入地理解,而且要不断地更正以前的错误思维。一切问题必须要靠自己一点一滴的解决,而在解决的过程当中你会发现自己在飞速的提升。对于教材管理系统,其程序是比较简单的,主要是解决程序设计中的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。很多子程序是能够借鉴书本上的,但怎样衔接各个子程序才是关键的问题所在,这需要对系统的结构很熟悉。因此能够说系统的设计是软件和硬件的结合,二者是密不可分的。经过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。522020年4月19日
73文档仅供参考这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。其次,这次课程设计让我充分认识到团队合作的重要性,只有分工协作才能保证整个项目的有条不絮。另外在课程设计的过程中,当我们碰到不明白的问题时,指导老师总是耐心的讲解,给我们的设计以极大的帮助,使我们获益匪浅。因此非常感谢老师的教导。经过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。我觉得作为一名软件工程专业的学生,这次课程设计是很有意义的。更重要的是如何把自己平时所学的东西应用到实际中。虽然自己对于这门课懂的并不多,很多基础的东西都还没有很好的掌握,觉得很难,也没有很有效的办法经过自身去理解,可是靠着这一个多礼拜的“学习”,在小组同学的帮助和讲解下,渐渐对这门课逐渐产生了些许的兴趣,自己开始主动学习并逐步从基础慢慢开始弄懂它。我认为这个收获应该说是相当大的。一开始我们从参考书上找来了课题,可是毕竟是参考书,做到后来发现很多程序都是不完整的,这让我们伤透了脑筋。看着别的小组都弄得有模有样了,可是我们连一个课题都还没有定好。好不容易又找到了课题,可是结果还是很不尽人意。程序接线什么的都弄好了,调试也没有问题,可是就是无522020年4月19日
74文档仅供参考法达到预期想要的结果。参考书毕竟只是一个参考,设计这种东西最后还是要靠自己动脑筋。然后我们大家一起齐心协力,从平时做的实验﹑老师上课的举例﹑书本上的知识以及老师的辅导和其它同学的帮助下终于完成了。应该说这是经过我们小组成员的共同努力和动脑完成的,虽然内容并不是很复杂,可是我们觉得设计的过程相当重要,学到了很多,收获了很多。我觉得课程设计反映的是一个从理论到实际应用的过程,可是更远一点能够联系到以后毕业之后从学校转到踏上社会的一个过程。小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。因此我认为这次的课程设计意义很深,和其它2位同学的共同学习﹑配合﹑努力的过程也很愉快,另外还要感谢老师的耐心辅导。522020年4月19日
75文档仅供参考致谢经过两个星期的努力,终于完成了c语言程序的设计,我要感谢许多帮助过我们组的老师同学。开始对c语言课程设计还一无所知,学校正是看到了我们现在对c语言的学习不够,开设这次的课程设计给了我们这样一个机会,给我们进一步认识c语言的及hi,让我们更加了解c语言,以便于以后的学习。首先让我说一下选择这个题目的原因,因为我在我们这一组同学对c语言的学习和理解都不是很深刻,因此我们选择了一个较为简单的题目:万年历。可是对于我们这些初学c语言的同学来说,这对于我们来说也是一种挑战。因为我们对这门课的理解不是很深刻,我们了解的结构和函数都不是很多,很多函数也不会调用,在辅导老师的帮助下,我们选择了C-Free5.0的编译器。对于全新的编译器,我们是一无所知。陈文娟老师帮助我们整理了大致的框架,我们根据老师的框架写出了我们的制作步骤。经过这样一个提纲,我们就能进一步的进行细节方面的编写,老师付出了很多的心血,帮助我们整理思路,一遍一遍不厌其烦的给我们讲解。老师在我们不懂的时候,给我们一遍遍讲解,还给我们打电话讲解,最终我们能完成这个万年历的c语言的课程设计,这是522020年4月19日
76文档仅供参考老师同学的帮助和我们的努力换来的。感谢学校,感谢老师,感谢同学,让我们做得更好。522020年4月19日
77文档仅供参考参考文献[1]王连相.C/C++程序设计.武汉:武汉大学出版社[2]谭浩强.C语言程序设计(第2版)学习指导.北京:清华大学出版社[3]杨莉,龚义建.C语言程序设计实训指导教程.襄阳:华中科技大学出版社[4]张小东,郑宏珍.C语言程序设计与应用.北京:人民邮电出版社[5]郭翠英.C语言C语言课程实训案例精编.北京:中国水利水电出版社[6]郭有强.C语言程序设计.北京:清华大学出版社[7]李丹程,刘莹,那俊.C语言程序设计案例实践.北京:清华大学出版社[8]李丽娟.C语言程序设计教程.北京:人民邮电出版社[9]武雅丽,王永玲,解亚利.C语言程序设计.北京:清华大学出版社2星期输出星期522020年4月19日