利用顺序表的方式实现通信录.doc
《利用顺序表的方式实现通信录.doc》由会员分享,可在线阅读,更多相关《利用顺序表的方式实现通信录.doc(34页珍藏版)》请在咨信网上搜索。
1、湖南人文科技学院计算机科学技术系课程设计说明书课 程 名 称: 数据结构 课 程 代 码: 题 目: 利用顺序表的方式实现通信录 年级/专业/班: 10级软件工程一班 学 生 姓 名: 任孜聪 岳常 朱红 黄晓芬 符强 学 号:10436144 10436145 1043614610436147 10436148 指 导 教 师: 易 叶 青 开 题 时 间: 2012 年 3 月 10 日完 成 时 间: 2002 年 4 月 8 日目 录摘 要2一、引 言3二、设计目的与任务错误!未定义书签。1、课程设计的目的32、课程设计的任务3三、设计方案31、需求分析42、总体设计43、详细设计64
2、、程序清单11四、调试分析与体会27五、运行结果28六、结 论33七、致 谢33八、参考文献34摘 要C语句简练、语法结构清晰、紧凑,使用方便、灵活,程序结构简单、书写格式自由,数据类型丰富、齐全,运算能力强,语法限制不太严格,程序自由度大、可移植性强,语言的通用性较强等特点。本文论述了使用DEV-C+设计一个通讯录系统。首先,在定义了结构体(student),其中包括学号、姓名、性别、电话、QQ号和专业,以及其他一些成员函数;然后编写了记录输入的函数,以及记录查找函数、记录修改函数、记录删除函数、记录查找函数、按照学号升序排列函数,同时运用了线性表的顺序表示这种数据结构;最后在主程序中调用。
3、通过这个通讯录系统,实现了输入记录、查询记录、修改记录、删除记录以及显示记录的基本功能。关键词:通讯录;数据结构;C语言Abstract C statement concise, grammar structure is clear, compact and easy to use, flexible, simple structure, writing format program free, data type is rich, is complete, the operation ability, grammar limit not too strictly, procedures, a
4、nd freedom portability is strong, language is used widely, etc. This paper discusses the use of DEV-C+ design a directory system. First, the definition in structures (student), including student id, name, gender, telephone, QQ number and professional, and some other member function; And then write t
5、he record of the input function, and search function, record record change function, delete function, record record search function, according to student id is arranged by function, and using the linear table order said the data structure; Finally in the main program called. Through the address book
6、 system, realized the input records, inquires the record, modify records, deleting records and display the basic functions of the record. Keywords: address list;data structure;C programming language数据结构课程设计-利用顺序表的方式实现通讯录一、引 言“数据结构“是计算机程序设计的重要理论技术基础,它不仅是计算机科学科的和新课程,而且已成为其他理工专业的热门选修课。它将让学生学会分析研究计算机加工的
7、数据结构的特征,为运用涉及的的数据选择适当的逻辑结构、存储结构、相应的算法以及算法的时间分析和空间分析,打下基础。通过若干数据结构应用实例,引导学生学习数据类型的使用,达到培养学生的数据抽象能力的目的。本课程设计运用的数据结构是线性表的顺序表示。这种数据结构指的是用一组地址连续的存储单元依次存储线性表的数据元素。它的特点是,以元素在计算机内的“物理位置“来表示线性表中的数据元素之间的逻辑关系。每一个数据元素的的存储位置都和线性表的起始位置相差一个和数据元素在线性表中的位序成正比的常数。由此可知,线性表的顺序存储结构是一种随机存储的存储结构本课程设计的基本要求是:实现记录的输入、查询、显示、修改
8、和删除等一系列操作。二、设计目的与任务1、课程设计目的 这个程序是通过C语言采用顺序表这种数据结构来设计的。定义结构体(student),其中至少包括姓名、性别、学号、电话、QQ号和专业。通过本次数据结构的课程设计,我们将会把平日书本上的知识真正应用到了实际中来。深入了解数据结构的相关内容及相关函数的应用,结合其它相关知识,如软件工程等,把所学知识融会贯通。2、课程设计的任务 问题描述: 纸质通讯录已经不能满足大家的要求,容易丢失、查找困难等问题是纸质通讯录的缺点。“通讯录管理系统”是为了帮助老师、同学等管理和分析的一种应用程序。三、设计方案1、需求分析1) 输入数据并建立通讯录2) 查询通讯
9、录中的信息3) 插入新的信息4) 删除信息5) 查询信息6) 更新信息7) 按学号排序2、概要设计1) 抽象数据类型(ADT)如下:ADT Sqllist 数据对象:D=ai|ai ElemSet,i=1,2,3,n,n0数据关系:R1=| ai-1,ai D,i=1,2,3,n 基本操作:(1) void ScanIn(Sqlist &L)/学生信息输入函数(2) Status ListInsert(Sqlist &L,int i,student e)/插入学生信息到顺序表L中(3) void SearchName(Sqlist L,Status(*equal)(student,studen
10、t)/根据姓名查找顺序表中的记录(4) void SortorderAscend(Sqlist &L)/按学号升序排列并输出(5) void DeleteName(Sqlist &L,Status(*equal)(student,student)/根据姓名删除顺序表中的记录(6) void ModifyName(Sqlist &L,Status(*equal)(student,student)/根据姓名修改顺序表中的记录 2) 存储结构Typedef typedef structchar num11; /学号 char name10; /姓名 char sex; /性别 char tel12;
11、 /电话 char qq13; /QQ号 char major20; /专业 student;3) 流程图通讯录主菜单从数组中导入记录删除记录修改记录查询记录按学号升序排列并输出根据姓名删 除根据学号删除根据姓名修改根据学号修改根据姓名查询根据学号查询输入记录显示记录3、详细设计通讯录,这个程序能够基本实现记录的输入,查询,修改和删除等一系列操作。下面是一些重要的程序段,将详细介绍这些函数。一、将学生信息插入到顺序表L中1) Status ListInsert(Sqlist &L,int i,student e)2) 3) int j;4) student *newbase;5) if(iL.
12、length+1) return ERROR; /i值不合法 6) if(L.length=L.listsize) /当前存储空间已满,增加分配 7) 8) newbase=(student *)realloc(L.elem,(LIST_INIT_SIZE+LIST_INCREMENT)*(sizeof(student);9) if(!newbase) /存储分配失败 10) exit(OVERFLOW);11) L.elem=newbase; /新基址 12) L.listsize+=LIST_INCREMENT; /增加存储容量 13) 14) for(j=L.length;j=i;j-)
13、 15) L.elemj=L.elemj-1; /插入位置及之后元素的右移 16) L.elemi-1=e;17) L.length+;18) return OK;19) 二、根据姓名查找顺序表中的记录1) void SearchName(Sqlist L,Status(*equal)(student,student)2) student e;3) int j;4) printf(请输入你要查找的学生的姓名:);5) scanf(%s,e.name);6) j=LocateElem(L,e,equal);/找到所对应学生的位置7) if(!j)printf(没有查找到你所要查找的学生记录n);
14、8) else9) 10) printf(查找到你所要查找的学生记录其为:n);11) printf( 学号 姓名 性别 手机号 QQ号 专业n);12) print(L.elemj-1); /输出学生信息13) 14) 三、根据学号删除顺序表中的记录1) void DeleteNum(Sqlist &L,Status(*equal)(student,student)2) 3) system(cls);4) student e;5) int j;6) printf(请输入待删除记录的学号:);7) scanf(%s,e.num);8) j=LocateElem(L,e,equal); /找到所
15、对应学生的位置9) if(!j) printf(没有学号为:%s的记录n,e.num);10) if(!ListDelete(L,j,e) printf(删除失败n);11) else printf(删除成功n);12) 四、根据学号修改顺序表中的记录1) void ModifyNum(Sqlist &L,Status(*equal)(student,student)2) student e;3) int j;4) char s8;5) printf(请输入你要更改的学生的学号:);6) scanf(%s,e.num);7) j=LocateElem(L,e,equal);8) if(!j)p
16、rintf(没有查找到你所要更改的学生记录n);9) else10) 11) printf(查找到你所要更改的学生记录n);12) printf(请输入你要将该学号更改为:);13) jump:scanf(%s,s);14) for(int i=0;iL.length;i+)15) 16) if(strcmp(L.elemi.num,s)=0)17) 18) printf(该通讯录中已存在这样的学号,请重新输入:);19) goto jump;20) 21) 22) strcpy(L.elemj-1.num,s);23) printf(更改后该条记录变为:n);24) printf( 学号 姓
17、名 性别 手机号 QQ号 专业n);25) print(L.elemj-1);26) 27) 五、在顺序表L中删除第i个元素1) Status ListDelete(Sqlist & L,int i,student & e)2) 3) int j;4) if(iL.length) /i值不合法 5) return ERROR;6) else 7) 8) e=L.elemi-1;/p为删除元素的位置 9) for(j=i;j=L.length;j+) L.elemj-1=L.elemj;/被删除元素之后的元素左移10) L.length-; /表长减一11) return OK;12) 六、修改
18、信息1) int Modify(Sqlist &L)2) 3) system(cls);4) int i,k;5) char a2;6) loop:printf(根据学号修改信息请输入: 1, 根据姓名修改信息请输入: 2 n);7) scanf(%d,&k);8) while(k!=1&k!=2)9) 10) printf(输入有误,请重新输入:);11) scanf(%d,&k);12) 13) 14) switch(k)15) 16) case 1:17) 18) ModifyNum(L,EqualNum);19) printf(你是否想继续修改(y/n);20) scanf(%s,a)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 利用 顺序 方式 实现 通信
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。