- 博客(35)
- 收藏
- 关注
原创 排序-java(插入排序和选择排序)
主要的排序大致分为以下几类:1,插入排序,又分为直接插入排序和希尔排序2,选择排序,又分为选择排序和堆排序3,交换排序,又分为冒泡排序和快速排序4,归并排序。
2024-07-07 00:22:02 862
原创 c++ 继承多态详解
student s;父类和子类可以有同名成员,默认访问的是子类的,子类同名成员隐藏了父类的同名成员,如果想要访问父类的成员变量,就要在成员变量前面加类域(person1::_num )。
2024-06-02 23:38:15 897
原创 c++学生管理系统
cout << " C语言成绩:" << _gradeC << " 高数成绩" << _gradeM << " 英语成绩:" << _gradeE << " 平均成绩:" << everage() << endl;cout << " C语言成绩:" << _gradeC << " 高数成绩" << _gradeM << " 英语成绩:" << _gradeE << " 平均成绩:" << everage() << endl;cout << "请输入修改后的高数成绩:" << endl;
2024-06-02 17:37:31 1007
原创 c++ string模拟实现
模拟实现string类,里面包含四个成员变量,第一个是指向字符数组的指针,第二个变量是目前存放了多少个字符,第三个变量为这个字符数组的容量的大小。最后一个为静态成员变量npos。注意:一个修饰的成员变量可以在类里面初始化(三者缺一不可),而其他成员变量,要声明定义分离,类中声明,类外定义。char* _str;
2024-06-01 18:28:10 825
原创 c++类与对象详解
结构体到类过渡>>类的定义>>构造函数>>析构函数>>拷贝构造>>运算符重载>>友元函数>>const>>取地址运算符重载>>隐式类型转换>>匿名对象>>静态成员变量和静态成员函数
2024-05-22 00:17:15 762
原创 C++基础知识
命名空间>>缺省参数>>函数重载>>编译器处理的流程>>&使用规则>>指针和引用的区别>>宏函数>>内联函数(inline)>>auto
2024-05-09 15:29:59 670
原创 数据结构-队列
1,poll:如图,在栈中,4会最先从栈顶取出,而队列1中最先取出的是1,所以想要取出4,就要将1,2,3弹出放到队列2中。同理可得:想要取出元素,先判断的、那个队列中含有元素,将有元素的队列中的元素放到另一个队列中。1,poll:如图,队列中最先取出的是1,而栈1中最先取出的是4,所以要将栈1中的元素全部放到栈2中,然后取出栈2 的栈顶元素就是队列最先取出的元素。3,offer:增加元素,先判断那个队列中有元素,将添加的元素放到有元素的队列中。2,top:取出队头元素,与上述的方法大致相同。
2024-05-02 22:13:44 606
原创 数据结构-链表练习(面试题)
建立变量cur指向第二个节点,curN指向cur.next,将第二个节点的next改为head,head=cur这样实现,前两个节点顺序的翻转,第二个节点指向了第一个节点,之后cur向后移(cur=curN),curN也向后移,进行循环,直到所以节点的顺序都翻转。1,先用快慢指针,找到中间值,然后将中间值后面的节点翻转,然后,中间值以前的节点从前往后遍历,中间值以后的节点从后往前遍历,并对比节点的val是否相同,如果完全相同,则为回文,如果不相同,则不是。7, 输入两个链表,找出它们的第一个公共结点。
2024-04-29 23:52:20 813
原创 数据结构-链表
4,头插法 addFirst:判断head是否为空(也就是链表中是否有节点),如果没有节点,创立一个节点,head等于这个节点的地址,如果链表中有节点,则创建一个节点,将这个节点的next的值改为下一个节点的地址,也就是头结点的地址,再将头结点的地址改为新建的这个节点的地址。5,尾插法 addLast:首先,判断链表是否为空,如果为空,则直接建立一个节点,并将头结点指向这个节点,如果链表不为空,则需要遍历这个链表找到最后一个节点的位置,将最后一个节点的next改为创立的这个新节点的地址。
2024-04-29 22:45:23 1166
原创 数据结构--顺序表
然后for循环,array[j]=array[j+1],j++,j=2,array[j]=array[j+1],这时,并不需要j++,因为j=3时,将下标为4的数据放到下标为3的地方时,会出现空指针异常,因为下标为四的地方没有数据。10,removeAll,不可以在remove的基础上直接去掉break,因为删除一次后,顺序表的长度变了,数组内容也变了,所以for循环的条件也变了,所以单纯的删掉break并不能实现目的。7,get:1,判断下标是否合法,不合法则抛出异常2,返回下标为pos 的数据的值。
2024-04-25 17:51:42 1036 3
原创 java图书管理系统
DelBook:先在BookList增加一个能改变books数组内容的方法,先找图书,如果没找到,删除失败,如果找到了,得到该书的下标pos,将pos+1下标所对应的数组内容移到以下标为pos的位置上,然后pos+1,重复上述操作,所以这个需要一个for循环来实现。-》 (isLend。首先建立Book这个类,里面包含书的详细信息,包括书名,作者,价格,类型,是否借出(用bool类型,因为只有借出和未借出两种状态),需要封装起来,均用private修饰,防止被其他类访问到。"已借阅":"未借阅") +。
2024-03-28 19:56:20 573
原创 java图书管理系统(简易)
System.out.println("********管理员菜单**********");System.out.println("********普通用户菜单*********");System.out.println("请输入你的身份:1,管理员 2,普通用户");books[0]=new Book("三国演义","罗贯中",10,"小说");books[1]=new Book("西游记","吴承恩",12,"小说");books[2]=new Book("红楼梦","曹雪芹",11,"小说");
2024-03-28 00:06:25 758
原创 JAVA数据类型与变量
1. 四类:整型、浮点型、字符型以及布尔型2. 八种:byte(1字节),short,int,long,loat,double,char(2字节),boolean(没有明确规定)(1)整形和浮点型都是带有符号的(2)整型默认为int型,浮点型默认为double。
2024-03-26 23:09:22 653
原创 java-String类
s1,和s2指向的是不同的对象,这时s3 = s1,将s1的对象的地址赋值给s3,则s3存储的也是s1的对象的地址,所以s1和s3指向同一个对象。前者为false,后者为true。因为int为基本类型变量,比较的为变量存储的值是否相同。而String为引用类型变量,比较两个引用变量引用的是否为同一个对象。String为引用类型,存储的并不是字符本身。
2024-03-25 23:56:37 276
原创 JAVA接口详解
修饰的类1,定义的成员变量与普通的类没有区别2,抽象类不可以被实例化3,当一个类不具体描述某个对象时,可以定义为抽象类4,如果一个类包含抽象方法,则这个类必须是抽象类,没有抽象方法,也可以被称为抽象类5,一个方法可以被修饰为abstract,这个方法可以不被实现,被称为抽象方法例如:6,抽象类也可以发生向上转型,动态绑定,多态7,抽象方法,满足重写特点,(一定要被子类重写)被static,final,private、修饰都是不能发生重写的@Override。
2024-03-25 22:25:36 1202
原创 java封装,继承,多态详解
public:不同包中的非子类protected:可访问不同包中的子类默认权限:包访问权限,可访问同一包中的不同子类private:类访问权限一般情况下,建议成员变量用provide修饰,而成员方法用public修饰(当然,这只是一个偷懒的方法,具体情况还要具体分析)一般自定义包前有package,例如:包名的写法:1,包名以小写字母来书写2,域名逆置写法,例如想要建立如下的包时,应写为com.baidu.www。
2024-03-24 19:38:08 868 1
原创 java异常
Throwable为最顶级的类,它分为两个类分别为Error和Exception,Exception又分为运行时异常(非受查异常),和编译时异常(受查异常)。异常内容与异常类型不匹配时,将不会捕捉到相应的异常,这会交给JVM,程序终止,返回exit code 1(正常为exit code 0)这时的处理方法为:在try中放入可能出现异常的代码,在catch(要捕获异常的类型 e){解决异常}编译时异常必须经过处理,进行异常声明,声明后,只是不会显示出现异常标识,但异常依旧存在。
2024-03-21 19:02:25 236 1
原创 java类与对象
我们定义类的时候需要用到关键字class,且类的名称要采用大驼峰的命名方法,(大驼峰命名方法指:是当变量名或函式名是由一个或多个单字连结在一起,而构成的唯一识别字时,每个单词的的首字母大写,而小驼峰则是指除第一个单词首字母小写外,其余单词首字母均大写)一个类里面包括:1,成员变量(字段\属性)这部分内容定义在类中,方法之外2,成员方法(成员行为)这部分定义在类中,属于局部变量,具有生命周期和作用域,生命周期:进入方法创建,结束方法销毁。作用域:作用于在当前方法内部。
2024-03-18 23:28:38 808 1
原创 C语言--升级版冒泡排序(可适用于任意类型)
如果cmp_int 返回类型大于0,则进入swap函数,swap函数是将两个元素进行交换,所以传入两个元素的地址,在传入元素的类型大小,因为前面提到那两个元素的地址都是char*类型的,所以每次解引用交换只能交换一个字节的内容,所以要传入元素的大小,每传一个字节,地址都进行加加,直到传完原本元素内存大小的内容,即完成两个元素的整体交换。以上是整型的排序的内容。自定义函数bubble_sort,是通过仿照qsort函数来实现的,所以bubble_sort与qsort的传参类型相似。
2024-01-08 10:00:00 605
原创 C语言--qsort函数的用法
int(*compar)(const void*p1,const void*p2),两个元素比较大小,返回一个大于0,或小于0,或等于0的数,这个参数用来确定排序的顺序(由小到大或者由大到小)void*base,需要接受不同函数类型的数据,所以用void*size_t num,size_f无符号整型,代表需要排序的个数。qsort是库函数,可以完成对任意类型的数据进行排序。size_t size,代表需要排序的元素的大小。头文件为<stdlib.h>.
2024-01-07 10:00:00 532 1
原创 C语言--简易计算器(函数指针数组和函数指针的巩固和练习)
首先进入菜单,若选择0退出,选择在1到7之间,进行下一步。1到7分别对应不同的算法,选择想要达到的算法效果并赋值到input中,将不同的算法函数放到一个数组中,input作为数组下标对应相应的算法函数(例如,input=1,代表想要进行加法运算,故数组中下标为1的元素应该对应进行加法运算的函数),故选择不同的算法就可以通过下标访问数组中不同的函数。进入菜单,进行选择,选择1到7,则进入计算器,选择0,退出计算器,选择了其他,则重新进行选择,由于有多条分支所以用Switch语句来实现。
2024-01-06 10:00:00 429 1
原创 C语言--指针详解
指针实际上就是变量的地址,例如:int a=4,p=&a,p存放的就是a变量的地址,printf("%p",p);打印的是第一个字节的地址(一个内存单元为一个字节,int类型占有个字节,占四个内存单元,打印p,打印的是小地址的内存单元)指针的大小取决于地址所占据的内存空间,而地址所占据的内存空间取决于是32位还是64位的机器,若为32位的,则指针占4个字节,若为64位,则指针占8个字节。
2024-01-05 01:31:29 1463 1
原创 C语言--猜数字游戏
让系统随机生成一个数字,且想要的数字范围为1-100,故rand%100,得到1-99的数字,再加1,从而得到1-100的数字。运用简单的分支语句,来进行判断输入的数字与随机生成的数字的大小关系,从而输出与之相对应的语句,方便玩家对下次的输入数字的范围进行判断。1,随机生成一个数字。2,输入一个数字,该数字与随机生成的数字进行比较。并得到相应的反馈(大了还是小了)进入菜单,进行选择,选择1,则进入游戏,选择0,退出游戏,选择了其他,则重新进行选择,由于有多条分支所以用Switch语句来实现。
2024-01-02 09:00:00 503 1
原创 C语言基础(转义字符,数据类型)
整型分为int (4个字节),long int(C语言规定,sizeof(long int)>=sizeof(int)),short(2个字节),long long int(8个字节)。如果想要打印出“c:\text\text.c”时,则因为制表符的存在应写成printf("c:\\text\\text.c").运用\\转义字符的作用,防止它被解释成\t。如,你打印"a\bcde"则在打印到a的时候发生退格,光标退到a前面,然后接着打印c,c将a覆盖后接着打印de,即打印结果为cde。
2023-12-19 20:08:41 146
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人