数据结构课程设计(6)_第1页
数据结构课程设计(6)_第2页
数据结构课程设计(6)_第3页
数据结构课程设计(6)_第4页
数据结构课程设计(6)_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、摘 要1关键词:队列,二进制,十进制,转换,通讯录,增加,删除,修改,查询1一、链队之二十进制转换21.1、程序设计要求21.2、流程图31.3、链表的储存结构41.4、源代码41.5、运行结果图:9二、通讯录系统112.1、主程序的流程:112.2、链表的储存结构112.3、程序设计要求112.4、源代码:122.5、程序结果图:22心得体会24参考文献24摘 要 数据结构主要介绍一些最常用的数据结构,阐明各种数据结构内在的逻辑关系,讨论其在计算机中的存储表示,以及在其上进行各种运算时的实现算法,并对算法的效率进行简单的分析和讨论。数据结构是介于数学、计算机软件和计算机硬件之间的一门计算机专

2、业的核心课程,它是计算机程序设计、数据库、操作系统、编译原理及人工只能等的重要基础,广泛应用于信息学、系统工程等各种领域。算法与数据结构旨在分析研究计算机加工的数据对象的特性,以便选择适当的数据结构和存储结构,从而使建立在其上的解决问题的算法达到最优。本次课程设计主要应用几本的数据结构只是,编程实现1.二进制十进制数的转换 2.通讯录的增加、删除、修改和查询功能。并通过此次课程设计更深刻的聊天级数据结构的实际意义,实现课本算法 关键词:队列,二进制,十进制,转换,通讯录,增加,删除,修改,查询一、链队之二十进制转换1.1、程序设计要求运用数据结构中的算法思想作数据结构,结合c语言基本知识,编写

3、一个通讯录管理系统。通过完成本课题,进一步熟悉c语言的基本知识,并掌握数据结构的一些基本算法思想,掌握c语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。实现以下几方面的功能:为了方便从事计算机方面工作的人群及广大计算机系大学生,编写出一个能将二进制数和十进制书相互转化程序。使得在转换过程中节省运算时间,节省不必要的精力花费。在程序中能通过输入特定字符实现二进制转换为十进制和十进制转换为二进制的选择,并且在转换结束后将转换结果予以返回。在程序使用结束后,实现通过输入特定字符结束本程序。1.2、流程图用户选择转换类型二换十运算十换二运算显示结果

4、等待用户输入选择yn继续转换开始结束主程序流程图1.3、链表的储存结构datanextn数据域指针域数据域1.4、源代码#include#include#include#include#includetypedef struct changeint data;struct change *next;n;typedef structn *head;int n;es;void es()n *front,*rear,*head;es p;int count,sum=0;int i;p.n=0;printf(nnnnnnntttt欢迎使用二十进制转换功能!);sleep(1000);system(cl

