C语言程序课设通讯录.docx

上传人:牧羊曲112 文档编号:3155376 上传时间:2023-03-11 格式:DOCX 页数:11 大小:40.79KB
返回 下载 相关 举报
C语言程序课设通讯录.docx_第1页
第1页 / 共11页
C语言程序课设通讯录.docx_第2页
第2页 / 共11页
C语言程序课设通讯录.docx_第3页
第3页 / 共11页
C语言程序课设通讯录.docx_第4页
第4页 / 共11页
C语言程序课设通讯录.docx_第5页
第5页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言程序课设通讯录.docx》由会员分享,可在线阅读,更多相关《C语言程序课设通讯录.docx(11页珍藏版)》请在三一办公上搜索。

1、C语言程序课设通讯录C语言程序课设 通讯录 1 问题描述 通讯录是人们日常生活中经常要用到的通讯管理工具,它以文件的方式保存用户录入的数据,并提供查询的功能供用户查询和使用通讯录信息。在本节中我们将介绍一个用C语言实现的简易通讯录管理系统,它支持基本的录入、删除、查找、修改和文件读写功能。程序中涉及大量基本块和指针的操作,结构体和共用体数据结构的定义、使用,以及文件的读写、定位等。 2 功能分析 通讯录要求实现最基本的功能,包括录入、删除、查找和修改,为此需要首先定义记录项的格式,其基本属性包括姓名、性别、联系电话、电子邮件等。作为简易通讯录,目前仅考虑英文姓名、地址数据输入,不支持中文。 功

2、能: 1、录入:操作添加一条新的记录项; 2、删除:删除一条已经存在的记录项; 3、修改:改变记录项的一个或多个属性,并用新的记录项覆盖已经存在的记录项; 4、查找:根据用户输入的属性值查找符合条件的记录项。依据某一属性是否可以唯一地确定一条记录项,可以将属性区分为主属性和非主属性。对非主属性上的查找可能返回多条记录项。为了区分,系统可以在数据录入时为每个记录项自动分配一个记录编号,这样就可以实现所有项的精确查找。 通讯录数据以文件形式存储在磁盘上,因此在程序运行中需要对文件进行读取操作。编程人员可以根据实际需要自己定义文件的存储格式,在数据读写时必须精确定位,以免破坏文件的正确性。除此之外,

3、程序中还要不停处理用户的输入,对输入数据的容错性进行检查,可以保证通讯录数据的合法性,避免恶意和非恶意的操作对用户数据的破坏。 3 开发工具的介绍 本软件采用开发工具为C语言。 C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,且具有强大的功能。许多著名的系统软件,如DBASE 都是由C 语言编写的。用C 语言加上一些汇编语言子程序,就更能显示C 语言的优势了,像PC- DOS 、WORDSTAR等就是用这种方法编写的。 归纳起来C 语言

4、具有下列特点: 1. C是中级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来,可以像汇编语言一样对位、字节和地址进行操作。 2.C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。另外C语言也具有强大的图形功能,支持多种显示器和驱动器。而且计算功能、逻辑判断功能也比较强大。 4. C语言适用范围大。适合于多种操作系统,多种机型。 C语言对编

5、写需要硬件进行操作的场合,明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。 C语言具有绘图能力强,可移植性,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。 5.C语言文件由数据序列组成,可以构成二进制文件或文本文件。 4. 设计 4.1 程序总体结构 /*请完成小组的设计内容*/ Main Liulan Main Add Del Change Chaxun 4.2界面设计 printf(-)(-)(-)(-)(-)n); printf(*_* *_* n); printf(+_+) 联系人 (+_+)n); printf(*_* *_* n); prin

6、tf(=_=)(=_=)(=_=)(=_=)(=_=)nn); printf(* 1、浏览 *n); printf(* 2、插入 *n); printf(* 3、删除 *n); printf(* 4、修改 *n); printf(* 5、查询 *n); printf(* 0、退出 *nn); 4.3重要数据的数据结构设计 Void add 开始 sqlist-len+ 输入n=sqlist-len 输入姓名 性别 电话 电子邮箱 输出姓名 性别 电话 电子邮箱 结束 Void Liulan 开始 输入 i=0 Y N ilen 输出姓名 性别 电话 电子邮箱 i+ Void change 开始

7、 输入要修改的联系人姓名 输入i=0 输出 No Found N ilen i+ Y N strcmp(sqlist-recordsi.name,name)=0 Y 选择要修改的内容 1姓名2性别3电子邮箱4电话号码 case1 case2 case3 case4 输入修改后的姓名 输入修改后的性别 输入修改后的电子邮箱 输入修改后的电话号码 输出修改后的姓名 输出修改后的性别 输出修改后的电子邮箱 输出修改后的电话号码 结束 i+ Void chaxun N 开始 输入查询姓名 I=0 ilen N 输出 No Found Y strcmp(sqlist-recordsi.name,name

8、)=0 Y 输出电话 结束 void del i+ N 开始 输入查询姓名 I=0 ilen N 输出 No Found Y strcmp(sqlist-recordsi.name,name)=0 Y J=i Jlen Y sqlist-recordsj=sqlist-recordsj+1 sqlist-len- 结束 4.4. 函数设计 函数功能列表 函数名 main-主函数 add-输入函数 主要作用 若正确则显示主菜单,进入下面操作;若错误可选择重新输入或退出。 输入要添加的学生人数,之后可输入对应人数的学生的信息; 操作完可返回主菜单。 liulan-输出全部可输出全部学生的信息; 操

