C语言课设.docx
- 文档编号:3852342
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:13
- 大小:111.50KB
C语言课设.docx
《C语言课设.docx》由会员分享,可在线阅读,更多相关《C语言课设.docx(13页珍藏版)》请在冰豆网上搜索。
C语言课设
存档资料成绩:
华东交通大学理工学院
课程设计报告书
所属课程名称C语言程序设计
题目 通讯录管理系统
分院 电信分院
专业班级11电气5班
学 号2011
学生姓名
指导教师黄建华
2012年6月18日
目 录
第1章需求分析........................................................?
第2章整体设计........................................................?
第3章详细设计........................................................?
第4章系统测试........................................................?
第5章课程设计心得.....................................................?
第6章参考文献...........................................................?
第一章需求分析
为了通讯、联系的方便,需要有通讯录的管理,具有查找、增加、删除、改动等功能,更加快捷,从而节省时间,是这个快节奏时代的必需品,因此通讯录更加丰富了我们的生活。
第二章整体设计
第三章详细设计
#include
#include
#include
typedefstructTelephone//定义名为Telephone的结构体
{
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);
printf("\n");
switch(choice)
{
case1:
Create();
break;
case2:
Add();
break;
case3:
Find();
break;
case4:
Alter();
break;
case5:
Delete();
break;
case6:
List();
break;
case0:
printf("************感谢您的使用************\n");
exit(0);
break;
default:
printf("输入有误!
请重新输入\n");
break;
}
printf("是否继续YorN?
\n");
do
{
scanf("%c",&yes_no);
}while(yes_no!
='Y'&&yes_no!
='y'&&yes_no!
='N'&&yes_no!
='n');
}while(yes_no=='Y'||yes_no=='y');
}
//初始化
voidInitiate()
{
if((head=(TEL*)malloc(sizeof(TEL)))==NULL)exit
(1);
head->next=NULL;
}
//显示菜单
voidMenu()
{
printf("**************欢迎使用通讯录系统**************");
printf("\n");
printf("\n");
printf("1.创建通讯录。
\n");
printf("2.插入信息。
\n");
printf("3.查询记录\n");
printf("4.修改记录\n");
printf("5.删除记录!
\n");
printf("6.显示所有记录\n");
printf("0.退出通讯录\n");
printf("请输入0~6\n");
}
//创建通讯录
voidCreate()
{
TEL*p1[100],*p2;
intm,i;
printf("请输入创建个数:
");
scanf("%d",&m);
for(i=1;i<=m;i++)
{
p1[i]=(TEL*)malloc(sizeof(TEL));
printf("请输入第%d条信息!
\n",i);
printf("姓名:
\n");
scanf("%s",&p1[i]->name);
printf("性别:
\n");
scanf("%s",&p1[i]->sex);
printf("电话:
\n");
scanf("%s",&p1[i]->tel);
printf("城市:
\n");
scanf("%s",&p1[i]->city);
printf("邮编:
\n");
scanf("%s",&p1[i]->eip);
p1[i]->next=NULL;
if(head->next==NULL)
head->next=p1[i];
else
{
for(p2=head;p2->next!
=NULL;p2=p2->next);
//找到结点尾
p2->next=p1[i];
}
}
printf("信息已添加!
\n");
return;//保存到链表
}
//添加通讯录信息
voidAdd()
{
TEL*p,*q;
if((q=(TEL*)malloc(sizeof(TEL)))==NULL)exit
(1);
printf("请输入要添加的信息!
\n");
printf("姓名:
\n");//添加信息
scanf("%s",&q->name);
printf("性别:
\n");
scanf("%s",q->sex);
printf("电话:
\n");
scanf("%s",q->tel);
printf("城市:
\n");
scanf("%s",q->city);
printf("邮编:
\n");
scanf("%s",q->eip);
for(p=head;p->next!
=NULL;p=p->next);
p->next=q;
q->next=NULL;
printf("此信息已添加!
");
return;
}
//查找通讯录信息
voidFind()
{
TEL*p;
charname[50];
if(head->next==NULL)
{
printf("此通讯录为空!
\n");
return;
}
printf("请输入要查找的姓名:
\n");
scanf("%s",&name);
for(p=head->next;p!
=NULL;p=p->next)
{
if(strcmp(p->name,name)==0)
{
printf("姓名\t性别\t城市\t邮编\t电话\n");
printf("%s\t%s\t%s\t%s\t%s\n",p->name,p->sex,p->city,p->eip,p->tel);
}
elseif(p->next==NULL)
printf("无此信息!
\n");
}
}
//修改通讯录信息
voidAlter()
{
charname[50];//先查找后删除
TEL*p,*p1;
if(head->next==NULL)
{
printf("此通讯录为空!
\n");
return;
}
printf("请输入要修改的姓名:
\n");
scanf("%s",name);
for(p=head->next;p!
=NULL;p=p->next)
{
if(strcmp(p->name,name)==0)
break;
elseif(p->next==NULL)
{
printf("无此信息!
\n");
return;
}
}
p1=(TEL*)malloc(sizeof(TEL));
printf("姓名:
\n");//添加信息
scanf("%s",p1->name);
strcpy(p->name,p1->name);
printf("性别:
\n");
scanf("%s",p1->sex);
strcpy(p->sex,p1->sex);
printf("电话:
\n");
scanf("%s",p1->tel);
strcpy(p->tel,p1->tel);
printf("城市:
\n");
scanf("%s",p1->city);
strcpy(p->city,p1->city);
printf("邮编:
\n");
scanf("%s",p1->eip);
strcpy(p->eip,p1->eip);
printf("此信息已修改!
\n");
//显示修改的信息
printf("姓名\t性别\t城市\t邮编\t电话\n");
printf("%s\t%s\t%s\t%s\t%s\n",p->name,p->sex,p->city,p->eip,p->tel);
free(p1);
}
//删除通讯录信息
voidDelete()
{
charname[50];//先查找后删除
TEL*p=head->next,*p1=head->next,*p2;
if(head->next==NULL)
{
printf("此通讯录为空!
\n");
return;
}
printf("请输入要删除的姓名:
\n");
scanf("%s",name);
while((strcmp(p->name,name)!
=0)&&p->next!
=
NULL)
{
p1=p;
p=p->next;
}
if(strcmp(name,p->name)==0)//输出删除信息
{
if(p==head->next&&p->next!
=NULL)
head->next=p->next;
elseif(p==head->next&&p->next==NULL)
{
head->next=p->next;
printf("信息已删除,先此通讯录为空!
!
\n");
return;
}
else
p1->next=p->next;
}
else
{
printf("此信息不存在!
!
!
\n");
return;
}
printf("此信息已删除!
\n");
printf("姓名\t性别\t城市\t邮编\t电话\n");
for(p2=head->next;p2!
=NULL;p2=p2->next)
printf("%s\t%s\t%s\t%s\t%s\n",p2->name,p2->sex,p2->city,p2->eip,p2->tel);
}
//显示所有记录
voidList()
{
TEL*p;
if(head->next==NULL)
{
printf("此通讯录中无记录!
\n");
return;
}
printf("姓名\t性别\t城市\t邮编\t电话\n");
for(p=head->next;p!
=NULL;p=p->next)
printf("%s\t%s\t%s\t%s\t%s\n",p->name,p->sex,p->city,p->tel,p->eip);
}
第四章系统测试
第五章设计心得
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
回顾起此次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,这毕竟独立做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。
第六章参考文献
[1]谢希仁.计算机网络(第五版)[M].北京:
电子工业出版社,2008年2月
[2]胡小强计算机网络[M]北京:
北京邮电大学出版社2005年1月
[3]姚大鹏C语言实践教程【M】:
中国水利水电出版社
致谢
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言