5、s);printf(nnnnnnnttt请输入要转换的二进制数据:nn);head=front=rear=(n *)malloc(sizeof(n);scanf(%d,&rear-data);for(;rear-datadata-1;)p.n=p.n+1;rear=(n *)malloc(sizeof(n);scanf(%d,&rear-data);if(rear-datadata-1)front-next=rear;front=rear;elsefront-next=null;front=head;docount=1;if(front-data=1)for(i=1;idata*2;elsec

6、ount=0;sum=sum+count;p.n=p.n-1;front=front-next;while(front!=null);printf(%dn,sum);void se()int data;int i,j;n *top,*bottom,*head;es p;printf(nnnnnnntttt欢迎使用十二进制转换功能!);sleep(1000);system(cls);printf(nnnnnnnttt请输入要转换的十进制数据:nn);scanf(%d,&data);i=data%2;j=data/2;if(i!=data)head=top=bottom=(n *)malloc(s

7、izeof(n);top-data=i;top-next=null;p.n=p.n+1;dodata=j;i=data%2;j=data/2;top=(n *)malloc(sizeof(n);top-data=i;p.n=p.n+1;top-next=bottom;bottom=top;while(j!=0);head=top;printf(转换成的二进制数据为:);for(;top!=null;)printf(%d,top-data);top=top-next;elseprintf(转换成的二进制数据为:);printf(%dn,data);void menu()char choice;i

8、nt d;dod=0;printf(n);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 请选择功能: 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n); printf(t3 3n); printf(t3 a. 二进制转换十进制功能 3n); printf(t3 3n); printf(t3 b. 十进制转换二进制功能 3n); printf(t3 3

9、n); printf(t3 3n); printf(t3 3n); printf(t3 3n); printf(t3 3n); printf(t3 3n); printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n); scanf(%c,&choice);system(cls); switch(choice)casea:es();break;caseb:se();break;casea:es();break;caseb:se();break;default:d=1;printf(nnnnnnntttt选择有

10、误!请重新输入!nnn);sleep(1000);getchar();system(cls);while(d);void main()printf(n);system(color 4f);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 欢迎使用二-十进制转换系统 3n);printf(t

11、3 3n);printf(t3 谢谢! 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n);printf(按任意键继续:);getch();system(cls);menu();1.5、运行结果图:二、通讯录系统2.1、主程序的流程: 主函数删除新增修改查询显示相应信息退出系统2.2、链表的储存结构na

12、metelnemailnext指针域数据域2.3、程序设计要求运用数据结构中的算法思想作数据结构,结合c语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉c语言的基本知识,并掌握数据结构的一些基本算法思想,掌握c语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。实现以下几方面的功能:1.增加新记录;2.删除记录;3.修改信息;4.查询信息;5.退出通讯录管理系统。简介:本程序是通过链表实现的简单通讯录,所实现的此通讯录包含着三个信息,即通讯者的姓名、电话号码和住址。该程序能够帮助使用者完成一些常用的通讯记录,操作界面简单易懂,使

13、用方便。如果使用者还需要其他功能只要进行简单的修改就可以实现添加。因为本人水平有限,该程序在算法的选择方面还不够好,有待于进一步完善。2.4、源代码:#include#include#include#include#include#define len sizeof(struct telbook)/宏定义#define en sizeof(struct tel)typedef struct telchar name9;char tel16;char n;char email20;td;typedef struct telbook td stu; struct telbook *next;tb;

14、tb *head;void menu ();void save();int modify(int *m);int del(int *m);void find(int *n);int input(int *n);void list(char f,int *n);void bye ();tb *read(int *n);void main()printf(nnn);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n);printf(t3 3n);printf(t3 3n);printf(t3 欢迎使用

15、 3n);printf(t3 3n);printf(t3 3n);printf(t3 通讯录管理系统 3n);printf(t3 按任意键继续 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3);getch();system(cls);menu();void menu ()int n,x=0,m;doprintf(n【通讯录

16、管理系统】n);printf(-系统菜单显示如下-);printf(nnn);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n);printf(t3 3n);printf(t3 - 输入 3n);printf(t3 3n);printf(t3 - 查询 3n);printf(t3 3n);printf(t3 - 修改 3n);printf(t3 3n);printf(t3 - 删除 3n);printf(t3 3n);printf(t3 - 退出 3n);printf(t3 3n);printf

17、(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n);printf(请输入您要选择的菜单:);scanf(%d,&n);system(cls);m=0;head=read(&m);switch(n)case 1:input(&m);break;case 2:find(&m);break;case 3:modify(&m);break;case 4:del(&m);break;case 5:bye();break; default:printf(nnnnnnnnntttt输入错误,请重新输入:);getchar

18、();getch();system(cls);while(x=0);void bye()tb *top;while(head!=null)top=head-next;free(void *)head) ;head=top;printf(nnnnnnnnn);printf(tttt谢 谢 使 用!n);exit(0);int input(int *n)file *fp;/添加读文件函数tb *b;int i,j;struct telbook *p,*q,*m,*v;/定义指针变量p=(struct telbook *)malloc(len);/开辟新单元printf(请输入联系人名字:);sca

