c语言课程设计报告(日程表)1.doc

上传人:聆听****声音 文档编号:713109 上传时间:2023-04-29 格式:DOC 页数:42 大小:1.53MB
下载 相关 举报
c语言课程设计报告(日程表)1.doc_第1页
第1页 / 共42页
c语言课程设计报告(日程表)1.doc_第2页
第2页 / 共42页
c语言课程设计报告(日程表)1.doc_第3页
第3页 / 共42页
c语言课程设计报告(日程表)1.doc_第4页
第4页 / 共42页
c语言课程设计报告(日程表)1.doc_第5页
第5页 / 共42页
c语言课程设计报告(日程表)1.doc_第6页
第6页 / 共42页
c语言课程设计报告(日程表)1.doc_第7页
第7页 / 共42页
c语言课程设计报告(日程表)1.doc_第8页
第8页 / 共42页
c语言课程设计报告(日程表)1.doc_第9页
第9页 / 共42页
c语言课程设计报告(日程表)1.doc_第10页
第10页 / 共42页
c语言课程设计报告(日程表)1.doc_第11页
第11页 / 共42页
c语言课程设计报告(日程表)1.doc_第12页
第12页 / 共42页
c语言课程设计报告(日程表)1.doc_第13页
第13页 / 共42页
c语言课程设计报告(日程表)1.doc_第14页
第14页 / 共42页
c语言课程设计报告(日程表)1.doc_第15页
第15页 / 共42页
c语言课程设计报告(日程表)1.doc_第16页
第16页 / 共42页
c语言课程设计报告(日程表)1.doc_第17页
第17页 / 共42页
c语言课程设计报告(日程表)1.doc_第18页
第18页 / 共42页
c语言课程设计报告(日程表)1.doc_第19页
第19页 / 共42页
c语言课程设计报告(日程表)1.doc_第20页
第20页 / 共42页
亲,该文档总共42页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计报告(日程表)1.doc

《c语言课程设计报告(日程表)1.doc》由会员分享,可在线阅读,更多相关《c语言课程设计报告(日程表)1.doc(42页珍藏版)》请在冰点文库上搜索。

c语言课程设计报告(日程表)1.doc

上海应用技术学院

课程设计

2012-2013学年第二学期

设计题目:

日程管理

1.课程设计任务书

上海应用技术学院课程设计任务书

课程名称

程序设计语言课程设计

课程代码

B704010

设计题目

1.算术练习

2.个人收支管理

3.通讯录

4.成绩记录簿

5.图书借阅管理

6.日程表管理

题目序号

6

设计时间

2013年7月1日——2013年7月12日

系(院)

计算机与信息工程学院

专业

班级

一、课程设计任务(条件)、具体技术参数(指标)

1.在指导书提供的课程设计题目中选择一题或自选(但需经过指导教师认可)

2.每个题目限一人完成,题目选定后不可更换。

3.用户提供的主操作界面应该方便用户的操作。

4.最后提交的课程设计成果包括:

a) 课程设计报告电子稿。

c) 源程序文件。

d) 可执行程序文件。

二、对课程设计成果的要求(包括课程设计说明书、图纸、图表、实物等软硬件要求)

1.分析课程设计题目的要求;

2.写出详细设计说明;

3.编写程序代码,调试程序使其能正确运行;

4.设计完成的软件要便于操作和使用,有整齐、美观的使用界面;

5.设计完成后提交课程设计报告和源代码文件的电子文档。

三、课程设计工作进度计划:

第一天选择课程设计题目,分析课题的要求,确定设计方案;

第二天总体设计,模块划分

第三天绘制程序流程图;

第四天按功能模块编写详细设计说明;

第五天编写程序代码

第六天设计用户界面;

第七天运行与调试程序;

第八天写课程设计报告;

第九天完成软件的设计准备答辩

第十天提交课程设计报告;面试或答辩。

四、主要参考资料

[1]谭浩强.C程序设计(第三版).北京:

清华大学出版社,2005

[2]谭浩强.C程序设计题解与上机指导(第三版).北京:

清华大学出版社,2005

[3]HerbertSchildt.C语言大全(第四版).北京:

电子工业出版社,2004

[4]SamuelP.HarbisonⅢ,GuyL.Steele.C语言参考手册(第5版).北京:

