C语言qq好友管理系统课程设计_第1页
C语言qq好友管理系统课程设计_第2页
C语言qq好友管理系统课程设计_第3页
C语言qq好友管理系统课程设计_第4页
C语言qq好友管理系统课程设计_第5页
免费预览已结束,剩余10页可下载查看

付费下载

下载本文档

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

文档简介

1、课程设计QQ好友治理系统课程设计名称:数据结构课程设计专业班级: 16 机电二班小组成员:王守锋石松轶陆永斌张智斌李治明指导教师: 徐丽萍课程设计时间:2022年5月30日计算机应用技术专业课程设计任务书学生姓名专业班级学号题目QQ好友中通讯录治理系统课题性质工程设计课题来源自拟课题指导教师同组姓名无主要内容运用C语言和数据结构知识设计 QQ好友治理系统QQ不仅仅是个社交平台,还应是个工作平台,将通讯录保存在QQ用时更加方便.通过QQ可以直接呼叫联系人.任务要求1 添加好友信息2显示好友信息3 删除好友信息4更改好友信息5 查询好友信息奔f文献?数据结构C语言版?严蔚敏清华大学出版社?C语言程

2、序设计?第三版谭浩强清华大学出版社审查意见指导教师签字:教研室主任签字:年月日1需求分析 32概要设计33详细设计54运行环境55开发工具和编程语言 66程序设计67调试分析 98测试结果99参考文献1110心得体会1111成绩评价表121需求分析QQ的普及度越来越高,其功能也需要增强.将通讯录的功能添加到 QQ好友 治理系统中,使其在聊天中就可以呼叫联系人,并且将通讯录的信息可以 QQt 长期保存,在无 的情况下也查找好友 号.从而使 QQ*能更加完善,使 用起来更加方便和快捷.2概要设计(1)实现功能:查找好友菜单推 出 系 统(2)序中各函数程简单说明见下:返回值函数名参数表函数说明提供

3、客户intmainvoid主函数是voidmenuvoid显示功能是intreadsHaoyou stuN读取否voidsavehaoyou stuN,n保存是voidaddvoid添加是voiddelvoid删除否voidqueryvoid查找是voidchangvoid修改否voidshowvoid信息显示是(3)对程序中的各个函数功能的描述1主函数 main系统开始、结束界面的显示、各个功能函数的调用、转换以及参数的传递、定义QCft结点并传递给各个功能函数2功能显示 menu介绍程序的功能,按那些键实现其特点功能.3读取函数reads读取用户输入的信息,将其按线性表的形式呢存储,联系人

4、的编号为其头结点.4保存函数save将输入的信息保存,假设失败返回保持失败.5添加联系人函数add增加联系人到QQ通讯录的尾部,返回增加是否成功.6删除函数del根据用户指定的联系人编号删除相应联系人信息,返回删除是否成功.7查找函数query根据用户提供的联系人姓名查找第一个合法姓名对应的信息,查找成功那么显示信息,失败那么提示无此联系人,返回是否查找到.8修改函数chang根据用户提供的联系人姓名修改联系人所有信息,返回修改是否成功.9显示信息函数show显示当前通讯录中所有联系人的信息,假设为空通讯录,那么显示无联系人3详细设计主函数main显示功能menu读取 功能 reads保存 功

5、能 save添加 功能 add删除 功能 del查找 功能 quer y4运行环境1软件环境操作系统:Windows7,Windows82硬件环境处理器:Intel Pentium 166MX 或更高 内存:32MBz上 硬盘空间:1GBz上 显卡:SVGA®示适配5开发工具和编程语言Microsoft visual C+C语言6程序设计#include<>#include<>#include<>#include""/* 主要做图形图像,例如说设置背景色的函数,字体颜色的 函数、输出格式的函数等*/#define N 30typ

6、edef struct haoyou/*typedef是类型定义的意思.typedef struct 是为了使用这个结构体方便. 具体区另1J在于:假设struct node 这样来定义结构体的话.在申请 node的变量 时,需要这样写,struct node n;假设用 typedef,可以这样写,typedef struct nodeNODE;. 在申请变量时就可以这样写, NODE n;区别就在于使用时,是否可以省去 struct这个关键 字*/char num20;char name10;char adress50;char QQ15;char tel15;haoyou;void me

