char

面向对象程序设计寒假作业3

南笙酒味 提交于 2020-02-12 01:44:35
作业描述 详情 这个作业属于哪个课程 2020面向对象程序设计 这个作业要求在哪里 面向对象程序设计寒假作业3 这个作业的目标 1.继续完成编程题 2.发布博客 作业正文 面向对象程序设计寒假作业3 其他参考文献 无 编程题(请使用C语言或者C++完成以下题目): 继续完成作业二的编程题。 优化架构,思考代码的拓展性,比如我需要增加其他功能,如选择,循环语句怎么办。 思考:可以参考现有的编程语言,把这些语言的内容加入。如选择、循环语句、函数、或者扩大数字范围,支持负数等。 编程题要求: 1.读题,提取出题目的要求。 2.分解需求,把需求分解为几个你觉得不太相关的模块。 3.思考每个模块怎么写,可以从简单的模块开始写。 4.对于不会的问题进行查阅资料。 5.对于每一个模块设计测试用例。 6.详细记录下以上每一步,并写在博客中。 7.不要求完全做出来,但要求记录详细。 8.建议博客长度不少于1000字(不包含代码)。 解释 单元测试:对每一个函数进行测试,这代表了你需要把代码分到不同的文件,使用不同的主函数切换测试/运行。 编译脚本:运行该脚本后无需任何输入就能自动编译全部代码,并输出编译结束的代码。 测试脚本:运行该脚本后可以自动的编译并运行所有测试样例,并输出测试结果。 解题 - 编译脚本 运行该脚本后无需任何输入就能自动编译全部代码,并输出编译结束的代码。 - 单元测试/测试脚本

大小端模式

佐手、 提交于 2020-02-12 00:26:22
大端模式:数据的高字节存储在内存的低位地址上,低字节存储在内存的高位地址上【高低低高大】 例如,十六进制数0x123456789abcef00在内存段【0,7】中的分布 小端模式:数据的高字节存储在内存的高位地址上,低字节存储在内存的低位地址上【高高低低小】 例如,十六进制数0x123456789abcef00在内存段【0,7】中的分布 为什么会存在大端和小端这两种不同形式的存储数据模式呢?因为在计算机的世界里,数据都是以字节为单位存储在内存中,一字节只有8bit,也就是C语言中的char型,最大只能表示255,显然不能满足我们的应用。我们还需要int型,float型等数据类型,这些数据类型大于一个字节,比如short int型,16bit,两个字节来表示,这就需要规定应该是字节在内存中的存储形式,由于历史原因,不同的公司采用不同的方式,所以就一直存在着大端存储和小端存储这两种不同的存储方式。 当我们不知道某个系统是大端还是小端时候,可以写一个函数进行自测 伪代码: 定义一个short int 变量 test = 1; 定义一个char型指针变量并将test的地址值赋予该变量 char * ptest = (char *)&test; 假如*ptest值为1则证明该系统为小端系统,否则为大端系统Return *ptest ? little:big; 因为1即0x01,高字节为0

Codeforces Round #618 (Div. 2)

时光总嘲笑我的痴心妄想 提交于 2020-02-11 21:23:53
A. Non-zero 题意:给一串数字,每次可以对一个数字+1,问最少多少次操作之后所有数的和和乘积均不为0。 思路:乘积更容易处理,只要所有数字非0即可,于是对所有0(可以没有)操作一次,然后如果当前数字和不为0,则结束,为0,则对一个非负数操作一次(必然存在)。 代码中特判了全为-1的情况,事实上毫无意义,因为全为-1的情况在前面就会背判断掉。 1 #include<bits/stdc++.h> 2 #define LL long long 3 #define dl double 4 void rd(int &x){ 5 x=0;int f=1;char ch=getchar(); 6 while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();} 7 while(ch<='9' && ch>='0')x=x*10+ch-'0',ch=getchar();x*=f; 8 } 9 void lrd(LL &x){ 10 x=0;int f=1;char ch=getchar(); 11 while(ch<'0' || ch>'9'){if(ch=='-')f=-1;ch=getchar();} 12 while(ch<='9' && ch>='0')x=x*10+ch-'0',ch=getchar();x*=f; 13 } 14

Java基础知识点梳理