机械工业出版社,2003

[5]程序设计语言课程设计指导书.

指导教师(签名):

教研室主任(签名):

2013年7月1日2013年7月12日

目录:

1.课程设计任务书**************2

2.目的及要求******************6

2.1课程设计目的

2.2课程设计要求

3.课程设计内容说明************7

3.1.程序功能介绍

3.2程序设计整体设计说明

3.3数据结构设计

3.4程序结构设计

3.41程序子程序及功能设计

3.42函数主要调用关系图

3.43各模块流程图

4.运行结果*******************17

5.源程序代码分析*************31

6.课程设计感悟***************42

2.目的及要求

2.1课程设计目的

本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:

1)巩固和加深学生对C语言课程的基本知识的理解和掌握;

2)掌握C语言编程和程序调试的基本技能;

3)利用C语言进行基本的软件设计;

4)掌握书写程序设计说明文档的能力

5)提高运用C语言解决实际问题的能力。

2.2课程设计要求

1)分析课程设计题目的要求;

2)写出详细设计说明;

3)编写程序代码,调试程序使其能正确运行;

4)设计完成的软件要便于操作和使用,有整齐、美观的使用界面;

5)设计完成后提交课程设计报告和源代码文件的电子文档。

3.课程设计内容说明

3.1.程序功能介绍

本系统的主要功能是实现日程表的管理,有添加日程,删除日程,查询日程,显示日程,设置日程,修改日程,日程排序,读取日程,保存日程的功能。

每个日程的信息包括:

日程时间,日程名称,日程详情,日程提醒,日程标记。

3.2程序设计整体设计说明

本系统的主函数是整个程序的核心,子函数之间也是有联系的,对日程的删除,查询,显示,修改,保存,必须是在添加了日程,或者读取了日程的情况下进行的。

一些基本操作在子函数中多次重复使用,即可单独设定函数,多次调用即可。

运行程序开始后进入主菜单,用户即可选择选择要进行的操作,例如,1为添加日程,用户需输入相应信息。

选择2为删除日程,按照日期或者名称选中相应日程后,可以删除日程或者日程设置。

等等功能。

当选择不存在时提示用户选择错误并提示重新选择。

3.3题目要求

3.31.设计要求

基本功能:

添加日程信息;

删除日程信息;

查询管理;

设置管理;

拓展功能:

日程信息的修改;

设置修改;

设置删除;

创新(自拟)功能:

程序实现的其它功能由个人自拟。

3.32.设计要求具体说明

添加日程信息:

需要输入日期、时间及相关的事件名称,并提示是否有时间冲突。

删除日程信息:

需要输入日期、时间后,显示相关的事件名称,由用户确认是否删除。

查询功能:

a)查询提前提醒事件,即提示将要发生的日程信息;

b)查询某天的日程信息。

对已经过去和将要发生的事件要区别显示。

设置功能:

a)可以设置提前提醒的时间。

b)日程信息需写入文件,文件的建立自我定义。

c)输入的日期、时间要进行合理性检查。

d)设置提前提醒的时间,并进行合理性检查。

拓展功能:

a)能进行日程表信息的修改;

b)设置信息的修改、删除。

3.33.提示:

定义合适的结构体类型,使用链表或数组的方式组织数据。

3.4数据结构设计

本系统包含的数据结构有:

structDate_time //定义时间结构体;

{intyear;

intmonth;

intday;

inthour;

intmin;

};

structricheng //定义日程结构体;

{

structDate_timedate;

structDate_timeremind_date;

charname[100];

chardetail[200];

structricheng*next;

};

3.5程序结构设计

3.51程序子程序及功能设计

intmain() //主函数

charMenu(); //显示菜单

intrunnian(intyear); //判断是否闰年

inttime_panduan(structDate_timetime); //检查输入时间是否合法

intdate_panduan(intyear,intmonth,intday); //检查输入日期是否合法

structricheng*select_name_program(); //按照名称选择日程

voidshow(structricheng*p); //显示指针指向的日程的信息

voidset_remind_program(structricheng*p) ; //设置日程提醒的时间

structricheng*select_program(); //选择日程

voidadd(); //添加日程

voiddelet_zhiding_richeng(structricheng*p); //删除指定日程

voiddelet(); //删除日程

