




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言与数据结构综合训练C语言与数据结构综合训练1个人关系网的设计与实现系统任务要求(1)系统菜单的建立(2)信息的输入(3)信息的输出(4)个人关系的查询个人关系网的设计与实现系统任务要求2思路分析当面对个人关系网的问题时,我们首先想到的是用树或图知识去解决,这是没错的。但当我们用传统方法操作时,会出现无从下手的感觉,所以我们应该改变思路,学会用C++语言去建立图,并学会用switch,case语言建立菜单,这样会更轻松简便的解决个人关系网问题。思路分析当面对个人关系网的问题时,我们首先想到的是用树或图知3个人关系网的分析当一个人在社会中就会扮演很多角色,这样与人形成了各种各样的关系。从现实出发就会考虑个人的关系网有:朋友、同事、师生、父子关系等等个人关系网的分析当一个人在社会中就会扮演很多角色,这样与人形4个人关系示意图亲戚陌生人父子师生师生同事父子朋友甲乙丙爸爸个人个人关系示意图亲戚父子师生师生同事父子朋友甲乙丙爸爸个人5个人关系的程序分析(1)定义图中的顶点信息、边的信息、边的大小(2)清除图中的记录(3)打印图中的信息(4)个人关系信息的建立(5)把个人关系信息录入图中(6)菜单的建立个人关系的程序分析(1)定义图中的顶点信息、边的信息、边的大6图中信息的建立#definevexnum4//图的最大顶点个数#defineM10//储存人名数组的大小usingnamespacestd;typedefstruct{int**arcs;//边的信息charvex[vexnum][M];//顶点信息intvexs;//边的大小}Graph;图中信息的建立#definevexnum4//图的7清除图中信息voidDestroyGraph(Graph&G)//清除图中记录{inti;for(i=0;i<G.vexs;i++){free(G.arcs[i]);}free(G.arcs);}清除图中信息voidDestroyGraph(Graph8打印图中信息voidPrint(GraphG)//打印图中信息{inti,j;cout<<"关系信息输出:"<<endl;for(i=0;i<G.vexs;i++){printf("\t");cout<<G.vex[i];}cout<<endl;打印图中信息voidPrint(GraphG)//打印图9for(i=0;i<G.vexs;i++){cout<<G.vex[i];for(j=0;j<G.vexs;j++){switch(G.arcs[i][j]){case0://边的信息为0.打印关系为陌生cout<<"\t陌生";break;case1://边的信息为1,打印关系为同学cout<<"\t同学";break;for(i=0;i<G.vexs;i++)10case2://边的信息为2,打印关系为朋友cout<<"\t朋友";break;case3://边的信息为3,打印关系为同事cout<<"\t同事";break;default://否则,边的信息为100,打印关系为本人cout<<"\t本人";break;}}cout<<endl;}}case2://边的信息为2,打印关系为朋友11个人信息的建立(1)输入要查找的两个人的姓名charname1[10];charname2[10];//cin>>name1;//cin>>name2;scanf("%s%s",name1,name2);个人信息的建立(1)输入要查找的两个人的姓名12(2)在表中查找并记录两个人的名字(3)用switch,case语句记录边的信息,并记录他们之间的关系(4)如若两个人为一个人,则打印关系为本人(2)在表中查找并记录两个人的名字13个人信息的录入图中(1)输入顶点的信息和要录入图中人的姓名(2)给边分配储存空间G.arcs=(int**)malloc(vexnum*sizeof(int*));for(i=0;i<vexnum;i++){G.arcs[i]=(int*)malloc(vexnum*sizeof(int));}(3)输入边的信息个人信息的录入图中(1)输入顶点的信息和要录入图中人的姓名14菜单的建立(1)定义一个图GraphG;//定义一个图intn;cout<<"0:退出1:信息输入2:信息输出3:查询"<<endl;cout<<"请输入编号:"<<endl;(2)用switch,case语句分别调用输入、输出、查找函数,执行各自的功能。(3)删除图中的记录菜单的建立(1)定义一个图15个人关系网的完成菜单:0:退出1:信息输入2:信息输出3:查询1、信息输入输入要存入关系网的人名(容量为4人),并输入他们之间的关系。2、信息输出关系输出为4x4表格,并附有各部对应之间的关系3、信息查询随意输入两个人,会显示两个人之间的关系。个人关系网的完成菜单:0:退出1:信息输入2:信息输出16谢谢观看谢谢观看17C语言与数据结构综合训练C语言与数据结构综合训练18个人关系网的设计与实现系统任务要求(1)系统菜单的建立(2)信息的输入(3)信息的输出(4)个人关系的查询个人关系网的设计与实现系统任务要求19思路分析当面对个人关系网的问题时,我们首先想到的是用树或图知识去解决,这是没错的。但当我们用传统方法操作时,会出现无从下手的感觉,所以我们应该改变思路,学会用C++语言去建立图,并学会用switch,case语言建立菜单,这样会更轻松简便的解决个人关系网问题。思路分析当面对个人关系网的问题时,我们首先想到的是用树或图知20个人关系网的分析当一个人在社会中就会扮演很多角色,这样与人形成了各种各样的关系。从现实出发就会考虑个人的关系网有:朋友、同事、师生、父子关系等等个人关系网的分析当一个人在社会中就会扮演很多角色,这样与人形21个人关系示意图亲戚陌生人父子师生师生同事父子朋友甲乙丙爸爸个人个人关系示意图亲戚父子师生师生同事父子朋友甲乙丙爸爸个人22个人关系的程序分析(1)定义图中的顶点信息、边的信息、边的大小(2)清除图中的记录(3)打印图中的信息(4)个人关系信息的建立(5)把个人关系信息录入图中(6)菜单的建立个人关系的程序分析(1)定义图中的顶点信息、边的信息、边的大23图中信息的建立#definevexnum4//图的最大顶点个数#defineM10//储存人名数组的大小usingnamespacestd;typedefstruct{int**arcs;//边的信息charvex[vexnum][M];//顶点信息intvexs;//边的大小}Graph;图中信息的建立#definevexnum4//图的24清除图中信息voidDestroyGraph(Graph&G)//清除图中记录{inti;for(i=0;i<G.vexs;i++){free(G.arcs[i]);}free(G.arcs);}清除图中信息voidDestroyGraph(Graph25打印图中信息voidPrint(GraphG)//打印图中信息{inti,j;cout<<"关系信息输出:"<<endl;for(i=0;i<G.vexs;i++){printf("\t");cout<<G.vex[i];}cout<<endl;打印图中信息voidPrint(GraphG)//打印图26for(i=0;i<G.vexs;i++){cout<<G.vex[i];for(j=0;j<G.vexs;j++){switch(G.arcs[i][j]){case0://边的信息为0.打印关系为陌生cout<<"\t陌生";break;case1://边的信息为1,打印关系为同学cout<<"\t同学";break;for(i=0;i<G.vexs;i++)27case2://边的信息为2,打印关系为朋友cout<<"\t朋友";break;case3://边的信息为3,打印关系为同事cout<<"\t同事";break;default://否则,边的信息为100,打印关系为本人cout<<"\t本人";break;}}cout<<endl;}}case2://边的信息为2,打印关系为朋友28个人信息的建立(1)输入要查找的两个人的姓名charname1[10];charname2[10];//cin>>name1;//cin>>name2;scanf("%s%s",name1,name2);个人信息的建立(1)输入要查找的两个人的姓名29(2)在表中查找并记录两个人的名字(3)用switch,case语句记录边的信息,并记录他们之间的关系(4)如若两个人为一个人,则打印关系为本人(2)在表中查找并记录两个人的名字30个人信息的录入图中(1)输入顶点的信息和要录入图中人的姓名(2)给边分配储存空间G.arcs=(int**)malloc(vexnum*sizeof(int*));for(i=0;i<vexnum;i++){G.arcs[i]=(int*)malloc(vexnum*sizeof(int));}(3)输入边的信息个人信息的录入图中(1)输入顶点的信息和要录入图中人的姓名31菜单的建立(1)定义一个图GraphG;//定义一个图intn;cout<<"0:退出1:信息输入2:信息输出3:查询"<<en
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年毫州a2货运从业资格证考试
- 客户开发居间合同
- 商业地产开发作业指导书
- 罗马柱安装工程合同
- 国际海上货物运输合同概述
- 手房个人装修合同
- 合伙人股权协议8篇
- 2025年阳江货运从业资格证考试题库答案
- 2023年全国乙卷高考真题化学试卷解析版
- 2025年高中化学新教材同步 必修第一册 第3章 章末检测试卷(三)
- 税务局个人所得税综合所得汇算清缴
- 川教版四年级《生命.生态.安全》下册全册 课件
- 专题06 无机物的转化与应用-五年(2020-2024)高考化学真题分类汇编(原卷版)
- TFT-LCD显示原理介绍
- 2024年中国心力衰竭诊断和治疗指南2024版
- 摩托车过户委托别人代办的委托书
- 现代家政导论-课件 4.2.2国外家庭教育
- 金波读书乐课件
- 2《中国老年糖尿病诊疗指南(2024年版)》解读
- 2024年北京中考地理试卷
- 四川蜀道集团笔试题
评论
0/150
提交评论