沈阳工程学院C语言设计报告文档格式.docx
- 文档编号:17234805
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:20
- 大小:264.04KB
沈阳工程学院C语言设计报告文档格式.docx
《沈阳工程学院C语言设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《沈阳工程学院C语言设计报告文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
崔永恒
指导教师:
宋丹茹、刘晓慧
课程设计周次:
第17周
起始日期:
2012.6.18至2012.6.24
目录
C语言课程设计成绩评定表1
C语言课程设计任务书2
程序设计思路3
程序基本框架结构图5
系统运行界面截图6
源代码清单8
课程设计总结15
C语言课程设计成绩评定表
班级
电自专111
学号
2011338120
姓名
崔永恒
项目组
第3组
项目组长
项目组组员
初宇、陆海洋、李鑫、马文权
本人工作简介:
在课程设计中,我主要负责整个程序的编辑,重点负责的是插入信息和
显示所有记录功能模块的设计。
除此之外,我还协助其他组员完成代码的调
试。
组长评语:
对于本次实训,我顺利的完成了自己负责的功能模块,并协助其他组员进行了程序调试、运行及实训报告的制作。
虽然,我在C语言的掌握上还存在不足,但我对自己的总体表现比较满意。
成绩评定标准
A
B
C
D
E
理论基础
很好
好
比较好
一般
不好
报告完成情况
纪律表现
程序创意
所选模块完成情况
较差
所选算法难易程度
复杂
比较复杂
简单
很简单
程序可操作性
答辩表现
最后成绩
优秀
A>
=5
B<
=3
C<
=0
D=0
E=0
良好
=4
=1
中等
B>
=2
C>
D<
及格
A=0
B=0
D>
不及格
C=0
E>
负责指导教师:
(签名)
C语言课程设计任务书
一、设计目的
通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。
二、设计要求
1、认真查阅参考书、资料2、遵守课程设计时间安排
3、按时上机,认真调试程序4、认真完成课程设计报告
三、课设报告装订内容及顺序
1、课程设计封皮2、目录
3、课程设计成绩评定表4、课程设计任务书
5、程序基本框架图6、程序设计说明书
7、源代码清单8、课设总结与心得
四、设计题目
_________________通讯录管理系统____________________
五、时间安排(一周:
从6月18日到6月24日)
1、查阅资料及程序设计(1天)2、程序编制及调试(3天)
3、成绩评定(0.5天)3、打印报告(0.5天)
六、参考文献
1、《C语言程序设计》李淑华/李贞编大连理工大学出版社
2、《C语言程序设计》孙连科/姚大鹏编辽海出版社
3、《C++时尚编程百例》网冠科技编.机械工业出版社
4、《TURBOC实用大全》徐金梧等编.机械工业出版社
程序设计思路
一、程序功能:
1、完成通讯录信息的管理,包括创建通讯录,插入信息,查询记录,修改记录,删除记录,显示所有记录,退出通讯录。
2、能够根据联系人的信息单独或分类查询。
二、设计思路
为了实现通讯录管理系统的功能,我们组选用了动态链表。
因为动态链表,这种数据结构非常灵活,结点数目无需事先指定,可以临时生成。
每个结点有自己的存储空间,用来存放该结点的数据,结点间的存储空间也无需连续,结点之间的串联由指针来完成,指针的操作又极为灵活方便。
根据功能可以分为如下几个功能模块;
1、通讯录初始化模块:
通过函数打开指定文件,并用函数将文件内的数据读入结构体数组中,这两个标准库函数都定义在stdio.h头文件中。
对整个函数的返回值进行定义,用来并表示导入的数据成员个数,而后将该值赋给全局变量用来计数。
所涉及的的变量有姓名、性别、电话、所在城市、邮编、,对其进行定义。
2、保存文件函数:
通过将文件名字符串作为参数传入,用函数将当前结构体数组中的全部数据写入文件中并关闭文件。
该函数无返回值。
3、创建通讯录函数:
该函数没有参数,通过提示用户输入数据;
当输入的姓名或电话号码重复时,提示用户重复并重新输入;
被录入一个完整的新数据后让全局变量自增,并将其作为函数的返回值返回。
4、插入信息函数:
将用户要插入的成员姓名作为参数传入,通过提示用户输入数据,依次输入要插入的数据。
再用函数将当前结构体数组中的完善后的数据写入文件中并关闭文件。
5、查询记录函数:
将用户要找的成员姓名作为参数传入,遍历所有结构体并找出符合的输出,若输出成功则可以继续查找,用户所输姓名不存在则输出用户名不存在。
6、修改记录函数:
将用户要修改的成员姓名作为参数传入,遍历所有结构体并找出符合的,依次提示修改项目,由用户输入新数据并保存,返回值同查找记录函数。
7、删除记录函数:
将用户要删除的成员姓名作为参数传入,遍历所有结构体并找出符合的删除,并将后面的所有数据向前移动一个位置,返回值同查找记录函数。
8、显示所有记录函数:
无参数传入,无返回值,用户根据提示输入指令,在程序中找出所需信息。
该函数没有返回值。
9、主函数:
判断用户输入的指令,转向具体的函数来执行,并根据函数的返回值判断执行结果并予以提示。
主函数中用特定语句结束程序,并在结束前提示用户保存数据。
10、我负责模块是插入信息和显示所有记录,具体设计思路如下:
a.插入信息模块:
首先,对要插入的信息进行定义。
然后,输入用户所要插入的数据,结束后,进行保存。
这种插入是随机的,可以出现在任意部分。
b.显示所有记录模块:
定义某一变量,当输入该变量后,可以显示出通讯录中的所有已存储的信息。
程序基本框架结构图
系统运行界面截图
源代码清单
#include<
stdio.h>
string.h>
stdlib.h>
typedefstructTelephone
{
charname[50];
charsex[30];
chartel[30];
charcity[30];
chareip[30];
structTelephone*next;
}TEL;
TEL*head;
voidInitiate();
voidMenu();
voidCreate();
voidAdd();
voidFind();
voidAlter();
voidDelete();
voidList();
intmain()
intchoice;
charyes_no;
Initiate();
do
{
system("
cls"
);
Menu();
printf("
请选择0-6的数字\n"
scanf("
%d"
&
choice);
\n"
switch(choice)
case1:
Create();
break;
case2:
Add();
case3:
Find();
case4:
Alter();
case5:
Delete();
case6:
List();
case0:
************感谢您的使用************\n"
exit(0);
default:
输入有误!
请重新输入\n"
}
是否继续YorN?
\n"
%c"
yes_no);
}while(yes_no!
='
Y'
&
yes_no!
y'
N'
n'
}while(yes_no=='
||yes_no=='
}
voidInitiate()
if((head=(TEL*)malloc(sizeof(TEL)))==NULL)exit
(1);
head->
next=NULL;
voidMenu()
**************欢迎使用通讯录系统**************"
1.创建通讯录。
2.插入信息。
3.查询记录\n"
4.修改记录\n"
5.删除记录!
6.显示所有记录\n"
0.退出通讯录\n"
请输入0~6\n"
voidCreate()
TEL*p1[100],*p2;
intm,i;
请输入创建个数:
"
m);
for(i=1;
i<
=m;
i++)
p1[i]=(TEL*)malloc(sizeof(TEL));
请输入第%d条信息!
i);
姓名:
%s"
p1[i]->
name);
性别:
sex);
电话:
tel);
城市:
city);
邮编:
eip);
p1[i]->
if(head->
next==NULL)
next=p1[i];
else
for(p2=head;
p2->
next!
=NULL;
p2=p2->
next);
p2->
信息已添加!
return;
voidAdd()
TEL*p,*q;
if((q=(TEL*)malloc(sizeof(TEL)))==NULL)exit
(1);
请输入要添加的信息!
q->
q->
for(p=head;
p->
p=p->
next);
p->
next=q;
q->
此信息已添加!
voidFind()
TEL*p;
此通讯录为空!
请输入要查找的姓名:
for(p=head->
next;
p!
next)
if(strcmp(p->
name,name)==0)
姓名\t性别\t城市\t邮编\t电话\n"
%s\t%s\t%s\t%s\t%s\n"
p->
name,p->
sex,p->
city,p->
eip,p->
elseif(p->
无此信息!
voidAlter()
TEL*p,*p1;
if(head->
next==NULL)
请输入要修改的姓名:
name);
p1=(TEL*)malloc(sizeof(TEL));
p1->
strcpy(p->
name,p1->
sex,p1->
tel,p1->
city,p1->
eip,p1->
此信息已修改!
姓名\t性别\t城市\t邮编\t电话\n"
free(p1);
voidDelete()
TEL*p=head->
next,*p1=head->
next,*p2;
此通讯录为空!
请输入要删除的姓名:
%s"
while((strcmp(p->
name,name)!
=0)&
next!
=NULL)
p1=p;
p=p->
if(strcmp(name,p->
name)==0)
if(p==head->
next&
=NULL)
next=p->
elseif(p==head->
next=p->
信息已删除,先此通讯录为空!
!
p1->
此信息不存在!
此信息已删除!
for(p2=head->
p2!
p2->
name,p2->
sex,p2->
city,p2->
eip,p2->
voidList()
此通讯录中无记录!
tel,p->
课程设计总结
一周的实训短暂而充实,在这次实训中,我对C语言有了更多的认识。
就一个程序的设计而言,首先要根据所需程序的要求,设计算法,针对具体的问题,分析、建立解决问题的物理或数学模型,并将解决方法用C语言描述出来。
其次,就要开始对编辑出来的C语言源程序进行调试,而调试过程中的难度却远比我想像中的要大。
一次次的失败,让我本来轻松的心情也逐渐变得烦躁。
但在同学们互相鼓励下,我们静下心来,对源程序进行了认真而详细的检查,一个一个错误的排除。
虽然,一次次的失败依然打击着我们的信心和耐心,任汗水流过我们的脸颊,我们的心里防线几乎要崩溃,但我们没有一个人选择放弃,选择退缩。
因为,一旦放弃,就意味着我们之前的工作毫无意义。
好在皇天不负有心人,在全组成员的共同努力下,终于在失败几十次后,屏幕上出现了我们所要的结果。
那一刻,一种成就感油然而生,那份喜悦或许我会永远铭记。
而接下来的工作,也就没有了太大的难度,大家都开始对自己的设计报告进行设计。
虽然设计完成了,但是我觉得其中还是由一些不足之处:
1.警告句。
程序中缺少一些警告句,例如:
“是否真的删除(y/n)?
”。
2.重名的情况。
由于考虑的不周全,没有设计遇到重名的情况该怎么处理。
3.选择单一。
我们设计的程序中,只设计了按名字选择,进行操作,忽略了重名的情况。
短短的一周课程设计结束了,但是这段时间里,我又学到了更多C语言知识,如:
对象数组,指针,string类等,同时我也被提醒以后办事的时候要认真,仔细,考虑周全,也看到了团队精神和互帮互助的重要性。
这一点会让我终生受益。
通过一周的课程设计,我觉得自己肚子里的墨水多了,收获也挺大的,这一周过的很充实!
今后,我会更加努力的学习C语言。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 沈阳 工程学院 语言 设计 报告