7、nu();int reads(haoyou stuN); um,,stui.adress,stui.QQ,stui.tel); fclose(fp); return i; voidsave(haoyoustuN,intn)um,,stui.adress,stui.QQ,stui.tel); fclose(fp);void add()/*添加好友信息*/FILE *fp;int n,i;haoyou stu;if(fp=fopen("d:","a")=NULL) /*如果文件已经存在,可以追加好友信息*/(if(fp=f

8、open("d:","w")=NULL)/*文件不存在时,创立新文件,输入好友信息*/(printf("文件翻开失败!n");return;printf("*n");printf("请输入要添加的好友数量,按回车键确认: n");printf("*n");scanf("%d",&n);for(i=1;i<=n;i+)printf( "*n",i);printf("请输入第dj好友的编号、姓名,用空格分开,并按回车

9、键确认:printf(*n");scanf("%s%s",;printf("*n");printf("请输入第办好友的地址、QQ1和 ,用空格分开,并按回车键确认:n",i);printf(*n");scanf("%s%s%s",;fprintf(fp,"%s %s %s %s %sn",;fclose(fp);void show() um,,stui.adress,stui.QQ,stui.tel);printf("*n");getch

10、();void del() /*好友信息删除函数*/haoyou stuN; char number20; int n,i,j;n=reads(stu);printf("*n");n");printf("请输入要删除信息的好友编号,按回车键确认:printf("*n");scanf("%s",number);for(i=0;i<n;i+)if(strcmp(number,stui.num)=0) break; if(i>=n) printf("没有找到该好友信息!n");return

11、;) elsefor(j=i+1;j<n;j+)stuj-1=stuj;)save(stu,n-1);printf("删除成功! n");)void change() um)=0) break;if(i>=n)printf(" 无此好友信息!"); return;printf("*n");printf"请输入更改后好友的编号,姓名,地址,QQ号, ,按回车键确认:n");printf("*n");scanf("%s%s%s%s%s",stui.num,stui.n

12、ame,stui.adress,stui.QQ,stui.te l);save(stu,n);void query() um)=0) break; if(i>=n) printf"没有找到该好友信息!n"return;) elseprintf("*printf(" 编号姓名地址 QQ n");printf("*n");printf("n%s %s %s %s %sn",stui.num,stui.n ame,stui.adress,stui.QQ,stui.tel);printf(*n")

13、;7调试分析1 在测试删除QQR系人函数时发现无论通讯录中现存多少条记录只要删除一条测试中的问题举例:之后,通讯录就会被清空,经过检查发现是删 除函数中的条件限制设置有错,导致只要一删除一个联系人就会事头结点与 尾结点指向同一个,导致再显示联系人时显示无联系人.经过调整已处理好.算法改良设想举例:2 程序中还有很多地方不能很好的模拟 QQ通讯录的功能,比方在增肌联 系人时,不管原来新联系人姓名是否已存在,都会被参加通讯录,这样一来 就有可能重复记录.此外在查找联系人时只要查找到一个合法记录就会中断 查找操作,如此有可能导致记录的漏查.结合以上两点应优化增加查找联系 人算法,在存入之间进行防重判

14、断.8测试结果1 .测试数据举例编号姓名地址QOt 号1 duanbaohenan16338837683882 xiaominghenan3 xiaowanghenan22.按如下顺序进行测试:1) 显示各个功能所对应的建2) 添加好友信息3) 显示好友信息4) 删除好友信息5) 更改好友信息6) 查询好友信息7) 退出系统3根据如上提供的测试步骤得出以下结果运行图:1) 显示各个功能所对应的建如图1图1运行实例2) 添加好友信息如图2图2 运行实例3) 显示好友信息如图3图3 运行实例3)删除好友信息如图4图4 运行实例5 )更改好友信息如图图5运行实例6)查询好友信息如图6图6运行实实例7

15、)退出系统如图7图7运行实例9参考文献1严蔚敏,?数据结构c语言版?清华大学出版社2谭浩强.?C语言程序设计?第三版清华大学出版社3Peter Van Der Linden ,C专家编程,人民邮电出版社4Kenneth C 和指针,人民邮电出版社10心得体会通过这次数据结构实践作业,我更深刻的体会到了 C语言的语句简洁性、紧凑性,将文件与结构体结合可以实现好多功能语言是程序的骨肉,而数据结构和算法即使程序的灵魂,要想成功的编写程 序必须选好适宜的数据结构,比方这次课程设计中,最开始我准备用普通的结构 体进行设计,后来发现那样很不方便,后来改为用文件之后就方便了许多.另外,我觉得比拟重要的一点是在编复杂程序时要有宏观思想, 想从整体把 握设计好各个板块的调用关系,最好先做出一个流程图,再根据这个总体设想进 一步具体、细化!这样才不会在需要调用其它函数时手忙脚乱!此外,进行如上所述的操作前提都是以扎实的语言根底做为前提的, 在最开 始的代码编辑阶段,我曾被指针很深的困扰,后来对此一节找了些资料进行 “补 课,自己也进行的深入的理解,后来才逐渐顺利起来!11计算机应用技术学院课程设计成绩评价哀课程名称:数据结构课程设计设计题目:QQ子友中通讯录系统专业:班级:姓名: 学号:序号评审工程分数总分值标准说明1内 容思路清楚;语言表达准确,概念清楚,论点正确;实验方法

温馨提示

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

评论

0/150

提交评论