c语言课程设计报告日程表.docx
- 文档编号:6917408
- 上传时间:2023-01-12
- 格式:DOCX
- 页数:24
- 大小:802.86KB
c语言课程设计报告日程表.docx
《c语言课程设计报告日程表.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告日程表.docx(24页珍藏版)》请在冰豆网上搜索。
c语言课程设计报告日程表
c语言课程设计报告日程表
上海应用技术学院
课程设计
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]SamuelⅢ,Guy.C语言参考手册(第5版).北京:
机械工业出版社,2003
[5]程序设计语言课程设计指导书.
指导教师(签名):
教研室主任(签名):
2013年7月1日2013年7月12日
目录:
1.课程设计任务书**************2
2.目的及要求******************6
2.1课程设计目的
课程设计要求
3.课程设计内容说明************7
.程序功能介绍
程序设计整体设计说明
数据结构设计
程序结构设计
程序子程序及功能设计
函数主要调用关系图
各模块流程图
4.运行结果*******************17
5.源程序代码分析*************31
6.课程设计感悟***************42
2.目的及要求
课程设计目的
本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:
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)设置信息的修改、删除。
.提示:
定义合适的结构体类型,使用链表或数组的方式组织数据。
数据结构设计
本系统包含的数据结构有:
structDate_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;
elseif(p_s!
=NULL)
p_l->next=p_s->next;
}
printf("删除成功\n");
}
structricheng*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");
}
voidsearch()询指定日程\n");
printf("0.退出操作:
\n");
scanf("%d",&X);
getchar();
switch(X)
{
case0:
break;
case1:
printf("请输入事件名称:
");
scanf("%s",RC_name);
getchar();
search_zhiding_richeng(RC_name);
break;
default:
printf("\n选择错误!
\n\n");
}
}while(X!
=0);
}
voidsearch_zhiding_richeng(charname[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)
{
case0:
break;
case1:
=;
(*p).=;
(*p).=;
(*p).=;
(*p).=;
break;
case2:
ame,RC_name);
break;
case3:
etail,RC_detail);
break;
case4:
=;
(*p).=;
(*p).=;
(*p).=;
(*p).=;
break;
default:
printf("\n菜单选择错误!
请重新选择!
\n");
}
}while(s!
=0);
}
voidread()
{
structricheng*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();
}
voidwrite()
{
structricheng*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.课程设计感悟:
两周的课程设计转眼间就结束了,回顾这两周的课程设计,对我的帮助是很大的,在做课设以前,我们虽然在学习的过程中也做实验,但偏重的还是课本上的知识,但通过这两周的课程设计,主要培养我们的实践动手能力,从第一天的分析题目,到第二天和第三天的画程序流程图,再到编写程序,我学会了在做大的编程的时候一定要有条理,画流程图是很有必要的,在编写程序之前,通过画流程图,我们可以清楚明白的知道这个程序应该怎么写,不至于到编程的时候脑子里一团糟,自己心里没有一条明确的主线路。
第二点就是,在编写大的程序的时候,从主函数开始,一步一步的编写,用到哪个函数,就编写那个函数,一步一步的调试,不要到最后都编写完了再调试,那样的话就会很乱,不能明确的找出错误之处。
在这两周里,我也发现了自己的一些不足之处,一些在学习的时候没有学精通的地方,比如说文件读写操作等内容,但通过和同学老师的交流,自己查阅资料,已经攻克了这个难题。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,通过实际编程动手操作,理解书本上的知识,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。
参考文献(另起一页)
1.谭浩强.C程序设计(第四版).北京:
清华大学出版社,2010
2.谭浩强.C程序设计题解与上机指导(第四版).北京:
清华大学出版社,2010
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 日程表