primer

BUAA_OO 第一单元表达式求导作业总结

元气小坏坏 提交于 2020-04-21 07:16:17
一、三次作业总结 三次作业难度逐层递进,逐步帮助我们入门理解面向对象思想。第三次作业可以算是系列的巅峰版,因此本文重点介绍第三次作业的设计思路,当然前两次作业也进行了较细致的介绍。另外三次使用的查找bug方法较为相似,统一放在最后介绍。 1、 第一次作业 1.1 需求分析 本次作业需要完成的任务为简单多项式导函数的求解。 运算法则包含加法和乘法,因子也只包含常数项和变量项,较好处理。 1.2 实现方案 1.2.1 宏观架构 这次作业我设计了两个类,分别是最基础的Poly类,储存表达式按[+-]区分的每一项,另一个是包含Poly类构成的arraylist的表达式类。设计说明见下图 1.2.2处理细节 本次表达式相对简单,但是因为输入字符串过长(200字符),用基于回溯的正则容易出现爆栈的问题,因此本次我进行了修改,去除了一开始使用大正则的思路,采用了循环处理的方法。即每次提取最靠前的项看是否匹配,然后删除最开始匹配到的部分,继续匹配。 另外,为了追求方便,我在开头进行统一特判,确定空格没有导致格式问题后去除空格,以便简化后续的处理。因为思虑补全这最后也导致我在互测的时候付出了惨重的代价,这个后续再说。 最后的优化中我采取了最基本的合并同类项思路,遗憾的是我没有考虑到将正项提前这件事,最后强测分没有满。 1.3 本次作业暴露的问题 1.3.1 测试问题 本次作业强测全对

c语言入门到c++使用高手(课程笔记+案例链接)(2020年4月8日更新引言)

a 夏天 提交于 2020-04-10 14:55:48
c语言入门到c++使用高手(课程笔记+案例链接) 一、引言 在学校里还是python,matlab用惯了,c++用起来还是没有得心应手,很多c++11的用法也没有理解的很清楚,所以LZ准备花半年左右的时间,利用课余的时间系统的学习一下c语言到c++的一系列知识,哪怕是再基础的知识也准备重新走一遍,夯实下基础,这篇博客其实就是学习笔记+案例的一个目录,后续会持续更新这篇博客,当然也会更新对应一系列的学习博客,希望半年后自己的c++能够更加扎实和系统。这篇博客主要参考学习的书籍和视频资料主要有: C++ Primer Plus C++ Primer c语言入门到c++使用高手 后续会继续添加 如果有小伙伴愿意一起来学习C语言和C++,欢迎各位小伙伴在博客下一起评论、打卡,一起来攻克C++这个大山。 按照视频课程的内容,主要会分为三个大模块: 基本的C语言入门:了解基本语法规则、语句、函数、指针等概念,这个基本上就是查漏补缺的一个过程,把基础基本概念夯实; 深入学习C++: 这个应该就是重点部分了,进一步认识类、对象、成员函数、虚函数、模板等用法,至少LZ觉得自己写的类还是没有很完善的; 编译器内部原理:这个应该是比较高阶的课程内容了,对C++对象内部只是包括数据布局、编译器工作原理等的详细介绍。 希望这个博客能让LZ和小伙伴们都有所收获,咱们一起来学C++吧! 二、C语言入门 三

面试资源、公共API、多样化学习路径,这10个GitHub库开发者必看

本小妞迷上赌 提交于 2020-04-10 10:25:57
本文介绍了十个适合软件工程师的 GitHub 库。 选自Medium,作者:Simon Holdorf,机器之心编译,参与:魔王。 GitHub 是共享各种技术、框架、库和集合的头号平台,越来越多的人到该平台寻找最有用的库。本文作者全栈工程师 Simon Holdorf 列举了十个能够为所有软件工程师提供巨大价值的 GitHub 库。这些库均具备大量 GitHub 星数,显示其关联性、流行性和效用。 其中一些库可以帮助大家学习新知识,还有的可以帮助构建很酷的东西,不论如何所有库都能够帮助你成为更好的软件工程师。 1. Build Your Own X GitHub 星数:61,300 GitHub 地址: https:// github.com/danistefanov ic/build-your-own-x 该库囊括了大量教程,教你如何构建自己的技术。同时,这里还有关于如何构建命令行工具、操作系统、搜索引擎、3D 渲染器等的示例。 想创建自己的编程语言,或属于自己的 Docker、Git 吗?这个库是你的不错选择。 2. Free Programming Books GitHub 星数:139,000 GitHub 地址: https:// github.com/EbookFoundat ion/free-programming-books 尽管该库的名字是 Free

