收藏 分销(赏)

C语言qq好友管理系统课程设计报告.doc

上传人:二*** 文档编号:4535416 上传时间:2024-09-27 格式:DOC 页数:22 大小:200KB
下载 相关 举报
C语言qq好友管理系统课程设计报告.doc_第1页
第1页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

2、 参考文献?数据构造C语言版?严蔚敏 清华大学?C语言程序设计?第三版谭浩强 清华大学审查意见指导教师签字:教研室主任签字: 年 月 日. .word.zl. .目 录1 需求分析12概要设计13 详细设计14 运行环境15 开发工具和编程语言16 程序设计17 调试分析18 测试结果19参考文献110心得体会111 成绩评价表11 需求分析 QQ的普及度越来越高,其功能也需要加强。将通讯录的功能添加到QQ好友管理系统中,使其在聊天中就可以呼叫联系人,并且将通讯录的信息可以QQ中长期保存,在无手机的情况下也查找好友手机号。从而使QQ功能更加完善,使用起来更加方便和快捷。2概要设计1实现功能:

3、菜 单推出系统查找好友删除好友显示好友添加好友修改信息2序中各函数程简单说明见下:返回值函数名参数表函数说明提供客户intmainvoid主函数是voidmenuvoid显示功能是intreadsHaoyou stuN读取否voidsavehaoyou stuN,n保存是voidaddvoid添加是voiddelvoid删除否voidqueryvoid查找是voidchangvoid修改否voidshowvoid信息显示是(3) 对程序中的各个函数功能的描述1主函数main系统开场、完毕界面的显示、各个功能函数的调用、转换以及参数的传递、定义QQ头结点并传递给各个功能函数2功能显示menu 介

4、绍程序的功能,按那些键实现其特点功能。3读取函数reads 读取用户输入的信息,将其按线性表的形式呢存储, 联系人的编号为其头结点。4保存函数save 将输入的信息保存,假设失败返回保持失败。5添加联系人函数add 增加联系人到QQ通讯录的尾部,返回增加是否成功。6删除函数del按照用户指定的联系人编号删除相应联系人信息,返回删除是否成功。7查找函数query 按照用户提供的联系人XX查找第一个合法XX对应的信息,查找成功那么显示信息,失败那么提示无此联系人,返回是否查找到。8修改函数chang 按照用户提供的联系人XX修改联系人所有信息,返回修改是否 成功。9显示信息函数show显示当前通讯

5、录中所有联系人的信息,假设为空通讯录,那么显示无联 系人。 主函数main3 详细设计显示功能show修改功能chang查找功能query删除功能del添加功能add保存功能save读取功能reads显示功能menu4 运行环境1) 软件环境操作系统:Windows7,Windows82) 硬件环境处理器:Intel Pentium 166MX 或更高存:32MB以上硬盘空间:1GB以上显卡:SVGA 显示适配5 开发工具和编程语言Microsoft visual C+C语言6 程序设计#include#include#include#includeconio.h/*conio.h主要做图形图

6、像,例如说设置背风光的函数,字体颜色的函数、输出格式的函数等*/#define N 30typedef struct haoyou/*typedef是类型定义的意思。typedef struct 是为了使用这个构造体方便。 具体区别在于:假设struct node 这样来定义构造体的话。在申请node 的变量时,需要这样写,struct node n;假设用typedef,可以这样写,typedef struct nodeNODE; 。在申请变量时就可以这样写,NODE n; 区别就在于使用时,是否可以省去struct这个关键字*/char num20;char name10;char adr

7、ess50;char QQ15;char tel15;haoyou;void menu();int reads(haoyou stuN); /读取void save(haoyou stuN,int n); /保存void add(); /添加void del(); /删除void query(); /查询void change(); /修改void show(); /信息显示void main()int n; while(1)/*while(1)其中1代表一个常量表达式,他永远不会等于0。所以,循环会一直执行下去。除非你设置break等类似的跳出循环语句循环才会中止*/ menu();prin

