当前位置:首页 » 编程语言 » c语言编辑qq记牌器
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编辑qq记牌器

发布时间: 2023-01-23 15:41:27

⑴ 编个自动记牌器,需要学哪些知识

复杂点的,要学习Win32编程,知道窗口(句柄),知道如何向指定窗口发送WINDOWS消息,知道如何获取指定进程的相关信息,知道虚拟内存(你直接通过某些工具取到的内存地址可能是不正确的,需要了解虚拟内存的概念才能正确换算),还有可能要你学习加解密的知识...

简单点的,网络一下 “TC脚本” ,或者 “按键精灵”。 这些脚本允许你使用脚本截取指定窗口的屏幕颜色或图像,然后通过你自己的逻辑来处理它们。至于其获取屏幕图像的原理不需要你关心,脚本的“编译器”通过调用一些相关组件已经帮你做好了。

⑵ 用c语言编写一个QQ通讯录管理系统设计

课程设计课程设计名称:数据结构课程设计专业班级:计科××××学生姓名:×××学号:××××××指导教师:课程设计时间:计算机应用技术专业课程设计任务书学生姓名×××专业班级计科××学号××××题目××××××××××课题性质A课题来源D指导教师同组姓名无主要内容学习掌握并熟练运用C语言进行程序设计;针对具体应用问题,选择、设计和实现合适的抽象数据类型;进行简单的需求分析,给出设计方案。任务要求综合运用和融化所学理论知识,提高分析和解决实际问题的能力,达到培养良好程序设计能力和习惯的目的,为开发满足问题要求的小型应用软件奠定基础,达到软件工程的综合性基础训练的目的。完成需求分析报告,报告中对关键部分给出图表说明。要求格式规范,工作量饱满。参考文献《数据结构(C语言版)》严蔚敏清华大学出版社《C语言程序设计》(第三版)谭浩强清华大学出版社审查意见指导教师签字:教研室主任签字:年月日1需求分析手机通讯录系统,以联系人为节点建立伪队列(有头尾指针、且可从表中间进行操作),要实现一下基本功能。增加联系人删除联系人修改联系人清空通讯录查找联系人按分组显示联系人显示全部联系人退出系统2概要设计(1)程序总体框架如图1所示:图1程序框架图(2)序中各函数程简单说明见如表1函数说明所示:返回值函数名参数表函数说明提供客户intmainvoid主函数是voidinitAddressBookLinkQueue&Q初始化通讯录否boolenAddressBookLinkQueue&Q增加联系人是boolupdateLinkQueue&Q修改联系人是booldelPersonLinkQueue&Q删除联系人是boolfindByNameLinkQueue&Q查找联系人是boolfindByGroupLinkQueue&Q按组显示是voiddisAllLinkQueue&Q显示全部联系人是boolclearAddressBookLinkQueue&Q清空通讯录是表1函数说明(2)对程序中的各个函数功能的描述①主函数main:系统开始、结束界面的显示、各个功能函数的调用、转换以及参数的传递、定义通讯头结点并传递给各个功能函数②初始化通讯录函数initAddressBook:初始化主函数传入的头结点,即初始化通讯录,此系统采用伪队列,有头、尾指针,可从中间进行删除操作③增加联系人函数enAddressBook增加联系人到通讯录的尾部,返回增加是否成功。④修改联系人函数按照用户提供的联系人姓名修改联系人所有信息,返回修改是否成功。⑤删除联系人按照用户指定的联系人姓名删除相应联系人信息,返回删除是否成功。⑥查找联系人按照用户提供的联系人姓名查找第一个合法姓名对应的信息,查找成功则显示信息,失败则提示无此联系人,返回是否查找到。⑦按组显示函数按照用户提供的分组名称,查找组中联系人,若存在则全部输出,若不存在则提示无此分组,返回是否超找到合法联系人。⑧显示全部联系人函数显示当前通讯录中所有联系人的信息,若为空通讯录,则显示无联系人。⑨清空通讯录删除所有联系人信息,返回是否成功!⑩通讯录人数函数判断通讯录当前联系人数量,返回之,此函数主要是为清空通讯录函数所调用,故不提供给用户。计3运行环境1)软件环境操作系统:Windows72)硬件环境处理器:IntelPentium166MX或更高内存:32MB以上硬盘空间:1GB以上显卡:SVGA显示适配4开发工具和编程语言MicrosoftvisualC++C语言5详细设//主函数intmain(){LinkQueueQ;initAddressBook(Q);intflag=0;while(flag!=8){printf("※※※※※主※※※※※菜※※※※※单※※※※※\n");printf("※1、增加联系人2、删除联系人※\n");printf("※3、修改联系人4、清空通讯录※\n");printf("※5、查找联系人6、按组显示※\n");printf("※7、显示全部联系人8、退出※\n");printf("※※※※※※※※※※※※※※※※※※※※※※※\n");printf("请输入编号(1-8):\n");scanf("%d",&flag);if(flag8){printf("输入错误请重新输入!\n");continue;}else{switch(flag){case1:if(enAddressBook(Q))printf("增加联系人成功!\n");elseprintf("增加联系人失败!\n");break;case2:if(delPerson(Q))printf("删除联系人成功!\n");elseprintf("联系人删除失败!\n");break;case3:if(update(Q))printf("修改联系人成功!\n");elseprintf("修改联系人失败!\n");break;case4:if(clearAddressBook(Q))printf("通讯录已清空!\n");elseprintf("通讯录清空失败!\n");break;case5:findByName(Q);break;case6:findByGroup(Q);break;case7:disAll(Q);break;case8:system("cls");break;}}}printf("※※※※※感谢您使用本系统!※※※※※※\n");return0;}//初始化通讯录voidinitAddressBook(LinkQueue&Q){Q.front=Q.rear=(QNode*)malloc(sizeof(QNode));if(!Q.front)exit(1);elseQ.front->next=NULL;}//清空通讯录boolclearAddressBook(LinkQueue&Q){system("cls");while(addressBookLength(Q)!=0){QNode*p;p=Q.front->next;Q.front->next=p->next;if(p==Q.rear)Q.rear=Q.front;free(p);}returntrue;}//通讯录当前人数intaddressBookLength(LinkQueue&Q){inti=0;QNode*p;p=Q.front;if(Q.front==Q.rear)i=0;else{while(p!=Q.rear){p=p->next;i++;}}returni;}//删除联系人booldelPerson(LinkQueue&Q){char_name[20];system("cls");printf("请输入要删除的联系人的姓名:\n");scanf("%s",_name);QNode*p,*q;if(Q.front==Q.rear){printf("通讯录为空!\n");returnfalse;}else{p=Q.front;q=Q.front->next;while(q!=Q.rear){if(strcmp(q->name,_name)==0){p->next=q->next;free(q);//删除节点returntrue;}else{p=p->next;q=q->next;}}if((strcmp(q->name,_name)==0)){free(q);Q.front=Q.rear;returntrue;}else{printf("无此联系人!\n");returnfalse;}}}//查找联系人boolfindByName(LinkQueue&Q){system("cls");if(Q.front==Q.rear){printf("手机中无联系人!\n");returnfalse;}else{char_name[20];printf("请输入要查询的联系人姓名:\n");scanf("%s",_name);QNode*p;p=Q.front->next;while(p->next!=NULL){if(strcmp(p->name,_name)==0){printf("姓名:%s号码:%s分组:%s\n",p->name,p->tel,p->group);returntrue;}p=p->next;}if(strcmp(p->name,_name)==0){printf("姓名:%s号码:%s分组:%s\n",p->name,p->tel,p->group);returntrue;}else{printf("查无此人!\n");returnfalse;}}}//按组显示联系人boolfindByGroup(LinkQueue&Q){system("cls");if(Q.front==Q.rear){printf("手机中无联系人!\n");returnfalse;}else{char_group[20];printf("请输入要查询的分组:\n");scanf("%s",_group);QNode*p;p=Q.front->next;while(p->next!=NULL){if(strcmp(p->group,_group)==0){printf("姓名:%s号码:%s\n",p->name,p->tel);}p=p->next;}if(strcmp(p->group,_group)==0){printf("姓名:%s号码:%s\n",p->name,p->tel);returntrue;}else{printf("无此分组!\n");returnfalse;}}}//增加联系人boolenAddressBook(LinkQueue&Q){system("cls");QNode*p;p=(QNode*)malloc(sizeof(QNode));if(!p)returnfalse;else{printf("请输入联系人姓名:\n");scanf("%s",p->name);printf("请输入联系人号码:\n");scanf("%s",&p->tel);printf("请输入联系人分组:\n");scanf("%s",p->group);if(Q.front->next==NULL){Q.front->next=p;Q.rear=p;Q.rear->next=NULL;}else{p->next=NULL;Q.rear->next=p;Q.rear=p;}returntrue;}}//修改联系人boolupdate(LinkQueue&Q){system("cls");if(Q.front==Q.rear){printf("手机中无联系人!\n");returnfalse;}else{char_name[20];printf("请输入要修改的联系人姓名:\n");scanf("%s",_name);QNode*p;p=Q.front->next;while(p->next!=NULL){if(strcmp(p->name,_name)==0){printf("请输入新联系人姓名:\n");scanf("%s",p->name);printf("请输入新联系人号码:\n");scanf("%s",&p->tel);printf("请输入新联系人分组:\n");scanf("%s",p->group);returntrue;}p=p->next;}if(strcmp(p->name,_name)==0){printf("请输入新联系人姓名:\n");scanf("%s",p->name);printf("请输入新联系人号码:\n");scanf("%s",&p->tel);printf("请输入新联系人分组:\n");scanf("%s",p->group);returntrue;}else{printf("查无此人!\n");returnfalse;}}}//显示所有联系人voiddisAll(LinkQueue&Q){system("cls");inti=0;QNode*p;p=Q.front->next;if(Q.front==Q.rear)printf("无联系人!\n");else{printf("姓名号码分组\n");while(p!=NULL){printf("%15s%15s%15s\n",p->name,p->tel,p->group);p=p->next;}}}6调试分析1.测试中的问题举例:在测试删除联系人函数时发现无论通讯录中现存多少条记录只要删除一条之后,通讯录就会被清空,经过检查发现是删除函数中的条件控制设置有错,导致只要一删除一个联系人就会事头结点与尾结点指向同一个,导致再显示联系人时显示无联系人。经过调整已处理好。2.算法改进设想举例:程序中还有很多地方不能很好的模拟通讯录的功能,比如在增肌联系人时,不管原来新联系人姓名是否已存在,都会被加入通讯录,这样一来就有可能重复记录。此外在查找联系人时只要查找到一个合法记录就会中断查找操作,如此有可能导致记录的漏查。结合以上两点应优化增加查找联系人算法,在存入之间进行防重判断。7测试结果1.测试数据举例:姓名手机号分组张三12345678910家人李四12345678911朋友王五12345678912朋友赵六12345678913同学表2测试数据举例2.按如下顺序进行测试:1)将测试数据逐条输入通讯录(测试增加联系人函数)2)显示全部联系人(测试显示联系人函数)3)选择一个联系人进行修改(测试修改联系人函数)4)显示全部联系人(验证修改联系人函数是否有效)5)选择一个联系人进行查找(测试查找联系人函数)6)选择一个多人分组进行按分组显示(测试按分组显示函数)7)选择清空联系人(测试清空联系人函数)8)显示全部联系人(验证清空联系人函数)9)选择退出(退出程序)3、按照如上提供的测试步骤得出以下结果运行图:主菜单如图2所示:图2运行示例图a1)在菜单中选择“1”将测试数据逐条输入通讯录,如图3图3运行示例图b2)在菜单中选择“7”显示全部联系人,如图4图4运行示例图c3)在菜单中选择“3”选择一个联系人进行修改,如图5图5运行示例图d4)在菜单中选择“7”显示全部联系人,如图6图6运行示例图e5)在菜单中选择“5”选择一个联系人进行查找,如图7图7运行示例图f6)在菜单中选择“6”选择一个多人分组进行按分组显示,如图8图8运行示例图g7)在菜单中选择“4”清空联系人,如图9图9运行示例图h8)在菜单中选择“7”显示全部联系人,如图10图10运行示例图i9)在菜单中选择“8”,退出,如图11图11运行示例图j参考文献[1]严蔚敏,《数据结构(C语言版)》清华大学出版社[2]谭浩强.《C语言程序设计》(第三版)清华大学出版社[3]PeterVanDerLinden,C专家编程,人民邮电出版社[4]KennethA.ReekC和指针,人民邮电出版社心得体会通过这次数据结构实践作业,我更深刻的体会到了C语言的语句简洁性、紧凑性,与数据结构思想对于一个程序编码顺利进行的重要性。语言是程序的骨肉,而数据结构和算法即使程序的灵魂,要想成功的编写程序必须选好合适的数据结构,比如这次课程设计中,最开始我准备用普通的线性表进行设计,后来发现那样很不方便,后来改为用“伪队列”之后就方便了许多。另外,我觉得比较重要的一点是在编复杂程序时要有宏观思想,想从整体把握设计好各个板块的调用关系,最好先做出一个流程图,再按照这个总体设想进一步具体、细化!这样才不会在需要调用其它函数时手忙脚乱!此外,进行如上所述的操作前提都是以扎实的语言基础做为前提的,在最开始的代码编辑阶段,我曾被指针很深的困扰,后来对此一节找了些资料进行“补课”,自己也进行的深入的理解,后来才逐渐顺利起来!信息科学与工程学院课程设计成绩评价表课程名称:数据结构课程设计设计题目:×××××专业:计科班级:×××姓名:×××学号:××××××序号评审项目分数满分标准说明1内容思路清晰;语言表达准确,概念清楚,论点正确;实验方法科学,分析归纳合理;结论严谨,设计有应用价值。任务饱满,做了大量的工作。2创新内容新颖,题目能反映新技术,对前人工作有改进或突破,或有独特见解3完整性、实用性整体构思合理,理论依据充分,设计完整,实用性强4数据准确、可靠数据准确,公式推导正确5规范性设计格式、绘图、图纸、实验数据、标准的运用等符合有关标准和规定6纪律性能很好的遵守各项纪律,设计过程认真;7答辩准备工作充分,回答问题有理论依据,基本概念清楚。主要问题回答简明准确。在规定的时间内作完报告。总分综合意见指导教师年月日