从「林」开始--C++ primer 读书笔记 -- Part1: The Basics

倖福魔咒の 提交于 2020-04-09 04:50:56
从「林」开始--C++ primer 读书笔记 -- Part1: The Basics 【持续更新ing】 ##################################### //声明:1: 本文根据自己阅读的重点记录而已 // 2:笔记基本都是从《C++ Primer第四版中英文对照.chm》复制而来! // 3:欢迎拍砖 // 4:同上 ##################################### Chapter 2. Variables and Basic Types 1: When assigning an out-of-range value to a signed type, it is up to the compiler to decide what value to assign. In practice, many compilers treat signed types similarly to how they are required to treat unsigned types. That is, they do the assignment as the remainder modulo the size of the type . However, we are not guaranteed that the

这才是你需要的C语言、C++学习路线

不打扰是莪最后的温柔 提交于 2020-03-10 10:22:53
岗位分析 了解一下岗位,知道以后能做什么,这个也有利于自己树立学习目标。 C语言和C++属于“造轮子”语言,几乎什么都能做。不过一般来说,C语言和C++主要还是做后台(服务端)开发比较多,包括: 通信公司后台开发 互联网公司后台开发 游戏公司后台开发 …… 当然这个后台开发具体职责又有很多细分,比如: 有做数据处理和分析的 有做基础协议和通信的 有做服务端底层应用优化的 甚至还有做后台系统驱动和内核的 …… 不管怎样,下面即将要介绍的这些学习路线和内容适用于以上所有情况。所以呢,下面就来讲讲具体的学习路线。 语言本身的学习 C语言: 除了最最基础的语法:变量、条件、循环、字符串、数组、函数、结构体等之外 C语言最最最最最重要的那就是:指针、内存管理,以后企业里开发就靠它俩吃饭,这也是检验C语言掌握情况的两大标准 推荐书籍 :《C Primer Plus》、《C和指针》、《C专家编程》 C++: C++和C语言确实是不同的语言,但是C++确实是对C语言的延伸,可以理解为在C语言里加入了面向对象的特性。因为只有面向对象特性的加持,代码才能更好的 复用 、 扩展 和 工程化 ,这是大型项目的必备要素 除了C语言所有的底子之外,还需要学习C++的面向对象(封装、继承与多态)特性、泛型、模板、STL等等 推荐书籍(有先后顺序) :《C++ Primer》、《Effective C++》、《C

C++学习书籍

余生颓废 提交于 2020-03-04 21:06:54
《C++ Primer》、《Effective C++》、《C++ 标准程序库》、《STL源码剖析》《深度探索C++对象模型》 来源: oschina 链接: https://my.oschina.net/u/3235746/blog/3188024

C语言 —— 缓冲区问题

穿精又带淫゛_ 提交于 2020-02-26 04:51:53
Date : 2020 - 02 - 03 Author : Soler HO Book :C Primer Plus Description :缓冲区的问题 缓冲的概述 用户输入的字符被收集并储存在一个叫做 缓冲区 的临时存储区,按下Enter之后,程序才可以使用用户输入的字符。 缓冲输入 :按下Enter之前,不会重复打印刚输入的字符,这种类型叫做缓冲输入。 无缓冲输入 :回显用户输入的字符后立即重新打印该字符的就是输入无缓冲。 缓冲分为两类 完全缓冲I/O :当缓冲区被 填满 时猜刷新缓冲区(内容被发送至目的地),通常出现在 文件输入 中。 缓冲区的大小取决于系统,常见的大小是 512 字节 。 行缓冲I/O :出现在 换行符 时刷新缓冲区。 键盘输入 通常是 行缓冲输入。按下Enter键就会刷新缓冲区。 来源: oschina 链接: https://my.oschina.net/u/2404777/blog/3163046