voidsearch_zhiding_richeng(charname[100]); //按名称查询指定日程

voidsearch(); //查询日程

voidxiugai(); //修改事日程信息

voidread(); //读取日程文件

voidwrite(); //写入日程文件

3.52函数主要调用关系图

3.53各模块流程图

l添加日程

l删除日程

l查询日程

l显示日程

l修改程序

l读取日程

l保存日程

4.运行结果

1.点击运行,出现如下界面,可根据提示,选择菜单,进行相关操作;

添加日程功能

2.选择菜单,输入1,进入添加日程功能,第一步:

提示输入日程的时间,第二步:

提示输入日程的名称,第三步:

提示输入日程的具体内容。

第四步:

进入设置界面,提示设置日程的提示时间。

输入完成后回车,日程的添加功能就完成了。

注意:

在这个功能里,对于时间和日期的合法性都有检查,如果输入的时间有错误,那么就会自动提示输入的不正确,请重新输入。

保存日程的功能

3.完成菜单一的添加日程功能后,按回车键返回主菜单,然后选择6,进入保存日程的功能,选择6后,点击回车,界面提醒“保存成功”,这时日程的保存就完成了,日程就保存在了“我的日程.txt”,文本文档里了。

我们就完成了对日程的写入保存功能。

文件的读取功能

4.完成日程的保存写入功能之后,就会自动返回主菜单,选择5,进入文件的读取功能,点击回车,屏幕上会显示已保存的日程的全部信息,包括日程日期,日程名称,详细信息,提醒时间;

进入查询日程功能

5.完成读文件功能之后,点击回车,回到主菜单就可以选择其他功能进行操作,例如选择3,进入查询日程功能,界面自动提醒:

1.查询指定日程,2.退出操作,选择1,查询指定日程,提示输入查询日程的名称

输入要查询的日程的名称后,关于这条日程的详细信息就会显示。

然后选择0,退出查询功能,返回主界面。

注意;如果输入的日程名称不正确,系统会自动提醒,查找的日程不存在。

修改功能

6.返回主菜单后选择4,进入日程的修改功能,然后提示输入要修改的日程名称,输入名称,进入修改界面,1.修改日程时间,2.修改日程名称,3.修改日程详情,4.修改日程提醒时间,0.退出。

选择要修改的内容,如选择4修改日程的提醒时间,回车后,输入新的提醒时间,回车,选择0完成,回车,返回主菜单,然后选择6保存日程,再选择5,读取日程,界面就显示修改后的新日程的新信息了,这样的话,修改就成功了。

删除功能

6.完成修改功能后,回车进入主菜单,选择2,进入删除功能,输入要删除的日程名称,回车进入删除界面,选择1,确认删除,删除后,界面显示删除成功。

并返回主菜单。

选择6,保存删除,选择5,读取日程,就看不到刚刚删除的那条日程信息了。

5.源程序代码:

#include

#include//stdlib头文件里包含了C语言的一些函数

#include//字符串头文件

#defineAsizeof(structricheng)//宏定义就是在程序编译前,用sizeof(structricheng)代替A

structDate_time //定义时间结构体;

{intyear;

intmonth;

intday;

inthour;

intmin;

};

structricheng //定义日程结构体;

{

structDate_timedate;//包含了时间结构体

structDate_timeremind_date;//提醒时间

charname[100];

chardetail[200];

structricheng*next;

}*head=NULL,*p0=NULL; //*head指向开头,*p0指向末尾

charset[20];

charMenu(); //显示菜单

intrunnian(intyear); //判断是否闰年

inttime_panduan(structDate_timetime); //检查输入时间是否正确

intdate_panduan(intyear,intmonth,intday); //检查输入日期是否正确

voidshow(structricheng*p); //显示指针指向的日程事件信息

structricheng*select_name_program(); //按名称选择日程

structricheng*select_program(); //选择日程

voidset_remind_program(structricheng*p) ; //设置日程提醒日期

voidadd(); //添加日程

voiddelet_zhiding_richeng(structricheng*p); //删除指定日程

voiddelet(); //删除日程

voidsearch_zhiding_richeng(charname[100]); //查询指定日程,按名称查询

voidsearch(); //查询日程

voidxiugai(); //修改事日程

voidread(); //读取日程

voidwrite(); //写入文件