ⅰ亾dé卋堺 提交于 2020-02-11 21:17:39
Java基础知识点梳理 原创 置顶 Robot647 最后发布于2020-02-09 16:35:17 阅读数 996 收藏 发布于2020-02-09 16:35:17 分类专栏: java 文章标签: java 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/m0_46245938/article/details/104179209 展开 Java基础知识点梳理 摘要: 虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了学好java打下基础。 Java简介 java语言于1995年正式推出,最开始被命名为Oak语言,由James Gosling(詹姆斯·高斯林)在Sun Microsystems公司和同事共同研发,Microsystems如今已经被oracle收购。java语言具有以下特点: 简单性 面向对象 可移植性 安全性 健壮性 多线程 Java文件运行过程如下: 编写源代码,文件格式: .java 编译 .java文件 生成.class文件(二进制字节码文件) 运行

c和c++中读取数据的方式总结

牧云@^-^@ 提交于 2020-02-11 20:41:19
目录 c 输出 printf() 输入 scanf getchar(), putchar() gets(), puts() c++ 输入 cin() getline() get() 输出 cout 最近在学习C和C++,除了在写OS的时候用到外,写算法的时候也会用到,整理记录C和C++读取数据的各种方式。 文章较长,总结稍微详细了一点。 c 输出 printf() 在 stdio.h 中包含最经典的输出函数 printf #include <stdio.h> // 执行 printf() 函数需要该库 int main() { printf("hello weiwei"); //显示引号中的内容 return 0; } 格式化输出,在 printf 中格式化输出的格式: 1)类型 格式字符 含义 d 以十进制形式输出带符号整数(正数不输出符号) o 以八进制形式输出无符号整数(不输出前缀0) x,X 以十六进制形式输出无符号整数(不输出前缀Ox) u 以十进制形式输出无符号整数 f 以小数形式输出单、双精度实数 e,E 以指数形式输出单、双精度实数 g,G 以%f或%e中较短的输出宽度输出单、双精度实数 c 输出单个字符 s 输出字符串 p,P %p 是一个新的格式控制符,它表示以十六进制的形式(带小写的前缀)输出数据的地址。如果写作 %P ,那么十六进制的前缀也将变成大写形式。

Linux 常用的一些操作

ぃ、小莉子 提交于 2020-02-11 19:51:20
1、查看linux中某个端口是否被占用 1> 使用lsof lsof -i:端口号 查看该端口是否被占用 2> 使用netstat netstat -antpu |grep 80 过滤端口80的使用状态 2、linux中源码包编译安装后,不受systemctrl控制,启动/关闭服务方式: 启动:/usr/local/nginx/sbin/nginx【没有报错提示,代表成功了】 关闭:/usr/local/nginx/sbin/nginx -s stop 报错:Address already in use 【把http关掉】 注意:同一个端口在使用过程中,不能同时被两个程序占用 3、正常yum安装的非源码包,受 systemctrl控制 ,可以 systemctrl控制启动/关闭 启动:systemctrl restart httpd 关闭:systemctrl stop httpd 启动:service start httpd 关闭:service stop httpd 4、Linux里面$#、 $0、$1、$2、$@、$*、$$、$?、$!、$_的含义 $#:传给脚本的变量总个数 $0:表示脚本本身的名字 $1:传给该shell脚本的第一个变量 $2:传给该shell脚本的第二个变量 $@:传给脚本的所有变量 $*:是以一个单字符串显示所有传递给脚本的变量,与位置变量不同

字符串压缩Java

丶灬走出姿态 提交于 2020-02-11 19:09:35
1.非原地压缩 //非原地修改 public static int compress(char[] chars) { //存储压缩结果 char[] res = new char[chars.length]; int index = 0;//标记res写进的下标 for (int i = 0; i < chars.length; ) { int count = 0; char ch = chars[i]; while (i < chars.length && ch == chars[i]) { //字符重复次数 count++; i++; } //写进压缩结果 if (count >= 10) { res[index++] = ch; res[index++] = 1 + '0'; res[index++] = (char) (count - 10 + '0'); } else if (count > 1) { res[index++] = ch; res[index++] = (char) (count + '0'); } else { res[index++] = ch; } } //返回res的新长度 return index; } 2.原地修改 将压缩的结果直接写进原数组中,这种方法不会覆盖掉后面未处理的字符,因为压缩的长度总是小于等于原数组的长度。 //原地压缩