C语言 —— 条件运算符

爱⌒轻易说出口 提交于 2020-02-26 00:33:22
Date : 2020 - 02 - 01 Author : Soler HO Book :C Primer Plus Description : 条件运算符:?: C提供了条件表达式(conditional expression)作为表达if else 语句的一种便捷方式,表达式使用:?: 条件运算符。 运算符分为两部分,需要3个运算对象。也就是所谓的三元运算符,也是C语言中的唯一的三元运算符。 例如: x = (y<0)?-y:y; 在 = 和 ; 之间的内容是条件表达式,语句的意思: 如果y小于0,那么 x = -y;否则x = y。 if else表达式为: if(y<0) x = -y; else x = y; 通用的格式为: expression01 ? expression02:expression03 格式说明: 如果expression01为真(非0),整个条件表达式的值与expression02的值相同,expression01为假(0),表达式的值与expression03的值相同。 例如: min = (a<b)?b:a;如果a小于b,将min设置为b,否则,设置为a。 // 计算给定平方英尺的面积需要多少罐油漆 #include<stdio.h> #define COVERAGE 350 // 每罐油漆可刷的面积(单位:平方英尺) int main

C++ Primer 读书笔记-ch02

核能气质少年 提交于 2019-12-25 21:24:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> #1. 引言 数据类型是程序的基础,决定了编译器以及运行时的各项操作解释。在编译时不同的变量应该分配多大的空间?在运行时对指针进行+1操作,指针应该跳几个字节?在类型明确的情况下,上述操作都有据可循,不会有歧义。C / C++ / JAVA / C#等语言都明确定义了数据类型。我个人也是比较偏向于喜欢使用该类编程语言。 本章主要讲述C++的自定义的内置类型,同时对类型描述const用法做一些总结。 #2. 原始内置类型 原始内置类型,书中原文为Primitive Built-in Types,具体又分为两种 arithmetic types & void arithmetic types : 算术类型 bool, char,int, short, long,float,double等类型 void: 理解为空类型,对于没有返回的函数,常常将返回值写为void. 对于char, short, int,long,long long类型,都是带符号的整数类型数据,只是可以表示的数据范围不同,对应的数据长度也不同。下面是我在64为服务器上运行的测试程序,可以看到各类型数据的长度以及可以表示的数据范围也不一样。我编写了一个很简单的测试程序,测试不同数据类型的数据长度以及对于整数,可以表示的数据范围。 void

C++ 备忘录 ( 持续更新中... )

余生颓废 提交于 2019-12-10 06:57:01
Tip 1: #include 包含头文件的问题 新的编译器格式: #include <iostream> using namespace std; 旧的编译器格式: #include <iostream.h> 注:旧的编译器格式中,包含头文件后,不添加 “using namespace std” Tip 2 : Windows 环境中 ,程序运行时界面自动关闭、一闪而过的问题 解决方法:在 main() 的 return 语句前添加 cin.get() 语句 ; 有时需添加两行这样的代码。 注:cin.get() , 可以读取空格、制表符和换行符。 Tip 3 : C++ 程序 中也可以使用 C 语言中的输入输出函数 , 只需包含头文件 ”stdio.h” Tip 4 :访问命名空间 std 的方法 : M1 :将 using std namespace; 放在函数定义之前,让文件中所有的函数都能够使用名称空间 std 中所有的元素 M2 :将 using std namespace; 放在函数定义中,这样该函数能使用命名空间中所有的元素 M3 :在特定的函数中使用 using std::cout; 这样的命令而不是 using std namespace; 让该函数能够使用指定的元素,如 cout M4 :完全不使用变异命令 using , 在需要使用名称空间 std