当前位置:文档之家› c语言课程设计报告(日程表)1

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

上海应用技术学院课程设计2012-2013学年第二学期设计题目:日程管理1.课程设计任务书上海应用技术学院课程设计任务书指导教师(签名):教研室主任(签名):2013年7月1日2013年7 月12日目录:1.课程设计任务书**************22.目的及要求******************62.1课程设计目的课程设计要求3.课程设计内容说明************7 .程序功能介绍程序设计整体设计说明数据结构设计程序结构设计程序子程序及功能设计函数主要调用关系图各模块流程图4.运行结果*******************175.源程序代码分析*************316.课程设计感悟***************422.目的及要求课程设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言》课程后进行的一次全面的综合练习。

本课程设计的目的和任务:1)巩固和加深学生对C语言课程的基本知识的理解和掌握;2)掌握C语言编程和程序调试的基本技能;3)利用C语言进行基本的软件设计;4)掌握书写程序设计说明文档的能力5)提高运用C语言解决实际问题的能力。

课程设计要求1)分析课程设计题目的要求;2)写出详细设计说明;3)编写程序代码,调试程序使其能正确运行;4)设计完成的软件要便于操作和使用,有整齐、美观的使用界面;5)设计完成后提交课程设计报告和源代码文件的电子文档。

3.课程设计内容说明.程序功能介绍本系统的主要功能是实现日程表的管理,有添加日程,删除日程,查询日程,显示日程,设置日程,修改日程,日程排序,读取日程,保存日程的功能。

每个日程的信息包括:日程时间,日程名称,日程详情,日程提醒,日程标记。

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

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

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

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

等等功能。

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

题目要求. 设计要求基本功能:添加日程信息;删除日程信息;查询管理;设置管理;拓展功能:日程信息的修改;设置修改;设置删除;创新(自拟)功能:程序实现的其它功能由个人自拟。

. 设计要求具体说明添加日程信息:需要输入日期、时间及相关的事件名称,并提示是否有时间冲突。

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

查询功能:a) 查询提前提醒事件,即提示将要发生的日程信息;b) 查询某天的日程信息。

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

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

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

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

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

拓展功能:a) 能进行日程表信息的修改;b) 设置信息的修改、删除。

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

数据结构设计本系统包含的数据结构有:struct Date_time行结果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 <> ame, RC_name);strcpy((*p).detail, RC_detail);(*p). = ; = ;(*p). = ;(*p). = ;(*p). = ;printf("添加日程设置\n"); 除\n");scanf("%d",&sure);getchar();if(sure == 1){if(p_s == head && p_s != NULL)head=p_s->next;else if(p_s != NULL)p_l->next = p_s->next;}printf("删除成功\n");}struct richeng * select_program() ame);printf("*日程时间:%-4d-%-2d-%-2d %-d:%-2d\n",(*p).,(*p).,(*p).,(*p).,(*p).;printf("*日程详情:%s\n",p->detail);printf("*提醒时间:%-4d-%-2d-%-2d %-d:%-2d\n",(*p).,(*p).,(*p).,(*p).,(*p). );printf("\n");}void search() 询指定日程\n");printf("0.退出操作:\n");scanf("%d",&X);getchar();switch(X){case 0:break;case 1:printf("请输入事件名称:");scanf("%s",RC_name);getchar();search_zhiding_richeng(RC_name);break;default:printf("\n选择错误!\n\n");}}while( X!= 0);}void search_zhiding_richeng(char name[50]) ame, name) == 0) {p_event = p;show(p);}p = (*p).next;}改日程时间\n");printf("2.修改日程名称\n");printf("3.修改日程详情\n");printf("4.修改日程提醒\n");printf("0.完成\n");scanf("%d",&s);getchar();switch(s){case 0:break;case 1: = ;(*p). = ;(*p). = ;(*p). = ;(*p). = ;break;case 2: ame, RC_name);break;case 3: etail, RC_detail);break;case 4: = ;(*p). = ;(*p). = ;(*p). = ;(*p). = ;break;default:printf("\n菜单选择错误!请重新选择!\n");}}while( s != 0);}void read(){struct richeng *p;FILE *fp;fp = fopen("我的日程.txt","rb");if(fp == NULL){printf("\n文件无法打开!\n");exit (0);}head = NULL;printf("\n*****读取信息如下*****\n\n");while(!feof(fp)) ext = p;p0 = p;}}fclose(fp);printf("\n-----------------------按回车键返回-----------------------\n");getchar();}void write(){struct richeng *p,*p1;FILE *fp;p=p1=head;fp = fopen("我的日程.txt","wb");if(fp == NULL){printf("\n文件无法打开!\n");return;}while(p != NULL){if( fwrite(p,A,1,fp) !=1 ) ext;}fclose(fp);printf("\n*****保存成功*****\n");}6.课程设计感悟:两周的课程设计转眼间就结束了,回顾这两周的课程设计,对我的帮助是很大的,在做课设以前,我们虽然在学习的过程中也做实验,但偏重的还是课本上的知识,但通过这两周的课程设计,主要培养我们的实践动手能力,从第一天的分析题目,到第二天和第三天的画程序流程图,再到编写程序,我学会了在做大的编程的时候一定要有条理,画流程图是很有必要的,在编写程序之前,通过画流程图,我们可以清楚明白的知道这个程序应该怎么写,不至于到编程的时候脑子里一团糟,自己心里没有一条明确的主线路。

相关主题