欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载  

    课程设计(论文)-电话簿管理系统.doc

    • 资源ID:3292947       资源大小:615.01KB        全文页数:18页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课程设计(论文)-电话簿管理系统.doc

    电话簿管理系统-课程设计报告学生成绩管理系统课程设计报告 编写人: 同组成员: (课程设计负责人) 完成日期: 2010/12/18 辅导教师: 批阅日期: 分数: 一、 功能描述此电话簿管理系统主要利用线性表实现,由如下六个功能模块实现1、 输入模块。主要完成将电话记录存入线性表的工作。2、 输出模块。主要完成将所有记录输出显示的功能。3、 建表模块。主要完成建立线性表,开辟空间的功能。4、 插入模块。主要完成插入记录的功能。5、 查询功能。主要完成查询记录的功能。6、 删除功能。主要完成从线性表中删除记录的功能。电话簿管理系统输入记录模块建表模块输出记录模块建表模块建表模块从文件读入从键盘输入插入模块查询模块删除模块 二、 数据结构设计电话簿信息结构体 struct telbook /定义一个电话簿结构体,用来存储电话簿信息/ /定义各结构体成员的数据类型/char tel20; /定义电话号码/char name20; /定义机主姓名/char sex10; /定义机主性别/char addr50; /定义所在地址/; 三、 函数功能描述1、建表:函数原型:struct telbook *initsl(int m) /建立线性表/struct telbook *v;v=(struct telbook*)malloc(m*sizeof(struct telbook); /分配此结构体一定的空间,并初始化/ return v;参数含义:m线性表的空间大小 V指向线性表表头的指针2、Input1( )函数原型:void input1(struct telbook *v,int m,int n) /输入函数1,由键盘输入 int i;if(n<=0) printf("输入错误"); else if(n>m) printf("n输入错误,最多只能输入%d个相关信息!",m); /线性表溢出else for(i=0;i<n;i+) /可以多次输入printf("n你即将输入第%d个信息n: ",i+1); printf("n姓名,性别,电话,地址:"); scanf("%s %s %s %s",vi.name,vi.sex,vi.tel,vi.addr); getchar(); /输入相关信息 printf("n OK!"); 参数含义:m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置3、Input2()函数原型:void input2(struct telbook *v,int m,int n) /输入函数2,由文件导入 int i; FILE *fp; /定义一个指向文件的指针 if(fp=fopen("telbook.txt","r")=NULL) printf("n打开文件失败!"); exit(0); for(i=0;i<n;i+)fscanf(fp,"%s%s%s%s",vi.name,vi.sex,vi.tel,vi.addr);fprintf(fp,"%s%s%s%s",&vi.name,&vi.sex,&vi.tel,&vi.addr);printf("n成功从文件中导入了%d个信息!n",n);参数含义:m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置 4、output()函数原型:void output(struct telbook *v,int m,int n) / 输出函数int i; printf("n以下是全部电话簿信息:"); printf("n-"); printf("nt姓名 t性别 t电话 t地址t"); for(i=0;i<n;i+) printf("nt%st%st%st%st",vi.name,vi.sex,vi.tel,vi.addr); printf("n-");参数含义:m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置5、insert() 函数原型: void insert(struct telbook *v,int m,int n) /定义插入函数int i; if(n>m) printf("n存储空间已满,请停止插入!"); /实际长度超出了表的容量 else printf("n你还可以添加%d个信息:",m-n+1); /输入信息 printf("n姓名,性别,电话,地址:"); scanf("%s %s %s %s",&vi.name,&vi.sex,&vi.tel,&vi.addr); getchar(); printf("n成功添加信息n");参数含义:m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置6、search1()函数原型:void search1(struct telbook *v,int m,int n) /按电话号码查找int i;char tel120;printf("n请输入你要查找信息的电话号码:");scanf("%s",&tel1);for(i=0;i<=n;i+) if(strcmp(tel1,vi.tel)=0l) break;if(i>n) printf("n对不起,没有你要查找的相关信息!"); else printf("n你所查找的信息如下:"); printf("nt姓名 t性别 t电话 t地址t"); printf("nt%st%st%st%st",vi.name,vi.sex,vi.tel,vi.addr); 参数含义:tel1查找时输入的电话号码 m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置7、search2()函数原型:void search2(struct telbook *v,int m,int n) /按姓名查找int i;char name120;printf("n请输入你要查找姓名:");scanf("%s",name1);for(i=0;i<=n;i+) if(strcmp(name1,vi.name)=0) break; if(i>n) printf("n对不起,没有你要查找的信息!"); else printf("n你所查找的信息如下:"); printf("nt姓名 t性别 t电话 t地址t"); printf("nt%st%st%st%st",vi.name,vi.sex,vi.tel,vi.addr); 参数含义:name1查找时输入的姓名 m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置8、search3()函数原型:void search3(struct telbook *v,int m,int n) /按地址查找int i;char addr150;printf("n请输入你要查找地址:");scanf("%s",addr1);for(i=0;i<=n;i+) if(strcmp(addr1,vi.addr)=0) break;if(i>n) printf("n对不起,没有你要查找的信息!"); else printf("n你所查找的信息如下:"); printf("nt姓名 t性别 t电话 t地址t"); printf("nt%st%st%st%st",vi.name,vi.sex,vi.tel,vi.addr); 参数含义:addr1查找时输入的地址 m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置9、delet1()函数原型;void delet1(struct telbook *v,int m,int n) /按电话号码删除相关信息int i;char tel120;printf("n请输入你想要删除信息的电话号码:"); /输入要删除信息的电话号码scanf("%s",&tel1);for(i=0;i<n;i+) if(strcmp(tel1,vi.tel)=0) /从第一个开始查找,找到后删除 break; if(i>=n) printf("n没有找到你要删除的相关信息!"); /若超出了表,则不存在此号码 else for(i=0;i<n;i+) vi=vi+1;printf("n删除成功!");参数含义:tel1删除时输入的电话号码 m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置10、delet2()函数原型:void delet2(struct telbook *v,int m,int n) /按姓名删除信息int i;char name120;printf("n请输入你要删除的信息的机主姓名:"); /输入要删除信息的机主姓名scanf("%s",name1); for(i=0;i<n;i+) if(strcmp(name1,vi.name)=0) break; /从第一个开始查找,找到后删除 if(i>=n) printf("n对不起,没有找到你要删除的信息!"); /若超出了表,则存在此姓名 else for(i=0;i<n;i+)vi=vi+1;printf("n删除成功!");参数含义:name1删除时输入的姓名 m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置11、delet3()函数原型:void delet3(struct telbook *v,int m,int n) /按地址删除信息int i;char addr120;printf("n请输入你要删除的信息的机主姓名:"); /输入要删除信息的地址scanf("%s",addr1);for(i=0;i<n;i+)if(strcmp(addr1,vi.addr)=0) break; /从第一个开始查找,找到后删除 if(i>=n) printf("n对不起,没有找到你要删除的信息!"); /若超出了表,则不存在此地址 else for(i=0;i<n;i+)vi=vi+1;printf("n删除成功!");参数含义:addr1删除时输入的地址 m线性表的空间大小 v指向线性表表头的指针n线性表的长度i电话簿信息在表中的位置五、程序实现1、源代码分析程序预处理包括加载头文件,定义结构体、常量和变量,并对它们进行初始化工作。加载头文件:#include <stdio.h>#include <stdlib.h>#include <malloc.h>定义结构体:struct telbook /定义一个电话簿结构体,用来存储电话簿信息/ /定义各结构体成员的数据类型/char tel20; /定义电话号码/char name20; /定义机主姓名/char sex10; /定义机主性别/char addr50; /定义所在地址/; 定义常量和变量,并对它们进行初始化工作:struct telbook *initsl(int m) /建立线性表/struct telbook *v; v=(struct telbook*)malloc(m*sizeof(struct telbook); / 分配此结构体一定的空间,并初始化/ return v;主函数main() void main() struct telbook *v; /定义结构体 int m,n,x,ans; n=0; while(1) /进入循环 system("cls"); menu(); /调用菜单 scanf("%d",&ans);/选择菜单内容 switch(ans) /进入选择结构 case 1: printf("n请输入该表允许输入的最大容量:");/ 确定表的容量 scanf("%d",&m); v=initsl(m,n); / 表初始化 printf("n建表成功!n:"); system("pause"); break; case 2: printf("n 请选择输入方式: n"); / 选择输入方式 printf("n 1 由键盘输入信息 2 由文件导入信息 n"); printf("n "); printf("t请选择:"); scanf("%d",&x); switch(x) case 1:printf("n请输入你要输入的人数:"); scanf("%d",&n); input1(v,m,n); /调用输入函数1,由键盘输入 break; case 2:printf("n请输入你要输入的人数:"); scanf("%d",&n); input2(v,m,n); /调用输入函数2,由文件导入 printf("n导入的信息为:"); output(v,m,n); break; system("pause"); break; case 3: n=n+1; insert(v,m,n); /调用插入函数 system("pause"); output(v,m,n); break; case 4: printf("nt 请选择删除方式: n"); printf("t 1 按电话删除 n"); printf("t 2 按姓名删除 n"); printf("t 3 按地址删除 n"); printf("t n"); printf("t请选择:"); scanf("%d",&x); switch(x) case 1: delet1(v,m,n);/调用删除函数1,按电话号码删除 n-; break; case 2: delet2(v,m,n);/调用删除函数2,按姓名删除 n-; break; case 3: delet3(v,m,n);/调用删除函数3,按地址删除 n-; break; system("pause"); output(v,m,n); break;case 5: printf("nt 请选择查询方式: n"); printf("t 1 按电话查询 n"); printf("t 2 按姓名查询 n"); printf("t 3 按地址查询 n"); printf("t n"); printf("t请选择:"); scanf("%d",&x); switch(x) case 1: search1(v,m,n);/调用查找函数1,按电话号码查找 stem("pause"); break; case 2: search2(v,m,n);/调用查找函数2,按姓名查找 system("pause"); break; case 3: search3(v,m,n);/调用查找函数3,按地址查找 system("pause"); break; break; case 6: output(v,m,n); /调用输出函数,显示全部学生信息 printf("n"); system("pause"); break; case 7: printf(" 请输入88 n");/输入相应的信息,退出系统 scanf("%d",&ans); printf(" 谢谢使用本系统! 欢迎下次使用! n"); break;if(ans=88) /若输入为“88”,则跳出循环 break; else ; /否则继续主菜单界面运行结果图为:1、建表:2、 输入信息:(1) 键盘输入:(2) 文件导入:3、 插入信息:4、 删除信息:(1)按电话号码删除:(2)按姓名删除:(3)按地址删除:5、查找信息(1)按电话号码查找:(2)按姓名查找:(3) 按地址查找:6、输出全部信息7、退出系统六、不足点:插入有问题,插入元素不成功!第 18 页 共 18 页

    注意事项

    本文(课程设计(论文)-电话簿管理系统.doc)为本站会员(yyf)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开