19、nf(%s,);q=head;for(i=1;,)=0)/比较字符串printf(联系人姓名重复! 三秒钟后返回主菜单!);return 0;q=q-next;printf(请输入联系人号码:);scanf(%s,p-stu.tel);q=head;for(i=1;istu.tel,q-stu.tel)=0)printf(联系人号码重复! 三秒钟后返回主菜单!);return 0;q=q-next;if(*nstu.n);getchar();printf(请输入联系人电子邮件:);scanf(%s,p-stu.email);p-next

20、=null;if(head=null)head=p;elsem=head;for(i=1;inext;m-next=p;*n=*n+1;b=(struct telbook *)malloc(len);for(j=0;j*n-1;j+)for(i=0;inext;/top下一个结点赋给vif(strcmp(,)0)/比较两相邻地址中姓名音序字符串大小strcpy(,);/交换信息strcpy(b-stu.tel,m-stu.tel);b-stu.n=m-stu.n;strcpy(b-stu.email,m-stu.e

21、mail);strcpy(,);strcpy(m-stu.tel,v-stu.tel);m-stu.n=v-stu.n;strcpy(m-stu.email,v-stu.email);strcpy(,);strcpy(v-stu.tel,b-stu.tel);v-stu.n=b-stu.n;strcpy(v-stu.email,b-stu.email);m=m-next;/比较下一结点字符串v=v-next;if(fp=fopen(record.txt,w)=null)printf(文件打开失败!保存失败! 三秒钟

22、后返回主菜单!n);return 0;elseb=head;for(i=1;inext;fclose(fp);printf(保存成功!n);return 1;elseprintf(存储已满! 三秒后返回主菜单!n);return 0;void save(tb *head)tb *tp;tp=head; file *fp; /*指向文件的指针*/if(fp=fopen(record.txt,w)=null)/*打开文件,并判断打开是否正常*/ printf(无法打开文件! 三秒钟后返回主菜单!n);/*没打开*/ elseprintf(nsaving filen);/*输出提示信息*/if(tp

23、!=null)dofwrite(tp,en,1,fp);tp=tp-next;while(tp!=null);fclose(fp);/*关闭文件*/printf(*save success*n); /*显示保存成功*/*读入函数,参数为结构体数组*/int modify(int *m)int n;tb *tp,*head;char name9;char d;head=tp=read(m);printf(请输入联系人姓名:);scanf(%s,name);if(tp=null)printf(通讯录为空! 三秒钟后返回主菜单!n);return 0;if(tp!=null)don=strcmp(n

24、ame,);if(n=0)printf(联系人已找到,请修改!n);printf(名字:);scanf(%s,);printf(电话:);scanf(%s,tp-stu.tel);printf(分类:);getchar();scanf(%c,&tp-stu.n);printf(电子邮件:);scanf(%s,tp-stu.email);printf(是否保存?);getchar();scanf(%c,&d);if(d=y|d=y)save(head);return 1;elsereturn 0;tp=tp-next;while(tp!=null);i

25、f(tp=null)printf(未找到此联系人!n);return 0;return 0;void list(char f,int *n) int i=0,j; tb *p;/定义指针变量 p=head; printf(nnn*信息*n);/输出相关信息 printf( 姓名 电话 电子邮件 n); printf(-n); for(j=1;jstu.n)=f) i+; printf(%d %s %s %sn, i, ,p-stu.tel,p-stu.email); p=p-next; printf(*end*n);int del(int *m)int n,h,i;tb *p;tb *q;char name9;char x;file *fp;if(*m=0)printf(通讯录为空!n);return 0;doh=0;p=head;printf(请输入联系人姓名:n);scanf(%s,name);if(p=null)pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论