⑶ C语言编写一个计算QQ 等级(LV):)

/* Note:Your choice is C IDE */ #include "stdio.h" void main() {int day,lv; printf("请输入你的QQ等级:"); scanf("%d",&lv); day=lv*lv+4*lv; printf("你的在线天数为:%d",day); } #include "stdio.h" #include"math.h" void main() { int day,lv,m; printf("请输入您的在线天数:"); scanf("%d",&day); lv=(sqrt(16+4*day)-4)/2; printf("你的Q等级为:%d",lv); }

⑷ 怎么用c语言编一个程序来把qq聊天记录读取出来

你得先知道他的数据结构. QQ的聊天记录据说是存放在MsgEx.db这个文件里面,db类型我不知怎么打开。

麻烦采纳,谢谢!

⑸ 怎么将网络编程的代码变成窗体口调试,就是写出一个类似于qq的东西,用c语言。谢谢

首先,楼主所谓的学C,学算法,实际上就是说学会了编写代码,即知道让计算机先干什么,再干什么,最后得什么结果。他遇到的问题是,没有一个界面让他输入数据,因为他看到的几乎所有软件,都具有输入框、“确定”、“取消”、“关闭”之类的按钮,而他不知道从哪儿弄到这些按钮。
其次,我觉得楼主要有必要建立一些“面向对象程序设计”的观念,具体我不多说,楼主可以自己查。
希望大家不要嫌我罗嗦,因为我觉得,要为楼主解决问题很简单,但要让楼主知道为什么会有这样的迷惑,则须多说几句。
在上世纪九十年代以前的微机,也就是人们说的286,386时代,计算机的运行速度还很低,那时候的计算机几乎不需要用到鼠标,也几乎没什么图形界面,没音响,没彩色……当然也没有windows操作系统,人们操作计算机,大都是用的DOS操作系统。屏幕是黑的,字符是白的,人们输入一组字符串组成的命令,回车,计算机就开始执行,执行完后,再由人输入下一组命令。其界面相信楼主见识过,因为楼主似乎能将原代码变成exe文件,运行时跳出一个黑框来,程序在黑框中运行。实际上,那个黑框就是DOS操作系统的界面,只不过以前的计算机上,这个界面占据了整个屏幕,而现在,却是一个窗口。也就是说,windows操作系统为了方便老用户,提供了这样一个功能:可以运行DOS操作系统的程序,只不过不是占据整个屏幕,而是将其显示在一个窗口中。人们可在里面运行DOS程序,就同当年使用DOS操作系统一样。楼主所学的TC,就是那个时代的程序设计软件,由于几乎不需用到图形界面,当然也没有提供相应的按钮,窗体等功能。假如你非要一个按钮,那么你先得掌握绘图语句,如画线,画点,填色等等。在公元2000年以前,湖南教育界的计算机一级考试系统界面中的那几个按钮就是这样完成的。另外,我最初学用qbasic语言设计界面时,也是这样做的,画个按钮形状,当遇到回车键时,再画个被按下去的形状,半秒种后让它又恢复弹起的形状……总之,麻烦。
随着计算机软、硬件的高速发展以及鼠标,音响,图片,动画在计算机中的大量应用,DOS操作系统已如昔日黄花,退出了历史舞台。windows的普及,使得人们能够更方便,直观的操作电脑。那么新兴起的软件,当然需要经常用到诸如菜单、按钮,图标,滚动条,进度条,文本框之类的东西,我们把它叫做控件,在面像对像程序设计中,一个已绘好的控件就可以理解为一个对像。显然,每编一个程序都去画这些东西是相当烦人的,所以微软公司在后来提供的软件开发工具,比如visual c++中,就直接提供这些控件让人们使用,因为绘制各种控件的方式虽然麻烦,但其过程大致是相同的,所以人们只需给出诸出高度,宽度,名称之类的参数,而把绘制的过程交给了编译程序,就好像在word里面画一张表格一样,你只需用鼠标一拖,它就自己给你画好了。实际上产生的绘制语句代码,可以从头文件里找到,不过我估计没多少人去研究这些无多大意义的过程。为了便于理解,以VC++6.0为例:启动程序--新建--在“工程”栏选择“MFC AppWizard”,工程名字随便填,确定--单选“基本对话框”,然后点“完成”--最后确定。这时你可以见到一个面板,他就是你将要设计的程序的界面。初始时只有“确定”、“取消”两个按钮,当然,旁边还有一个工具箱,上面有很多其它的控件,需要的话你自己加,比如你想要两个框框输入数据,就可从工具箱中选“编辑框”,画两个就是。

