废话少说下面先看效果
登陆管理员
注册账号和管理账号
修改密码界面
功能界面
功能一
连接中国移动物联网平台检测温湿度
输入wendu可以查询
功能二
查看图片
功能三
读写通知管理员可以写但普通成员只可以读
功能四
计算工具,可以计算三角形,圆,矩形的周长和面积
功能五
球员的分配
功能六
快速打开电脑上的软件,包括第三方软件
功能七
模拟i汕职的一个每天体温登记
功能八
自己制作一个串口监视器来控制LED
以上就是基本的功能,可能还存在很多问题,希望大家体谅,毕竟这也是我第一次发表C#
下面我来说一下我是如何制作的
首先创建一个窗体应用
接下来制作一个密码锁的系统
这是登录按键的处理
private void button1_Click(object sender, EventArgs e)
{
string mima;
if (File.Exists("../../" + zh.Text + ".txt"))
{
mima = Read(".../.../" + zh.Text + ".txt");
MM_1 = "密码:" + mm.Text;
if (mima == MM_1)
{
ZH_1 = zh.Text;
label3.Text = "恭喜你密码正确,欢迎使用本系统";
button3.Visible = true;
if (zh.Text == "陈列") button4.Visible = true;
button5.Visible = true;
bz = 1;
}
else
{
label3.Text = "密码错误,请重新输入";
}
}
else
{
MessageBox.Show("请输入正确的账号谢谢!!!!!");
}
if (zh.Text != "" && mm.Text != "")
{
string txt = "\r\n\r\n" + DateTime.Now.ToString("yyy年MM月dd日 HH:mm:ss" + "\r\n");
int n = ZH.Length;
for (int i = 0; i < n; i++)
{
if (ZH[i] == zh.Text)
{
if (mm.Text == MM[i])
{
label3.Text = "恭喜你密码正确,欢迎使用本系统";
button3.Visible = true;
button4.Visible = true;
button5.Visible = true;
bz = 1;
x = i;
}
else
{
label3.Text = "密码错误,请重新输入";
}
}
}
/* if (zh.Text == ZH)
{
if (mm.Text == MM)
{
label3.Text = "恭喜你密码正确,欢迎使用本系统";
button3.Visible = true;
bz = 1;
}
else
{
label3.Text = "密码错误,请重新输入";
}
}
else
{
label3.Text = "账号错误,请重新输入";
}
if (bz_1 == 1)
{
label3.Text = "密码修改成功";
button1.Text = "登录";
button2.Text = "退出";
button3.Text = "";
MM = mm.Text;
bz_1 = 0;
}
*/
}
}
接下来就是修改界面和管理界面,注意看我的代码写法,几个关键点
例如,管理界面的移除账号就是以下代码
private void button4_Click(object sender, EventArgs e)
{
int l;
l = Convert.ToInt32(this.listBox1.SelectedItem.ToString());
string fileFullPath = ".../.../" + listBox1.Items[listBox1.SelectedIndex].ToString() + ".txt";
if (File.Exists(fileFullPath))
{
// 2、根据路径字符串判断是文件还是文件夹
FileAttributes attr = File.GetAttributes(fileFullPath);
// 3、根据具体类型进行删除
if (attr == FileAttributes.Directory)
{
// 3.1、删除文件夹
Directory.Delete(fileFullPath, true);
}
else
{
// 3.2、删除文件
File.Delete(fileFullPath);
}
File.Delete(fileFullPath);
}
if (this.listBox1.SelectedItems.Count > 0)
{
string checkPeople = this.listBox1.SelectedItem.ToString();
this.listBox1.Items.Remove(checkPeople);
}
else
{
MessageBox.Show("未选中,无法移除!");
}
string t = "";
string[] a = File.ReadAllLines(@"../../目录.txt", System.Text.Encoding.Default);//获取文本中每一行数据存在数组中
for (int i = l; i < a.Length - 1; i++) // 利用算法进行覆盖的操作
{
t = a[i];
a[i] = a[i + 1];
a[i + 1] = t;
}
StreamWriter sw = new StreamWriter(@"../../目录.txt", false, System.Text.Encoding.Default);
for (int j = 0; j < a.Length-1; j++)
{
sw.Write(a[j]);
sw.WriteLine();
}
sw.Flush();
sw.Close();
}
注意 int l;
l = Convert.ToInt32(this.listBox1.SelectedItem.ToString());
必须放在前面否则会报错
修改密码界面很简单,我就不说了,
下面是功能一
连接中国移动物联网进行温湿度检测
几个关键点下面这几句要注意
string url_s = "http://api.heclouds.com/devices/94887316自己的ID号/datastreams/";
SetHeaderValue(request.Headers, "api-key", "E60z0oVBQ4lNAircnCm9=Mwggio=");//设备API地址和 首部参数
request.Host = "api.heclouds.com";
功能二
首先在...\...\模板\App4\App4这个路径建立一个文件夹命名为“图片”
然后把需要显示的图片复制进去
接着按顺序命名为1,2,3...
然后在这里建立文件夹
下面就是编写代码了
x就是页数
pictureBox1.Image = Image.FromFile("../../图片/" + x.ToString() + ".jpeg");
功能三
管理员开放些通知,普通成员只能读
下面这句函数很关键,这是这是打开相对路径的文本
Read(".../.../" + listBox1.Items[listBox1.SelectedIndex].ToString() + ".txt");
功能四
太简单了,过
功能五
球员的分配
当点击添加球员的时候可以把textBox的值放到listBox1里面,通过按下转移对象进行转移
下面请看代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace App4
{
public partial class Form9 : Form
{
public Form9()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
//获取添加人的值
string peopleText = this.textBox1.Text.Trim().ToString();
//获取listbox1的对象
ListBox list1 = this.listBox1;
//判断人员是否已经添加过
if (!list1.Items.Contains(peopleText))
{
list1.Items.Add(peopleText);
}
else
{
MessageBox.Show("该球员已经添加过,无法重复添加!");
}
}
private void button2_Click(object sender, EventArgs e)
{
//获取listbox1的所有选中的项
if (this.listBox1.SelectedItems.Count > 0)
{
string checkPeople = this.listBox1.SelectedItem.ToString();
//判断是否添加到listbox2
if (!this.listBox2.Items.Contains(checkPeople))
{
//添加人员到listbox2中
this.listBox2.Items.Add(checkPeople);
//移除listbox1中
this.listBox1.Items.Remove(checkPeople);
}
else
{
MessageBox.Show("该球员已经转移过,无法重复转移!");
}
}
else
{
MessageBox.Show("未选中球员,无法转移到替补阵容!");
}
}
private void button3_Click(object sender, EventArgs e)
{
//获取listbox2的所有选中的项
if (this.listBox2.SelectedItems.Count > 0)
{
string checkPeople = this.listBox2.SelectedItem.ToString();
//判断是否添加到listbox1
if (!this.listBox1.Items.Contains(checkPeople))
{
//添加人员到listbox1中
this.listBox1.Items.Add(checkPeople);
//移除listbox1中
this.listBox2.Items.Remove(checkPeople);
}
else
{
MessageBox.Show("该球员已经转移过,无法重复转移!");
}
}
else
{
MessageBox.Show("未选中球员,无法转移到主力阵容!");
}
}
private void button4_Click(object sender, EventArgs e)
{
if (this.listBox2.SelectedItems.Count > 0)
{
string checkPeople = this.listBox2.SelectedItem.ToString();
this.listBox2.Items.Remove(checkPeople);
}
else if (this.listBox1.SelectedItems.Count > 0)
{
string checkPeople = this.listBox1.SelectedItem.ToString();
this.listBox1.Items.Remove(checkPeople);
}
else
{
MessageBox.Show("未选中球员,无法移除!");
}
}
private void button6_Click(object sender, EventArgs e)
{
Form5 f5 = new Form5();
this.Hide();
f5.Show();
}
}
}
功能六
只要注意这句就行
这是打开系统软件的关键语句
System.Diagnostics.Process.Start("");
下面这是打开第三方软件的代码,注意路径就行
System.Diagnostics.ProcessStartInfo Info = new System.Diagnostics.ProcessStartInfo();
//设置外部程序名
Info.FileName = "cloudmusic.exe";
//设置外部程序工作目录为 C:\
Info.WorkingDirectory = @"...\...\Netease\CloudMusic";
//最小化方式启动
Info.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
//声明一个程序类
System.Diagnostics.Process Proc;
try
{
Proc = System.Diagnostics.Process.Start(Info);
System.Threading.Thread.Sleep(500);
}
catch (System.ComponentModel.Win32Exception)
{
return;
}
功能七
模拟i汕职打卡
关键只有两个地方,查看功能和前面查看账号类似
检测目录
写入数据
功能八
制作串口监视器,主要部分是打开串口,下面是打开串口的代码
if (button1.Text == "打开串口")
try
{
serialPort1.PortName = comboBox1.Text;
serialPortName = comboBox1.Text;
serialPort1.BaudRate = int.Parse(comboBox2.Text);
serialPort1.DataBits = int.Parse(comboBox4.Text);
if (comboBox3.Text == "1")
{ serialPort1.StopBits = System.IO.Ports.StopBits.One; }
else if (comboBox3.Text == "1.5")
{ serialPort1.StopBits = System.IO.Ports.StopBits.OnePointFive; }
else if (comboBox3.Text == "2")
{ serialPort1.StopBits = System.IO.Ports.StopBits.Two; }
if (comboBox5.Text == "无")
{ serialPort1.Parity = System.IO.Ports.Parity.None; }
else if (comboBox5.Text == "奇校验")
{ serialPort1.Parity = System.IO.Ports.Parity.Odd; }
else if (comboBox5.Text == "偶校验")
{ serialPort1.Parity = System.IO.Ports.Parity.Even; }
serialPort1.Open();
button1.Text = "关闭串口";
}
catch (Exception err)
{
MessageBox.Show("打开失败" + err.ToString(), "提示!");
}
else
{
try
{
serialPort1.Close();
}
catch (Exception) { }
button1.Text = "打开串口";
}
然后呢,你就可以制作几个按键,例如
可以通过开关灯,对应代码是发送一个数据
try
{
serialPort1.Write("a");
label8.Text = "发送成功";
}
catch (Exception)
{
label8.Text = "发送失败,请检查串口";
}
这就是我的所有制作过程了,虽然有点短,但是我在制作的过程花费很长时间进行探索,希望这个对大家有所帮助,如果有什么不足之处,请各位多多指正,大家也可以互相学习,下面是我整个工程的文件。
链接:https://pan.baidu.com/s/1KDX7S9wLvKL3noXoJixtEQ?pwd=lkjh
提取码:lkjh
有疑问可以私聊,谢谢配合!