8、tf(n); printf( 您现在看到的是QQ中的通讯录 n);printf(n);printf(n); printf( 请输入您要选择的操作编号,按回车键确认:n);printf(n); scanf(%d,&n); switch(n)case 1: add();break;case 2: show();break;case 3: del();break;case 4: change();break;case 5: query();break;case 0: exit(0);default: printf(*n); printf( 输入错误,请输入列表中存在的编号 n );printf(*n

9、);printf(*n);printf( 按任意键返回n);printf(*n);getch(); /*getch();或ch=getch(); 用getch();会等待你按下任意键,再继续执行下面的语句;用ch=getch();会等待你按下任意键之后,把该键字符所对应的ASCII码赋给ch,再执行下面的语句。*/void menu()system(color 1f);/颜色system(cls);/清屏printf(*xxx好友信息管理系统*n); printf(* 1 添加好友信息 *n); printf(* 2 显示好友信息 *n); printf(* 3 删除好友信息 *n); pri

10、ntf(* 4 更改好友信息 *n); printf(* 5 查询好友信息 *n); printf(* 0 退出 *n); printf(*n);int reads(haoyou stuN) / 读取好友文件中的容FILE *fp; int i=0; if(fp=fopen(d:haoyou.txt,r)=NULL) printf(文件翻开失败!n); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %s %sn,stui.num,stui.name,stui.adress,stui.QQ,stui.tel); fclose(fp

11、); return i;void save(haoyou stuN,int n) / 好友信息改变后更新文件FILE *fp; int i=0; if(fp=fopen(d:haoyou.txt,w)=NULL) printf(文件翻开失败!n); return ; else for(i=0;in;i+)fprintf(fp,%s %s %s %s %sn,stui.num,stui.name,stui.adress,stui.QQ,stui.tel); fclose(fp);void add()/*添加好友信息*/FILE *fp; int n,i; haoyou stu; if(fp=fo

12、pen(d:haoyou.txt,a)=NULL) /*如果文件已经存在,可以追加好友信息*/if(fp=fopen(d:haoyou.txt,w)=NULL) /* 文件不存在时,创立新文件,输入好友信息*/ printf(文件翻开失败!n); return;printf(*n); printf( 请输入要添加的好友数量,按回车键确认:n);printf(*n); scanf(%d,&n); for(i=1;i=n;i+) printf(*n);printf( 请输入第%d个好友的编号、XX,用空格分开,并按回车键确认:n,i); printf(*n);scanf(%s%s,stu.num,

13、stu.name);printf(*n); printf( 请输入第%d个好友的地址、QQ号和,用空格分开,并按回车键确认:n,i);printf(*n); scanf(%s%s%s,stu.adress,stu.QQ,stu.tel); fprintf(fp,%s %s %s %s %sn,stu.num,stu.name,stu.adress,stu.QQ,stu.tel); fclose(fp);void show() / 好友信息显示函数haoyou stuN; int i,n; n=reads(stu); printf(*所有的好友信息如下*nn);printf( 序号 编号 XX

14、地址 QQ号 n); printf(*n); for(i=0;in;i+)printf(n%3d %s %s %s %s %sn,i+1,stui.num,stui.name,stui.adress,stui.QQ,stui.tel);printf(*n); getch();void del() /*好友信息删除函数*/haoyou stuN; char number20; int n,i,j; n=reads(stu);printf(*n); printf(请输入要删除信息的好友编号,按回车键确认:n);printf(*n); scanf(%s,number); for(i=0;i=n)pr

15、intf(没有找到该好友信息!n);return;elsefor(j=i+1;jn;j+)stuj-1=stuj;save(stu,n-1);printf(删除成功!n);void change() /好友信息更改haoyou stuN; int n,i;char number20;printf(*n); printf(请输入要更改信息的好友编号,按回车键确认:n);printf(*n); scanf(%s,number); n=reads(stu); for(i=0;i=n)printf(无此好友信息!);return;printf(*n);printf(请输入更改后好友的编号,XX,地址,

16、QQ号,按回车键确认:n);printf(*n);scanf(%s%s%s%s%s,stui.num,stui.name,stui.adress,stui.QQ,stui.tel);save(stu,n);void query() / 按编号对好友信息查询 haoyou stuN; char number20; int i,n; n=reads(stu);printf(*n); printf(请输入待查询的好友编号,按回车键确认:n);printf(*n); scanf(%s,number); for(i=0;i=n)printf(没有找到该好友信息!n);return;elseprintf(

17、*n);printf( 编号 XX 地址 QQ号 n);printf(*n);printf(n%s %s %s %s %sn,stui.num,stui.name,stui.adress,stui.QQ,stui.tel);printf(*n);7 调试分析1 在测试删除QQ联系人函数时发现无论通讯录中现存多少条记录只 要删除一条测试中的问题举例:之后,通讯录就会被清空,经过检查发现是删除函数中的条件控制设置有错,导致只要一删除一个联系人就会事头结点与尾结点指向同一个,导致再显示联系人时显示无联系人。经过调整已 处理好。算法改进设想举例:2 程序中还有很多地方不能很好的模拟QQ通讯录的功能,比