intmain() //主函数

{

structricheng*p;//定义了结构体日程的指针

charx;

charfilename[100];

do

{

x=Menu();

switch(x)

{

case'0':

printf("\n*****谢谢使用*****\n\n");

break;

case'1':

add();

break;

case'2':

delet();

break;

case'3':

search();

break;

case'4':

xiugai();

break;

case'5':

read();

break;

case'6':

write();

break;

default:

printf("菜单选择错误!

请重新选择!

");

}

}while(x!

='0');

return0;

}

charMenu() //显示菜单;

{

charx[10];

printf("\n**************¥¥¥¥欢迎使用日程表系统¥¥¥¥****************\n");

printf(" 1)添加日程\n");

printf(" 2)删除日程\n");

printf(" 3)查询日程\n");

printf(" 4)修改日程\n");

printf(" 5)读取日程\n");

printf(" 6)保存日程\n");

printf(" 0)退出操作\n");

printf("**********************************************************\n\n");

printf("请选择菜单序号0-6:

");

gets(x);

returnx[0];

}

voidadd() //添加日程;

{

structricheng*p;

structDate_timetime;

charRC_name[50];

charRC_detail[100];

do

{

printf("请输入日程日期,时间(年-月-日时:

分):

\n");

scanf("%d-%d-%d%d:

%2d",&time.year,&time.month,&time.day,&time.hour,&time.min);

}while(time_panduan(time)==0); //输入日程时间

printf("日程名称(100个字符以内):

\n");

scanf("%s",RC_name); //输入日程名称

printf("详细描述(200个字符以内):

\n");

scanf("%s",RC_detail); //输入日程详细信息

p=(structricheng*)malloc(A);//Malloc向系统申请分配指定size个字节的内存空间

strcpy((*p).name,RC_name);

strcpy((*p).detail,RC_detail);

(*p).date.year=time.year;//赋值

(*p).date.month=time.month;

(*p).date.day=time.day;

(*p).date.hour=time.hour;

(*p).date.min=time.min;

printf("添加日程设置\n"); //添加日程的同时是否添加日程设置

set_remind_program(p); //调用设置日程提醒时间的函数

if(head==NULL) //寻找插入位置,新添加的日程插到后面

{

head=p0=p;

p0->next=NULL;

}

else

{

p0->next=p;

p0=p;

p0->next=NULL; //p0始终指向最后一个数据

}

printf("\n-----------------------按回车键返回-----------------------\n");

}

intrunnian(intyear) //判断闰年;

{

intRN=0;

if((year%4==0&&year%100!

=0)||(year%400==0))

RN=1;

else

RN=0;

returnRN;

}

inttime_panduan(structDate_timetime) //检查输入时间是否正确

{

intY=1;

intday_of_month[12]={31,28,31,30,31,30,31,31,30,31,30,31};

if(runnian(time.year)==1)

{

day_of_month[1]=29;

}

if(time.year>9999||time.year<=0)

Y=0;

if(time.month>12||time.month<=0)

Y=0;

if(time.day>day_of_month[time.month-1]||time.day<=0)

Y=0;

if(time.hour>24||time.hour<0)

Y=0;

if(time.min>60||time.min<0)

Y=0;

if(Y==0)

printf("输入错误!

\n");

returnY;

}

intdate_panduan(intyear,intmonth,intday) //检查输入日期是否正确

{

intY=1;

intday_of_month[12]={31,28,31,30,31,30,31,31,30,31,30,31};

if(runnian(year)==1)

{

day_of_month[1]=29;

}

if(year>9999||year<=0)

Y=0;

if(month>12||month<=0)

Y=0;

if(day>day_of_month[month-1]||day<=0)

Y=0;

if(Y==0)

printf("输入错误!

\n");

returnY;

}

voidset_remind_program(structricheng*p) //设置日程提醒日期

{

do

{

printf("请输入日程提醒时间(年-月-日时:

分):

\n");

scanf("%d-%d-%d%d:

%d",

&p->remind_date.year,&p->remind_date.month,&p->remind_date.day,

&p->remind_date.hour,&p->remind_date.min);

getchar();

}while(time_panduan(p->remind_date)==0);//对输入的时间进行判断

}

voiddelet() //删除日程

{

structricheng*p;

p

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2