c语言实训——通讯录管理系统实训书

1. 课程实训目的和任务
1.1 课程实训目的
C语言是实践性很强的一门课程,通过对《C语言程序设计》课程的学习,学生虽已初步掌握了C语言的基本概念、结构化程序设计的基本方法,但实际编程和上机调试程序的能力还远远不足。故《C语言程序设计》课程实训计旨在巩固和加深学生对C语言课程中基本知识的理解和掌握;培养学生利用C语言进行基本软件设计的能力、书写程序设计说明文档的能力以及团队协作精神;加强学生自主学习、收集资料、动手编程和程序调试的能力,遇到不懂的互相请教,或请问老师。非常感谢老师对我们的帮助,这次实训使我受益匪浅,收获了很多。 通过C语言实训,让我加深了对C语言的了解,而不只是单单的在课本中学到的那些理论,平时乏味的课程,通过自己动手亲自编写,变的生动有趣,而在自己动手的过程中,出现的问题很多,比理论要难的多,当一个程序写完以后,经常会有很多错误而没法解决,为后续专业课程的学习打好基础。
1.2 课程实训任务

通讯录管理系统:
通讯录信息包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件,模拟手机通信录管理系统,实现对手机中的通信录进行管理。功能要求如下:
(1)查看功能:选择此功能时,列出下列三类选择:A 办公类 B 个人类 C 商务类 ,当选中某类时,显示出此类所有数据中的姓名和电话号码;
(2)增加功能:能录入新数据,当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号;
(3)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改;
(4)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号;
(5)用菜单进行管理;
(6)只有正确输入用户名密码才能使用此系统;
(7)所有内容能够保存到文件中。下次进入系统是从文件中读取原有信息。
人员组成:郑嘉琛,赵倩,黄灿。
2. 分析与设计
2.1 分析设计思路
根据题目要求,由于通信录信息是存放在文件中,所以应提供文件的输入、输出等操作;在程序中需要浏览个人的信息,应提供显示、查找、增加、删除等操作。
2.2 概要设计
在这里插入图片描述

具体功能:
1.查找:

在这里插入图片描述

2.增加联系人:

在这里插入图片描述

3.修改功能:

在这里插入图片描述
4.删除功能:

在这里插入图片描述

3. 测试数据及程序运行分析
在这里插入图片描述
程序开始请输入密码。
在这里插入图片描述

