c语言通讯录课程设计报告Word文档下载推荐.docx
- 文档编号:18988831
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:26
- 大小:102.54KB
c语言通讯录课程设计报告Word文档下载推荐.docx
《c语言通讯录课程设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《c语言通讯录课程设计报告Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
主菜单
输入通讯录
显示通讯录
查找通讯录
删除通讯录
添加通讯录
退出通讯录路
修改通讯录
图1系统功能模块图
2系统流程图
输入错误,重新操作
结束
menu()=6?
menu()=1?
menu()=0?
?
menu()=2?
m>
=0?
menu()=5?
menu()=4?
menu()=3?
开始
intlength,m=0
调用输入函数
调用显示函数
调用输出函数
调用退出函数
调用添加函数
调用修改函数
调用查找函数
图2主函数流程图
真
假
三详细设计
1菜单函数
菜单函数首先标出欢迎使用通讯录管理系,然后给出用户可选择的项目,用户可以通过选择该项前的代码来实现想要实现的功能,其流程图如图3所示:
intm
m<
0||m>
6
返回m
输入选项0—6—666
图3菜单函数流程图
2输入通讯录
将结构体数组分成几个数组分别对每个数组赋值,用for循环对不同地址的数组分别赋值。
其流程图如图4所示:
i=0
i<
n?
i++
返回n
输入信息
输入数目n
图4输入函数流程图
3显示通讯录
inti
=n-1?
显示i位置信息
图5显示函数流程图
显示通讯录通过循环函数将全部的通讯录信息以此显示出来,其流程图如图5所示:
4find函数
find函数通过输入与原通讯录中存储的,两字符串的比较,找到与输入相同的的位置,其流程图如图6所示:
5删除通讯录
图7删除函数流程图
Inti,j,ch
i>
n-1
ch==1
returnn
调用删除函数
是否重新输入
j=i+1
j<
n
j++
n--
j位置数据存放位置前移
输出信息
删除通讯录通过数组中该位置之后的数据存放位置向前移一位来实现删除功能,其流程图如图7所示:
6查找通讯录
查找通讯录通过find函数找到所查通讯录的位置,再将该位置的通讯录信息显示出来,其流程图如图8所示:
图8查找函数流程图
7修改通讯录
修改通讯录通过find函数找到所要修改通讯录位置,显示出信息,确认修改后,即可逐项修改,其流程图如图9所示:
输出要修改的信息
Inti,ch
n-1?
是否要修改?
没有找到要修改的记录
是否继续修改
进行修改
图9修改函数流程图
8添加通讯录
在存储未满的情况下,用find函数找到要添加的位置后即可逐项添加通讯录信息,其流程图如图10所示:
输入插入信息
输入插入位置
inti,j
N<
=n+1?
返回n
j=n-1
j>
=i
j--
将该位置信息向后移一位
储存已满
返回n+1
图10添加函数流程图
9退出通讯录
在使用完通讯录后,按6键便会退出系统,其流程图如图11所示:
n=-1
输出谢谢使用
图11退出函数流程图
10测试结果
进入系统后,系统会出现图12所示菜单
在主菜单中输入3后,输入要找的。
在系统没有要找信息时,系统会给出提示,确认用户是否继续查找,如图13所示:
图13
图13查找功能截图
在确认修改后,按系统提示依次修改便可修改
在确认修改并输入修改后信息以后,系统便能按用户意愿修改的通讯录信息,如图14所示:
在主菜单中输入1后输入要删除的,再按1键确定,系统便自动删除要删除的通讯录信息,如图15所示:
在主菜单中按6键,便可退出系统,如图16所示:
图16退出功能截图
四总结
紧紧的一周实习即将过去,从刚开始的不只如何下手到最后看到自己的程序按自己的想法运行,心里时不时的有一种喜悦。
通过这一周的实习,我认识到书上和老师教的容是有限的,要想掌握更多的知识我们必须多动脑,多思考,不断地靠自己去学习,同时我们还应向他人请教,从而了解更多自己不知道的知识。
回头看来,编写这个程序并不像原来想像的那么难,我们要相信自己,无论做什么事,只要我们仔细的思考了,认真的去做了,我们就一定能做好。
通过这周的编程我发现了自己的一些不足,在编写时经常犯一些低级错误,由于自己的马虎而浪费了不少时间。
在不知如何进行的时候有一种不自信,总想别人正在做什么,这些不足既然被发现就得在以后的做事中注意,争取改掉。
经过一周的努力我掌握了一些基本的C语言进行程序设计的技巧,更深的理解和运用结构化程序设计的思想和方法,掌握开发一个小型实用系统的基本方法,同时学会了一些调试一个较长程序的基本方法,提高了书写程序设计开发文档的能力(书写课程设计报告)。
这一周的实践让我受益匪浅,在此我要感谢孜孜不倦指导我们的老师,感谢在我困惑时给我帮助的同学,感谢学校给我们一个这样动手动脑的机会,使我们在理论与实践相结合方面又得到了一次很好的锻炼,让我们得到很大的收获。
参考文献
[1]谭浩强,基温.C语言程序设计教程[M].第3版.高等教育,2006
[2]振安.C语言程序设计[M].机械工业,2007
附录1
#include<
stdio.h>
string.h>
#defineN80
/****************************************定义通讯录************************************/
typedefstruct
{
charnum[N];
charname[20];
chartele[15];
charadd[20];
charemal[15];
}STUDENT;
STUDENTstu[N];
intmenu();
intshuru(STUDENTstu[N]);
voidxianshi(STUDENTstu[],intn);
intshanchu(STUDENTstu[],intn);
voidchazhao(STUDENTstu[],intn);
voidxiugai(STUDENTstu[],intn);
inttianjia(STUDENTstu[],intn);
inttuichu();
/***************************主函数****************************************/
intmain()
{intlength,m=0;
while(m>
=0)
{switch(menu())
{case0:
length=shuru(stu);
break;
case1:
xianshi(stu,length);
case2:
length=shanchu(stu,length);
case3:
chazhao(stu,length);
case4:
xiugai(stu,length);
case5:
length=tianjia(stu,length);
case6:
m=tuichu();
default:
printf("
输入错误,请重新输入\n"
);
}}
return0;
}
/***********************************主菜单**********************************/
intmenu()
{intm;
**************************欢迎使用通讯录管理系统***********************\n"
*******************************主菜单**********************************\n"
\t\t\t0.输入通讯录\n"
\t\t\t1.显示通讯录\n"
\t\t\t2.删除通讯录\n"
\t\t\t3.查找通讯录\n"
\t\t\t4.修改通讯录\n"
\t\t\t5.添加通讯录\n"
\t\t\t6.退出通讯录\n"
do{printf("
\t\t\t请输入选项0-6\n"
scanf("
%d"
&
m);
while(m<
6);
returnm;
/******************************输入通讯录*******************************/
intshuru(STUDENTstu[N])
inti,n;
printf("
\n请输入要加入通讯录的数目\n"
scanf("
n);
其输入信息\n"
for(i=0;
n;
i++)
{printf("
请输入编号:
\n"
%s"
stu[i].num);
printf("
\n请输入\n:
"
stu[i].name);
printf("
\n请输入:
scanf("
stu[i].tele);
\n请输入地址:
scanf("
stu[i].add);
\n请输入emal:
stu[i].emal);
编号:
%s\n:
%s\n地址:
%s\nemal:
%s\n"
stu[i].num,stu[i].name,stu[i].tele,stu[i].add,stu[i].emal);
returnn;
}
/******************************显示通讯录********************************/
voidxianshi(STUDENTstu[],intn)
{inti;
for(i=0;
=n-1
;
i++)
{
/******************************查找函数********************************/
intfind(STUDENTstu[],intn)
{inti;
chars[20];
请输入的\n"
s);
if(strcmp(s,stu[i].name)==0)
returni;
returni;
/*******************************删除通讯录********************************/
intshanchu(STUDENTstu[],intn)
{inti,j,ch;
i=find(stu,n);
if(i>
n-1)
{printf("
没有找到要删除的记录,是否重新输入1/0\n"
ch);
if(ch==1)n=shanchu(stu,n);
else
是否确定要删除:
%d是%2d否\n"
1,0);
}
if(ch==1)
for(j=i+1;
N;
j++)
strcpy(stu[j-1].name,stu[j].name);
strcpy(stu[j-1].tele,stu[j].tele);
strcpy(stu[j-1].add,stu[j].add);
strcpy(stu[j-1].emal,stu[j].emal);
n--;
删除成功\n"
}returnn;
/*******************************查找通讯录********************************/
voidchazhao(STUDENTstu[],intn)
{inti,ch;
if(i>
{printf("
没有找到要查找的记录,是否重新输入1/0\n"
if(ch==1)chazhao(stu,n);
else
/*******************************修改通讯录********************************/
voidxiugai(STUDENTstu[],intn)
没有找到要修改的记录,是否重新输入1/0\n"
if(ch==1)xiugai(stu,n);
是否确定要修改:
{printf("
\n\n:
\n:
\n地址:
\nnemal:
修改成功\n"
}}
/*******************************添加通讯录********************************/
inttianjia(STUDENTstu[],intn)
{inti,j;
if(N<
=n+1)
储存已满"
else
请输入要插入的位置\n"
scanf("
i);
for(j=n-1;
=i;
j--)
strcpy(stu[j+1].name,stu[j].name);
strcpy(stu[j+1].tele,stu[j].tele);
strcpy(stu[j+1].add,stu[j].add);
strcpy(stu[j+1].emal,stu[j].emal);
其输入要插入的信息\n"
\n请输入:
添加成功"
n++;
/*******************************退出通讯录********************************/
inttuichu()
intn;
n=-1;
**********************************谢谢使用**************************************"
returnn;
附录2
stdlib.h>
typedefstruct{
charnum[6];
charname[10];
charunit[20];
charphone[13];
charaddr[30];
}datatype;
typedefstructnode{
datatypedata;
structnode*next;
}listnode;
typedeflistnode*linklist;
linklisthead;
listnode*p;
intmenu_select();
linklistcreatelist(void);
voidinsertnode(linklisthead,listnode*p);
listnode*listfind(linklisthead);
voiddelnode(linklisthead);
voidprintlist(linklisthead);
voidmain()
for(;
;
){
switch(menu_select())
{
case1:
***********************************************\n"
**************通讯录链表的建立***************\n"
********************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 通讯录 课程设计 报告