如何用c程序编写一个通讯录管理系统c语言,并包含下列信息,十分紧急,此题只要高手,不要杂货,谢谢

小J解决问题&
求一个通讯录管理系统 C语言编写的
最好有点注释。
JE技校网友
更新时间: 15:26
JE技校网推荐内容
 酒店管理,是全球十大热门行业之一,高级酒店管理人才在全球都是一直很紧缺的。近年来,在国际人才市场上,酒店管理人才出现了供不应求的局面。
  目前,全世界已有17个国际酒店管理集团在上海投资或管理星级酒店,酒店行业在不断扩充,对人才的需求也不断增加,每年都需要数以千计的国际化酒店管理人才... ...
 主要学习会展的基础理论与基本技能,注重外语应用能力特别是口语能力的培养,强化计算机应用能力的教学,培养学生从事各类会展的市场调研、策划、组织管理和运作能力以及展台设计能力。... ...
物业是多元化的,根据物业公司的资质等级可以分别进行管理。 物业又包含两大类: 1、居住性物业; 居住性物业还有很多项,包括:小区,大厦,写字楼等等。 2、非居住性物业。 非居住性物业也还有很多项,包括:商场,工厂,超市等等。... ...
这一专业的设置是为了培养在社会主义市场经济条件下从事工商业及其他各类企业管理方面工作的专门人才。经过专业学习,成绩合格者应系统地掌握现代管理理论、有广泛的知识。熟悉各类管理的基本技能和科学方法,能够胜任企业管理工作。
一、工商企业管理专业的培养目标
为了满足工商企业管理专业培养目标的要求,选学...... ...
找不到你想要的专业吗?
C语言课程设计报告-------学生成绩简单管理程序 一、系统菜单的主要功能 (1)输入若干条记录 (2)显示所有记录 (3)按学号排序 (4)插入一条记录 (5)按姓名查找,删除一条记录 (6)查找并显示一条记录 (7)输出统计信息 (新增) (8)从正文中添加数据到结构体数组中 (9)将所有数据写入文件中 (0)退出程序 二、题目分析 该题主要考察学生对结构体,指针,文件的操作,以及C语言算法...
我不 晓得?...
虽然我不知道,不过帮楼主顶一个,希望楼主你成功。...
C语言是Combined Language(组合语言)的中英混合简称。是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。...
招生信息与资讯
微信扫一扫咨询技校问题
网站版权与免责声明:
①由于各方面不确定的因素,有可能原文内容调整与变化,本网所提供的相关信息请网友以权威部门公布的正式信息为准.
②本站学校简介、学校招生信息的版权属于各个学校!
本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请联系我们(邮件)
&&本站QQ官方微博:@jixiaoJE &
&Copyright &2016&&www.qqje.com&&All Rights Reserved.
JE技校网 , 中国技校品牌网!数据结构课程设计 - 通讯录管理系统
一、 问题描述及要求
设计并实现一个简单通讯录管理。要求:实现通讯录的建立、通讯者的删除、查询,以及通讯录的保存。
二、 需求分析
本系统为简单的通讯录管理系统,运行系统时,将从文件中读取已有的数据内容记录在内存中,使用者可以对通讯录进行添加、删除、修改、浏览、查找等操作,每进行一项操作后将内存中的数据写入到文件中,同时并记录操作者的操作内容和当地时间并记录到当前文件夹下的Log.dat文件中。
三、总体设计
1. 程序中用到的所有抽象数据类型定义
数据对象:
D={name,number,add,email,remark|均为string类型}
数据关系:
R={ name,number,add,email,remark}
基本运算:
PeopleData(){}:构造函数
~PeopleData(){}:析构函数
void SetData(string n, string num, string a, string e, string r):对对象的每项私有成员变量变量进行赋值
void SetName(string n):对私有成员变量name变量赋值
void SetNumber(string num):对私有成员变量number变量赋值
void SetAdd(string a):对私有成员变量add变量赋值
void SetEmail(string e):对私有成员变量email变量赋值
void SetRemark(string r):对私有成员变量remark变量赋值
string GetName():返回私有成员变量name值
string GetNumber():返回私有成员变量number值
string GetAdd():返回私有成员变量add值
string GetEmail():返回私有成员变量email值
string GetRemark():返回私有成员变量remark值
数据对象:
D={list | Data类}
数据关系:
基本运算:
Function(){}:构造函数
~Function():析构函数
void AddData(Data &):增加一个联系人数据
void SearchData(Data &):查找联系人
int LocateData(Data &, string, int):按姓名或电话号码定位联系人,返回数据的地址
void DeleteData(Data &):删除一个联系人
void SaveData(Data &):保存内存中的数据到文件中
void SearchName(Data &):按姓名查找联系人
void SearchNumber(Data &):按电话号码查找联系人
void OpenFile(Data &):从文件输入数据,初始化
void ShowData(Data &):显示所有联系人的数据
void ShowInfo(Data &, int, int):显示指定联系人数据
void ReviseData(Data &):更改联系人数据
void ReviseConcreteData(Data &, int, int):更改联系人的指定数据
bool Old2New(Data &, int, int, string):显示原联系人信息和新联系人信息,判断是否修改
void About():关于界面
void MenuShow(int):菜单显示
void HomePage():CMD窗体控制
string GetTime():获得系统时间,记录日志时使用
string int2str(int):将int类型数据转换成为string类型数据
void SaveLog(int):将操作日志保存到文件中
2.主程序流程图
3. 各程序模块之间的层次(调用)关系
四、详细设计
本系统由5个文件组成,其中,2个cpp资源文件,3个h头文件。
一共有3个类,1个结构体,它们的关系如图所示。
1、类和结构体介绍:
联系人类(PeopleData)记录了联系人的基本信息,该类的设计由图所示,类的介绍如表所示。
功能类vc3Ryb25nPqOoRnVuY3Rpb26jqczhuanBy82o0bbCvLncwO3Ptc2zuPe5psTctcTKtc/Wt73KvaOsuMPA4NPJsrvNrLXEuq/K/dfps8mjrL75zqpQdWJsaQzaGjPGJyIC8+DQq4w8DgtcS96cncyOex7cv5yr6hozwvcD4NCjx0YWJsZT4NCjx0aGVhZD4NCgk8dHI+DQoJPHRoPg0KCQmx5MG/w/uzxjwvdGg+DQoJPHRoIGFsaWduPQ=="left">
功能类(Function)提供了通讯录管理系统各功能的实现方式,该类由不同的函数组成,均为Public型。
该类的介绍如表所示。
AddData(Data &)
添加一个联系人数据
SearchData(Data &)
查找联系人
LocateData(Data &, string, int)
按姓名或电话号码定位联系人,返回数据的地址
DeleteData(Data &)
删除一个联系人
SaveData(Data &)
保存内存中的数据到文件中
SearchName(Data &)
按姓名查找联系人
SearchNumber(Data &)
按电话号码查找联系人
OpenFile(Data &)
从文件输入数据,初始化
ShowData(Data &)
显示所有联系人的数据
ShowInfo(Data &, int, int)
显示指定联系人数据
ReviseData(Data &)
更改联系人数据
ReviseConcreteData(Data &, int, int)
更改联系人的指定数据
Old2New(Data &, int, int, string)
显示原联系人信息和新联系人信息,判断是否修改
MenuShow(int)
HomePage()
CMD窗体控制
获得系统时间,记录日志时使用
int2str(int)
将int类型数据转换成为string类型数据
SaveLog(int)
将操作日志保存到文件中
数据结构体(Data)记录了联系人线性表的数据和长度,它的定义如下:
struct Data
PeopleData user[MaxSize];
int length = 0;
类和结构体之间的关系:
定义了PeopleData类之后,在Data结构体中声明PeopleData user[MaxSize]。
定义Function类中,声明结构体对象Data list。
定义了Function类之后,在Main类定义中声明Main类对象Function f。
定义了Main类之后,声明全局类对象Main a。
2、各功能模块实现函数
本系统一共有添加、删除、查找、浏览、修改5个功能模块。
OpenFile(Data &l)
引用数据表
name,number,add,email,remark
联系人各个变量信息
从文件流输入
Void AddData(Data &l)
引用数据表
n,num,a,e,r
联系人各个变量信息
SearchData(Data &l)
引用数据表
LocateData(Data &l,string n,int s)
引用数据表
选择查找方式
ShowInfo(Data &l, int i,int s)
引用数据表
联系人数组地址
选择查找方式
DeleteData(Data &l)
引用数据表
删除的联系人姓名
确认删除指令
ShowData(Data &l)
引用数据表
ReviseData(Data &l)
引用数据表
修改的联系人姓名
选择修改内容
ReviseConcreteData(Data &l,int c,int s)
引用数据表
选择修改内容
联系人数组地址
Old2New(Data &l, int c,int s, string n)
引用数据表
选择修改内容
联系人数组地址
新修改的内容
确认修改指令
day, mon, year
记录日,月,年
hour, min, sec
记录小时,分钟,秒
时间字符串
int2str(int num)
待转换数值
转换后的字符串
SaveLog(int n)
判断操作状态
将状态值进行判断
向文件流中输入
SaveData(Data &l)
引用数据表
向文件流中输入
MenuShow(int c)
3、关键算法分析
查找模块有2中方式进行查找,输入指令1时选择按姓名进行查找,输入指令2时按电话号码进行查找,无论是按姓名查找还是按电话号码查找,都是把当前输入的字符串传递到LocateData()函数中,进行顺序查找,若找到匹配的值,则返回该值在user[]中的逻辑序号,若查找失败,则返回-1。
修改模块允许操作者对联系人的数据进行修改操作,可以修改联系人的姓名、电话号码、地址、邮箱和备注。进行修改操作时,先输入修改联系人的姓名,进行查找操作,若查找失败则退出该模块,若成功则让操作者输入修改内容的指令,同时将联系人数据的原信息保存在temp变量里,调用Old2New()函数,将原信息和新信息进同时显示,方便操作者进行对比操作,最后让操作者确认是否修改。
3.3日志记录
日志记录记录了操作者在本系统的所有操作。
本模块使用ctime头文件,使用GetTime()函数调用系统时间并用int2str()函数将int型数据转化成string数据类型。当完成每一项操作时,则当前时间和该操作的名称(修改、删除等)记录在当前文件夹的Log.dat文件中。
本系统的数据结构本质上线性表的操作,所以进行删除操作时,先进行查找操作,若查找成功则将当前后面的每一项数据表向前移动一位,直到n项数据表移动到n-1位置时则删除成功。
4、程序运行截图
4.7错误界面
4.8日志记录
5.部分源代码
Function.h
struct Data
PeopleData user[MaxSize];
int length = 0;
class Function
Function(){}
~Function();
void AddData(Data &);
void SearchData(Data &);
int LocateData(Data &, string, int);
void DeleteData(Data &);
void SaveData(Data &);
void SearchName(Data &);
void SearchNumber(Data &);
void OpenFile(Data &);
void ShowData(Data &);
void ShowInfo(Data &, int, int);
void ReviseData(Data &);
void ReviseConcreteData(Data &, int, int);
bool Old2New(Data &, int, int, string);
void About();
void MenuShow(int);
void HomePage();
string GetTime();
string int2str(int);
void SaveLog(int);
class Main
PeopleData.h
class PeopleData
PeopleData(){}
~PeopleData(){}
void SetData(string n, string num, string a, string e, string r);
void SetName(string n){ name = }
void SetNumber(string num){ number = }
void SetAdd(string a){ add = }
void SetEmail(string e){ email = }
void SetRemark(string r){ remark = }
string GetName(){ }
string GetNumber(){ }
string GetAdd(){ }
string GetEmail(){ }
string GetRemark(){ };
Main::Main()
f.OpenFile(f.list);
f.HomePage();
f.MenuShow(0);
cout && &请输入操作指令:&;
switch (choice)
case '0':exit(0); f.SaveData(f.list);
case '1':f.AddData(f.list); f.SaveData(f.list); f.SaveLog(1);
case '2':f.DeleteData(f.list); f.SaveData(f.list); f.SaveLog(2);
case '3':f.SearchData(f.list); f.SaveData(f.list); f.SaveLog(3);
case '4':f.ShowData(f.list); f.SaveData(f.list); f.SaveLog(4);
case '5':f.ReviseData(f.list); f.SaveData(f.list); f.SaveLog(5);
case 'i':f.About();
cerr && &输入错误,请重新输入。& &&
system(&PAUSE&);
void Function::About()
int H = 3;
for (y = -4; y &= 0; y += 0.3)
for (x = -4; x &= 4; x += 0.2)
if (fabs(sqrt(x*x + y*y) - H*sin(2 * atan(y / x))) &= 1 || fabs(sqrt(x*x + y*y) - H*sin(2 * atan(-y / x))) &= 1)
cout && &*&;
cout && & &;
for (y = -1; y &= 0; y += 0.2)
for (x = -4; x &= 4; x += 0.2)
if (fabs(y) - 0.65*x*x &= 0.2)
cout && &*&;
cout && & &;
通讯录& && endl && &
版本:5.0& && endl &&;
system(&PAUSE&);跪求C语言大神!!第2题 通讯录 [题目描述] 设计一个通讯录管理系统,该程序应该具有下列功能:_百度知道
跪求C语言大神!!第2题 通讯录 [题目描述] 设计一个通讯录管理系统,该程序应该具有下列功能:
[题目描述]
设计一个通讯录管理系统,该程序应该具有下列功能:
(1)设计一个功能显示菜单,并有选择提示。
(2)增加联系人:能够实现新增联系人。当需要一次加入多个联系人信息时,最好不要重复选择此功能,应该是在增加联系人之前,就输入一次增加的联...
我有更好的答案
!第2题 通讯录 [题目
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。论文写作技巧
个人通讯录管理系统C语言课程设计报告页数:36字数:10250摘要本次课程设计的题目为个人通讯录管理系统,要求将程序中所输入的联系人姓名、电话和地址信息这三个数据以文本方式保存在磁盘中,并且能够对所储存的联系人信息进行显示、查询、修改、删除等功能。我编写的程序从整体上看可分为两个部分,一部分为文件的建立、读取和保存,另一部分为通讯录功能的实现。在文件部分,我通过readfile()函数和writefile()函数从而实现了对磁盘上数据的进行写和读,通过刚开始的界面提示可以知道文件是否建立,以免丢失数据,我还为用户设计了保存退出和不保存退出两大功能供用户做选择。在模块功能实现部分,通过scanf从键盘上输入的数字放到switch() case 循环中来实现调用zengjia()、shanchu()、xiugai()、chazhao()等十五个函数来实现“添加”、“查询和显示”、“修改”、“删除”等不同功能。关键字:文件、数组、循环、函数 重庆科技学院课程设计任务书设计题目:个人通讯录管理系统学生姓名 蒋洪山课程名称 C语言程序设计课程设计 专业班级 电自专2011地&&&&点 I515 起止时间 日-12月28日设计内容及要求 建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。设计参数 (1)系统分析、设计正确。(2)结果以图表方式显示。(3)界面简洁、美观。(4)报告格式规范。进度要求 周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现周五:撰写报告,进行答辩参考资料 [1]何钦铭 颜晖.《C语言程序设计》.高等教育出版社.2008年[2]谭浩强 张基温.《C语言程序设计教程》.高等教育出版社.2006年其它 说明 1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。2.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任:&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&指导教师:雷亮&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 日 目录第一章&& 软件需求分析说明书 11.1设计软件的目的分析 11.2软件的界面要求 11.3详细的功能分析 11.3.1创建文件 11.3.2 添加联系人 11.3.3显示和查询联系人 11.3.4 删除联系人 11.3.5 修改联系人 11.3.6 保存退出与不保存退出 11.4设计要求分析 21.5软件的数据结构分析 21.5.1 软件的函数 21.5.2 文件的调用和保存 2第二章&& 系统分析与设计 32.1 软件界面设计 32.2 软件的数据(结构)设计 32.2.1 软件的文件功能 32.2.2 文件内部的数据格式 32.3 软件的模块图 32.4 软件的流程图 42.4.1 添加联系人程序流程图 42.4.2 显示和查找联系人程序流程图 52.4.3 删除联系人流程图 52.4.4 修改联系人流程图 6第三章&& 软件的实现 83.1&&函数声明 83.2&&zhucaidan()主菜单函数 83.3&&main()主函数 93.4&&readfile()读取文件函数 93.5&&writefile()联系人写入文件函数 103.6&&zengjia()增加联系人函数 113.7&&shanchu()删除函数主界面 113.8&&xianshi()显示和查询函数 123.9&&xianshi()显示所有人函数 133.10 chazhao_xingming()姓名查询函数 133.11 chazhao_dianhua()按号码查询函数 143.12 shanchu_dange()删除单个联系人函数 153.13 shanchu_quanbu()删除所有联系人函数 153.14 shanchu_xingming()按姓名删除联系人函数 163.15 shanchu_dianhua()按电话号码删除函数 173.16 xiugai()修改函数主体界面 183.17 xiugai_xingming()按姓名修改 193.18 xiugai_dianhua()按号码修改联系人函数 20第四章&& 软件测试 224.1 文件导入界面 224.2 软件的主界面 224.3 添加联系人模块 224.4 显示和查找联系人界面 234.4.1主界面 234.4.2无联系人的显示界面 234.4.3有联系人的显示界面 244.4.4按姓名查找 244.4.5 按电话号码查找 244.5 删除联系人模块 254.5.1删除联系人主界面 254.5.2没有对应联系人的删除界面 254.5.3按姓名删除 254.5.4按电话号码删除 264.6 修改联系人模块 264.6.1修改联系人主菜单 264.6.2 按姓名修改 274.6.3按电话修改 274.7 退出 284.7.1 保存退出 284.7.2 不保存退出 28第五章 总结与体会 29致谢 30参考文献 31 第一章&& 软件需求分析说明书1.1设计软件的目的分析本软件要求用C语言建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信录进行显示、查找、添加、修改及删除。1.2软件的界面要求本软件要求软件的界面简洁、美观,让人一目了然,使用起来方便。于是我设计的软件首先提示您是否有通讯录文件存在,如没有文件,则自动建立一个,如有文件存在,则提示导入成功,让人直观明白的了解文件的情况。按任意键便可以进入主菜单,在主菜单上显示出软件的功能,通过输入数字0到5来进行选择便可以实现你所需要的功能,每个模块进入模块内部实现软件的具体功能,实现您所需要的功能。1.3详细的功能分析该系统用下面六个功能模块编写,每个模块执行不同的功能,体现了模块化设计的思想。下面六个模块都是利用C语言文件,向文件中添加数据、修改数据、查询数据、删除数据和保存数据。1.3.1创建文件用fopen()建立一个文本文件,然后向其中输入数据(例如,向文件中输入“姓名”,“地址”,“号码”等),并对文件进行命名。1.3.2 添加联系人通过键盘输入通讯录人员的姓名、电话号码、地址信息便可实现将信息添加到通讯录文件内,添加完毕后,系统会自动询问你是否继续添加,如你想继续添加,再通过键盘输入通讯录人员的姓名、电话号码、地址信息即可实现继续添加。1.3.3显示和查询联系人通过前面第一个模块打得录入我们便可以执行第二个模块,通过第二个模块我们可以进行对联系人进行显示和查找。我通过调用showall()函数来进行显示所有的联系人,showall()函数可以实现逐个显示联系人。对于查找联系人我则采用了search()函数来进行查找联系人,我提供了两种查找方法:①按照姓名查找;②按照电话号码查找。1.3.4 删除联系人我调用deletecd()函数来实现删除功能,同样我也提供给了两种删除方法:①全部删除;②单个删除。其中全部删除会提示是否全部删除,以免误删。1.3.5 修改联系人我调用modify()函数来实现修改功能,我同样提供了两种修改方法:①对姓名进行修改;②对电话号码进行修改。修改完毕后会提示是否据需修改。1.3.6 保存退出与不保存退出你还在为误添加、误修改、误删除后悔吗?还想回到以前的数据吗?这个担忧在我的程序中您就不必担心了,我为程序提供了两种退出方式:①保存退出;②不保存退出。完全解决您的后顾之忧。1.4设计要求分析①进一步掌握利用C语言进行程序设计的能力;②进一步理解和运用结构化程序设计的思想和方法;③初步掌握开发一个小型实用系统的基本方法;④学会调试一个较长程序的基本方法;⑤学会利用流程图表示算法。⑥根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。1.5软件的数据结构分析1.5.1 软件的函数本软件采用了不同的函数来进行定义不同模块的功能,通过调用不同的函数,可以实现不同的功能。软件中采用了五个主体函数来实现添加联系人,修改联系人,查找联系人,显示联系人,删除联系人的功能。1.5.2 文件的调用和保存本软件通过文本方式对用户所录入的信息进行保存。通过保存下来的文本,您可以在电脑磁盘中找到您存入文件的位置,打开后便可以找到您所录入的通讯录信息。 第二章&& 系统分析与设计2.1 软件界面设计画出软件全部输入、输出数据的界面,并对每一个界面进行详细的操作说明2.2 软件的数据(结构)设计 软件调用不同的函数来实现不同的功能,通过反复调用函数来实现反复输入。代码中通过scanf从键盘上输入不同的数字选项,然后通过swtich case()来实现对不同函数的调用。2.2.1 软件的文件功能软件采用了文本文档进行存取,我在C盘建立了一个txl文本文档用于存取输入的信息,打开C盘后就能直接看到您录入的信息,很方便和快捷。2.2.2 文件内部的数据格式我采用了readfile()函数来读取文件,使用if((fp=fopen("c:\\通讯录.txt","r"))==NULL)以只读方式打开判定文件是否为空,如果不空,则使用fseek(fp,0,2); 文件位置指针移动到文件末尾以来进行写入数据。使用writefile()将联系人写入文件,用if ((fp=fopen("c:\\通讯录.txt","w"))==NULL)以只写的方式来对判定文件是否为空,如果不为空,则从键盘上录入所需要录入的信息存到相应的文件中。最后通过fclose(fp)来关闭文件,回到主界面上等待用户输入新的操作。2.3 软件的模块图软件的模块图很直观的反映出软件能够实现的功能,由下面的模块图可以很直观的看出我设计的通讯录软件能够方便的实现添加联系人、显示联系人、删除联系人、修改联系人功能,另外,我设计的软件还实现了保存退出和不保存退出功能,这个功能很独特。①在增加联系人部分,我用了三个函数调用来分别实现录入联系人姓名、号码、地址。②在显示和查询联系人部分,我也有三个模块: 逐个显示联系人,按姓名查询,按号码查询。③在删除联系人部分,我设计了三个界面,可以实现全部删除,单个删除,回到主菜单。④在修改联系人模块,我也设计了三个界面,按姓名修改,按号码修改,回到主菜单。⑤最后我设计了保存退出和不保存退出,针对那些修改后却又后悔修改的用户需要。 图2.1软件的模块图2.4 软件的流程图由于程序流程图较为复杂,我采用了分块画出程序流程图2.4.1 添加联系人程序流程图由添加联系人的程序流程图可以看出,在添加联系人板块上,我设计了三种信息,输入姓名,输入电话和输入地址,输入完成后会提示是否继续输入,如果输入y后则可以继续输入,输入n后返回主菜单。
您可能需要的
[] [] [] [] [] [] [] []用c语言程序设计一个学生通讯录系统_百度知道
用c语言程序设计一个学生通讯录系统
问题描述:
通讯录管理系统主要管理用户通讯录的基本信息。在系统中,每个用户是一条记录,包括姓名、电话号码、通讯地址。系统要对一个有N个用户的通讯录统一进行管理。包括了用户信息的录入、显示、修改、查询等操作。
1、 功能设计要求:
1)本系统采用...
我有更好的答案
#include&stdio.h&#include&stdlib.h&#include&string.h&#include&conio.h&struct record{ char name[20];
//姓名 char phone[12];
//电话 char adress[50];
//地址 char postcode[8];
//邮政编码 char e_mail[20];
//电子邮件。}student[100];
//假设最大数为100.//定义全局变量num,表示已经输入的人数 。
//这里使用数组解决通讯录的问题,实际上使用链表更好。int menu_select(){
char s[80]; /*定义整形变量*/
system(&cls&);
printf(&\t\t***********欢迎进入通讯管理界面********\n\n&);
printf(&\t\t\t0. 输入记录\n&);
printf(&\t\t\t1. 显示记录\n&);
printf(&\t\t\t2. 按姓名查找\n&);
printf(&\t\t\t3. 按电话号码查找\n&);
printf(&\t\t\t4. 插入记录 \n&);
printf(&\t\t\t5. 按姓名排序\n&);
printf(&\t\t\t6. 删除记录\n&);
printf(&\t\t\t7. Quit\n&);
printf(&\t\t***********************************************\n\n&); do{
printf(&Enter you choice(0~7):&);
scanf(&%s&,s);
a=atoi(s);
while (a&0 || a&7);}int adduser(){
printf(&\t\t\t**************** 请输入用户信息 ****************\n&);
printf(&\t\t\t输入姓名:\n&);
scanf(&%s&,student[num].name);
printf(&\t\t\t输入电话号码:\n&);
scanf(&%s&,student[num].phone);
printf(&\t\t\t输入地址:\n&);
scanf(&%s&,student[num].adress);
printf(&\t\t\t输入邮编:\n&);
scanf(&%s&,student[num].postcode);
printf(&\t\t\t输入e-mail:\n&);
scanf(&%s&,student[num].e_mail);
printf(&\t\t\t是否继续添加?(Y/N):\n&);
if(getch()=='y' || getch()=='Y')
adduser();
return(0);}void list(){
system(&cls&);
if(num!=0)
printf(&\t\t\t*************** 以下为通讯录所有信息************\n&);
for (i=0;i&i++)
printf(&\t\t\t姓名:%s\n&,student[i].name);
printf(&\t\t\t电话:%s\n&,student[i].phone);
printf(&\t\t\t地址:%s\n&,student[i].adress);
printf(&\t\t\t邮编:%s\n&,student[i].postcode);
printf(&\t\t\te-mail:%s\n&,student[i].e_mail);
if(i+1&num)
system(&pause&);
printf(&\t\t\t************************************************\n&);
printf(&\t\t\t通讯录中无任何纪录\n&);
printf(&\t\t\t按任意键返回主菜单:\n&);
//这里是无回显的输入字符,你输入的字符不会显示在屏幕上。 }int searchbyname(){
int mark=0;
printf(&\t\t\t***************** 按姓名查找 *******************\n&);
char name[20];
printf(&\t\t\t请输入姓名:\n&);
scanf(&%s&,name);
for(i=0;i&i++)
if (strcmp(student[i].name,name)==0)
printf(&\t\t\t************* 以下是您查找的用户信息 ***********\n&);
printf(&\t\t\t姓名: %s&,student[i].name);
printf(&\t\t\t电话: %s&,student[i].phone);
printf(&\t\t\t地址: %s&,student[i].adress);
printf(&\t\t\te-mail:%s&,student[i].e_mail);
printf(&\t\t\t************************************************\n&);
if((i+1)&num)
printf(&\t\t\t是否继续查找相同名字的用户信息:(y/n)\n&);
if(getch()=='y' || getch()=='Y')
return(0);
printf(&\t\t\t按任意键返回主菜单&);
return(0);
if(mark == 0)
printf(&\t\t\t没有相同姓名的用户纪录\n&);
printf(&\t\t\t按任意键返回主菜单\n&);
return(0);
return 0;}int searchbyphone(){ int mark=0;
printf(&\t\t\t****************** 按电话查找 ******************\n&); char phone[10]; printf(&\t\t\t请输入电话号码:\n&); scanf(&%s&,phone); for(i=0;i&i++) {
if (strcmp(student[i].phone,phone)==0)
printf(&\t\t\t************** 以下是您查找的用户信息 **********\n&);
printf(&\t\t\t姓名: %s&,student[i].name);
printf(&\t\t\t电话: %s&,student[i].phone);
printf(&\t\t\t地址: %s&,student[i].adress);
printf(&\t\t\te-mail:%s&,student[i].e_mail);
printf(&\t\t\t************************************************\n&);
printf(&\t\t\t按任意键返回主菜单\n&);
return(0);
} } if (mark==0) {
printf(&\t\t\t没有改用户的信息\n&);
printf(&\t\t\t按任意键返回主菜单\n&);
return(0); } return(0);}void deletebyphone(){ int i,j; int deletemark=0; char phone[20];
printf(&\t\t\t请输入要删除用户电话号码:\n&);
scanf(&%s&,phone);
if(num==0)
printf(&\t\t\t对不起,文件中无任何纪录\n&);
printf(&\t\t\t按任意键返回主菜单\n&);
for (i=0;i&i++)
if (strcmp(student[i].phone,phone)==0)
printf(&\t\t\t以下是您要删除的用户纪录:\n&);
printf(&\t\t\t姓名: %s&,student[i].name);
printf(&\t\t\t电话: %s&,student[i].phone);
printf(&\t\t\t地址: %s&,student[i].adress);
printf(&\t\t\te-mail:%s&,student[i].e_mail);
printf(&\t\t\t是否删除?(y/n)&);
if (getch()=='y' || getch()=='Y')
for (j=i;j&num-1;j++)
student[j]=student[j+1];
deletemark++;
printf(&\t\t\t删除成功&);
printf(&\t\t\t是否继续删除?(y/n)&);
if (getch()=='y' || getch()=='Y')
deletebyphone();
if (deletemark==0)
printf(&\t\t\t没有该用户的纪录&);
printf(&\t\t\t是否继续删除?(y/n)&);
if(getch()=='y' || getch()=='Y')
deletebyphone();
} }void deletebyname(){ int a=0; int findmark=0;
int deletemark=0;
char name[20]; printf(&\t\t\t请输入要删除用户姓名:\n&); scanf(&%s&,name); for (i=a;i&i++) {
if(strcmp(student[i].name,name)==0)
printf(&\t\t\t以下是您要删除的用户纪录:&);
findmark++;
printf(&\t\t\t________________________________&);
printf(&\t\t\t姓名: %s&,student[i].name);
printf(&\t\t\t电话: %s&,student[i].phone);
printf(&\t\t\t地址: %s&,student[i].adress);
printf(&\t\t\te-mail:%s&,student[i].e_mail);
printf(&\t\t\t________________________________&);
printf(&\t\t\t是否删除?(y/n)&);
if (getch()=='y' || getch() == 'Y')
for(j=i;j&num-1;j++)
student[j]=student[j+1];
deletemark++;
printf(&\t\t\t删除成功&);
if((i+1)&num)
printf(&\t\t\t是否继续删除相同姓名的用户信息?(y/n)&);
if (getch()=='y')
printf(&\t\t\t是否继续删除?(y/n)&);
if (getch()=='y')
deletebyname();
if((i+1)&num)
printf(&\t\t\t是否继续删除相同姓名的用户信息?(y/n)&);
if (getch()=='y' || getch() == 'Y')
} if ((deletemark==0)&&(findmark==0)) {
printf(&\t\t\t没有该用户的纪录&);
printf(&\t\t\t是否继续删除?(y/n)&);
if(getch()=='y' || getch() == 'Y')
deletebyphone();
} else if (findmark!=0) {
printf(&\t\t\t没有重名信息&);
printf(&\t\t\t没有该用户的纪录&);
printf(&\t\t\t是否继续删除?(y/n)&);
if(getch()=='y' || getch() == 'Y')
deletebyphone();
} }int dele(){
printf(&\t\t\t1-按电话号码删除 2-按姓名删除&);
printf(&\t\t\t请选择:&);
choic=getch(); switch (choic) {
case '1':deletebyphone();
case '2':deletebyname(); }
return(0);}int sortbyname()
//按姓名进行排序{
for (i=1;i&i++)
if(strcmp(student[i].name,student[i-1].name)&0)
tmp=student[i];
student[j+1]=student[j];
}while ((strcmp(tmp.name,student[j].name)&0&&j&=0));
student[j+1]=
printf(&\t\t\t排序成功,是否显示?(y/n)&);
if (getch()=='y')
return(0);}int main(){
printf(&\t\t************************************************\n&);
printf(&\t\t********welcome to TONGXUNLU *******************\n&);
printf(&\t\t###########code by XXXXX ###################\n&);
printf(&\t\t*************************************************\n&);
printf(&按任意键进入主菜单\n&);
selectnum = menu_select();
switch(selectnum)
adduser();
searchbyname();
searchbyphone();
adduser();
//这里插入,应该能指定位置,不过意义不大,所以和添加记录一样了。
sortbyname();
printf(&BYE BYE!\n&);
system(&pause&);
getchar();
getchar();
return 0;}
采纳率:59%
OO,lz可能要自己动手写了!~ 控制台程序,其实很简单的!
为您推荐:
其他类似问题
c语言程序设计的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 mfc通讯录管理系统 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信