C语言通讯录设计.docx
- 文档编号:2440889
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:15
- 大小:80.79KB
C语言通讯录设计.docx
《C语言通讯录设计.docx》由会员分享,可在线阅读,更多相关《C语言通讯录设计.docx(15页珍藏版)》请在冰豆网上搜索。
C语言通讯录设计
系别:
通信工程
专业班级:
姓名:
__________
实训题目:
简易通讯录
实训日期:
指导老师:
实训目的
1.进一步巩固《C程序设计》所学的知识,特别加强数组,指针,结构体,文件数据类型的应用,培养结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,锻炼程序设计的能力,以及用C/C++语言解决实际问题的能力,为后续课程的学习打好基础。
2.此课程设计着眼于知识的运用,把平常学的知识运用到课程实践中来,本身就是考察我们知识运用能力。
熟悉运用MicrosoftVisualC++6.0,对我们所学的理论知识进一步的深化。
实训要求
1.设计一个使用的简易通讯录程序,具有添加,查询,存档,读取,删除功能。
由姓名,年龄,电话号码,通讯住址,电子邮箱组成。
姓名可以由字符和数字混合编码,电话号码可以由字符和数字组成。
实现功能:
(1)系统以菜单方式工作
(2)信息录入功能
(3)信息浏览功能
(4)信息查询功能
(5)信息修改功能
(6)读取和存档功能
(6)系统退出功能
2.熟练地掌握函数的定义,调用,说明的方法。
3.熟练掌握对文件的操作,通过fprintf和fscanf函数对文件进行读写操作。
实训注意事项
1.程序的整体组装和各个功能子函数的衔接。
2.和实参之间的传递,调用。
以及各部分功能之间的协调运行。
比如删除记录函数里删除记录后,再次调用显示记录函数时末尾记录始终与倒数第二条记录相同,就可以用将空值赋给最后一条记录来解决这一问题。
3.变量定义,定义位置不准确。
4.必须按照系统提示的操作来执行,不然的话就会使程序进入死循环。
如,如果我输入字符串的长度过长的话,程序就会终止运行了,并且还没有提示;后面的删除模块所用的方法是用空格替代,虽然可以删除,但达不到理想的效果。
5.要有规范化,标准化的代码编写习惯,良好的编写习惯。
6.注意语法错误,避免犯低级错误。
实训内容
我编写的是通讯录程序,这一程序要实现通讯录的记录添加,删除,查询,编辑,显示,保存,载入,退出等功能。
主函数的实现:
通过这一函数把所有子函数连接起来。
全面熟悉的掌握C语言程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程与实际结合起来,增强对不同问题运用和灵活选择的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范的编程思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下结实的基础。
实训简单操作步骤
实训简单操作步骤:
1)划分程序功能模块;
2)写程序实现算法;
3)画出程序流程图;
4)定义结构体,宏定义,菜单函数,输入函数,载入文件函数,编写主函数。
5)编译,连接和运行程序。
实训结果
实训结果:
成功完成了通讯录程序的编辑,编译,连接和运行。
实现了通讯录记录的添加,删除,查询,编辑,显示,保存,载入,退出等功能。
实训心得体会
经过一周的课程设计,我们学到了很多东西:
课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。
在这次课程设计中我遇到许多问题和麻烦,在程序调试过程中,得到很多同学的帮助,给我及时指出错误,提出许多宝贵意见。
在此对老师和同学们表示感谢!
经历这一周的锻炼,我也比较满意自己的表现。
在这过程中我查阅了很多书,学到了很多课堂上没有的东西。
很多知识我之前不知道的现在大部分都知道了,不过理解不够深透,,导致在这一周里碰了不少壁!
我觉得编程既是一项费时费力但也是有趣的。
说它费时费力是因为它繁琐,而有趣是因为我很享受一段段的小程序编成功之后的喜悦,苦尽甘来啊。
我觉得编程是一件快乐的差事,我想我今后会加把时间学习它,把它学好。
通过这次课程设计,使我们更加熟悉的掌握了C语言的运用。
帮助我们熟悉了更多C语言的功能,提高了我们的动手能力,学到了许多解决实际问题的宝贵经验.同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。
我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。
附录:
一、程序流程图
二、程序清单
程序源代码:
#include
#include
#include
typedefstruct
{
charscore;/*编号*/
charname[10];/*姓名*/
charnum[15];/*号码*/
charemail[20];/*邮箱*/
charage[8];/*年龄*/
charadds[20];/*住址*/
}Person;
Personpe[80];
//登陆函数
logon()
{printf("\n\n\n\t\t\t通讯录管理系统\n\n");
printf("\t\t\t制作人:
\n\n");
printf("\n\n\n\n\n\t\t\t2012年7月1日\n\n");
printf("\t\t\tC程序设计\n");
system("pause");
}
intmenu_select()
{charc;
logon();
do{
system("cls");
printf("\t\t*****通讯录*****\n");
printf("\t\t┌───────┐\n");
printf("\t\t│1.添加记录│\n");
printf("\t\t│2.显示记录│\n");
printf("\t\t│3.删除记录│\n");
printf("\t\t│4.查询记录│\n");
printf("\t\t│5.修改记录│\n");
printf("\t\t│6.保存记录│\n");
printf("\t\t│0.退出程序│\n");
printf("\t\t└───────┘\n");
printf("\t\t请您选择(0-6):
");
c=getchar();
}while(c<'0'||c>'6');
return(c-'0');
}
intInput(Personper[],intn)
{
inti=0;
charsign,x[10];
while(sign!
='n'&&sign!
='N')
{
printf("\t编号:
");
scanf("\t%d",&per[n+i].score);
printf("\t姓名:
");
scanf("\t%s",per[n+i].name);
printf("\t年龄:
");
scanf("\t%s",per[n+i].age);
printf("\t电话号码:
");
scanf("\t%s",per[n+i].num);
printf("\t通讯住址:
");
scanf("\t%s",per[n+i].adds);
printf("\t电子邮箱:
");
scanf("\t%s",per[n+i].email);
gets(x);
printf("\n\t是否继续添加?
(Y/N)");
scanf("\t%c",&sign);
i++;
}
return(n+i);
}
voidDisplay(Personper[],intn)
{
inti;
printf("----------------------------------------------------------------------\n");/*格式*/
printf("编号姓名年龄电话号码通讯地址电子邮箱\n");
printf("----------------------------------------------------------------------\n");
for(i=1;i { printf("%-5d%-8s%-6s%-13s%-15s%-15s\n",per[i-1].score,per[i-1].name,per[i-1].age,per[i-1].num,per[i-1].adds,per[i-1].email); if(i>1&&i%10==0) { printf("\t-----------------------------------\n"); printf("\t"); system("pause"); printf("\t-----------------------------------\n"); } } printf("----------------------------------------------------------------------\n"); system("pause"); } intDelete_a_record(Personper[],intn) { chars[20]; inti=0,j; printf("\t请输入想删除记录中的名字: "); scanf("%s",s); while(strcmp(per[i].name,s)! =0&&i if(i==n) { printf("\t通讯录中没有此人! \n"); return(n); } for(j=i;j { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf("\t\t\t已经成功删除! \n"); return(n-1); } voidQuery_a_record(Personper[],intn) { intm; printf("\t\n请选择查询方式: \n"); printf("\t┌──────┐\n"); printf("\t│1------姓名│\n"); printf("\t│2------电话│\n"); printf("\t│3------地址│\n"); printf("\t│4------返回│\n"); printf("\t└──────┘\n"); printf("请选择: "); scanf("%d",&m); while(m! =1&&m! =2&&m! =3&&m! =4) { printf("输入错误,请重新选择: "); scanf("%d",&m); } if(m==1) { chars[20]; inti=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 通讯录 设计