- 博客(47)
- 收藏
- 关注
原创 qt定时器,绘制,简单网络通讯 2024.10.10
绘制部分:使用QPainter创建画板,中心位于窗口中心,设置画板大小,在根据中心绘制边缘和针,然后使用rolate进行旋转。2.简单的服务器和客户端通信:主要要在.pro文件添加network。整体逻辑就是使用计时器QTimer定时修改坐标系。
2024-10-10 21:29:52 270
原创 qt QMessageBox案例,2024.10.8
当用户点击取消按钮,弹出问题对话框,询问是否要确定退出登录,并提供两个按钮,yes|No,如果用户点击的Yes,则关闭对话框,如果用户点击的No,则继续登录当用户点击的登录按钮,进行账号和密码的匹配,如果匹配成功,则弹出信息对话框,给出信息为,登录成功,并给出一个确定按钮,当用户点击该按钮后,关闭登录界面,弹出另一个界面当账号和密码不匹配是,给出错误对话框,给出信息为账号和密码不匹配,是否重新登录,并提供两个按钮 Yes|No,如果用户点击了Yes,则清空密码框后,继续登录。如果用户点击的取消,则关
2024-10-08 20:50:59 225
原创 2024.9.26C++作业
在多态过程中,如果基类指针要删除一个派生类对象,如果没有定义虚析构函数,那么只会调用基类的析构函数,派生类的虚构函数不会被调用,可能造成内存泄漏,2.在运行时,允许基类指针或者引用调用这个函数时,根据实际对象类型调用派生类,实现动态绑定,实现多态性。3.纯虚函数是没有在基类中实现的函数,只声明,不实现,无法直接实例化,必须在派生类中提供具体的实现。2.指针储存的是对象地址,访问时通过解引用访问实际值,引用是对象别名,在编译时替换成对象本身。3.引用必须在声明时进行初始化,而指针可以在声明后稍后赋值。
2024-09-26 21:16:19 682
原创 2024.9.24 作业
My_string类中的所有能重载的运算符全部进行重载+、[] 、>、=、>)仿照stack类实现my_stack,实现一个栈的操作
2024-09-24 21:53:00 856
原创 2024.9.20 c++
有私有成员:顺序表数组的起始地址 ptr、 顺序表的总长度:size、顺序表的实际长度:len。将顺序表进行排序:sort(bool flag) //flag 为真,表示升序,否则是降序。手动封装一个顺序表(SeqList),分文件编译实现。任意位置删除:erase(int index)获取任意位置元素:& at(int inex)成员函数:初始化 init(int n)插入:insert(int index)尾插:push_back。尾删: pop_back。求长度:size()
2024-09-20 20:32:44 220
原创 C++基础练习 2024.9.18
2.练习:使用cin和cout完成,提示并输入一个字符,判断该字符是大写还是小写,如果是大写字母,则转变成对应的小写字母输出,如果是小写字母,则转变成对应的大写字母输出,如果是其他字符,则转变成"并输出。3.提示并输入一个字符串,统计该字符串中字母、数字、空格、其他字符的个数并输出。1.cout实现斐波那契数列。
2024-09-18 20:00:33 115
原创 基础的tcp和udp通信 2024.9.3
1、将TCP的CS模型实现一遍2、UDP服务器中,使用connect函数,实现唯一的客户端与服务器通话。
2024-09-03 21:02:09 324
原创 进程间通信 2024.8.29
1、将消息队列发送接收端实现一遍。2、将共享内存发送接收实现一遍。3、建立两个.c建立子父进程,父进程发送消息到队列,子进程读取队列,另一个同样。
2024-08-29 20:33:09 677
原创 用有名管道进行父子进程的通信2024.8.28
注意:mkfifo会创建一个管道文件,因为在指定文件路径的时候尽量不要以/开头,因为/开头是绝对路径。而直接名字是在当前路径下创建。题目:有名管道,创建两个发送接收端,父进程写入管道1和管道2,子进程读取管道2和管道1。
2024-08-28 20:28:20 210
原创 线程基础与信号量 2024.8.27
在通过sem_post和sem_wait来修改信号量,进而实现间接控制阻塞队列,实现线程的执行与阻塞。因为线程的执行由cpu决定,并发时具有不可预测的特点,因此需要特别注意多个线程访问同一个地址的或者输出的顺序问题,一般采用以下方法对地址进行保护。作业一:创建3个线程,一个子线程拷贝文件的前一半,一个子线程拷贝后一半文件,主线程回收子线程资源。知识点:线程相较于进程,能够很方便的共享数据,因为多个线程对于全局变量修改读取同一个地址。作业二:使用无名信号量实现循环输出春、夏、秋、冬。
2024-08-27 21:02:04 208
原创 进程与子进程 2024.8.26
知识点1:fork函数,fork函数由操作系统执行,在执行fork函数后,会将父进程的内存数据,代码等拷贝一份给子进程。但fork返回的值,子进程不是拷贝自父进程的值,而是由操作系统直接赋予,子进程获取的值为0,父进程获取的为子进程的pid。创建3个进程,子进1程拷贝文件的前一半,子进程2拷贝后一半文件,父进程回收两个子进程资源。知识点2:子进程只会执行父进程使用fork()创建子进程之后的代码部分。
2024-08-26 20:08:47 159
原创 父子进程与文件读取 2024.8.23
2.使用open打开文件,-1则失败。另外使用一个值储存read返回读取的数量,用于write写入的个数,而不是直接使用缓冲区的大小。因为缓冲区可能不是一直满的。题目:创建子父进程,子进程将1.txt内容拷贝到2.txt中,父进程将3.txt内容拷贝到4.txt中。1.fork返回值,==0则创建子进行成功并且可以依靠这个判断是否是子进程在执行。
2024-08-23 19:16:42 223
原创 IO文件流的使用 2024.8.22
1.首先write和fwrite针对的流指针不同,fwrite() 使用的是标准库 FILE * 指针,由 fopen() 打开文件时返回。2.write又被称为无缓存读取,这个无缓存不是真的无缓存,而是值直接由系统调用,减少中间的缓存(本身依旧有缓存)。而fwrite的缓存由于标准库控制。fscanf() 和 fprintf():适用于处理格式化文本数据,它们能够方便地进行格式化的读取和写入操作。write() 适用于直接的、无缓冲的文件操作,尤其是在需要精细控制底层 I/O 的情况下。
2024-08-22 19:56:26 215
原创 文件读取复制与拷贝
func.c,这边的重点就是读取之间用“ ”空格分隔,不是表示空格,而是忽视隔断符号。存入\n用于更好分隔。作业2:使用fread和fwrite拷贝文件。参数为(缓存地址,次数,大小,FILE指针),返回读取个数。作业1:使用分文件编译,实现注册登录界面,使用已经学过的fgets,fscanf,fpritnf函数。
2024-08-21 19:51:34 240
原创 2024.8.16~18
单链表实现学生管理系统(参照顺序表技能)写出菜单界面switch选择,功能1创建单链表,2录入学生信息,3删除一个学生信息,4按照成绩修改一个学生的年龄,5、按照姓名顺序查找一个学生是否存在。要求: 1、学生信息结构体姓名,分数,年龄,电话。2、其他功能函数自定义,分文件编译。
2024-08-18 23:26:01 143
原创 2024.8.15
顺序表实现学生管理系统(参照顺序表技能)写出菜单界面switch选择,功能1创建顺序表(堆区),2录入学生信息,3插入一个学生信息,4删除一个学生信息,5按照位置修改一个学生信息,6、按照姓名顺序查找一个学生是否存在7、对学生年龄直接插入排序(从小到大)。
2024-08-18 23:22:22 196
原创 2024.8.13
作业:链栈,自己实现一遍,但是节点存储不是整数,存储学生信息(年龄,分数,姓名)三级引用。注意:栈头结点的top指针指向最后进的指针,并且都是后进的指针指向前一个指针。1、建立学生信息结构体,将data改为学生信息结构体类型。2、循环入栈和入队。
2024-08-13 19:53:03 166
原创 2024.8.12
1、建立学生结构体数组,存放4个学生信息,循环调用插入函数,建立整表2、任意位置插入一个新学生。变量e是学生结构体变量。作业:创建单链表,存储4个学生信息(年龄,分数,姓名)。4、单链表逆置后将学生信息输出。3、任意位置删除一个学生。
2024-08-12 20:29:18 147
原创 2024.8.8
插入:从最后一个数开始,每一个数都往后移动一位,在插入点移动后结束。并将要插入的值赋值给插入点。自定义顺序表,实现顺序表按照位置插入和删除功能。删除:从插入点开始,将每一个数往前移动一位。思路:结构体内含int长度和int数组。
2024-08-08 19:38:13 191
原创 2024.8.7 C语言结构体练习
作业二:在堆区,申请5个结构体空间,存储学生信息(姓名,分数)循环输入学生信息,按照输入姓名查找某个学生,修改其成绩为100分。作业一:结构体数组存储学生信息(姓名,年龄,分数),完成输入学生信息,输出学生信息,求学生成绩之和,求最低学生成绩。注意点:与上面储存结构体的数组不同,这边声明的是指向结构体的指针数组。元素为指针,因此使用->访问结构体的元素。
2024-08-07 19:50:00 149
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人