9、作完可返主回菜单。 函数 chaxun-查询函数 change-修改函数 del-删除函数 通过一个菜单可选择输入单个学号以查询一个学生的信息,输入专业名查询一班学生的信息,输入学院名查询一院学生的信息。 操作完可返回主菜单。 通过输入一个学生学号以修改其信息; 操作完可返回主菜单。 通过输入一个学生学号以删除其信息; 操作完可返回主菜单 程序运行总体视图 5. 源程序 #include stdio.h #include string.h #define MAXNUM 200 #define TRUE 1 #define FALSE 0 typedef struct char name20;

10、char email20; char gender20; char tel20; TelRecord; typedef struct TelRecord recordsMAXNUM; int len; SqTelPad; void Add(SqTelPad* sqlist); void Del(SqTelPad* sqlist); void liulan(SqTelPad* sqlist); void InitSqTelPad(SqTelPad* sqlist); void Change(SqTelPad* sqlist); void Chaxun(SqTelPad* sqlist); voi

11、d main char selectitem5; int refreshflag; SqTelPad mytelpad; refreshflag = FALSE; InitSqTelPad(&mytelpad); do printf(-)(-)(-)(-)(-)n); printf(*_* *_* n); printf(+_+) 联系人 (+_+)n); printf(*_* *_* n); printf(=_=)(=_=)(=_=)(=_=)(=_=)nn); printf(* 1、浏览 *n); printf(* 2、插入 *n); printf(* 3、删除 *n); printf(*

12、4、修改 *n); printf(* 5、查询 *n); printf(* 0、退出 *nn); scanf(%s,selectitem); while(selectitem0) switch(selectitem0) case 2: Add(&mytelpad); refreshflag = TRUE; break; case 3: Del(&mytelpad); refreshflag = TRUE; break; case 1: liulan(&mytelpad); refreshflag = TRUE; break; case4: Change(&mytelpad); refreshf

13、lag = TRUE; break; case5: Chaxun(&mytelpad); refreshflag = TRUE; break; case 0: return; if(refreshflag=TRUE) refreshflag = FALSE; break; else scanf(%s,selectitem); while(1);/do void Add(SqTelPad *sqlist) int n; sqlist-len+; n=sqlist-len; printf(输入要加入的联系人的信息:姓名 性别 电话号 电子邮箱n); scanf(%s%s%s%s,sqlist-re

14、cordsn.name,sqlist-recordsn.gender,sqlist-recordsn.tel,sqlist-recordsn.email); void Del(SqTelPad *sqlist) int i,j; char name20; printf(请输入被删除的联系人的姓名:n); scanf(%s,name); i=j=0; for(i=0;ilen;i+) if(strcmp(sqlist-recordsi.name,name)=0)break; if(isqlist-len) printf(not foundn); return; for(j=i;jlen;j+)

15、sqlist-recordsj=sqlist-recordsj+1; sqlist-len-; void liulan(SqTelPad *sqlist) int i; for(i=0;ilen;i+) printf(%s,%s,%s,%sn,sqlist-recordsi.name,sqlist-recordsi.gender,sqlist-recordsi.tel,sqlist-recordsi.email); void InitSqTelPad (SqTelPad *sqlist) sqlist-len=-1; void Change(SqTelPad *sqlist) int i; c

16、har name20; printf(输入要修改的联系人的姓名:n); scanf(%s,name); i=0; for(i=0;ilen;i+) if(strcmp(sqlist-recordsi.name,name)=0)break; if(isqlist-len) printf(not foundn); return; printf(请选择要修改的内容:1姓名,2性别,3电子邮箱,4电话号码n); char sc2; scanf(%s,&sc2); switch(sc2) case1: printf(请输入修改后的信息n); scanf(%s,sqlist-recordsi.name);

17、 break; case2: printf(请输入修改后的信息n); scanf(%s,sqlist-recordsi.gender); break; case3: printf(请输入修改后的信息n); scanf(%s,sqlist-recordsi.email); break; case4: printf(请输入修改后的信息n); scanf(%s,sqlist-recordsi.tel); break; void Chaxun (SqTelPad *sqlist) int i; char name20; printf(请输入要查询电话号码的联系人的名字:n); scanf(%s,nam

18、e); i=0; for(i=0;ilen;i+) if(strcmp(sqlist-recordsi.name,name)=0)break; if(isqlist-len) printf(not foundn); return; else printf(%sn,sqlist-recordsi.tel); 6. 测试 插入 浏览 修改 查询 删除 结束 总 结 遇到问题及解决方法: 一开始没有运用#include”string.h”,运用了字符串,因此需要在开头加入,还有char型在判断时要用“=”,很多;,和判断条件有问题,break语句的运用,因为用的是字符,所以case后要加; 通过不断

19、调试与修改改正了,当然还有很多其他的问题,这里非常感谢老师和同学的帮助,为我们讲解和改正很多问题,并为我们介绍结构体的运用,谢谢大家。 收获: 通过这次学习,感受到了c语言的伟大魅力,同时,在编写与修改的过程中了解了switch语句还有循环语句的运用,另外,我们也感受到了动手与实践还有积极询问的重要性,当一次次调试不行的时候,真的很想很想不管了,甚至换一个课题,但是成功后的成就感也是从未有过的,过程中的苦与乐都是很美好的回忆,当然在过程中也提高了我们的团队合作意识,当然可能还有很多不足的地方,相信我们还会尽力使通讯录改的更方便美观的,真的很珍惜这次活动,也谢谢李晓光老师和朋友耐心的帮助。 人员分工: 源程序编写:聂彤彤 源程序调试与修改:刘莹莹 流程图:刘莹莹,聂彤彤 策划书:聂彤彤

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号