⑹ 如何用c语言编写QQ聊天程序(源代码)

1、首先,我们编写C语言的头文件#include <stdio.h>。

⑺ 谁能用C语言编一个QQ记牌器

三种方法:
1图片识别,通过对图片矩阵像素识别牌。
2内存读取,读取qqGame的内存,找到出牌的临时地址进行记录。
3网络监视,sniffer网络信息,记录出的牌。

首先,你必须学会Windows 编程,对windows的程序运行及内存管理要了解。C语言是基础!要写可用的程序必须学相关的开发。

⑻ QQ是怎么用c语言写出来的,谁有代码

方法还是有的,第一运行QQ,然后计算QQ账号框所在屏幕的坐标,再模拟鼠标点击账号框,把光标传递给账号框,再模拟键盘输入账号。第二,同上,计算密码框的坐标再模拟键盘输入密码。至于代码是如何实现的,就看你的C语言水平和Win32 API 熟悉的程

⑼ QQ机器人是用什么语言写的

你好扣扣机器人是用的C语言编辑而成的

⑽ 学了哪些比如C语言,怎么编程比如获取QQ密码,获取键盘记录,谢谢了

QQ密码不是那么好获取的,有干扰,在密码框还有一个timer定时器只要你鼠标放到密码框去,就会被激活这个定时器而且会随机插入其它字符进来,而且密码框还有Hook,专门是否有Hook加载准们对方其它Hook钩子,如果发现就会马上卸载,因为QQ密码框不但有加载的Hook,还有卸载的