为学校计算机添加一个时钟

起因

学校的钟表实在是太菜了,是一个特别小的数码钟表镶嵌在喇叭上,每次看时间都要眯着眼,实在是太难受了,所以我直接写了一个程序放在多媒体计算机上,反正那东西屏幕这么大,不用白不用。

原理

主要运用了一个timer控件,没什么技术含量

效果如下

SchoolClock

代码

这里只提供主窗口的代码,窗口2只写了个退出功能,打算以后加上倒计时和课程表等功能

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;


namespace SchoolClock
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
this.BackColor = Color.White;
this.TransparencyKey = Color.White;

//托盘
NotifyIcon MyNotifyIcon = new NotifyIcon();//实例化

MyNotifyIcon.Visible = true;//可见性
MyNotifyIcon.Text = "ClockSettings";//鼠标放在托盘时显示的文字
MyNotifyIcon.BalloonTipText = "ClockSettings";//气泡显示的文字
MyNotifyIcon.Icon = System.Drawing.Icon.ExtractAssociatedIcon(System.Windows.Forms.Application.ExecutablePath);
Icon i = new Icon("favicon.ico");
MyNotifyIcon.Icon = i;
MyNotifyIcon.MouseClick += MyNotifyIcon_MouseDoubleClick;

//隐藏

}
void MyNotifyIcon_MouseDoubleClick(object sender, MouseEventArgs e)
{
Form2 f2 = new Form2();
f2.Show();
}

private void timer1_Tick(object sender, EventArgs e)
{
label1.Text = DateTime.Now.ToString("HH:mm:ss");
label2.Text = DateTime.Now.ToString("yyyy-MM-dd");

}
}

其它

好吧,我承认我的确是在水文章,因为开学了时间非常紧张,所以只能抽出很少的一段时间写代码,所以就潦草地写了这个程序。
当然,我还会继续完善,只不过要等一段很长的事件。

C Sharp 模拟高尔顿钉板正态分布

起因

数学学习了正态分布和高尔顿钉板模型,打算用C#模拟一下

展示

高尔顿钉板模拟

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;

namespace ConsoleApp4
{
class Program
{
static void Main(string[] args)
{
gal oa = new gal();
oa.infor();
Console.WriteLine("请输入格子数(正整数):");
string brid_input = Console.ReadLine();
Console.WriteLine("请输入小球数(正整数):");
string ball_input = Console.ReadLine();
uint brid_input2 = Convert.ToUInt32(brid_input);
uint ball_input2 = Convert.ToUInt32(ball_input);
oa.galton(brid_input2,ball_input2);
Console.ReadLine();
}
}

class gal
{
public void infor()
{
Console.WriteLine("***********");
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.WriteLine("高尔顿钉板模型");
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.WriteLine(" ");
Console.WriteLine("***********");
Console.WriteLine(" ");
}
public void galton(uint Grid, uint Ball)
{
int[] grid = new int[Grid];
int number = 0;

for (int counter_ball = 1; counter_ball <= Ball; counter_ball++)
{
for(int times = 1; times <= (Grid - 1); times++)
{

Random rd = new Random();
double l = rd.NextDouble()*2;
int rand = (int)l;
number += rand;
}
grid[number]++;
number = 0;
}

Console.WriteLine("小球总数为{0},格数为{1}", Ball, Grid);

for (int index = 0;index < grid.Length; index++)
{
int k = index + 1;
Console.WriteLine("{0}号格子小球数为{1}", k, grid[index]);
}
}
}
}

Git

GitHub:
https://github.com/CairBin/GaltonKnockedBoards

C Sharp 数据类型

值类型

整数类型

用途:整数类型用来存储整数值。

表示形式:

  • 十进制(不能以0开头,0除外)
  • 八进制(必须以0开头)
  • 十六进制(必须以0X或0x开头)

类型 说明 范围
sbyte 8位有符号整数 -128127
short 16位有符号整数 -32768
32767
int 32位有符号整数 -21474836482147483647
long 64位有符号整数 -9223372036854775808
9223372036854775807
byte 8位无符号整数 0255
ushort 16位无符号整数 0
65535
uint 32位无符号整数 04294967295
ulong 64位无符号整数 0
18446744073709551615


浮点类型

用途:主要用于处理含有小数数值的数据。


类型 说明 范围
float 精确到7位数 +-1.510^(-45) ~ +-3.4×10^38
double 精确到15~16位数 +-5.0
10^(-324) ~ +-1.7×10^308


布尔类型

用途:主要用来表示true/false值


类型 说明
bool true/false


引用类型

堆的概念:堆是一中由系统弹性配置的内存空间,没有特定大小及存活时间,因此可以被弹性地运用于对象访问。

特征:

  • 必须在托管堆中为引用类型变量分配内存
  • 使用new关键字来创建引用类型变量
  • 在托管堆中分配的每个对象都有与之相关联的附加成员,这些成员必须被初始化
  • 引用类型变量是由垃圾回收机制来管理的
  • 多个引用类型变量可以引用同一对象,在这种情形下,对一个变量的操作会影响另外一个变量所引用的同一对象
  • 引用类型被赋值前的值都是null

实例如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;

class Program
{
class C //创建一个类C
{
public int Value = 0; //声明一个公共int类型的变量Value
}
static void Main(string[] args)
{
int v1 = 0;
int v2 =v1;
v2 = 927;
C r1 = new C(); //使用new关键字创建引用对象
C r2 = r1;
r2.Value = 112;
Console.WriteLine("Values:{0},{1}",v1,v2); //输出 v1 v2 变量
Console.WriteLine("Refs:{0},{1}",r1.Value,r2.Value); //输出引用类型对象的Value
Console.ReadLine();
}
}

** 输出结果 **

1
2
Values:0,927
Refs:112,112