C语言 程序设计 节日查询和任务提醒系统万年历.docx
- 文档编号:6274325
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:92
- 大小:444.71KB
C语言 程序设计 节日查询和任务提醒系统万年历.docx
《C语言 程序设计 节日查询和任务提醒系统万年历.docx》由会员分享,可在线阅读,更多相关《C语言 程序设计 节日查询和任务提醒系统万年历.docx(92页珍藏版)》请在冰豆网上搜索。
C语言程序设计节日查询和任务提醒系统万年历
程序设计报告
( 2010/2011 学年第二学期)
题目:
节日查询和任务提醒系统
专 业光信息科学与技术
学 生 姓 名史明霞,陈苏华,毛胤,
张春龙,赵梁
班级 学号 B100301
指 导教师 金仙力
日 期 2011年3月11日
评 分 细 则
评分项
优秀
良好
中等
差
遵守机房规章制度
上机时的表现
学习态度
程序准备情况
程序设计能力
团队合作精神
课题功能实现情况
算法设计合理性
用户界面设计
报告书写认真程度
内容详实程度
文字表达熟练程度
回答问题准确度
简 短评语
教师签名:
年 月 日
评分等级
备注
评分等级有五种:
优秀、良好、中等、及格、不及格
分工说明:
本课题有本小组各成员分工合作完成。
前期查询资料工作由全体成员一起完成,充分利用了网络资源。
中间主要由赵梁和毛胤完成主程序,由其他成员配合子程序。
由张春龙,陈苏华,史明霞完成实验报告和PPT等后期文字工作。
最后有全体成员一起扫尾,查漏补缺。
1.实验目的.............................................................................................3
2.设计目标4
3.对问题的分析理解4
4. 算法中涉及的知识点ﻩ6
5.设计用的计算机环境6
6 结论6
7.源代码ﻩ7
8.效果图.................................................................................................20
ﻬ1.实验目的
1.熟悉C语言运行环境Microsoft visualC++
2.会简单的程序调试ﻫ3.熟悉C语言各种类型数据的输入输出函数的使用方法
4.掌握顺序结构程序设计
2.设计目标:
设计一个简单的日历﹑月历系统,支持节日查询,任务提醒功能,用C或C++语言实现。
本系统的基本功能:
(1)日历﹑月历功能:
界面能够显示日历和月历,默认为当月的月历。
能够通过上下翻页查询每月的月历。
(2)日历查询:
根据输入日期查询月历。
(3)支持农历查询。
(4)显示星期功能。
(5)显示季节功能。
(6)具有节日查询功能。
(7)可查询是否是闰年。
(8)可查询今天是今年的第几天。
(9)任务提醒:
可添加﹑删除﹑修改﹑查询任务功能。
3.对问题的分析理解
3.1要输入任一年显示出该年的所有月份日期,应该先设计具体的输出格式,如下:
thecalendar oftheyear2011.
January
Sun MonTue Wed Thu FriSat
1
2345 67 8
9 1011 1213 14 15
16 1718 1920 2122
23 24 25 26 27 28 29
30 31
February
Sun Mon TueWed Thu FriSat
12 3 4 5
6 7 89 10 11 12
13 14 15 16 171819
20 21 2223 24 25 26
27 28
=============================================
…………
3.2判断是不是闰年(year%4!
=0||year%100==0&&year%400!
=0)满足条件就是平年,把一年中的所有月份分为四类(28,29,30,31)。
3.3求出一年中的第一天是周几(year+(year-1)/4-(year-1)/100+(year-1)/400)%7。
3.4有指针数组存放十二个月的英文和星期的英文缩写。
3.5用FOR循环输出各月份的日历
3.6调用windows函数system (“color10 ”)设置字体和背景颜色。
3.7 懂得农历转换公式。
ﻬ5.算法中涉及的知识点
5.1定义整型,字符型,指针变量,字符型数组和指针数组。
数组的初始化和引用和指针的使用。
5.2 函数的定义、声名、调用以及函数的返回值。
5.3程序的三种基本结构:
顺序,选择,循环。
if语句的嵌套,for语句的嵌套,switch~case语句的应用。
5.5赋值语句的使用。
5.6输入(scanf )输出(printf)函数的应用。
5.7算术运算符、关系运算符和逻辑运算符的应用。
5.7文件的各种应用;结构的应用;模块化程序设计的相关知识。
6.设计用的计算机环境
MicrosoftVisual C++ 6.0
7.结论
7.1经过运行和调试得到了想要的结果—“万年历”,任意输入一个年份能按当初设计的格式输出每个月份的日历。
而且还支持各种强大的功能,如:
闰年查询,星期,可上下翻页等功能。
但也存在一些问题。
7.2对C语言在编写程序时的用处有了更明确的认识,懂得了编写C程序的一般法方步骤。
最大的收获是,编写程序时一定要有信心和勇气,要相信自己一定可以把这个程序编写出来。
分析问题做出算法,想好思路,在心里有个大致的框架,然后按部就班的记下自己想到的每一点内容,把写下的东西认真整理,查缺补漏,把一些细节的地方补上,就这样一个貌似很难的程序就写出来了(其实编程并不难,关键是要投入,要钻到里面去)。
下一步就是读程序了,读程序时一定要小心仔细,一条语句一条语句的读,看是否能输出自己想要输出的结果,如果发现错误要马上改过来,再接着向下读,直到把程序调试的完美无缺为至。
8.源代码
#include
#include
#include<stdlib.h>
#include
#include
#include
#include<dos.h>
#include<string.h>
#define TRUE1
#defineCURU72
#defineCURD80
#defineCURL75
#defineCURR77
#defineESC 27
#defineENTER13
#define A49//A--1
#defineB50//B--2
#defineC51//C--3
#defineD52//D--4
#defineE53//E--5
#defineF54//F--6
#define G55//G--7
enumSeasons{Spring,Summer,Autumn,Winter};
//------------------------------------<函数声明>-----------------------------------------------
void printWNL(int);//打印年历
voidprintWNL2(int,int); //打印带表格的万年历
voidprintWNL3(int,int,int);//打印带表格的万年历,特别标出日期
voidprintWNL4(int,int);//
int Week(int,int,int);//求星期几
intgetDays(int,int);//计算某个月的天数
voidGetDays(int,int,int);//计算该日是这一年的第几天
int isRunNian(int); //判断是否闰年
voidfestival();//查询节日
voidbuffer(int);//延时
void TIME();
//-------------------------------------备忘录的函数声明-------------------------------------------
#include #include #defineN10000//最大信息字数 void display();//显示信息函数 voidinsert();//添加信息函数 voidseek();//查询信息函数 voidmodify();//修改信息函数 voiddele();//删除信息函数 structmemorandum { charyear[10];//年 ﻩchar month[10];//月 ﻩcharday[10]; //日 charnum[20]; //序号 charmessege[1000];//内容信息 }memo[N]; int k=1,n; void print(inti) { printf("\t\t%s\t%s\t%s\t%s\t%s\n",memo[i].year,memo[i].month,memo[i].day,memo[i].num,memo[i].messege); } //--------------------------------------菜单函数声明---------------------------------------------- void menu(); voidmenuYear(); voidmenuMonth(); void menuDay(); voidmenuMemorandum(); void movie1(); voidSeason(int); void runMain(char); voidprintWNL5(); //*********************************************************农历部分************************************************** voidsub_menue(); typedefstruct { intlunar_year;//农历年份ﻩ intlunar_month;//农历月份 ﻩintlunar_day;//农历日期 ﻩintcurrent_mday;//本月天数 intleap_month;//本年闰月 intleap_flag;//闰月标记 }Lunar_info; typedef struct { int era_year;//阳历年份 intera_month;//阳历月份 ﻩintera_day;//阳历日期 }Chinese_era; int s_year; int s_month; ints_day; //-------------------------------------------------1900-2050年的农历数据--------------------------------- /*1900-2050年的农历数据 数据格式说明: 5位十六进制数字例: 04bd8 1位: 是否为闰月(30天) 0: 不是1: 是 2、3、4位: 转换二进制为: 01001011 1101(1为30天,0为29天) 04bd8表示为(13个月): 29,30,29,29,30,29,30,30,30(闰月),30,30,29,30; 5位: 如果有闰月,则为月份,没有则为0,此为8月*/ intlunar_info[]= { ﻩ0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2, ﻩ0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0x095b0,0x14977, 0x04970,0x0a4b0,0x0b4b5,0x06a50,0x06d40,0x1ab54,0x02b60,0x09570,0x052f2,0x04970, ﻩ0x06566,0x0d4a0,0x0ea50,0x06e95,0x05ad0,0x02b60,0x186e3,0x092e0,0x1c8d7,0x0c950, 0x0d4a0,0x1d8a6,0x0b550,0x056a0,0x1a5b4,0x025d0,0x092d0,0x0d2b2,0x0a950,0x0b557, ﻩ0x06ca0,0x0b550,0x15355,0x04da0,0x0a5b0,0x14573,0x052b0,0x0a9a8,0x0e950,0x06aa0, 0x0aea6,0x0ab50,0x04b60,0x0aae4,0x0a570,0x05260,0x0f263,0x0d950,0x05b57,0x056a0, 0x096d0,0x04dd5,0x04ad0,0x0a4d0,0x0d4d4,0x0d250,0x0d558,0x0b540,0x0b6a0,0x195a6, 0x095b0,0x049b0,0x0a974,0x0a4b0,0x0b27a,0x06a50,0x06d40,0x0af46,0x0ab60,0x09570, 0x04af5,0x04970,0x064b0,0x074a3,0x0ea50,0x06b58,0x055c0,0x0ab60,0x096d5,0x092e0, ﻩ0x0c960,0x0d954,0x0d4a0,0x0da50,0x07552,0x056a0,0x0abb7,0x025d0,0x092d0,0x0cab5, 0x0a950,0x0b4a0,0x0baa4,0x0ad50,0x055d9,0x04ba0,0x0a5b0,0x15176,0x052b0,0x0a930, ﻩ0x07954,0x06aa0,0x0ad50,0x05b52,0x04b60,0x0a6e6,0x0a4e0,0x0d260,0x0ea65,0x0d530, 0x05aa0,0x076a3,0x096d0,0x04bd7,0x04ad0,0x0a4d0,0x1d0b6,0x0d250,0x0d520,0x0dd45, 0x0b5a0,0x056d0,0x055b2,0x049b0,0x0a577,0x0a4b0,0x0aa50,0x1b255,0x06d20,0x0ada0, 0x14b63 }; charGan[10][3]={"甲","乙","丙","丁","戊","己","庚","辛","壬","癸"};/*天干*/ char Zhi[12][3]={"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥"};/*地支*/ charAnimals[12][3]= {"鼠","牛","虎","兔","龙","蛇","马","羊","猴","鸡","狗","猪"};/*生肖*/ charsolar_term[24][5]=//*24节气 { "小寒","大寒","立春","雨水","惊蛰","春分", "清明","谷雨","立夏","小满","芒种","夏至", "小暑","大暑","立秋","处暑","白露","秋分", "寒露","霜降","立冬","小雪","大雪","冬至" }; charchinese_day[30][5]=/*农历日*/ { "初一","初二","初三","初四","初五","初六","初七", "初八","初九","初十","十一","十二","十三","十四", "十五","十六","十七","十八","十九","廿十","廿一", "廿二","廿三","廿四","廿五","廿六","廿七","廿八", "廿九","卅十" }; charchinese_month[12][5] ={"正","二","三","四","五","六","七","八","九","十","冬","腊"};/*农历月*/ //------------------------------------<一级菜单>----------------------------------------------- voidmenu() { system("cls");//调用DOS清屏命令 printf(" ☆☆☆万年历查询☆☆☆\n"); ﻩprintf("********************************************************************************\n"); ﻩprintf(" ---光电工程1班2组\n"); printf(" 欢迎使用\n") ; printf("=============================================================\n"); printf(" =****************************************** =\n"); printf(" = ***************1.按年份查询***************=\n"); printf(" = ***************2.按月份查询*************** =\n"); printf(" = ***************3.按日期查询*************** =\n"); ﻩprintf(" = ***************4.备忘录 *************** =\n"); ﻩprintf(" = ***************5.节日查询*************** =\n"); printf(" = ***************6.农历查询*************** =\n"); printf(" = ***************7.退出系统*************** =\n"); printf(" = ****************************************** =\n"); ﻩprintf(" =============================================================\n"); } //-------------------------------------<二级菜单按年份查询>----------------------------------------------- void menuYear()//二级菜单1按年份查找 { ﻩintyear; ﻩcharch; ﻩsystem("cls");//调用DOS清屏命令 printf(" ☆☆☆万年历查询☆☆☆\n"); ﻩprintf("********************************************************************************\n"); printf(" 按年份查询\n"); printf(" =============================================================\n"); ﻩprintf(" =****************************************** =\n"); printf(" = *********输入需要查询的年份 ********* =\n"); printf(" =****************************************** =\n"); ﻩprintf(" =============================================================\n"); ﻩprintf(" 为避免系统瘫痪,请务必输入数字! ! ! ! \n"); printf("\n"); ﻩprintf(" pleaseinputyour date(例如2011): "); repeat: scanf("%d",&year); ﻩif(year>0) ﻩ{ loop: ﻩsystem("cls");//调用DOS清屏命令 printf(" ☆☆☆万年历查询☆☆☆\n"); ﻩ printf("********************************************************************************\n"); ﻩprintf(" 按年份查询\n"); ﻩprintf(" =============================================================\n"); printf(" = ****************************************** =\n"); ﻩprintf(" = ***************1.查询年历*************** =\n"); printf(" = ***************2.是不是闰年*************** =\n"); ﻩprintf(" = ***************3.返回主菜单*************** =\n");ﻩ ﻩprintf(" = *****************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C语言 程序设计 节日查询和任务提醒系统万年历 语言 节日 查询 任务 提醒 系统 万年历
![提示](https://static.bdocx.com/images/bang_tan.gif)