用C++建立一个类: Person

用C++建立一个类: Person, 成员包括: Height: intWeight: intSex: char Name: string .建Person类型的数组,其中有十个元素。输出其平均身高、平均体重、最高的人和最矮的 人, 男人有哪些, 女人有哪些,高于170的男人都是谁?

c++

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
用C++建立一个类: Person
用C++建立一个类: Person, 成员包括: Height: intWeight: intSex: char Name: string .建Person类型的数组,其中有十个元素。输出其平均身高、平均体重、最高的人和最矮的 人, 男人有哪些, 女人有哪些,高于170的男人都是谁?
JS对象与类的名词性问题
Javascript中感觉类和对象是不是都是一个概念啊,感觉都被整糊涂了,求详解啊! 例如:Array 叫数组对象 arr=new Array(); arr 是对象实例 对象创建时,用构造函数方法: function Person(name){ this.name=name; } Person叫对象, person1=new Person("小王") ; person1是对象实例 在继承中 创建一个类(也是创建对象): function Person(name){ this.name=name; } Person是类 person1是类的实例化. 感觉像C++,Java中Person就是类,person1就是类的一个对象。
C#中父类转换成子类之后为什么不具备子类的属性和方法了
笔者是新手,已经在学习面向对象了,可是有一个疑问一直想不通:根据里氏转换原则,父类对象如果里面存储的是一个子类对象,那么这个父类对象是能够强转成子类的。可是根据本人的理解,父类对象强转成子类之后应该就是一个子类对象吧,为什么不具备子类的属性和方法呢。 下面是具体案例: 比如我定义了一个父类对象Person: Class Person { private string name; //定义person类的姓名字段和属性 public string Name { get{return name;} set{name=value;} } private char sex; //定义Person类的性别字段和属性 public char Sex { get{return sex;} set{sex=value;} } public void PersonSayHello() { Console.WriteLine("我是一个人类!"); } } 然后我又定义了一个Person类的子类Student: class Student:Person //继承于Person类 { private int mathscore; //定义一个数学分数属性 public int MathScore { get{return mathscore;} set{mathscore=value;} } public void StuSayHello() { Console.WriteLine("我是一个学生。"); } } 然后我实际代码如下: Person PER=new Student(); //创建一个Student对象,将其赋值给Person对象PER Student STU=(Student)PER; //根据里氏转换原则,将PER对象转换成Student类型,并赋值给STU。 接下来就是问题了,我特意使用PER的GetType()方法试了转换之后PER确实是Student类型,但是我不能为PER的mathscore属性赋值,也不能调用PER作为一个Student对象的StuSayHello()方法,这是为什么呢。
c#新建类输入完class 类名之后什么快捷键能直接生成大括号,谢谢
比如我创建一个类 class Person 然后按什么快捷键,就出现 class Person { } 这样的了 ,括号自动生成了 ,怎么做
objective-c继承后初始化的问题?
#import <Foundation/Foundation.h> @interface Person : NSObject @property(nonatomic) NSString *name; @property(nonatomic) int age; -(void)say; @end ``` ``` #import "Person.h" @implementation Person -(void)say { NSLog(@"my name is %@, I am %d years old !",_name,_age); } @end ``` ``` #import "Person.h" @interface Student : Person { int idnumber; int classnumber; NSString *classname; } -(void)say; -(id)initWithId:(int)_idnumber andWithClassnumber:(int)_classnumber andWithClassname:(NSString *)_classname andWithName:(NSString *)_name andWithAge:(int)_age; @end ``` ``` 我在person类里.h文件里面有两个属性,使用自动初始化,然后student类继承了person类,在增加了三个属性现在我要创建一个student类的对象 请问我们门初始化这个students类啊?
用c语言建立一个顺序表,并且对表进行操作
写了个小程序,目的要求:用c语言建立一个顺序表,表中元素为学生,每个学生信息包含姓名、学号和成绩三部分,对该表实现:① 输出、② 插入、③ 删除、④ 查找功能,并计算出平均成绩和总成绩 感觉我的代码没什么问题,编译也正常通过,但是每次运行都会出现这样的问题,不知道是什么原因,希望又高手能帮忙解答下,谢了 ![CSDN移动问答][1] #include<stdio.h> #include<string.h> void chu(int a); void zhao(int a); void cha(int a); void shan(int a); void score ( ); struct student { char name[10]; int num; int score; }person[100]; int g=0; int main() { int c,d,e,h,i; char b; printf("学生系统管理菜单\nA.输出\nB.查找\nC.插入\nD.删除\nE.计算成绩\nF.退出\n"); for(i=0;i<=100;i++) { printf("请输入\n"); scanf("%s",b); switch(b) { case 'A': case 'a': printf("输入要输出信息的学生学号:"); scanf("%s",c); chu(c); break; case 'B': case 'b': printf("输入要查找的学生学号:"); scanf("%d",d); zhao(d); break; case 'C': case 'c': printf("请输入要插入的编号:"); scanf("%d",e); printf("\n请输入要插入的学生信息 顺序:name num score"); cha(e);break; case 'D': case 'd': printf("请输入要删除学生学号:"); scanf("%d",h); shan(h);break; case 'E': case 'e': scanf("请输入要计算分数的学生学号:"); printf("学生的总的成绩和平均成绩分别是:"); score();break; default : printf("输入有误,请重新输入要执行的功能\n"); } getchar(); if(b=='F') return 0; } } void chu(int a) { if(g!=0) printf("\n该学生的信息如下:\n姓名:%s 学号:%d 成绩:%d",person[a].name,person[a].num,person[a].score); else printf("\n系统中未存储任何信息"); } void zhao (int a) { int i; for(i=0;i<=100;i++) { if(person[i].num==a) printf("\n该学生的信息如下:\n姓名:%s 学号:%d 成绩:%d",person[i].name,person[i].num,person[i].score); } } void cha (int a) { int i; for(i=1;;i++) { if(person[a].num >0) { printf("该编号已经存在,请重新输入\n"); scanf("%s",a); } break; } printf("请输入名字 编号 成绩(每输入一项之后按回车)\n"); scanf("%s",person[a].name); scanf("%d",person[a].num); scanf("%d",person[a].score); g=g+1; } void shan (int a) { int i; int j; for(i=0;i<100;i++) { if(person[i].num==a) { strcpy(person[i].name,0); person[i].num=0; person[i].score=0; for(j=i;j<100;j++) { strcpy(person[j].name ,person[j+1].name); person[j].score = person[j+1].score; person[j].num = person[j+1].num; } } } g=g-1; } void score () { int i,b=0; float c; for(i=0;i<g;i++) b=b+person[i].score; c=(float)b/g; printf("%d %d",b,c); getchar(); getchar(); } [1]: http://img.blog.csdn.net/20131114100040296?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMDg5NzY4Mg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
创建链表的时候,怎么也解决不了warning C4013和error C2371,希望大佬指教
网上查找说的是函数没有放在main 函数之前,但是我都没有创建main函数,并且就算在函数最后添加main函数,错误也还是这样的。 ``` #include<stdio.h> #include<stdlib.h> #include<string.h> #define H "-----------------------" typedef struct Person { char name[20]; char addr[20]; char tele[20]; char qq[20]; struct Person *next; }PERSON; PERSON *head; void lcreate() { PERSON *pb; char ch; do { pb = malloc(sizeof(PERSON)); if (!pb) { printf("cannot have house!"); getchar(); exit(1); } printf("%s\nPlease put in name:", H); gets_s(pb->name,20); printf("%s\nPlease put in address:",H); gets_s(pb->addr,20); printf("%s\nPlease put in phone:",H); gets_s(pb->tele,20); printf("%s\nPlease put in QQ:",H); gets_s(pb->qq,20); linsert(pb); printf("yes or no put in next informantion!(y/n)"); ch = getchar(); fflush(stdin); } while (ch == 'y' || ch == 'Y'); } void DeleteList(PERSON *head) { PERSON *DElem, *next; DElem = head; while (DElem) { next = DElem->next; free(DElem); DElem = next; } } void linsert(PERSON *p) { PERSON *pa, *pb; pb = head; if (!head) { head = p; } else { while (pb) { pa = pb; pb = pb->next; } pa->next = p; } p->next = NULL; } void ldel(char *name) { PERSON *pa, *pb; if (!head) { printf("linst is null!\n"); getchar(); exit(1); } pb = head; while (strcmp(pb->name, name) && pb->next) { pa = pb; pb = pb->next; } if (!strcmp(pb->name, name)) { if (pb = head) { head = pb->next; } else { pa->next = pb->next; } free(pb); } } ``` 1>------ 已启动生成: 项目: Project7, 配置: Debug Win32 ------ 1>源.c 1>d:\c++暂存文件\project7\project7\源.c(41): warning C4013: “linsert”未定义;假设外部返回 int 1>d:\c++暂存文件\project7\project7\源.c(60): error C2371: “linsert”: 重定义;不同的基类型 1>已完成生成项目“Project7.vcxproj”的操作 - 失败。 ===== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ======
JAVA 自定义类导入报错的问题。。。。
在学JAVA 用TXT文档编译运行的。先上环境设置,JAVA_HOME: C:\Program Files\Java\jdk1.8.0_60 CLASSPATH:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; PATH:%JAVA_HOME%\bin; 我在E盘创建了一个文件夹,取名为com,又创建了1个子文件夹:sly。 一个Person类: package com.sly; public class Person{ private String name; private int age; public void setName(String name){ if(name.length()>6||name.length()<2){ System.out.println("您设置的人名不符合要求"); return; } else{ this.name = name; } } public String getName(){ return this.name; } public void setAge(int age){ if(age>100||age<0){ System.out.println("您输入的年龄不合法"); return; } else{ this.age = age; } } public int getAge(){ return this.age; } } 一个测试类TestPerson: package com.sly; import com.sly.*; public class TestPerson{ public static void main(String[] args){ Person p = new Person(); p.setName = "a"; p.setAge = 20; System.out.println("姓名:"+p.getName()+"年龄:"+p.getAge()); } } 用cmd编译后,总是报错:Person()无法找到。 明明导入了Person类 为什么无法找到呢?
请问这道题用C++怎么做?关于类的
建立一个person类,包含姓名、性别、年龄三个公有字段,另包含males、females两个公有静态字段成员,用来记录男、女的人数,建立一个teacher类和一个student类,这两个类都继承person类,teacher包含工号,工资字段,student包含学号,班级字段,在main函数里面增加几个学生对象和老师对象,然后统计男女总人数,并且分别打印所有所有教师和学生的信息。
关于类中建立另一个含有其他类对象的对象
class FoodSeller:public Person//这个类要弄到animalfood和money类,创建对象来实施相应操作 class Zoo { public: Zoo(int =0,int=0,int=0,int=0); ~Zoo(); bool judgeStatus(); private: FoodSeller people; AnimalEnclosure ae[3]; }; #endif Zoo::Zoo(int p, int c, int b, int d) ## :people(p, c, b,0)//此处为什么说没有办法进去,这里错误 { } { FoodSeller(int,int,int,int);//调用FoodSeller的函数构造函数。注意形参列表的对应 ~FoodSeller(); void setSellingPea(int); void setSellingCar(int); void setSellingBan(int); void setSellingFood(); int getPeaAmount()const; int getCarAmount()const; int getBanAmount()const; protected: AnimalFood peanuts;//创建AnimalFood的具体卖的对象 AnimalFood carrots; AnimalFood bananas; private: Money earnings; }; #endif 十分紧急求帮忙
c# 面向对象一道题目 求解题思路和代码
就是这道题 思路理不清 有没有会的大神 帮忙列出思路和代码 注释 题目:简易投票系统 一. 语言和环境 A. 实现语言 C# B. 环境要求 VS2012及以上版本 二. 要求 使用VS2012开发一个简易投票系统,要求实现投票功能、统计票数功能,程序运行主界面如图所示。 窗体1:实现投票功能 初始界面:![图片说明](https://img-ask.csdn.net/upload/201910/27/1572188841_127495.png) 当选中“刘德华”,按下确定按钮,弹出如下窗口: ![图片说明](https://img-ask.csdn.net/upload/201910/27/1572189036_905200.png) 每次运行只能投一次票,并将投票结果存入相应的文件,投票成功之后的界面如下: 窗体2:实现统计票数功能 从保存的文件中读取票数结果,显示界面如下: 注意:票数显示必须是从高往低降序排列 ![图片说明](https://img-ask.csdn.net/upload/201910/27/1572189082_377988.png) 三、具体要求及推荐实现步骤 1、按要求创建窗体 2、创建Person类,包括姓名name、票数count两个属性 3、在窗体1中,使用泛型集合List<Person>保存不同人的投票结果,并将结果使用文件保存 4、在窗体2中,从文件中读取结果放在泛型集合List<Person>中,并显示在窗体上 四.注意事项 1. 请注意代码的书写。命名符合规范,在代码中添加必要的注释 2. 请注意操作文件时进行必要的异常处理 五.评分标准 界面和实体类:20分 票数保存文件:15分 从文件读取票数:15分 窗体2显示结果:10分 窗体2显示结果是降序排列:20分 编码规范(命名、注释):10分 运行准确无错:10分
创建索引问题:为什么我的rake ts:index无法执行
为什么运行了git clone git://github.com/freelancing-god/thinking-sphinx.git vendor/plugins/thinking_sphinx安装了 thinking_sphinx还是无法执行ts:index呢 总是报: [quote]D:\zsb>rake thinking_sphinx:index INDEX_ONLY=true (in D:/zsb) rake aborted! Could not find RubyGem rails (>= 0.0.0) D:/zsb/rakefile:4 (See full trace by running task with --trace)[/quote] 我的rakefile文件如下 [quote]# Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. require(File.join(File.dirname(__FILE__), 'config', 'boot')) require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'thinking_sphinx' require 'thinking_sphinx/tasks' require 'tasks/rails'[/quote] 我的参考文章为http://www.iteye.com/topic/431217 [b]问题补充:[/b] 太失败了 没装rails 装了之后执行 出现下面的问题 D:\zsb>rake thinking_sphinx:index (in D:/zsb) rake aborted! no such file to load -- thinking_sphinx D:/zsb/rakefile:10 (See full trace by running task with --trace) 我已经吧thinking_sphinx安装到vendor\plugins了啊 [b]问题补充:[/b] 非常不错 要关门了 明天结贴啊 呵呵 :idea: [b]问题补充:[/b] 非常感谢 再请教一个问题,好像是:config的问题 [quote]D:\zsb>rake thinking_sphinx:index --trace (in D:/zsb) ** Invoke thinking_sphinx:index (first_time) ** Invoke thinking_sphinx:app_env (first_time) ** Execute thinking_sphinx:app_env ** Invoke environment (first_time) ** Execute environment rake aborted! can't convert Hash into String c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:300:in `match' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:300:in `parse' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:238:in `initialize' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:237:in `collect' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:237:in `initialize' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:29:in `new' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:29:in `initialize' c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:234:in `new' c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:234:in `activate' c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:76:in `active_gem_with_options' c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:50:in `gem' D:/zsb/config/../config/environment.rb:69 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_re quire'[/quote] 我的gem配置: [quote] # Be sure to restart your web server when you modify this file. # Uncomment below to force Rails into production mode when # you don't control web/app server and can't set it the proper way # ENV['RAILS_ENV'] ||= 'production' # Specifies gem version of Rails to use when vendor/rails is not present #RAILS_GEM_VERSION = '1.2.5' unless defined? RAILS_GEM_VERSION # Bootstrap the Rails environment, frameworks, and default configuration require File.join(File.dirname(__FILE__), 'boot') Rails::Initializer.run do |config| # Settings in config/environments/* take precedence over those specified here # Skip frameworks you're not going to use (only works if using vendor/rails) # config.frameworks -= [ :action_web_service, :action_mailer ] # Only load the plugins named here, by default all plugins in vendor/plugins are loaded # config.plugins = %W( exception_notification ssl_requirement ) # Add additional load paths for your own custom dirs # config.load_paths += %W( #{RAILS_ROOT}/extras ) # Force all environments to use the same logger level # (by default production uses :info, the others :debug) # config.log_level = :debug # Use the database for sessions instead of the file system # (create the session table with 'rake db:sessions:create') # config.action_controller.session_store = :active_record_store config.action_controller.perform_caching = true # Use SQL instead of Active Record's schema dumper when creating the test database. # This is necessary if your schema can't be completely dumped by the schema dumper, # like if you have constraints or database-specific column types # config.active_record.schema_format = :sql # Activate observers that should always be running # config.active_record.observers = :cacher, :garbage_collector # Make Active Record use UTC-base instead of local time # config.active_record.default_timezone = :utc # Add new inflection rules using the following format # (all these examples are active by default): # Inflector.inflections do |inflect| # inflect.plural /^(ox)$/i, '\1en' # inflect.singular /^(ox)en/i, '\1' # inflect.irregular 'person', 'people' # inflect.uncountable %w( fish sheep ) # end # See Rails::Configuration for more options #确保一个汉字占一个字符 require 'jcode' $KCODE = 'u' end # Add new mime types for use in respond_to blocks: # Mime::Type.register "text/richtext", :rtf # Mime::Type.register "application/x-mobile", :mobile # Include your application configuration below #Time::DATA_FORMATS[:due_time]="%B %d on %I:%M %P" RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", "daily") :config.gem( 'freelancing-god-thinking-sphinx', :lib => 'thinking_sphinx', :version => '1.2.0' ) quote] [b]问题补充:[/b] thinking sphinx的gem已经安装了 下面这个是在environment.rb中的配置 [quote]:config.gem( 'freelancing-god-thinking-sphinx', :lib => 'thinking_sphinx', :version => '1.2.0' ) [/quote] 在使用th:index的命令时候还是报错 can't convert Hash into String
两个互相引用的类,用工厂模式创建时,死循环的问题
假设有电脑、人 这么两个类,如图所示。 class person { computer myComputer; } class computer { person myOwner; } 用工厂模式 如果我要创造小明这个人,那么我要用人的工厂去创造小明,在创造的时候我要set他有个HP电脑, 那么我又要用电脑工厂去创造HP电脑。但是创造HP电脑的时候我又要去用人的工厂创造小明这个人,这不就是循环下去了吗? 所以我纳闷了,1要么这样设计类是不正确的,2要么有其他办法解决这个问题 学习得不好,请大神解答 [1]: http://d.hiphotos.baidu.com/zhidao/wh=600,800/sign=14ca7a2178310a55c471d6f287756f91/314e251f95cad1c8447a1cf57e3e6709c83d511b.jpg
c++编译通过,调试却出现了错误,看了好多遍还是找不出错误~
小白这次的c++程序是要实现多重继承,虚函数等功能的一个学校人员管理系统。 系统要求由一个基类继承出学生类和老师类,再由学生类和老师类共同继承出在读教 师类和在职研究生类。学生类和老师类继承基类时,基类是虚基类。 小白先写了基类和教师类然后先试一番,生成解决方案没有出现错误,但是“执行(不调试)”之后,出现黑色的执行窗口,前面立马出现一个框框,上面写着”my6/*我滴文件名*/ .exe已经停止工作,由于出现问题,程序停止正常工作。windows将关闭程序,并会在有可用的解决方案时通知你“。![图片说明](https://img-ask.csdn.net/upload/201804/06/1523016866_15089.png) 小白上百度搜,度娘说,可能时堆栈溢出,或者内存使用不当等问题,可是小白不太懂这些,前前后后看了几遍代码,修来修去,还是不能,还有噢,vs我用了“开始调试”后出现了这样的情况![图片说明](https://img-ask.csdn.net/upload/201804/06/1523016889_182015.png) 求大佬大神们帮助!~~ 以下就是我哒程序~~ ``` #include<iostream> using namespace std; #include<string> #define N 20 int nt = 0; class person { protected: string name; char sex; int age; public: person(string n = '\0', char s = '\0', int a = 0) { name = n; sex = s; age = a; } virtual void set() = 0; virtual void input(int) = 0; virtual void display() = 0; virtual void add() = 0; virtual void search() = 0; virtual void find(string) = 0; virtual void find(int) = 0; virtual void find(string, int[]) = 0; virtual void find(int, int[]) = 0; virtual void choosehowmodify() = 0; virtual void modify(int[]) = 0; }; class teacher :virtual public person { private: string zhicheng; int gongzi; public: int gonghao; teacher(string n = "teacher", char s = '\0', int a = 0, int gh = 0, string z = '\0', int gz = 0) :person(n, s, a) { gonghao = gh; zhicheng = z; gongzi = gz; } void set(); void input(int); void display(); void add(); void search(); void find(string); void find(int); void find(string, int[]); void find(int, int[]); void choosehowmodify(); void modify(int[]); friend ostream & operator<<(ostream &output, const teacher &t); }tea[N]; void teacher::set() { cout << "创建教师人数:"; cin >> nt; if (nt <= N) { int i; for (i = 0; i < nt; i++) { tea[i].input(i); } } else cout << "超出容量!最多输入" << N << "人!" << endl << "请重新输入创建人数:"; } void teacher::input(int i) { cout << "请输入第" << i + 1 << "名教师的信息:" << endl; cout << "姓名:"; cin >> name; cout << "性别:"; cin >> sex; cout << "年龄:"; cin >> age; cout << "职称:"; cin >> zhicheng; cout << "工资:"; cin >> gongzi; cout << "工号:"; cin >> gonghao; } ostream & operator<<(ostream &output, const teacher &t) { output << "姓名:" << t.name << endl << "性别:" << t.age << endl << "年龄:" << t.sex << endl << "职称:" << t.zhicheng << endl << "工资:" << t.gongzi << endl << "工号:" << t.gonghao << endl; return output; } void teacher::display() { int i; cout << "显示教师信息:"; for (i = 0; i < nt; i++) { cout << tea[i]; } } void teacher::add() { cout << "添加教师人数:"; int temp; cin >> temp; if (nt + temp <= N) { int i; for (i = nt; i < nt + temp; i++) { tea[i].input(i); nt++; } } else cout << "超出容量!最多再输入" << N - nt << "人!" << endl << "请重新输入添加人数:"; } void teacher::search() { bool pan = true; while (pan) { pan = false; cout << "1.姓名:" << endl << "2.工号:" << endl; cout << "查询教师信息,请选择查询途径:"; int x; cin >> x; if (x == 1 || x == 2) { switch (x) { case 1: { cout << "输入姓名:"; string nam; cin >> nam; find(nam); break; } case 2: { cout << "输入工号:"; int gh; cin >> gh; find(gh); break; } } cout << "输入y继续查询,输入n则退回教师信息操作菜单,请选择:"; char y; cin >> y; if (y == 'y') pan = true; } else { cout << "输入的选择无效,请输入1或2!"; pan = true; } } } void teacher::find(string nam) { int i; for (i = 0; i < nt; i++) { if (nam == tea[i].name) { cout << tea[i]; } } } void teacher::find(int gh) { int i; for (i = 0; i < nt; i++) { if (gh == tea[i].gonghao) cout << tea[i]; } } void teacher::find(string nam, int list[]) { int i, j = 0; for (i = 0; i < nt; i++) { if (nam == tea[i].name) { list[j] = i; j++; } } } void teacher::find(int gh, int list[]) { int i, j = 0; for (i = 0; i < nt; i++) { if (gh == tea[i].gonghao) { list[j] = i; j++; } } } void teacher::choosehowmodify() { bool pan = true; while (pan) { pan = false; cout << "1.姓名:" << endl << "2.工号:" << endl; cout << "修改教师信息,请选择寻修改途径:"; int x; cin >> x; if (x == 1 || x == 2) { switch (x) { case 1: { cout << "输入姓名:"; string nam; cin >> nam; int list[N] = { 0 }; find(nam, list); modify(list); break; } case 2: { cout << "输入工号:"; int gh; cin >> gh; int list[N] = { 0 }; find(gh, list); modify(list); break; } } cout << "输入y继续修改,输入n则退回教师信息操作菜单,请选择:"; char y; cin >> y; if (y == 'y') pan = true; } else { cout << "输入的选择无效,请输入1或2!"; pan = true; } } } void teacher::modify(int list[]) { int i; for (i = 0; list[i] != 0; i++) { bool pan = true; while (pan) { pan = false; cout << tea[list[i]] << endl; cout << "1.姓名:" << endl << "2.性别:" << endl << "3.年龄:" << endl << "4.职称:" << endl << "5.工资:" << endl << "6.工号:" << endl; cout << "请输入欲修改的信息序号:"; int z; cin >> z; switch (z) { case 1: { cout << "请输入新姓名:"; cin >> tea[list[i]].name; break; } case 2: { cout << "请输入新性别:"; cin >> tea[list[i]].sex; break; } case 3: { cout << "请输入新年龄:"; cin >> tea[list[i]].age; break; } case 4: { cout << "请输入新职称:"; cin >> tea[list[i]].zhicheng; break; } case 5: { cout << "请输入新工资:"; cin >> tea[list[i]].gongzi; break; } case 6: {cout << "请输入新工号:"; cin >> tea[list[i]].gonghao; break; } } cout << "输入y继续修改该教师,输入n则进入下一步:"; char x; cin >> x; if (x == 'y') pan = true; } } } int main() { void choosefunction(person*); person *pt; bool pan = true; while (pan) { cout << "**类选择菜单**" << "1.教师" << endl << "2.学生" << endl << "3.在职研究生" << endl << "4.在读教师" << endl << endl << "请选择:"; char x; cin >> x; switch (x) { case 1:pt = tea; choosefunction(pt); break; case 2:cout << "敬请期待!"; break; } cout << "输入y则继续对“类选择菜单”进行操作,输入n则退出程序,请选择:"; char y; cin >> y; if (y == 'y') pan = true; else pan = false; } return 0; } void choosefunction(person *pt) { bool pan = true; while (pan) { cout << "a.创建" << endl << "b.显示" << endl << "c.添加" << endl << "d.查询" << endl << "e.修改" << endl << "请选择:" << endl; char x; cin >> x; switch (x) { case 'a':pt->set(); break; case 'b':pt->display(); break; case 'c':pt->add(); break; case 'd':pt->search(); break; case 'e':pt->choosehowmodify(); break; } cout << "输入y则继续对该类进行操作,输入n则退回“类选择菜单”,请选择:"; char y; cin >> y; if (y == 'y') pan = true; else pan = false; } } ```
C++ 中的析构函数,望大神解答
#include <iostream> using namespace std; int i=0; class Person{ public: int age; string name; Person(int a){ age=a; cout<<"创建了一个年龄为#"<<age<<" 的人"<<endl; } ~Person(){ i++; cout<<"销毁了一个年龄为"<<age<<" 的人"<<""<<i<<endl; } private: int sex,weight; }; void getAge(Person p){ cout<<"getAge():"<<p.age<<endl; } void as(Person p) { cout<<"nicai"<<p.age<<endl; } int main() { Person person(250); Person person2(200); getAge(person); as(person); return 0; }#include <iostream> using namespace std; int i=0; class Person{ public: int age; string name; Person(int a){ age=a; cout<<"创建了一个年龄为#"<<age<<" 的人"<<endl; } ~Person(){ i++; cout<<"销毁了一个年龄为"<<age<<" 的人"<<""<<i<<endl; } private: int sex,weight; }; void getAge(Person p){ cout<<"getAge():"<<p.age<<endl; } void as(Person p) { cout<<"nicai"<<p.age<<endl; } int main() { Person person(250); Person person2(200); getAge(person); as(person); return 0; } 为什么撤销了两次,不是一个只撤销一次么
求助一个vb.net无法向NVelocity模板引擎传递参数的问题
我没找到vb.net的资料就用C#的翻译成了下面vb.net代码,我是想把一个类的实例作为参数传给模板,但模板并未收到son的数据,请各位前辈帮忙看看,字符串类型和数值类型都以传递,唯独类的实例不可以传递,代码如下: person类代码: ``` Public Class person Public name As String Public age As Integer End Class ``` html模板代码: ``` <html> <head> <title>无标题页</title> </head> <body> $p.name </body> </html> ``` 服器端ashx代码: ``` context.Response.ContentType = "text/html" Dim son As New person son.name = "yxk" son.age = 123 '创建模板类 Dim vltengine As VelocityEngine vltengine = New VelocityEngine() vltengine.SetProperty(RuntimeConstants.RESOURCE_LOADER, "file") vltengine.SetProperty(RuntimeConstants.FILE_RESOURCE_LOADER_PATH, System.Web.Hosting.HostingEnvironment.MapPath("~/模板")) '模板文件所在的文件夹 vltengine.Init() '设置参数 Dim vltcontext As VelocityContext vltcontext = New VelocityContext() vltcontext.Put("p", son) '设置参数,在模板中可以通过$data来引用 Dim vlttemplate As Template vlttemplate = vltengine.GetTemplate("htmlmb2.htm") Dim vltwriter As System.IO.StringWriter vltwriter = New System.IO.StringWriter() vlttemplate.Merge(vltcontext, vltwriter) Dim html As String html = vltwriter.GetStringBuilder().ToString() context.Response.Write(html) ```
java中String究竟是传递的值,还是引用
很多人说,java中的String虽然是对象,但是具有值类型的特征。他是值传递,传递的值。 我认为这这种说法完全是错误的。 String和普通对象毫无区别,和其他对象一样,传递的是引用,而不是值。 一段String的运用代码: ``` String a = "123"; public void change(String a){ a = "234"; } ``` 很多人会说,a的值没有变,是因为String是值传递,问题是,就算对于一个普通对象,这样的用法,该对象的值也是不会改变的!这是一个大大的误区。java中根本没有真正的引用传递,不想C#中有ref关键字! 比如: ``` Person p = new Person("张三"); public void change(Person p){ p = new Person("李四"); } ``` 上面对于String的使用和这个自定义Person类的使用上,根本没有本质上的区别。同样,外面的p变量依然是”张三”,不会是“李四。” 同样的代码,放入C#中,加上ref关键字: ``` Person p = new Person("张三"); public void Change(ref Person p){ p = new Person("李四"); } ``` 结果是,p变为了“张三”! 所以说,个人认为java中的String并没有什么特殊性,和其他类一样,同样保存的对象的引用,传递的引用。唯一的特殊性,就是可以直接用“”双引号的方式创建字符串对象。
跪求大神帮帮忙,都好说。。。
实验目的: 1. 掌握常用控件的属性、方法、事件 2. 掌握窗体的常用属性、方法和事件 3. 掌握Windows应用程序人机界面可视化设计方法 4. 掌握事件驱动模型的思想 5. 巩固C#语言中类的定义、继承、流程控制语句等基础知识 实验步骤: (1) 在.Net环境中建立Windows窗体应用程序; (2) 定义枚举类型 Public enum SexType {男, 女, 未知}; Public enum ProTitle (助教,讲师,副教授、教授、未知) Public enum StuTitle {班长,副班长,学委,学员} (3) 定义下面类  Person类(抽象类) 包含的字段:姓名Name(字符串型)、身高Height(单精度型,单位:米)、体重Weight(单精度,单位:kg)、性别Sex(枚举类型SexType) 包含的属性:身份证号ID(字符串型,长度固定为18,且不包含空格字符)、年龄Age(只读方法) 包含的方法: Public abstract void Saying(); //该方法为抽象方法 构造函数(带参数和不带参数的各定义一个): Public Person(){}; //在该构造函数对字段进行初始化,按默认值进行初始化,其中身份证号码初始化为“999999999999999999” Public person(string name, string id, float height, float weight, SexType sex) {}; //添加代码,利用实例化时传递的参数对类中的字段进行初始化 Public abstract void Write(FileStream fs); //功能:将数据保存到文件中 Public abstract void Read(FileStream fs); //功能:从文件中读取数据  Teacher类,该类从Person类继承 包含的字段:职称Title(ProTitle枚举类型)、课程Courses(集合类型,集合元素类型为字符串,访问控制符为private) 包含的属性:CourseNumber (数据类型:int,只读属性,含义:课程的数量) 包含的方法: Public string CourseAdd(string coursename) //增加一门课程,同一门课程不能重复添加 Public string CourseDelete(string coursename); //删除一门课程,当要删除的课程不存在时,应给出提示 对父类中的抽象函数Saying()进行重写;//在控制台上输出:“我正在讲课,不方便接电话” 对Object类中的虚函数ToString()进行重写;//将有关教师的所有信息整合成一个字符串,并返回。该虚函数在Object中的定义如下: Public virtual string ToString() 对父类的中Read()、Write()方法进行重写。(方法中的代码可暂时不写)  定义结构体 Public struct coursescore { String coursename; //课程的名称 Float score; //课程的成绩 }  定义学生类Student,从Person类派生 包含的字段:学号StuID(字符串类型,长度固定,以实际学号的长度为准)、课程成绩CourseScore(集合类型,集合中的元素类型为结构体coursescore,访问修饰符采用private)、学生身份title(类型为枚举类型StuTitle) 包含的属性: 课程门数CourseNumber,定义为只读属性,表示学生所选的课程门数 包含的方法: Public void CourseAdd(string coursename, float score); Public void CourseAdd(coursescore course); 上述2个方法为重载,功能是实现增加一门课程及该课程的成绩 对父类的中的Saying()进行重写,要求输出“我正在上课,不方便接电话” 对父类的中的Read、Write方法进行重写(方法体中可暂时不写代码) 增加如下方法: //功能:获取学生的所有课程的最高分、最低分和平均分 Public void GetScore(ref double HighScore, ref double LowScore, ref double AverageScore) 参数的含义: HighScore:所有课程中的最高分 LowScore:所有课程中的最低分 AverageScore:所有课程的平均分 对Object类中的虚函数ToString()进行重写,要求该方法将学生的所有信息整合为一个字符串,并返回  Document类 字段: Private List<string> CourseList; //存储课程列表 Private List<Person> PersonList; //存储学生和教师信息的列表 方法: Public Document(); //构造函数 Public void AddCourse(string CourseName) ;//增加课程 Pulic void DeleteCourse(string CourseName); //删除课程 Public void AddPerson(person personobj); //增加学生或教师 Public void DeletePerson(person persin); //删除学生或教师对象 Public void DeletePerson(string ID); //按照身份证号码删除教师或学生 Public person FindPerson(string ID); //按照身份证号码查找教师或学生对象 Public void SaveData(FileStream fs); //将数据保存到文件中 Public void ReadData(FileStream fs); //从文件中读取数据 属性: Public int TeacherNumber; Public int StudentNumber; 事件: Public event NumberChangingEventHandler onPersonNumberChanging;  委托 Public delegate void NumberChangingEventHandler(object sender, EventNumberArgs e);  EventNumberArgs类(用户传递事件参数) 字段: Public int teacherNumber; Public int studentNumber;
用一个类来放图片,被其他类调用怎么写???
我想问一下被注释掉的在一个类里放图片,怎么创建一个MyImg的类放自己的图片,想要的结果如图![图片说明](https://img-ask.csdn.net/upload/201607/10/1468148969_939986.png) package test; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Test extends JFrame { JLabel win,draw,lose,score,count;//设置标签,分别为赢、平、输、得分、总局 JLabel jl,jl1; //设置标签,分别为“电脑输出是”、“你输出的是” final JLabel jl2,jl3;//设置标签,分别是电脑输出是与你输出的是的内容 JLabel jl4,jl5; //猜拳的结果显示“你赢了”,“你输了”,“平手” public String person; public String m; int j; int i; int swin,sdraw,slose,sscore; int flag1, count1; final String[] arr = new String[3]; public void Win(String person) { arr[0] = "石头"; arr[1] = "剪刀"; arr[2] = "布"; person = arr[j]; i = (int) (Math.random() * 3); String c = arr[i]; //判断输赢 if (c.equals(person)) { jl5.setText("平手"); flag1 = 0; } else if (c.equals("剪刀") && person.equals("石头") || c.equals("石头")&& person.equals("布") || c.equals("布") && person.equals("剪刀")) { jl5.setText("你赢了"); flag1 = 2; } else { jl5.setText("你输了"); flag1 = 1; } this.finalresult(); } public Test() { JFrame jf = new JFrame(); setSize(500, 500); this.setTitle("猜拳游戏"); this.setLayout(null); win = new JLabel("赢:"+swin); draw = new JLabel("平:"+sdraw); lose = new JLabel("输:"+slose); score = new JLabel("得分:"+sscore); count = new JLabel("总局:"+count1); win.setBounds(50, 0, 60, 50); draw.setBounds(130, 0, 80, 50); lose.setBounds(210, 0, 80, 50); score.setBounds(290, 0, 90, 50); count.setBounds(390, 0, 90, 50); Font f1 = new Font("华文行楷",1,20); win.setFont(f1); draw.setFont(f1); lose.setFont(f1); score.setFont(f1); count.setFont(f1); win.setForeground(Color.cyan); draw.setForeground(Color.green); lose.setForeground(Color.blue); score.setForeground(Color.black); count.setForeground(Color.pink); this.setBackground(Color.red); this.add(win); this.add(draw); this.add(lose); this.add(score); this.add(count); jl = new JLabel("电脑出的是:"); jl.setBounds(50, 100, 150, 70); this.add(jl); jl1 = new JLabel("你出的是:"); jl1.setBounds(50, 210, 150, 70); this.add(jl1); // 电脑的出的拳标签 jl2 = new JLabel(); jl2.setBounds(200, 100, 150, 70); this.add(jl2); //我出的拳的标签 jl3 = new JLabel(); jl3.setBounds(200, 210, 150, 70); this.add(jl3); jl4 = new JLabel("输出结果:"); jl4.setBounds(50, 300, 150, 70); this.add(jl4); jl5 = new JLabel(""); jl5.setBounds(200, 300, 150, 70); this.add(jl5); Font f2 = new Font("华文行楷",1,20); jl.setFont(f2); jl1.setFont(f2); jl2.setFont(f2); jl3.setFont(f2); jl4.setFont(f2); jl5.setFont(f2); // 按钮 final JButton btn = new JButton(""); btn.setBounds(200, 210, 50, 70); this.add(btn); final JButton btn1 = new JButton(""); btn1.setBounds(280, 210, 50, 70); this.add(btn1); final JButton btn2 = new JButton(""); btn2.setBounds(360, 210, 50, 70); this.add(btn2); final JButton clear = new JButton("成绩置零"); Font f3 = new Font("华文行楷",1,20); clear.setFont(f3); clear.setBounds(50, 380, 160, 50); this.add(clear); btn.setBorderPainted(false); btn1.setBorderPainted(false); btn2.setBorderPainted(false); btn.setIcon(new ImageIcon("D:\\shitou.gif")); btn1.setIcon(new ImageIcon("D:\\jiandao.gif")); btn2.setIcon(new ImageIcon("D:\\bu.gif")); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { //如果你鼠标点击的是石头按钮 j = 0; String b = btn.getActionCommand(); jl3.setText(b); //jl3.setIcon(new ImageIcon(MyImg.class.getResource(j+".png"))); Win(person); //Test.this.jl2.setIcon(new ImageIcon(MyImg.class.getResource(i+".png"))); Test.this.jl2.setText(arr[i]); System.out.println(arr[i]); } }); btn1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { j = 1; String b1 = btn1.getActionCommand(); jl3.setText(b1); //jl3.setIcon(new ImageIcon(MyImg.class.getResource(j+".png"))); Win(person); //Test.this.jl2.setIcon(new ImageIcon(MyImg.class.getResource(i+".png"))); Test.this.jl2.setText(arr[i]); System.out.println(arr[i]); System.out.println(b1); } }); btn2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { j = 2; String b2 = btn2.getActionCommand(); jl3.setText(b2); //jl3.setIcon(new ImageIcon(MyImg.class.getResource(j+".png"))); Win(person); Test.this.jl2.setText(arr[i]); System.out.println(arr[i]); //Test.this.jl2.setIcon(new ImageIcon(MyImg.class.getResource (i+".png"))); System.out.println(b2); } }); clear.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource() == clear){ swin = 0; sdraw = 0; slose = 0; sscore = 0; count1 = 0; win.setText("赢:" + swin); draw.setText("平:" + sdraw); lose.setText("输:" + slose); score.setText("得分:" + sscore); count.setText("总局:" + count1); } } }); this.setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setLocationRelativeTo(null); this.setResizable(false); } private void finalresult() { // TODO Auto-generated method stub if(flag1==0){ sdraw ++; draw.setText("平:"+sdraw); score.setText("得分:"+sscore); } if(flag1==1){ slose ++; sscore=sscore-1; lose.setText("输:"+slose); score.setText("得分:"+sscore); } if(flag1==2) { swin ++; sscore=sscore+1; win.setText("赢:"+swin); score.setText("得分:"+sscore); } count1=swin+slose+sdraw; count.setText("总局:"+count1); } public static void main(String[] args) { Test t = new Test(); } }
区分 sms 中的 inbox 和 sentsms
我创建了一个android程序。在程序中需要列出所有的会话。每个会话包含所有的sms号码。因此我需要区分sms中的inbox和sentsms。 下面的代码用于寻找inbox和sent: content://sms/inbox content://sms/sent 但是我不想使用这个方法,我通过使用api列出所有的sms content://sms/ 我使用 columnindex的 type和address 来测试。但是总是给出inbox 和 outbox相同的结果。 Uri SMS_INBOX = Uri.parse("content://sms"); c = getContentResolver().query(SMS_INBOX, null, "thread_id" + " = " + "3", null, "date" + " ASC"); if(c.moveToFirst()){ count.add(c.getCount()); for(int j=0;j<c.getCount();j++){ System.out.println(c.getString(c.getColumnIndexOrThrow("body")).toString()); System.out.println("new person=="+c.getColumnIndex("person")+"type=="+c.getColumnIndexOrThrow("type")); c.moveToNext(); } } c.close(); 请问如何区分 sms 中的 inbox 和 sentsms?
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
死磕YOLO系列,YOLOv1 的大脑、躯干和手脚
YOLO 是我非常喜欢的目标检测算法,堪称工业级的目标检测,能够达到实时的要求,它帮我解决了许多实际问题。 这就是 YOLO 的目标检测效果。它定位了图像中物体的位置,当然,也能预测物体的类别。 之前我有写博文介绍过它,但是每次重新读它的论文,我都有新的收获,为此我准备写一个系列的文章来详尽分析它。这是第一篇,从它的起始 YOLOv1 讲起。 YOLOv1 的论文地址:https://www.c
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
记一次腾讯面试:进程之间究竟有哪些通信方式?如何通信? ---- 告别死记硬背
有一次面试的时候,被问到进程之间有哪些通信方式,不过由于之前没深入思考且整理过,说的并不好。想必大家也都知道进程有哪些通信方式,可是我猜很多人都是靠着”背“来记忆的,所以今天的这篇文章,讲给大家详细着讲解他们是如何通信的,让大家尽量能够理解他们之间的区别、优缺点等,这样的话,以后面试官让你举例子,你也能够顺手拈来。 1、管道 我们来看一条 Linux 的语句 netstat -tulnp | gr...
20行Python代码爬取王者荣耀全英雄皮肤
引言 王者荣耀大家都玩过吧,没玩过的也应该听说过,作为时下最火的手机MOBA游戏,咳咳,好像跑题了。我们今天的重点是爬取王者荣耀所有英雄的所有皮肤,而且仅仅使用20行Python代码即可完成。 准备工作 爬取皮肤本身并不难,难点在于分析,我们首先得得到皮肤图片的url地址,话不多说,我们马上来到王者荣耀的官网: 我们点击英雄资料,然后随意地选择一位英雄,接着F12打开调试台,找到英雄原皮肤的图片
网络(8)-HTTP、Socket、TCP、UDP的区别和联系
TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。 一、TCP与UDP的不同 1. 是否需要建立连接。 UDP在传送数据之前不需要先建立连接;TCP则提供面向连接的服务; 2. 是否需要给出确认 对方的传输层在收到UDP报文后,不需要给出任何确认,而 TCP需要给出确认报文,要提供可靠的、面向连接的传输服务。 3.虽然UDP不提供可靠交...
简明易理解的@SpringBootApplication注解源码解析(包含面试提问)
欢迎关注文章系列 ,关注我 《提升能力,涨薪可待》 《面试知识,工作可待》 《实战演练,拒绝996》 欢迎关注我博客,原创技术文章第一时间推出 也欢迎关注公 众 号【Ccww笔记】,同时推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《提升能力,涨薪可待篇》- @SpringBootApplication注解源码解析 一、@SpringBootApplication 的作用是什
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
开挂的人生!那些当选院士,又是ACM/IEEE 双料Fellow的华人学者们
昨日,2019年两院院士正式官宣,一时间抢占了各大媒体头条。 朋友圈也是一片沸腾,奔走相告,赶脚比自己中了大奖还嗨皮! 谁叫咱家导师就是这么厉害呢!!! 而就在最近,新一年度的IEEE/ACM Fellow也将正式公布。 作为学术届的顶级荣誉,不自然地就会将院士与Fellow作比较,到底哪个含金量更高呢? 学术君认为,同样是专业机构对学者的认可,考量标准不一,自然不能一概而论。 但...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
Python语言高频重点汇总
Python语言高频重点汇总 GitHub面试宝典仓库——点这里跳转 文章目录Python语言高频重点汇总**GitHub面试宝典仓库——点这里跳转**1. 函数-传参2. 元类3. @staticmethod和@classmethod两个装饰器4. 类属性和实例属性5. Python的自省6. 列表、集合、字典推导式7. Python中单下划线和双下划线8. 格式化字符串中的%和format9.
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
代码详解:如何用Python快速制作美观、炫酷且有深度的图表
全文共12231字,预计学习时长35分钟生活阶梯(幸福指数)与人均GDP(金钱)正相关的正则图本文将探讨三种用Python可视化数据的不同方法。以可视化《2019年世界幸福报告》的数据为例,本文用Gapminder和Wikipedia的信息丰富了《世界幸福报告》数据,以探索新的数据关系和可视化方法。《世界幸福报告》试图回答世界范围内影响幸福的因素。报告根据对“坎特里尔阶梯问题”的回答来确定幸...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
如何写一篇技术博客,谈谈我的看法
前言 只有光头才能变强。 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 我一直推崇学技术可以写技术博客去沉淀自己的知识,因为知识点实在是太多太多了,通过自己的博客可以帮助自己快速回顾自己学过的东西。 我最开始的时候也是只记笔记,认为自己能看得懂就好。但如果想验证自己是不是懂了,可以写成技术博客。在写技术博客的...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【设计模式】单例模式的八种写法分析
网上泛滥流传单例模式的写法种类,有说7种的,也有说6种的,当然也不排除说5种的,他们说的有错吗?其实没有对与错,刨根问底,写法终究是写法,其本质精髓大体一致!因此完全没必要去追究写法的多少,有这个时间还不如跟着宜春去网吧偷耳机、去田里抓青蛙得了,一天天的....
《面试宝典》:检验是否为合格的初中级程序员的面试知识点,你都知道了吗?查漏补缺
欢迎关注文章系列,一起学习 《提升能力,涨薪可待篇》 《面试知识,工作可待篇》 《实战演练,拒绝996篇》 也欢迎关注公 众 号【Ccww笔记】,原创技术文章第一时间推出 如果此文对你有帮助、喜欢的话,那就点个赞呗,点个关注呗! 《面试知识,工作可待篇》-Java笔试面试基础知识大全 前言 是不是感觉找工作面试是那么难呢? 在找工作面试应在学习的基础进行总结面试知识点,工作也指日可待,欢...
关于研发效能提升的思考
研发效能提升是最近比较热门的一个话题,本人根据这几年的工作心得,做了一些思考总结,由于个人深度有限,暂且抛转引入。 三要素 任何生产力的提升都离不开这三个因素:人、流程和工具,少了其中任何一个因素都无法实现。 人,即思想,也就是古人说的“道”,道不同不相为谋,是制高点,也是高层建筑的基石。 流程,即方法,也是古人说的“法”。研发效能的提升,也就是要提高投入产出比,既要增加产出,也要减...
微博推荐算法简述
在介绍微博推荐算法之前,我们先聊一聊推荐系统和推荐算法。有这样一些问题:推荐系统适用哪些场景?用来解决什么问题、具有怎样的价值?效果如何衡量? 推荐系统诞生很早,但真正被大家所重视,缘起于以”facebook”为代表的社会化网络的兴起和以“淘宝“为代表的电商的繁荣,”选择“的时代已经来临,信息和物品的极大丰富,让用户如浩瀚宇宙中的小点,无所适从。推荐系统迎来爆发的机会,变得离用户更近: 快...
相关热词 c#如何定义数组列表 c#倒序读取txt文件 java代码生成c# c# tcp发送数据 c#解决时间格式带星期 c#类似hashmap c#设置istbox的值 c#获取多线程返回值 c# 包含数字 枚举 c# timespan
立即提问