C语言 程序设计 节日查询和任务提醒系统万年历.docx

上传人:b****5 文档编号:6274325 上传时间:2023-01-05 格式:DOCX 页数:92 大小:444.71KB
下载 相关 举报
C语言 程序设计 节日查询和任务提醒系统万年历.docx_第1页
第1页 / 共92页
C语言 程序设计 节日查询和任务提醒系统万年历.docx_第2页
第2页 / 共92页
C语言 程序设计 节日查询和任务提醒系统万年历.docx_第3页
第3页 / 共92页
C语言 程序设计 节日查询和任务提醒系统万年历.docx_第4页
第4页 / 共92页
C语言 程序设计 节日查询和任务提醒系统万年历.docx_第5页
第5页 / 共92页
点击查看更多>>
下载资源
资源描述

C语言 程序设计 节日查询和任务提醒系统万年历.docx

《C语言 程序设计 节日查询和任务提醒系统万年历.docx》由会员分享,可在线阅读,更多相关《C语言 程序设计 节日查询和任务提醒系统万年历.docx(92页珍藏版)》请在冰豆网上搜索。

C语言 程序设计 节日查询和任务提醒系统万年历.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1