c#体育活动类编程题目 急!! 3C

定义一个体育活动类(Sports)作为基类,它有一个进行活动的方法play。足球(Football)和篮球(Basketball)都是体育活动类的派生类。请在测试类中编写一个方法howtoplay,该方法要求传递一个Sports类型的参数。该方法的作用是:当传入的实例类为football时,控制台上应打印:足球是用脚踢的,当传入的实例类为basctetball时,控制台上应打印:篮球是用手打的。

2个回答

C#快忘完了,现在在做Java
public class BallsTest{
public static void main(String[] args){

string ball=Console.ReadLine();
Sport a=null;
if(ball=="football"){
a=new Football();
a.serName("足球");
}else if(ball=="basketball"){
a=new Basketball();
a.setName("篮球");
} else {
Console.WriteLine("我不会玩这种球类,再见");
return;
}
howToPlay(a);
}
public static void howToPlay(Sport s){
if(s.getName=="足球"){
Console.WriteLine(s.getName+"用脚踢");
}else{
Console.WriteLine(s.getName+"用手打");
}
}

class Sport{

private string name;

public String getName(){
return this.name;
}

public void setName(string name){
this.name=name;
}
}
class Football : Sport{}
class Basketball:Sport{}

qq_34173813
spf追梦 对的
大约 3 年之前 回复
yuanzhenwei521
叶云轩 回复spf追梦: 客气。封装继承和多态吧
大约 3 年之前 回复
qq_34173813
spf追梦 谢谢
大约 3 年之前 回复

static void Main(string[] args)
{
Console.WriteLine("请输入运动类型:");
string str = Console.ReadLine();
if(str=="Football")
{
Sports ft = new Football();
ft.Name = "Football";
HowToPlay(ft);
}else
{
Sports bk = new Basketball();
bk.Name = "Basketball";
HowToPlay(bk);
}

}
public static void HowToPlay(Sports sp)
{
if(sp.Name=="Football")
Console.WriteLine(sp.Name+"是用脚踢的");
else
Console.WriteLine(sp.Name+"是用手拍的");
}

qq_34173813
spf追梦 出现了缺少using指令集 咋回事呀
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C#窗口变为活动状态时的时事件是什么?
C#窗口变为活动状态时的时间是什么?当我关掉了另一个窗口,返回之前的窗口时,我想写函数,但是不知道对应的事件是什么?
c #中 向外部非活动窗体的程序发送组合键,有什么方法?
本人新手,用c# 开发一个 控制界面 用来调用 外部程序,现在想建立个按钮,来向程序发送快捷键 指令,比如alt +q w e r 等等,请各位老大帮帮忙
C#调用C++dll基础连接已经关闭: 服务器关闭了本应保持活动状态的连接
使用C#调用C++DLL来实现WebService,在本机可以运行,当这个服务部署在本机可以正常执行,部署在服务器上就报“基础连接已经关闭: 服务器关闭了本应保持活动状态的连接”错误。在服务器上部署时不调用这个DLL中的函数就不会报错,求大神指点
关于交互作用,求教,如果不能该怎么做呢
![图片说明](https://img-ask.csdn.net/upload/202002/12/1581437330_46129.png) 请问这个结果能不能说“与偶同居”和“参加社会活动”存在交互作用?
如何在C#中监听COM组件(非托管)中对象启动事件?
诸位前辈,晚上好:   我是一名硬件工程师,最近使用原理图绘图工具时发现有些功能不好用,就准备自己开发插件增强一下,其中遇到了这样一个问题:   我在 C# 项目中加入 COM 组件的引用,原理图程序的 COM 对象是 ViewDraw,在其启动时,会创建一个 ViewDraw.Application 的对象,这个对象中有一些子成员和方法,以及一些事件。我现在通过以下方法已经可以做到此原理图程序启动后获取此活动对象:    ``` ViewDraw.Application app = (ViewDraw.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("ViewDraw.Application"); ```   并且可以通过此 app 对象注册一干事件等达到我想要的目的,但这种方法要求此原理图程序必须先于我的 .NET 程序运行才行,否则就因为创建不了对象而进入引用异常。   因为我对 COM 模型不熟悉,且也是个半酱油的程序选手,搜索尝试了一些方法,并未成功;想请教诸位前辈,如何能够让我的程序先启动时候,监视这个 COM 对象的创建,比如注册个事件,当其创建时触发此事件。   后辈在此拜谢。
C#z中使用DataAdpater 报错;
private void button2_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection("server=LAPTOP-2DSNMHCM;Initial Catalog=test;Integrated Security=SSPI;"); string sql = "select * from test1"; SqlCommand cmd = new SqlCommand(sql, con); con.Open(); SqlDataAdapter reader; reader = cmd.ExecuteReader(); } } } 严重性 代码 说明 项目 文件 行 禁止显示状态 错误 CS0029 无法将类型“System.Data.SqlClient.SqlDataReader”隐式转换为“System.Data.SqlClient.SqlDataAdapter” WindowsFormsApp1 F:\project\asp.net\test1\WindowsFormsApp1\Form1.cs 38 活动的 在线等 请大神回复
用vs Code在程序运行结束后,会弹出活动代码页,怎么取消?
代码如下所示,之前是用VS Code出现乱码,所以改完DOS系统下的编码方式,把VS Code的编码格式改成相同的之后,再运行程序,结果就会一闪而过,接着出现活动代码页,让按任意键继续。 ``` #include "iostream" using namespace std; int main(int argc, char const *argv[]) { double a, b, c, d; cout << "Please Input The Number A:"; cin >> a; cout << "Please Input The Number B:"; cin >> b; cout << "Y = " << a << "X + " << b <<endl; cout << "Please Input The Number Y:"; cin >> c; d = (a + b) / c; cout << "So X = " << d << endl; system("pause"); return 0; } ``` 代码在VS Code中的运行效果如下: ![图片说明](https://img-ask.csdn.net/upload/202001/22/1579676662_378267.png) 当敲完回车后,程序显示的答案就直接闪过了,然后出现下面的图片: ![图片说明](https://img-ask.csdn.net/upload/202001/22/1579676982_335560.png) 各位有什么解决办法能只让显示程序最终的答案吗????
请问c#如何获取当前主机下的所有网卡的MAC地址,包括未活动的
如题,网上找的几乎全部都是只能获取活动网卡的MAC地址。求助,谢谢。
求助,C# winform实现socket接收客户端数据,总是丢数据。
程序主体是client端发送数据给server端,server那边接收到信息就发送一条固定的确认信息给client。 出现的问题就是运行的时候会固定丢掉第二次返回的数据,第一次和其他时候的都正常。打断点调试的时候也是正常的,很懵啊。。 感觉跟UI刷新有关,却又解决不了。另开线程接收也会有这个问题。贴上代码,求助大神。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Threading; namespace SocketDemo_Client { public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private Socket soc_client = null; private byte[] socket_buf = null; private Thread t_listener = null; private void MainForm_Load(object sender, EventArgs e) { if (socket_buf == null) { socket_buf = new byte[4096]; } } /// <summary> /// 连接按钮的点击事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnConnect_Click(object sender, EventArgs e) { IPAddress host_ip = IPAddress.Parse(this.txtIP.Text); IPEndPoint end_ipe = new IPEndPoint(host_ip, Convert.ToInt32(this.txtPort.Text)); soc_client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); soc_client.Connect(end_ipe); this.txtLog.AppendText("连接到" + soc_client.RemoteEndPoint.ToString() + "服务端。。。"); this.txtLog.AppendText(System.Environment.NewLine); } private void btnDisConnect_Click(object sender, EventArgs e) { this.txtLog.AppendText("关闭双向传输通道。。。"); this.txtLog.AppendText(System.Environment.NewLine); soc_client.Shutdown(SocketShutdown.Both); Thread.Sleep(500); this.txtLog.AppendText("关闭Socket对象。。。"); this.txtLog.AppendText(System.Environment.NewLine); soc_client.Close(); } private void btnSendMsg_Click(object sender, EventArgs e) { if (this.txtMsg.Text == "") { MessageBox.Show("输入发送内容啊骚年!"); return; } this.txtLog.AppendText("发送" + this.txtMsg.Text + "到服务端。。。"); this.txtLog.AppendText(System.Environment.NewLine); /* Array.Clear(socket_buf, 0, socket_buf.Length); socket_buf = Encoding.ASCII.GetBytes(this.txtMsg.Text); soc_client.Send(socket_buf); //清空发送框 this.txtMsg.Text = ""; //启动接收监听线程 if (t_listener == null) { t_listener = new Thread(MsgListener); t_listener.Start(); } if (t_listener.ThreadState == ThreadState.Suspended) { t_listener.Resume(); } */ string getStr = ""; getStr = SendAndReceive(this.txtMsg.Text); Thread.Sleep(2000); this.txtLog.AppendText("收到服务端信息:"); this.txtLog.AppendText(System.Environment.NewLine); this.txtLog.AppendText(getStr); this.txtLog.AppendText(System.Environment.NewLine); } /// <summary> /// /// </summary> private string SendAndReceive(string msg) { Array.Clear(socket_buf, 0, socket_buf.Length); socket_buf = Encoding.ASCII.GetBytes(msg); soc_client.Send(socket_buf); //清空发送框 this.txtMsg.Text = ""; string t = ""; soc_client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveTimeout, 500); Array.Clear(socket_buf, 0, socket_buf.Length); try { while (true) { int length = soc_client.Receive(socket_buf); t += Encoding.ASCII.GetString(socket_buf, 0, length); } } catch (SocketException e) { return t; } return t; } /// <summary> /// 接收线程 /// </summary> private void MsgListener() { string get_str = ""; soc_client.SetSocketOption(SocketOptionLevel.Socket,SocketOptionName.ReceiveTimeout,500); while (true) { Array.Clear(socket_buf, 0, socket_buf.Length); try { int length = soc_client.Receive(socket_buf); //接收活动连接发送的数据填充到buffer中 get_str += Encoding.ASCII.GetString(socket_buf, 0, length); //将缓存buffer的byte数据转换成字符串 } catch (SocketException se) { //线程委托去刷新信息 this.Invoke(new MethodInvoker(delegate { this.txtLog.AppendText("收到服务端信息:"); this.txtLog.AppendText(System.Environment.NewLine); this.txtLog.AppendText(get_str); this.txtLog.AppendText(System.Environment.NewLine); get_str = ""; })); //挂起线程 t_listener.Suspend(); continue; } } } } }
C#中如何使一个子窗体永远激活
各位大神,问个问题 主窗体是Form1,Form2、From3是子窗体From2的显示方式是showdialog,如何使From3可以自由活动。就是让From3不受From2的消息循环的影响
C#网络通信程序设计基于ICMP的活动主机探测程序设计如何在界面上显示PING的统计结果(成功,失败次数)
C#网络通信程序设计基于ICMP的活动主机探测程序设计如何在界面上显示PING的统计结果(成功,失败次数) 用的是visual studio 2010 下面是窗体程序 ![图片说明](https://img-ask.csdn.net/upload/201903/31/1554009839_587560.png) 下面是代码 program ``` using System; using System.Collections.Generic; using System.Windows.Forms; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Net; using System.Net.Sockets; namespace pingProgram { public class IcmPacket { private Byte my_type; private Byte my_subCode; private UInt16 my_checkSum; private UInt16 my_identifier; private UInt16 my_sequenceNumber; private Byte[] my_data; public IcmPacket(Byte type, Byte subCode, UInt16 checkSum, UInt16 identifier, UInt16 sequenceNumber, int dataSize) { my_type = type; my_subCode = subCode; my_checkSum = checkSum; my_identifier = identifier; my_sequenceNumber = sequenceNumber; my_data = new Byte[dataSize]; for (int i = 0; i < dataSize; i++) { my_data[i] = (byte)'k'; } } public UInt16 CheckSum { get { return my_checkSum; } set { my_checkSum=value; } } public int CountByte(Byte[] buffer) { Byte[] b_type = new Byte[1] { my_type }; Byte[] b_code = new Byte[1] { my_subCode }; Byte[] b_cksum = BitConverter.GetBytes(my_checkSum); Byte[] b_id = BitConverter.GetBytes(my_identifier); Byte[] b_seq = BitConverter.GetBytes(my_sequenceNumber); int i = 0; Array.Copy(b_type, 0, buffer, i, b_type.Length); i += b_type.Length; Array.Copy(b_code, 0, buffer, i, b_code.Length); i += b_code.Length; Array.Copy(b_cksum, 0, buffer, i, b_cksum.Length); i += b_cksum.Length; Array.Copy(b_id, 0, buffer, i, b_id.Length); i += b_id.Length; Array.Copy(b_seq, 0, buffer, i, b_seq.Length); i += b_seq.Length; Array.Copy(my_data, 0, buffer, i, my_data.Length); i += my_data.Length; return i; } public static UInt16 SumOfCheck(UInt16[] buffer) { int cksum = 0; for (int i = 0; i < buffer.Length; i++) cksum += (int)buffer[i]; cksum = (cksum >> 16) + (cksum & 0xffff); cksum += (cksum >> 16); return (UInt16)(~cksum); } } static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } ``` form1 ``` using System; using System.IO; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.Net.Sockets; namespace pingProgram { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void btnPing_Click(object sender, EventArgs e) { listBox1.Items.Clear(); if (textBox1.Text == "") { MessageBox.Show("IP地址不能为空!"); return; } string Hostclient = textBox1.Text; Socket Socket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.Icmp); Socket.ReceiveTimeout = 1000; IPHostEntry Hostinfo; try { Hostinfo = Dns.GetHostEntry(Hostclient); } catch (Exception) { listBox1.Items.Add("无法辨识主机!"); return; } EndPoint Hostpoint = (EndPoint)new IPEndPoint(Hostinfo.AddressList[0], 0); IPHostEntry Clientinfo; Clientinfo = Dns.GetHostEntry(Hostclient); EndPoint Clientpoint = (EndPoint)new IPEndPoint(Clientinfo.AddressList[0], 0); int DataSize = 4; int PacketSize = DataSize + 8; const int Icmp_echo = 8; IcmPacket Packet = new IcmPacket(Icmp_echo, 0, 0, 45, 0, DataSize); Byte[] Buffer = new Byte[PacketSize]; int index = Packet.CountByte(Buffer); if (index != PacketSize) { listBox1.Items.Add("报文出现错误!"); return; } int Cksum_buffer_length = (int)Math.Ceiling(((Double)index)/2); UInt16[] Cksum_buffer = new UInt16[Cksum_buffer_length]; int Icmp_header_buffer_index = 0; for (int I = 0; I < Cksum_buffer_length; I++) { Cksum_buffer[I] = BitConverter.ToUInt16(Buffer, Icmp_header_buffer_index); Icmp_header_buffer_index += 2; } Packet.CheckSum = IcmPacket.SumOfCheck(Cksum_buffer); Byte[] SendData = new Byte[PacketSize]; index = Packet.CountByte(SendData); if (index != PacketSize) { listBox1.Items.Add("报文出现错误!"); return; } int pingNum=4; for (int i = 0; i < 4; i++) { int Nbytes = 0; int startTime = Environment.TickCount; try { Nbytes = Socket.SendTo(SendData, PacketSize, SocketFlags.None, Hostpoint); } catch (Exception) { listBox1.Items.Add("无法传送报文!"); return; } Byte[] ReceiveData = new Byte[256]; Nbytes = 0; int Timeconsume = 0; while (true) { try { Nbytes = Socket.ReceiveFrom(ReceiveData, 256, SocketFlags.None, ref Clientpoint); } catch (Exception) { listBox1.Items.Add("超时无响应!"); break; } if (Nbytes > 0) { Timeconsume = System.Environment.TickCount - startTime; if (Timeconsume < 1) listBox1.Items.Add("reply from: " + Hostinfo.AddressList[0].ToString() + " Send: " + (PacketSize + 20).ToString() + " time<1ms " + "bytes Received " + Nbytes.ToString()); else listBox1.Items.Add("reply from: " + Hostinfo.AddressList[0].ToString() + " Send: " + (PacketSize + 20).ToString() + " In " + Timeconsume.ToString() + " ms;bytes Received " + Nbytes.ToString()); break; } } } Socket.Close(); } private void btnSave_Click(object sender, EventArgs e) { SaveFileDialog savedlg = new SaveFileDialog(); savedlg.Filter = "文本文件|*.txt"; savedlg.Title = "保存记录"; savedlg.ShowDialog(); if (savedlg.FileName != "") { string localFilePath; localFilePath = ""; localFilePath = savedlg.FileName.ToString(); string str = ""; for (int j = 0; j < listBox1.Items.Count; j++) { str += listBox1.Items[j].ToString() + "\r\n"; } FileStream fs = new FileStream(localFilePath, FileMode.OpenOrCreate); StreamWriter sw = new StreamWriter(fs); sw.Write(str); sw.Flush(); sw.Close(); fs.Close(); MessageBox.Show(" PING结果保存完毕。 ","PING程序设计",MessageBoxButtons.OK); } } } } ```
JAVA课程设计简单的俄罗斯方块,急!!!
老师提供的代码: import java.awt.*; import java.awt.event.*; /** * Sample application of Rassia game * * @author Zhefan Jin * @version 1.00 07/05/28 */ class GamePanel extends Frame { /** * The attributes of class GamePanel */ int cellSize =20; int hCellCount =30; int vCellCount =40; int sideSpace =20, bottomSpace=20, upSpace=60; Dimension dimFrame, dimGame; Point GameAreaZero; BlockB activeBlock; //End of attributes private Point Convert2DC(Point p){ Point pReturn =new Point(); pReturn.x =p.x +sideSpace; pReturn.y =dimFrame.height -bottomSpace -p.y; return pReturn; } /** * The constructor. */ public GamePanel() { dimFrame =new Dimension(); dimGame =new Dimension(); GameAreaZero =new Point(); dimFrame.height = upSpace +bottomSpace +vCellCount*cellSize; dimFrame.width = sideSpace*2 + hCellCount*cellSize; GameAreaZero.x = sideSpace; GameAreaZero.y = dimFrame.height -bottomSpace; dimGame.height = vCellCount*cellSize; dimGame.width = hCellCount*cellSize; activeBlock =new BlockB(); System.out.println(dimFrame.toString()); System.out.println(GameAreaZero.toString()); setResizable(false); MenuBar menuBar = new MenuBar(); Menu menuFile = new Menu(); MenuItem menuFileExit = new MenuItem(); MenuItem menuFileStart = new MenuItem(); menuFile.setLabel("File"); menuFileExit.setLabel("Exit"); menuFileStart.setLabel("Start"); // Add action listener.for the menu button menuFileExit.addActionListener ( new ActionListener() { public void actionPerformed(ActionEvent e) { GamePanel.this.windowClosed(); //syntex? } } ); menuFileStart.addActionListener ( new ActionListener() { public 老师的要求: 1. 老师已提供了部分代码,你的目标是按要求完成另一部分代码,最终实现俄罗斯方块游戏的一个局部,效果如下: ![图片说明](https://img-ask.csdn.net/upload/201509/08/1441674790_8849.png) 图 1 2. 具体如下: a) 已提供的代码是Russia.java,这个文件是正确的,不要对它作任何修改。 b) 要求你生成一个新文件BlockB.java,在其中实现类BlockB。Russia.java中使用了BlockB类,如果你的编写都正确,Russia就能正常执行。 c) BlockB.java和Russia.java需放在同一个目录下。按照要求实现BlockB类后,编译这两个文件,然后运行Russia,正确情况下将出现图1效果。 3. BlockB类的要求: a) BlockB类的数据(变量)成员是: i. Point类的对象origin, p0, p1, p2, p3。Point类在java类库的位置是java.awt.Point。(我们在上学期的实验07中使用了Point类。实验07的题目和答案在发下来的资料中供参考。) ii. int类型数据成员gesture,其取值范围0-3,表示4种姿态,具体说明见后。 b) BlockB类的方法(函数)成员如下: i. BlockB() 构造函数。其中对Point类数据成员进行创建(new),并对其它成员变量赋合适的初值。 ii. void setGesture(int g) 设置姿态,包含两个动作:1)用参数g对数据成员gesture进行赋值。2)根据新的姿态,调整p0, p1, p2, p3在Block局部坐标系里的坐标值,坐标说明见后。 iii. void moveTo(int x, int y) 把数据成员origin(原点)移动到窗口坐标系(x,y)位置。 iv. Point getP0() 直接返回p0。 v. Point getP1() 直接返回p1。 vi. Point getP2() 直接返回p2。 vii. Point getP3() 直接返回p3。 4. 关于点的位置、姿态等的说明: a) 坐标系的说明 i. 俄罗斯方块游戏中的活动块称为一个Block(块)。游戏使用两种坐标系:Block局部坐标系和游戏窗口坐标系。 ii. Block局部的坐标系定义了组成Block的4个小方块p0, p1, p2, p3之间的位置关系,如下图: ![图片说明](https://img-ask.csdn.net/upload/201509/08/1441675020_644932.png) 如上图中4个点的坐标可以是:p0(0,0), p1(0,1), p2(0,2), p3(-1,0)。 iii. 一个Block在窗口中的位置由点origin确定,origin是Block坐标系的原点在窗口坐标系中的位置,如下图origin位置是(10, 10): ![图片说明](https://img-ask.csdn.net/upload/201509/08/1441675048_482696.png) b) 姿态(gesture)的说明。一个Block可以有4种姿态,分别用0、1、2、3来表示,每种姿态下点p0、p1、p2、p3的位置是不同的。 ![图片说明](https://img-ask.csdn.net/upload/201509/08/1441675069_836083.png)
C# Winform DataGridView 实时更新很卡
dgvList.Invoke((EventHandler)delegate { dgvList.Rows[user.Index].Cells[3].Value = "开始登陆"; }); 下拉活动条很卡,不下拉更改数据时也很卡
新手求助,数据结构课设的源程序,麻烦大佬们看下注释一下,搞不懂啥意思?
_#pragma once_ _#include<stdio.h>_ _#include<stdlib.h>_ _#define MAX 20_ _#define DataType char_ _ typedef struct ArcNode { int _Adjvex; //储存边所指的顶点位置 int _Weight; //储存该边的权重 int _Ee; //活动最早发生时间 int _El; //活动最晚发生时间 struct ArcNode *_NextArc; //指向下一条边的指针 }ArcNode; typedef struct VexNode { DataType _data; //顶点信息 int _InDegree; //入度 int _Flag; //拓扑排序是用来判断是否排过 int _Ve; //事件最早发生时间 int _Vl; //事件最晚发生时间 ArcNode *_FirstArc; //指向第一条依附该顶点的弧 }VexNode; typedef struct ALGraph { VexNode *_AdjList; //邻接表 int _VexNum; //结点数目 int _ArcNum; //边的数目 }ALGraph; int menu_select() { int i; do { system("cls"); printf("\t\t ╭——————————■□■□—————╮\n"); printf("\t\t│ 数 据 结 构 课 程 设 计 │\n"); printf("\t\t╰———■□■□————————————╯\n"); printf("\t\t ┌————————————————┐\n"); printf("\t\t │ 1. 用邻接表存储有向图 │\n"); printf("\t\t │ │\n"); printf("\t\t │ 2. 显 示 邻 接 表 │\n"); printf("\t\t │ │\n"); printf("\t\t │ 3. 拓 扑 排 序 │\n"); printf("\t\t │ │\n"); printf("\t\t │ 4. 逆 拓 扑 排 序 │\n"); printf("\t\t │ │\n"); printf("\t\t │ 5. 关 键 活 动 │\n"); printf("\t\t │ │\n"); printf("\t\t │ 0.退出 │\n"); printf("\t\t └————————————————┘\n"); printf("\t\t请选择(0-5):"); scanf("%d", &i); } while (i < 0 || i>5); return i; } void ClearStdin() { char ch; while ((ch = getchar()) != '\n' && ch != EOF); } int IfHaveThisVex(ALGraph* graph, DataType data) { //判断该顶点是否在_AdjList(Vex数组)中 //存在返回所在位置下标,不存在返回-1 for (int i = 0; i < graph->_VexNum; ++i) { if (graph->_AdjList[i]._data == data) { return i; } } return -1; } void CreatAdjList(ALGraph* graph) { int Weight; int FirstIndex, SecondIndex; //定义两个index存放边的两个顶点在数组中的下标 DataType FirstVex, SecondVex; //定义一个边的两个顶点值,用于接收用户输入的边的两个顶点信息 for (int i = 0; i < graph->_VexNum; ++i) { ClearStdin(); //清空输入缓冲区 //对已经malloc出来的每个顶点初始化 printf("请输入第%d个顶点的信息(例如顶点名为A,则输入A):", i + 1); scanf("%c", &(graph->_AdjList[i]._data)); graph->_AdjList[i]._Flag = 0; graph->_AdjList[i]._Ve = 0; graph->_AdjList[i]._Vl = INT_MAX; graph->_AdjList[i]._InDegree = 0; graph->_AdjList[i]._FirstArc = NULL; } system("cls"); for (int i = 0; i < graph->_ArcNum; ++i) { ClearStdin(); //清空输入缓冲区 printf("请输入有向图中第%d边的两个顶点以及权重(例:A->B权重5 则输入A B 5):", i + 1); scanf("%c %c %d", &FirstVex, &SecondVex, &Weight); FirstIndex = IfHaveThisVex(graph, FirstVex); SecondIndex = IfHaveThisVex(graph, SecondVex); if (FirstIndex == -1 || SecondIndex == -1) { i = i - 1; printf("输入顶点信息错误,请重新输入!!\n"); continue; } ArcNode * NewArc = (ArcNode*)malloc(sizeof(ArcNode)); NewArc->_Adjvex = SecondIndex; NewArc->_Weight = Weight; NewArc->_NextArc = graph->_AdjList[FirstIndex]._FirstArc; graph->_AdjList[FirstIndex]._FirstArc = NewArc; graph->_AdjList[SecondIndex]._InDegree++; } } void ALGraphInit(ALGraph* graph) { system("cls"); printf("请输入有向图顶点的个数:"); scanf("%d", &(graph->_VexNum)); printf("请输入有向图边的条数:"); scanf("%d", &(graph->_ArcNum)); graph->_AdjList = (VexNode*)malloc(sizeof(VexNode)*(graph->_VexNum)); CreatAdjList(graph); } void PrintfVexNode(VexNode *node) { ArcNode* cur = node->_FirstArc; printf("[%c]", node->_data); if (cur) { printf("-->[ %d ]", cur->_Adjvex); cur = cur->_NextArc; } while (cur) { printf("-->[ %d ]", cur->_Adjvex); cur = cur->_NextArc; } printf("-->[NULL]\n"); } void PrintfAdjList(ALGraph* graph) { system("cls"); for (int i = 0; i < graph->_VexNum; ++i) { printf("%d ", i); PrintfVexNode(&(graph->_AdjList[i])); } system("pause"); } void TopologicalSorting(ALGraph* graph,int *arr) { system("cls"); if (arr[MAX - 1] == 1) { printf("该图已经进行过拓扑排序!\n"); system("pause"); return; } int count = 0; int flag = 1; while (flag) { flag = 0; for (int i = 0; i < graph->_VexNum; ++i) { if (graph->_AdjList[i]._InDegree == 0 && graph->_AdjList[i]._Flag == 0) { flag = 1; graph->_AdjList[i]._Flag = 1; arr[count] = i; count++; ArcNode* cur = graph->_AdjList[i]._FirstArc; while (cur) { if (cur->_Weight + graph->_AdjList[i]._Ve > graph->_AdjList[cur->_Adjvex]._Ve) { graph->_AdjList[cur->_Adjvex]._Ve = cur->_Weight + graph->_AdjList[i]._Ve; } graph->_AdjList[cur->_Adjvex]._InDegree--; cur = cur->_NextArc; } break; } } } for (int i = 0; i < count; ++i) { printf("[%c][Ve: %d]\n", graph->_AdjList[arr[i]]._data, graph->_AdjList[arr[i]]._Ve); } printf("[NULL]\n"); if (count < graph->_VexNum) { printf("事件输出数量小于总数量,图中带环!!\n"); } else { arr[MAX - 1] = 1; printf("事件输出数量等于总数量,图中不带环!!\n"); } system("pause"); } void RTopologicalSorting(ALGraph* graph, int *arr) { system("cls"); if (arr[MAX - 1] == 0) { printf("请确保次图不带环并且已进行过拓扑排序后再试!\n"); system("pause"); return; } graph->_AdjList[arr[graph->_VexNum - 1]]._Vl = graph->_AdjList[arr[graph->_VexNum - 1]]._Ve; for (int i = graph->_VexNum - 2; i >= 0; --i) { ArcNode *cur = graph->_AdjList[arr[i]]._FirstArc; while (cur) { if ((graph->_AdjList[cur->_Adjvex]._Vl) - (cur->_Weight) < graph->_AdjList[arr[i]]._Vl) { graph->_AdjList[arr[i]]._Vl = (graph->_AdjList[cur->_Adjvex]._Vl) - (cur->_Weight); } cur = cur->_NextArc; } } for (int i = graph->_VexNum - 1; i >= 0; --i) { printf("[%c][Ve: %d]\n", graph->_AdjList[arr[i]]._data, graph->_AdjList[arr[i]]._Vl); } arr[MAX - 2] = 1; //printf("[NULL]"); system("pause"); } void KeyActivites(ALGraph* graph, int *arr) { system("cls"); if (arr[MAX - 2] == 0 || arr[MAX - 1] == 0) { printf("请确保该图进行过拓扑排序及逆拓扑排序后再试\n"); system("pause"); return; } for (int i = 0; i < graph->_VexNum; ++i) { ArcNode* cur = graph->_AdjList[arr[i]]._FirstArc; while (cur) { cur->_Ee = graph->_AdjList[arr[i]]._Ve; cur->_El = graph->_AdjList[cur->_Adjvex]._Vl; printf("活动[%c]-->[%c]的最早发生时间:%d 最晚发生时间:%d\n", graph->_AdjList[arr[i]]._data, graph->_AdjList[cur->_Adjvex]._data, cur->_Ee, cur->_El); cur = cur->_NextArc; } } printf("-------------------------------------------\n"); printf("关键路径如下:\n"); for (int i = 0; i < graph->_VexNum; ++i) { ArcNode* cur = graph->_AdjList[arr[i]]._FirstArc; while (cur) { //顶点的最早发生时间和最晚发生时间相等即在关键路径上 if (graph->_AdjList[arr[i]]._Ve == graph->_AdjList[arr[i]]._Vl &&graph->_AdjList[cur->_Adjvex]._Ve == graph->_AdjList[cur->_Adjvex]._Vl) { printf("活动[%c]-->[%c] 长度:%d\n", graph->_AdjList[arr[i]]._data, graph->_AdjList[cur->_Adjvex]._data, cur->_Weight); } cur = cur->_NextArc; } } system("pause"); } int main() { ALGraph G; int arr[MAX]; //存放拓扑排序顺序 arr[MAX - 1] = 0; //标志位来判断是否进行过拓扑排序 arr[MAX - 2] = 0; //标志位来判断是否进行过逆拓扑排序 while (1) { switch (menu_select()) { case 1: ALGraphInit(&G); break; case 2: PrintfAdjList(&G); break; case 3: TopologicalSorting(&G,arr); break; case 4: RTopologicalSorting(&G, arr); break; case 5: KeyActivites(&G, arr); break; case 0: printf("\t\t系统退出!!\n"); system("pause"); exit(0); } } } ``` ```
数据结构课设项目工期成本分析程序
有没有大神会数据结构课设的啊 题目:项目工期成本分析程序 一个软件项目可以分解成多个活动,活动可以并行执行。项目工期成本分析程序可以输出完成项目所需工期和费用之间的关系。 要求: 1)程序启动后,可以从文本文件中读取项目分解后的活动数据,至少20以上活动。活动包括活动编号、名称、正常天数、加班天数、加班费用、前驱活动编号、后驱活动编号,活动可以并行执行。 2)输出正常完成项目所需要的天数(对应的活动信息),以及在加班情况下,完成项目所需要的天数和增加的加班费用(加班相关活动的减少天数和加班费用)。 3)选择合适的数据结构,界面要美观实用。 4)按要求写出课程设计报告。 求代码,急。。
求一个java后台的抽奖算法,抽奖活动周期15天,活动有4个奖项,具体限制条件如下:
抽奖活动周期15天,活动有4个奖项 特等奖,前五天能中奖,概率为0.01%,如果第五天 仍未中奖,第六天概率提高到50%且必中奖 一等奖和二等奖,中奖概率为0.1%;前5天,一等奖5个, 二等奖10个, 5~10天,一等奖3个,二等奖6个;10~15天,一等奖2个,二等奖4个;如果当前时间段中奖名额没达到上限,累计到下一个时间段,且在第15天送出全部奖品 三等奖,中奖概率为50%;前5天,三等奖2万个;5~10天, 三等奖2万个;10~15天,三等奖1万个;如果当前时间段中奖名额没达到上限,累计到下一个时间段,且在第15天送出全部奖品
C#时间上的比较在后台比较好还是数据库中比较好
现在做一个判断活动的结束时间,现在在考虑时间的判断是放到后台处理 还是在查询数据库的时候直接比较了查出来,哪个效率快些呢 数据库存放 的是时间戳。
用c语言版写的求解关键路径,调试到一半按任意键继续就关了,求大神看看我的代码
c语言版写的求解关键路径,调试到一半按任意键继续就关了,求大神看看我的代码,大一刚学 只能到建立完邻接表 `` #include < stdio.h> #include< stdlib.h> #define OK 1 #define ERROR 0 #define OVERFLOW -1 #define MAXSIZE 100 #define MVNum 100 //最大顶点 #define NUM 10000 //最大边数 typedef int SElemType; typedef int Status; typedef char VerTexType; typedef int Status; typedef struct ArcNode //邻接表存储表示 { int adjvex; //顶点所在位置 int weight; //权值 struct ArcNode *nextarc; //链域 (指向下一条边结点) }ArcNode; typedef struct VNode { VerTexType data; ArcNode *firstarc; }VNode,AdjList[MVNum]; typedef struct { AdjList vertices; //邻接表 int vexnum,arcnum; //图的当前顶点数和边数 }ALGraph; typedef struct //定义栈 { SElemType *base; SElemType *top; int stacksize; }SqStack; SqStack S; int indegree[MVNum]; ///用数组indegree来存放各顶点的入度 int ve[NUM]; //事件发生最早的时间 int vl[NUM]; //事件发生最迟的时间 int topo[MVNum]; //初始化 void InitStack(SqStack *S) { S->base=(SElemType*)malloc(sizeof MAXSIZE); if(!S->base) return ; S->top=S->base; S->stacksize=MVNum; } //入栈 void Push(SqStack *S,SElemType e) { if(S->top-S->base==S->stacksize) return ; *S->top++=e; } //出栈 void Pop(SqStack *S,SElemType e) { if(S->top==S->base) return ; e=*--S->top; } //判断是否为空 Status StackEmpty(SqStack *S) { if(S->top==S->base) return OK; else return ERROR; } int LocateVex(ALGraph G,VerTexType v) { int i; for(i=0;i<G.vexnum;++i) if(v==G.vertices[i].data) return i; return -1; } int CreateUDG(ALGraph *G) ////建立邻接表 { ArcNode *p=(ArcNode *)malloc(sizeof(ArcNode)); int i,k; printf("请输入总的顶点数:"); scanf("%d",&G->vexnum);///图的顶点数 printf("请输入总的边数:"); scanf("%d",&G->arcnum);///图的边数 for(i=0;i<G->vexnum;++i) { printf("请输入每个顶点的值:"); scanf("%d",&G->vertices[i].data); G->vertices[i].firstarc=NULL; //顶点的第一个指针域为空 } for(k=0;k<G->arcnum;++k) { int v1,v2; int i,j,w; printf("请依次输入起点 权值 终点(空格分开):"); scanf("%d %d %d",&v1,&w,&v2); i=LocateVex(*G,v1); j=LocateVex(*G,v2); p->adjvex=j; //顶点 p->nextarc=G->vertices[i].firstarc; G->vertices[i].firstarc=p; //有向图 p->weight=w;////权值 } return OK; } void FindInDegree(ALGraph G,int indegree[]) //把顶点的入度放到数组中 { int i,t; ArcNode *p=(ArcNode *)malloc(sizeof(G.vertices[i].firstarc)); for(i=0;i<G.vexnum;i++) { t=0; //使p指向第一个邻接点 if(p){ while(p){ p=p->nextarc; //p指向下一个邻接点 t++; //有指向的话 就加一 } } indegree[i]=t; } } ////拓扑排序 int TopologicalSort(ALGraph G,int topo[]) { int i,m; FindInDegree(G,indegree); //各顶点的入度 InitStack(&S); //初始栈 for(i=0;i<G.vexnum;++i) if(!indegree[i]) //如果没有前驱的话 Push(&S,i); //进栈 (等于图中没有那个顶点了) m=0;//计数 while(!StackEmpty(&S)) { ArcNode *p=(ArcNode *)malloc(sizeof(G.vertices[i].firstarc)); Pop(&S,i);//出栈 topo[m]=i; ++m; p=G.vertices[i].firstarc; while(p!=NULL) { int k; k=p->adjvex; --indegree[k]; if(indegree[k]==0) //就剩一个了 直接入栈 Push(&S,k) ; p=p->nextarc; } } if(m<G.vexnum) return ERROR; //拓扑排序不能有回路 else return OK; } ////关键路径 int CriticalPath(ALGraph G) { int n,i,k,j,e,l; ArcNode *p=(ArcNode *)malloc(sizeof(G.vertices[i].firstarc)); if(!TopologicalSort(G,topo)) return ERROR; n=G.vexnum; for(i=0;i<n;i++) { ve[i]=0; //最早发生的时间初值为零 } for(i=0;i<n;i++) { k=topo[i]; p=G.vertices[k].firstarc; //p指向第一个邻接点 while(p!=NULL) { j=p->adjvex; if(ve[j]<ve[k]+p->weight) ve[j]=ve[k]+p->weight; ///最早发生时间更新 p=p->nextarc;///p指向下一个邻接点 } } for(i=0;i<n;i++) { vl[i]=ve[n-1]; //最迟发生时间初值 } for(i=n-1;i>=0;i--) { k=topo[i]; p=G.vertices[k].firstarc; //p指向第一个邻接点 while(p!=NULL) { j=p->adjvex; //邻接点的序号 if(vl[k]<vl[j]-p->weight) vl[k]=vl[j]-p->weight; ///最迟发生时间更新 p=p->nextarc;///p指向下一个邻接点 } } ///判断是否为关键活动 printf("关键路径:"); for(i=0;i<n;i++) { ArcNode *p=(ArcNode *)malloc(sizeof(G.vertices[i].firstarc)); p=G.vertices[i].firstarc; while(p!=NULL) { j=p->adjvex; //顶点的位置 e=ve[i]; l=vl[j]-p->weight; if(e==1) printf("<v%d,v%d>",G.vertices[i].data,G.vertices[j].data); printf("为关键路径"); p=p->nextarc; } } return OK; } int main() { ALGraph *G=(ALGraph *)malloc(sizeof(ALGraph)); CreateUDG(G); TopologicalSort(*G,topo); CriticalPath(*G); return 0; }` ```
谷歌浏览器报错net::ERR_HTTP2_PROTOCOL_ERROR 200
环境:php+nginx 织梦 目标:动态输出信息,批量替换数据库字段中关键字 本地测试没有任何问题 贴到服务器上就报错 php代码如下 ``` header('X-Accel-Buffering: no');// 关闭加速缓冲 nginx header('Max-Forwards: 3000');// 关闭加速缓冲 nginx set_time_limit(0); // 引入织梦函数 require_once("../include/common.inc.php"); // var_dump($_POST);die; $validate = empty($validate) ? '' : strtolower($validate); $svali = GetCkVdValue(); if ($validate == "" || $validate != $svali) { ShowMsg("安全确认码不正确!", "javascript:;"); exit(); } if (ob_get_level() == 0) //判断缓冲区等级,如果没有活动缓冲区 ob_start(); //打开缓冲区 //判断表是否存在 // 关键字 $arrss = explode("\r\n", $_POST['keyys']); foreach ($arrss as $k => $v) { $va = explode(' ', $v); $txts[$va[0]] = $va[1]; } $num_t = count($txts); $nu = 0; $nu2 = 0; $nu3 = 0; $timeSjc = time(); // 创建文件 $fileNameq = "./download/".date(time().rand(1000,9999)); $myfile = fopen($fileNameq.".txt", "a") or die("无法打开文件!"); foreach ($txts as $k => $v) { ob_flush(); //发送缓冲区数据 flush(); //刷新缓冲区 $condition = empty($condition) ? '' : " WHERE $condition "; $dsql1 = "select aid from $exptable where $rpfield like '%{$k}%'"; $db->SetQuery($dsql1); $db->Execute(); while ($arr = $db->GetArray()) { $link = GetOneArchive($arr['aid']); $arcurl = $link['arcurl']; $mmsg = '“'.$k.'”替换“'.$v . '”-' . $arcurl . "\r\n"; fwrite($myfile, $mmsg); } $rs = $dsql->ExecuteNoneQuery2("UPDATE $exptable SET $rpfield=REPLACE($rpfield,'$k','$v') $condition "); $nu++; $dsql->ExecuteNoneQuery("OPTIMIZE TABLE `$exptable`"); if ($rs) { $nu2++; $nurl = "article_keywords_make.php?dopost=fetch&totalnum=$totalnum&startdd=".($startdd+$pagesize)."&pagesize=$pagesize"; ShowMsg2($nu . "/" . $num_t . "“" . $k . "”替換“" . $v . "”已完成!", "javascript:;"); } else { $nu3++; ShowMsg2($nu . "/" . $num_t . "“" . $k . "”替換“" . $v . "”未找到鍵字!", "javascript:;"); } } $sj = time()-$timeSjc; ShowMsg2("共查找".$num_t."个关键词<br>".$nu2 ."个关键字替換成功<br>" . $nu3 . "个关键字没有找到<br>共花费时间 ".$sj." 秒<br><a id='download1' download='".$fileNameq.".txt' href='".$fileNameq.".txt'>点击这里下载以替换的链接</a>", "javascript:;"); fclose($myfile); ``` nginx超时全部都为300 ![图片说明](https://img-ask.csdn.net/upload/201911/29/1575015725_990597.png) 报错图片 ![图片说明](https://img-ask.csdn.net/upload/201911/29/1575015925_492610.png) **运行到1.7-1.8分钟自动停止** 请大神帮助
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
win10系统安装教程(U盘PE+UEFI安装)
一、准备工作 u盘,电脑一台,win10原版镜像(msdn官网) 二、下载wepe工具箱  极力推荐微pe(微pe官方下载) 下载64位的win10 pe,使用工具箱制作启动U盘打开软件,   选择安装到U盘(按照操作无需更改) 三、重启进入pe系统   1、关机后,将U盘插入电脑 2、按下电源后,按住F12进入启动项选择(技嘉主板是F12)     选择需要启
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
Nginx 软件层面加强Nginx性能优化的面试问答和解决方案
Nginx 软件层面加强Nginx性能优化的面试问答和解决方案 去年我去爱卡汽车面试PHP,一轮和二轮面的都不错,在三轮面到Nginx的时候很多问题当时不知道怎么回答,确实没有深入学习过,花了一段时间的学习,终于能解答Nginx高性能优化的问题了,10月24号为了获得程序员勋章,发布了半个优化笔记,浏览到了1000+,受到这个鼓舞,我抽时间在仔细整理下关于Nginx性能优化的问题,我们从软件说起。...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
11月19日科技资讯|华为明日发布鸿蒙整体战略;京东宣告全面向技术转型;Kotlin 1.3.60 发布
「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。扫描上方二维码进入 CSDN App 可以收听御姐萌妹 Style 的人工版音频哟。 一分钟速览新闻点! 6G 专家组成员:速率是 5G 的 10 至 100 倍,预计 2030 年商用 雷军:很多人多次劝我放弃WPS,能坚持下来并不是纯粹的商业决定 ...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n
化繁为简 - 腾讯计费高一致TDXA的实践之路
导语:腾讯计费是孵化于支撑腾讯内部业务千亿级营收的互联网计费平台,在如此庞大的业务体量下,腾讯计费要支撑业务的快速增长,同时还要保证每笔交易不错账。采用最终一致性或离线补...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
Java学习笔记(七十二)—— Cookie
概述 会话技术: 会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器发送资源请求,会话建立,直到有一方断开为止 功能:在一次会话的范围内的多次请求间,共享数据 方式: 客户端会话技术:Cookie,把数据存储到客户端 服务器端会话技术:Session,把数据存储到服务器端 Cookie 概念:客户端会话技术,将数据存储到客户端 快速入门: 使用步骤: 创建C
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆  每天早上8:30推送 作者| Mr.K   编辑| Emma 来源| 技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯
程序员该看的几部电影
##1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
@程序员,如何花式构建线程?
作者 |曾建责编 | 郭芮出品 | CSDN(ID:CSDNnews)在项目和业务的开发中,我们难免要经常使用线程来进行业务处理,使用线程可以保证我们的业务在相互处理之间可以保证原子性...
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布了 2019年国民经济报告 ,报告中指出:年末中国大陆总人口(包括31个
强烈推荐10本程序员在家读的书
很遗憾,这个鼠年春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终
Linux自学篇——linux命令英文全称及解释
man: Manual 意思是手册,可以用这个命令查询其他命令的用法。 pwd:Print working directory 显示当前目录 su:Swith user 切换用户,切换到root用户 cd:Change directory 切换目录 ls:List files 列出目录下的文件 ps:Process Status 进程状态 mk
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
文章目录1. 前言2. 数据下载3. 数据处理4. 数据可视化 1. 前言 今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。 2月6日追记:本文发布后,腾讯的数据源多次变更u
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
Java坑人面试题系列: 包装类(中级难度)
Java Magazine上面有一个专门坑人的面试题系列: https://blogs.oracle.com/javamagazine/quiz-2。 这些问题的设计宗旨,主要是测试面试者对Java语言的了解程度,而不是为了用弯弯绕绕的手段把面试者搞蒙。 如果你看过往期的问题,就会发现每一个都不简单。 这些试题模拟了认证考试中的一些难题。 而 “中级(intermediate)” 和 “高级(ad
Spring Boot 2.x基础教程:使用JdbcTemplate访问MySQL数据库
在第2章节中,我们介绍了如何通过Spring Boot来实现HTTP接口,以及围绕HTTP接口相关的单元测试、文档生成等实用技能。但是,这些内容还不足以帮助我们构建一个动态应用的服务端程序。不论我们是要做App、小程序、还是传统的Web站点,对于用户的信息、相关业务的内容,通常都需要对其进行存储,而不是像第2章节中那样,把用户信息存储在内存中(重启就丢了!)。 对于信息的存储,现在已经有非常非常多...
基于Python的人脸自动戴口罩系统
目录 1、项目背景 2、页面设计 3、器官识别 4、退出系统 1、项目背景 2019年新型冠状病毒感染的肺炎疫情发生以来,牵动人心,举国哀痛,口罩、酒精、消毒液奇货可居。 抢不到口罩,怎么办?作为技术人今天分享如何使用Python实现自动戴口罩系统,来安慰自己,系统效果如下所示: 本系统的实现原理是借助 Dlib模块的Landmark人脸68个关键点检测库轻松识别出人脸五官
相关热词 c#开发的dll注册 c#的反射 c# grid绑定数据源 c#多线程怎么循环 c# 鼠标左键 c# char占位符 c# 日期比较 c#16进制转换为int c#用递归求顺序表中最大 c#小型erp源代码
立即提问