18、方在增肌联系人时,不管原来新联系人XX是否已存在,都会被参加通讯录,这样一来就有可能重复记录。此外在查找联系人时只要查找到一个合法记录就会中断查找操作,如此有可能导致记录的漏查。结合以上两点应优化增加查找联系人算法,在存入之间进展防重判断。8 测试结果1 测试数据举例编号XX地址QQ号手机号1duanbaohenan16338837683882xiaominghenan37838282832638483xiaowanghenan672847844748473822 按如下顺序进展测试: 1) 显示各个功能所对应的建 2) 添加好友信息 3) 显示好友信息 4) 删除好友信息 5) 更改好友信息

19、 6) 查询好友信息 7) 退出系统3 按照如上提供的测试步骤得出以下结果运行图: 1) 显示各个功能所对应的建如图1 图1 运行实例2) 添加好友信息如图2 图2 运行实例3 显示好友信息如图3 图3 运行实例3) 删除好友信息如图4 图4 运行实例 5 更改好友信息如图 图5 运行实例6 查询好友信息如图6 图6 运行实实例 7) 退出系统如图7 图7 运行实例9参考文献1严蔚敏,?数据构造C语言版? 清华大学2谭浩强.?C语言程序设计?第三版 清华大学3Peter Van Der Linden ,C专家编程,人民邮电4Kenneth A.Reek C和指针 ,人民邮电10心得体会通过这次

20、数据构造实践作业,我更深刻的体会到了C语言的语句简洁性、紧凑性,将文件与构造体结合可以实现好多功能。语言是程序的骨肉,而数据构造和算法即使程序的灵魂,要想成功的编写程序必须选好适宜的数据构造,比方这次课程设计中,最开场我准备用普通的构造体进展设计,后来发现那样很不方便,后来改为用文件之后就方便了许多。另外,我觉得比较重要的一点是在编复杂程序时要有宏观思想,想从整体把握设计好各个板块的调用关系,最好先做出一个流程图,再按照这个总体设想进一步具体、细化!这样才不会在需要调用其它函数时手忙脚乱!此外,进展如上所述的操作前提都是以扎实的语言根底做为前提的,在最开场的代码编辑阶段,我曾被指针很深的困扰,

21、后来对此一节找了些资料进展“补课,自己也进展的深入的理解,后来才逐渐顺利起来!11计算机应用技术学院课程设计成绩评价表课程名称:数据构造课程设计设计题目:QQ好友讯录系统专业: 班级: XX: 学号:序号评审工程分 数总分值标准说明1 容思路清晰;语言表达准确,概念清楚,论点正确;实验方法科学,分析归纳合理;结论严谨,设计有应用价值。任务饱满,做了大量的工作。2创 新容新颖,题目能反映新技术,对前人工作有改进或突破,或有独特见解3完整性、实用性整体构思合理,理论依据充分,设计完整,实用性强4数据准确、可靠数据准确,公式推导正确5规 性设计格式、绘图、图纸、实验数据、标准的运用等符合有关标准和规定6纪 律 性能很好的遵守各项纪律,设计过程认真;7答 辩准备工作充分,答复以下问题有理论依据,根本概念清楚。主要问题答复简明准确。在规定的时间作完报告。总 分综合意见 指导教师 年 月 日教育之通病是教用脑的人不用手,不教用手的人用脑,所以一无所能。教育革命的对策是手脑联盟,结果是手与脑的力量都可以大到不可思议。. .word.zl.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服