c语言课程设计报告日程表.docx
《c语言课程设计报告日程表.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告日程表.docx(26页珍藏版)》请在冰豆网上搜索。
c语言课程设计报告日程表
课程设计报告
课程名称程序设计语言c课程设计
设计题目日程管理
姓名
专业班级网络
学号
组别无
同组者无
指导教师
日期2011/7
成绩
1.
课程设计任务书
上海****学院课程设计任务书
课程名称
程序设计语言课程设计
课程代码
B704010
设计题目
1.算术练习
2.个人收支管理
3.通讯录
4.成绩记录簿
5.图书借阅管理
6.日程表管理
题目序号
6
设计时间
2011年6月27日——2011年7月8日
系(院)
计算机与信息工程学院
专业
网络工程
班级
一、课程设计任务(条件)、具体技术参数(指标)
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]程序设计语言课程设计指导书.
指导教师(签名):
教研室主任(签名):
2011年6月27日2011年6月27日
2.目的及要求
课程设计目的
本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:
1)巩固和加深学生对C语言课程的基本知识的理解和掌握;
2)掌握C语言编程和程序调试的基本技能;
3)利用C语言进行基本的软件设计;
4)掌握书写程序设计说明文档的能力
5)提高运用C语言解决实际问题的能力。
课程设计要求
1)分析课程设计题目的要求;
2)写出详细设计说明;
3)编写程序代码,调试程序使其能正确运行;
4)设计完成的软件要便于操作和使用,有整齐、美观的使用界面;
5)设计完成后提交课程设计报告和源代码文件的电子文档。
3.课程设计内容说明
3.1程序功能介绍
本系统的主要功能是实现日程表的管理,有添加日程,删除日程,查询日程,显示日程,设置日程,修改日程,日程排序,读取日程,保存日程的功能。
每个日程的信息包括:
日程时间,日程名称,日程详情,日程提醒,日程标记。
3.2程序设计整体设计说明
本系统的主函数是整个程序的核心,子函数之间也是有联系的,对日程的删除,查询,显示,设置,修改,排序,保存,必须是在添加了日程,或者读取了日程的情况下进行的。
一些基本操作在子函数中多次重复使用,即可单独设定函数,多次调用即可。
运行程序开始后进入主菜单,用户即可选择选择要进行的操作,例如,1为添加日程,用户需输入相应信息。
选择2为删除日程,按照日期或者名称选中相应日程后,可以删除日程或者日程设置。
等等功能。
当选择不存在时提示用户选择错误并提示重新选择。
3.2.1数据结构设计
本系统包含的数据结构有:
[1]structDate_time
图表3-1函数主要调用关系图
26main()
1
13
15
20
21
12
22
23
24
25
12
16
17
18
19
7
14
6
9
7
8
9
7
8
输入日期\时间
添加日程信息
判断输入时间是否正确
N
记录输入的信息
显示菜单
输入日程名称,日程详情
是否进入设置
进入设置日程
N
Y
Y
删除日程信息
输出选择列表
输入选择
选中日程
输出选中的日程信息
判断选择
删除选中日程
删除选中日程设置
显示菜单
1
2
确认
确认
输出选择列表
查询日程信息
输入选择
判断选择
1.查询提醒日程
2.查询当天日程
3.查询重要日程
置
4.查询指定日程
置
输入时间
输入时间
输出相应日程
输出标记为重要的事件信息
输出相应日程
输入名称
输出相应日程
显示菜单
显示日程信息
输出全部日程信息
显示菜单
设置重要标记
设置日程信息
输出选择列表
输入选择
判断选择
2
选中日程
1
设置提醒日起
显示菜单
输入要修改的信息
用输入的信息替换原信息
显示菜单
修改日程信息
选中事件
选中要修改的信息
日程排序
按时间顺序排序
显示菜单
输出”排序完成”
读取日程
显示菜单
读入文件
输出读取的日程信息
保存日程
显示菜单
写入文件
输出“保存成功”
C程序设计(第三版).北京:
清华大学出版社,2005
[2]谭浩强.C程序设计题解与上机指导(第三版).北京:
清华大学出版社,2005
[3]HerbertSchildt.C语言大全(第四版).北京:
电子工业出版社,2004
[4]SamuelⅢ,Guy.C语言参考手册(第5版).北京:
机械工业出版社,2003
[5]张建勋.C语言程序设计教程.北京:
清华大学出版社,
[6]崔武子.C程序设计教程(第2版).北京:
清华大学出版社,(第2版)
附录(另起一页)
源代码:
include<>
#include<>
#include<>
#include<>
#defineLENsizeof(structCalender)
入日程名称\n");
printf("2.输入日程日期\n");
printf("\n*请选择:
");
scanf("%d",&sel);
getchar();
if(sel==1)
{
p=select_name_program();
}
elseif(sel==2)
{
p=select_date_program();
}
else
{
printf("\n选择错误!
\n");
}
}while(sel!
=1&&sel!
=2);
return(p);置提醒时间\n");
printf("2.设置重要标记\n");
printf("0.退出操作\n");
scanf("%d",&sel);
getchar();
入设置\n");
printf("2.放弃设置\n");
getchar();
scanf("%d",&sel);
if(sel==1)
{
set_program(p);
}
else
{
p->=0;
p->=0;
p->=0;
p->=0;
p->=0;
p->important='n';
}
除此日程事件\n");
printf("2.删除此日程设置\n");
printf("0.退出操作\n");
scanf("%d",&sel);
getchar();
switch(sel)
{
case0:
break;
case1:
除\n");
printf("2.放弃\n");
scanf("%d",&sure);
getchar();
if(sure==1)
{
if(p_sel==head&&p_sel!
=NULL)
head=p_sel->next;
elseif(p_sel!
=NULL)
p_last->next=p_sel->next;
}
break;
case2:
\n2.否\n");
scanf("%d",&sure);
getchar();
if(sure==1)
{
p_sel->=0000;
p_sel->=00;
p_sel->=00;
p_sel->=00;
p_sel->=00;
p_sel->important='n';
}
break;
default:
printf("\n选择错误!
请重新选择!
\n");
}
}while(sel!
=1&&sel!
=2&&sel!
=0);
}
询提醒日程\n");
printf("2.查询重要日程\n");
printf("3.查询当日日程\n");
printf("4.查询指定日程\n");
printf("0.退出操作:
\n");
scanf("%d",&sel);
getchar();
switch(sel)
{
case0:
break;
case1:
do
{
printf("请输入日程提醒日期(年-月-日):
\n");
scanf("%d-%d-%d",
&,&,&;
getchar();
}while(date_exam,,==0);
search_remind_program,,;
break;
case2:
search_important_program();
break;
case3:
do
{
printf("请输入日程日期(年-月-日):
\n");
scanf("%d-%d-%d",
&,&,&;
getchar();
}while(date_exam,,==0);
search_day_program,,;
break;
case4:
printf("请输入事件名称:
");
scanf("%s",e_name);
getchar();
search_name_program(e_name);
break;
default:
printf("\n选择错误!
\n\n");
}
}while(sel!
=0);
}
改日程时间\n");
printf("2.修改日程名称\n");
printf("3.修改日程详情\n");
printf("4.修改日程提醒\n");
printf("5.修改重要标记\n");
printf("0.完成\n");
scanf("%d",&sel);
getchar();
switch(sel)
{
case0:
break;
case1:
//输入日程时间
do
{
printf("请输入日程日期,时间(年-月-日时-分):
\n");
scanf("%d-%d-%d%d-%d",
&,&,&,&,&;
}while(time_exam(time)==0);
p->=;
p->=;
p->=;
p->=;
p->=;
break;
case2:
//输入日程名称
printf("日程事件名称(50个字符以内):
\n");
scanf("%s",e_name);
strcpy(p->name,e_name);
break;
case3:
//输入日程详情
printf("详细描述(100个字符以内:
)\n");
scanf("%s",e_detail);
strcpy(p->detail,e_detail);
break;
case4:
//输入提醒时间
do
{
printf("提醒日程日期,时间(年-月-日时-分):
\n");
scanf("%d-%d-%d%d-%d",
&,
&,
&,
&,
&;
}while(time_exam(remind_time)==0);
p->=;
p->=;
p->=;
p->=;
p->=;
break;
case5:
//修改重要标记
if(p->important=='y')
{
p->important='n';
}
else
{
p->important='y';
}
break;
default:
printf("\n菜单选择错误!
请重新选择!
\n");
}
}while(sel!
=0);
}
//日程按时间先后排序
voidsort_program()
{
structCalender*p,*p1,*p2,*p3;
p=head;
head=p3=NULL;
while(p!
=NULL)
{
p3=p;
p=p->next;
p2=p1=head;
while(p1!
=NULL
&&
(p1->
||p1->==p3->
&&p1->
||p1->==p3->
&&p1->==p3->
&&p1->
||p1->==p3->
&&p1->==p3->
&&p1->==p3->
&&p1->
||p1->==p3->
&&p1->==p3->
&&p1->==p3->
&&p1->==p3->
&&p1-><=p3->))
{
p2=p1;
p1=p1->next;
}
p3->next=p1;
if(p2==NULL
||
(p2->>p3->
||p2->==p3->
&&p2->>p3->
||p2->==p3->
&&p2->==p3->
&&p2->>p3->
||p2->==p3->
&&p2->==p3->
&&p2->==p3->
&&p2->>p3->
||p2->==p3->
&&p2->==p3->
&&p2->==p3->
&&p2->==p3->
&&p2->>=p3->)
)
head=p3;
else
p2->next=p3;
}
printf("\n*****排序完成*****\n");
}
//读取文件
voidread_program()
{
structCalender*p;
FILE*fp;
fp=fopen("","rb");
if(fp==NULL)
{
printf("\n文件无法打开!
\n");
exit(0);
}
head=NULL;
printf("\n*****读取信息如下*****\n\n");
while(!
feof(fp))
{
p=(structCalender*)malloc(LEN);
if(fread(p,LEN,1,fp)!
=1)
break;
print_program(p);
if(head==NULL)
{
head=p0=p;
}
else
{
p0->next=p;
p0=p;
}
}
fclose(fp);
printf("\n-----------------------按回车键返回-----------------------\n");
getchar();
}
//写入文件
voidwrite_program()
{
structCalender*p,*p1;
FILE*fp;
p=p1=head;
fp=fopen("","wb");
if(fp==NULL)
{
printf("\n文件无法打开!
\n");
return;
}
while(p!
=NULL)
{
if(fwrite(p,LEN,1,fp)!
=1)
{
printf("\n写入错误!
\n");
break;
}
p1=p;
p=p->next;
}
fclose(fp);
printf("\n*****保存成功*****\n");
}
intmain()
{
structCalender*p;
charchoice;
charfilename[100];
structtm*newtime;
time_tlong_time;
time(&long_time);
newtime=localtime(&long_time);
system("color1f");//设置屏幕颜色
printf("现在时间:
%d-%d-%d%d:
%d\n",//从系统读取时间
newtime->tm_year+1900,
newtime->tm_mon+1,
newtime->tm_mday,
newtime->tm_hour,
newtime->tm_min);
do
{
choice=Menu();
switch(choice)
{
case'0':
printf("\n*****谢谢使用*****\n\n");
break;
case'1':
add_programe();
getchar();
break;
case'2':
delet_program();
break;
case'3':
search_program();
break;
case'4':
show_program();
break;
case'5':
strcpy(set,"reset");
p=select_program();
if(p==NULL)
{
printf("\n*****无查找信息*****\n");
getchar();
break;
}
set_program(p);
break;
case'6':
alter_program();
break;
case'7':
sort_program();
break;
case'8':
read_program();
break;
case'9':
write_program();
break;
default:
printf("菜单选择错误!
请重新选择!
");
}
}
while(choice!
='0');
return0;
}