ER 和 数据库关系模式

ぐ巨炮叔叔 提交于 2020-02-11 14:54:45
http://lianghuanyue123.blog.163.com/blog/static/130423244201162011850600/ 我们眼下所接触的数据库基本上是关系数据库,关系数据库中的关系模式是型,而关系是值。关系模式是对关系的描写叙述。 什么是关系?关系实质上是一张二维表,当中每一行是一个元组,每一列是一个属性,每一个元组是该关系涉及到属性集合笛卡尔积的一个元素。(笛卡尔积是这种一个集合。集合中的元素是有序对,若 A= { 0,1 } B= { a , b }则: A*B={<0,a> , <0,b>,<1,a>,<1,b>} ) , 关系是元组的集合,所以关系模式要描写叙述元组的集合,当中包含那些属性,属性来自域,属性与域之间的映射关系。 关系模式能够用五元组形式表示: R ( U , D , Dom , F ),当中 R: 表示关系名, U: 表示属性集合, Dom, 表示属性域(来自那个域) ,F: 表示函数依赖。 可是普通情况下,我们通常把关系模式表示为: R ( U )或者 R ( A , B )(当中 A 、 B 代表 U 中的属性) 那么 E-R 图转化成关系模式的步骤。 前提:是已经把需求中的实体,以及实体中联系确定。 第一:把每一个实体都转化成关系模式 R ( A 、 B )形式。( A 、 B 代表属性) 第二

Java的变量与常量

雨燕双飞 提交于 2020-02-11 13:47:36
常量:   在程序运行期间,固定不变得量。 常量的分类: 字符串常量:凡是用双引号引起来的部分,叫做字符串常量。例如:“abc”、“Hello”、“123”。 整数常量:直接写上的数字,没有小数点。例如:100、200、0、-250。 浮点数常量:直接写上的数字,有小数点。例如:2.5、-3.14、0.0。 字符常量:凡是用单引号引起来的单个字符,就做字符常量。例如:‘A’、‘b’、‘9’、‘中’。 布尔常量:只有量中取值。true、false。 空常量:null。代表没有任何数据。 注意 :   空常量不能直接用来打印输出   两个单引号中间有且仅有一个字符,没有不行。例如:System.out.println('')   两个单引号中间有且仅有一个字符,有两个不行。例如:System.out.println('AB') 数据类型 数据类型分为基本数据类型和引用数据类型 基本数据类型:包括整数、浮点数、字符、布尔。 引用数据类型:包括类、数组、接口。 四类八种基本数据类型 注意事项: 字符串不是基本类型,而是引用类型。 浮点型可能只是一个近似值,并非精确的值。 数据范围与字节数不一定相关,例如float数据范围比long更加广泛,但是float是4字节,long是8字节。 浮点数当中默认类型是double。如果一定要使用float类型,需要加上一个后缀F。如果是整数

void指针学习

末鹿安然 提交于 2020-02-11 13:38:34
1)可以用任何类型的指针对 void 指针进行赋值   由于void 指针没有特定的类型,因此可以指向任何类型的数据。因此他可以指向任何类型的数据。也就是说,任何类型的指针都可以直接赋值给 void 指针,而无需进行其他相关的强制类型转换。   例如:   double d = 1.54;   void * p = & d; 2)void 指针不可以直接赋值给其它类型的指针   因为 “空类型” 可以包容 “有类型”,而 “ 有类型” 则不能包容 “空类型”。   由此可见,要将 void 指针赋值给其他类型的指针,必须进行强制类型转换。如: 1 void * p1; 2 int * p2; 3 . . . 4 p2 = (int *)p1; 3)避免对 void 指针进行算术操作   ANSI C 标准规定,进行算法操作的指针必须确定知道其指向数据类型大小,也就是说必须知道内存目的地址的确切值。 1 char a[20]="qwertyuiopasdfghjkl"; 2 int *p=(int *)a; 3 p++; 4 printf("%s", p);  // tyuiopasdfghjkl   p++;一步前进了sizeof(int)=4 个字节,而类型为char,sizeof(char)=1   对于 void 指针,编译器并不知道所指对象的大小,所以对 void