万年历+备忘录(C语言课程设计)

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

/*

湖南大学数学与应用数学

胡凡

C语言课程设计

万年历+备忘录命令提示行

完成于2011年

完整版

*/

/*-------------------------------我是分割线-------------------------------*/ /*命令行功能选项*/

/*-d:显示当月日历和当日备忘*/

/*-i:显示当月日历和添加当日备忘*/

/*-m:显示当月日历和修改当日备忘*/

/*-g:删除当日备忘*/

/*-t:删除全部备忘*/

/*-------------------------------我是分割线-------------------------------*/ /*头文件*/

#include

#include

#include /*调用getopt函数*/

/*定义全局变量(各月所含天数)*/

int a[]={0,31,0,31,30,31,30,31,31,30,31,30,31};

/*定义结构体*/

struct date_message

{

int year; /*年*/

int month; /*月*/

int day; /*日*/

char memo[300]; /*备忘*/

}date={1,1,1,"\0"};

/*-------------------------------我是分割线-------------------------------*/ /*主函数*/

int main(int argc,char *argv[])

{

/*函数声明*/

void checkDate(); /*检查日期合法性*/ void show_calender(); /*显示日历*/

void memo_written(); /*写入备忘*/

void memo_modify(); /*修改备忘*/

void memo_delete(); /*删除当日备忘*/

void memo_delete_all(); /*删除全部备忘*/

void memo_read(); /*读取备忘*/

/*定义变量*/

int choice;

/*使用getopt函数分析命令行参数,识别选项*/

while((choice=getopt(argc,argv,"d:i:m:g:t"))!=-1)

{ /*选项*/

switch(choice)

{ /*选项为d时,显示当月日历和当日备忘*/

case 'd':/*调用atoi函数,将字符型数字转化为整型*/

date.year=atoi(argv[2]);

date.month=atoi(argv[3]);

/*如果没有输入日期则不赋值*/

if(atoi(argv[4])!=0)date.day=atoi(argv[4]);

/*检查日期合法性*/

checkDate();

/*显示当日日历*/

show_calender();

/*显示备忘*/

memo_read();

break;

/*选项为i时,显示当月日历和添加当日备忘*/

case 'i':date.year=atoi(argv[2]);

date.month=atoi(argv[3]);

if(atoi(argv[4])!=0)date.day=atoi(argv[4]);

checkDate();

show_calender();

memo_read();

printf("请输入该日备忘\n");

/*写入备忘*/

memo_written();

/*添加之后*/

printf("添加之后的日历为\n");

show_calender();

memo_read();

break;

/*选项为m时,显示当月日历和修改当日备忘*/

case 'm':date.year=atoi(argv[2]);

date.month=atoi(argv[3]);

if(atoi(argv[4])!=0)date.day=atoi(argv[4]);

checkDate();

show_calender();

memo_read();

printf("请输入该日修改后的备忘\n");

/*修改备忘*/

memo_modify();

/*修改之后*/

printf("修改之后的日历为\n");

show_calender();

memo_read();

break;

/*选项为g时,删除当日备忘*/

case 'g':date.year=atoi(argv[2]);

date.month=atoi(argv[3]);

if(atoi(argv[4])!=0)date.day=atoi(argv[4]);

checkDate();

/*确认信息*/

printf("确认要删除当日备忘吗(y/n)?");

/*如果输入y的话删除*/

if(getchar()=='y'||'Y')

memo_delete();

break;

/*选项为t时,删除全部备忘*/

case 't':/*确认信息*/

printf("确认要删除全部备忘吗(y/n)?");

/*如果输入y的话删除全部*/

if(getchar()=='y'||'Y')

memo_delete_all();

getchar();

break;

}

}

printf("\t\t Please any key to continue…………");

getchar();

system("cls");

return 0;

}

/*-------------------------------我是分割线-------------------------------*/

/*显示当月日历*/

void show_calender()

{

/*函数调用声明*/

int leap(int t_year);

/*定义函数*/

int sum=0,count=0,i,t,temp_year,temp_month,temp_day=-1;

/*输出年月日*/

printf("\n\t\t\t\t%d年%d月",date.year,date.month);

if(date.day!=0)printf("%d日\n",date.day);

相关文档
最新文档