密码正确开始程序。
在这里插入图片描述
查询成员资料。
在这里插入图片描述
增加成员信息。
在这里插入图片描述
修改成员信息。
在这里插入图片描述
删除成员信息。
在这里插入图片描述
成员总名单查看。
4. 程序清单
加载函数
/加载所有记录,并且可以返回所有记录的个数/
{
FILE fp;
int i;
if((fp=fopen(“d:\person.txt”,“r”))==NULL)
{
printf("\nCannot open file\n");
return 0;
}
for(i=0;!feof(fp);i++)
fscanf(fp,"%s%s%s%s",&per[i].name,&per[i].phone,&per[i].classify,&per[i].email);
/把fp指针指向的文件中的ascii对应的字符转换成%s的类型赋值给后面的变量/
fclose(fp);
return(i);
}
主菜单函数
/菜单
/
void menu()
{
int n,w1;/变量n保存选择菜单数字,w判断输入的数字是否在功能菜单对应数字范围内/
do
{
puts("\t\t通讯录主界面\n\n");
puts("\t\t\t\t 1. 查询成员资料");
puts("\t\t\t\t 2. 增加一位成员资料");
puts("\t\t\t\t 3. 修改一位成员资料");
puts("\t\t\t\t 4. 删除一位成员资料");
puts("\t\t\t\t 5. 成员总名单查看");
puts("\t\t\t\t 6. 退出系统");
puts("\n\n\t\t
*******************************\n");
printf(“Choice your number(1-6):[ ]\b\b”);
scanf("%d",&n);
if(n<1||n>6)
{
w1=1;
getchar();
}
else w1=0;
}
while(w1==1);
switch(n)
{
case 1:chakan();break; /查看模块/
case 2:add();break; /增加模块/
case 3:xiugai();break; /修改模块/
case 4:shanchu();break; /删除模块/
case 5:xianshi();break; /显示模块/
case 6:exit(0); /退出/
}
}
5. 总结与体会
在初学C语言的一个学期后,我们进行了C语言实训阶段,尝试编写一个比较复杂的程序系统。在为期一周的时间中,我们同组的同学共同的感受是:C语言实训和平时上课所接触的程序是有很大不同的,所经受的考验和克服的困难是平时所无法比拟的。好在同组的搭档们精诚合作,分工明确,有问题共同解决,攻克了C语言实训的复杂程序。在这里,我作为其中的参与者,感触良多。
在这次实训中,我对c语言有了一个更深的了解认识,也对这个学期学的知识得到巩固,还尝试运行编程,每次运行程序成功,让我对下面的项目就充满信心。通过自己与同学合作编写程序,最终把最初的理论知识转化基本技能。一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基矗同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
在编写程序中,真的是细节决定成败,因为不管程序的语句是多是少,但是只要有一条语句或语法不正确,就不能使程序得到所需要的结果。没能够使自己编写出来的程序等到想要的结果,意味着这是一个不理想的程序,对于本次编写来说则是失败的。
课程安排的上机实验的目的可以概括为如下几个方面:
1.加深对课堂讲授内容的理解
课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。然而要使用c语言这个工具解决实际问题,又必须掌握它。通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。对于一些内容自己认为在课堂上听懂了,但上机实践中会发现原来(转载自第。)理解的偏差,这是由于大部分学生是初次接触程序设计,缺乏程序设计的实践所致。
学习c语言不能停留在学习它的语法规则,而是利用学到的知识编写c语言程序,解决实际问题。即把c语言作为工具,描述解决实际问题的步骤,由计算机帮助我们解题。只有通过上机才能检验自己是否掌握c语言、自己编写的程序是否能够正确地解题。
通过上机实验来验证自己编制的程序是否正确,恐怕是大多数同学在完成老师作业时的心态。但是在程序设计领域里这是一定要克服的传统的、错误的想法。因为在这种思想支配下,可能你会想办法去"掩盖"程序中的错误,而不是尽可能多地发现程序中存在的问题。自己编好程序上机调试运行时,可能有很多你想不到的情况发生,通过解决这些问题,可以逐步提高自己对c语言的理解和程序开发能力。
2.熟悉程序开发环境、学习计算机系统的操作方法
一个c语言程序从编辑、编译、连接到运行,都要在一定的外部操作环境下才能进行。所谓"环境"就是所用的计算机系统硬件、软件条件,只有学会使用这些环境,才能进行程序开发工作。通过上机实验,熟练地掌握c语言开发环境,为以后真正编写计算机程序解决实际问题打下基矗同时,在今后遇到其它开发环境时就会触类旁通,很快掌握新系统的使用。
3.学习上机调试程序
完成程序的编写,决不意味着万事大吉。你认为万无一失的程序,实际上机运行时可能不断出现麻烦。如编译程序检测出一大堆错误。有时程序本身不存在语法错误,也能够顺利运行,但是运行结果显然是错误的。开发环境所提供的编译系统无法发现这种程序逻辑错误,只能靠自己的上机经验分析判断错误所在。程序的调试是一个技巧性很强的工作,对于初学者来说,尽快掌握程序调试方法是非常重要的。有时候一个消耗你几个小时时间的小小错误,调试高手一眼就看出错误所在。
6. 参考文献
1、 谭浩强编著, C程序设计 1991年7月
2、 裘宗燕 著,从问题到程序科学出版社,北京大学出版社,1999年4月。
3、 刘瑞挺主编,计算机二级教程,南开大学出版社,1996年10月。
4、 陈朔鹰等编著,C语言程序设计基础教程,兵器工业出版社,1994年9月。
5、 姜仲秋等主编,C语言程序设计,南京大学出版社,1998年1月。

猜你喜欢

转载自blog.csdn.net/weixin_44517301/article/details/93214965