前言:
作者简介:我是笑霸final,一名热爱技术的在校学生。
个人主页:个人主页1 || 笑霸final的主页2
系列专栏:《作业专栏》
如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步
如果感觉博主的文章还不错的话,点赞 + 关注 + 收藏
使用日期控件,定时器等控件完成“闹钟”程序的基本功能,界面如图5.1所示,运行程序,在日期控件中设置好日期/时间,如图5.2所示,点击“确定”按钮,在两个标签上分别显示设置的时间和当前时间(要求当前时间的显示每隔1秒进行更新),当到了预先设置的时间时,通过消息框提示“定时时间到”。
源代码:
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 第一题
{
public partial class Form1 : Form
{
string time;//设置的时间
public Form1()
{
InitializeComponent();
}
private void groupBox1_Enter(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
time= myTime.Value.ToString("yyyy-MM-dd HH:MM:ss");
timeSet.Text = time;//设置的时间
timeNow.Text= DateTime.Now.ToString("yyyy-MM-dd HH:MM:ss");//当前时间
timer1.Enabled=true;//开启计时器
timer1.Interval = 1000;//设置1秒
}
private void Form1_Load(object sender, EventArgs e)
{
myTime.Format = DateTimePickerFormat.Custom;
myTime.CustomFormat = "yyyy-MM-dd HH:MM:ss";
}
private void timer1_Tick(object sender, EventArgs e)
{
timeNow.Text = DateTime.Now.ToString("yyyy-MM-dd HH:MM:ss");//计时器获取当前时间
if(time == timeNow.Text)
{
//说明时间到了设置的时间
MessageBox.Show("时间到!");
}
}
}
}
实验结果
使用图片框、定时器、打开文件对话框设计一个图片浏览程序,界面如图5.3所示,需要完成以下功能:
源代码:
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 第二题
{
public partial class Form1 : Form
{
OpenFileDialog ofdl = new OpenFileDialog();
String[] myImags;
int index = 0;//默认下标
public Form1()
{
InitializeComponent();
}
private void buttonAdd_Click(object sender, EventArgs e)
{//添加按钮
try
{
ofdl.ShowDialog();//打开文件对话框
myImags = ofdl.FileNames;
pictImage.Image = Image.FromFile(myImags[index]);
}
catch(Exception ex)
{
//异常处理
MessageBox.Show("取消添加照片");
}
}
private void Form1_Load(object sender, EventArgs e)
{
ofdl.Multiselect = true;//允许多选
if (index == 0)
{
//是第一张图片 (上一张)按钮不可用
butOn.Enabled = false;
//(下一张)按钮可用
butNext.Enabled = true;
}
}
private void butOn_Click(object sender, EventArgs e)
{
//上一张按钮
if ((index % myImags.Length) == myImags.Length - 1)
{
//是最后一张图片 (上一张)按钮可用
butOn.Enabled = true;
pictImage.Image = Image.FromFile(myImags[(--index) % myImags.Length]);
butNext.Enabled = false;//开启下一张按钮
}
else if((index % myImags.Length) != 0)
{
butOn.Enabled = true;
butNext.Enabled = true;
//切换图片
pictImage.Image = Image.FromFile(myImags[(--index) % myImags.Length]);
}
if((index % myImags.Length) == 0)
{
//是第一张图片 (上一张)按钮不可用
butOn.Enabled = false;
//(下一张)按钮可用
return;//结束
}
}
private void butNext_Click(object sender, EventArgs e)
{
//下一张按钮
if ((index % myImags.Length) == 0)
{
//(下一张)按钮可用
butNext.Enabled = true;
pictImage.Image = Image.FromFile(myImags[(++index) % myImags.Length]);
butOn.Enabled = true;//开启添加按钮
}
else if((index % myImags.Length) != myImags.Length - 1)
{
butOn.Enabled = true;
butNext.Enabled = true;
//切换图片
pictImage.Image = Image.FromFile(myImags[(++index) % myImags.Length]);
}
if((index % myImags.Length) == myImags.Length - 1)
{
//(下一张)按钮不可用
butNext.Enabled = false;
return;
}
}
private void butAuto_Click(object sender, EventArgs e)
{
timer1.Enabled = true;//开启计时器
timer1.Interval = 2000;//设置1秒
//循环播放 把数组看成循环队列
}
private void butjixu_Click(object sender, EventArgs e)
{
timer1.Start();//继续
}
private void butStop_Click(object sender, EventArgs e)
{
timer1.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
//(index++) % myImags.Length
pictImage.Image = Image.FromFile(myImags[(index++) % myImags.Length]);
}
}
}
设计一个图书管理系统(系统功能无需实现),系统使用者包含2类用户,分别为一般管理员用户和超级管理员用户。2类用户使用系统时均需要登录进行身份认证,要求输入合法的用户名和密码(若输入的用户名或密码错误应给出消息框),登录界面如图5.4所示,登录成功后(用户名和密码均正确)进入图书管理主界面并显示欢迎用户的信息,如图5.5所示,若为超级管理员用户,显示“一般用户使用”和“超级用户使用”两个按钮,而对于一般管理员用户,只显示“一般用户使用”一个按钮。
要求:以“登录”窗口为启动窗体和以“图书管理系统”主窗口为启动窗体分别实现。
提示:(1)用户信息可以存放在结构数组中。此题设用户有:
- 张三,密码:123,级别:0(为超级管理员用户)
- 李四,密码:456,级别:1(为一般管理员用户)
- 王五,密码:789,级别:1(为一般管理员用户)
源代码1:
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;
using System.Xml.Linq;
namespace 第三题
{
public partial class form1 : Form
{
struct User
{
public string name;
public string password;
public string level;
}
User[] userinfo = new User[3];
public form1()
{
userinfo[0].name = "张三";
userinfo[0].password = "123";
userinfo[0].level = "0";
userinfo[1].name = "李四";
userinfo[1].password = "456";
userinfo[1].level = "1";
userinfo[2].name = "王五";
userinfo[2].password = "789";
userinfo[2].level = "1";
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
System.Environment.Exit(0);
}
private void button1_Click(object sender, EventArgs e)
{
String myuse= username.Text;//获取当前输入的用户名
String myPwd = pwd.Text;//获取当前输入的密码
if(myuse==""|| myPwd == "")
{
MessageBox.Show("用户名和密码不能为空");
return;//结束
}
int len=userinfo.Length;//当前的用户数量
int index = 0;//下标
while (index< len)
{
if (myuse.Equals(userinfo[index].name))
{//用户匹配上了
if (myPwd.Equals(userinfo[index].password))
{
Form form2=new Form2();
Program.name = userinfo[index].name;//设置当前名字
//密码匹配上了
if (userinfo[index].level.Equals("0"))//0(为超级管理员用户)
{
Program.myStatus=true;//显示一般用户使用按钮
form2.Show();
}
if (userinfo[index].level.Equals("1"))//1(为一般管理员用户)
{
Program.myStatus = false;
form2.Show();
}
return;
}
else
{
MessageBox.Show("密码错误");
//清空密码
pwd.Text = "";
return;
}
}
index++;
}
MessageBox.Show("没有此用户");
}
}
}
源代码2:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 第三题
{
internal static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new form1());
}
//多个窗口共享数据
public static String name = "";
public static Boolean myStatus = false;
}
}
源代码3:
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 第三题
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
//设置第一个窗口传来的数据
myname.Text = "欢迎" + Program.name + "使用";
button2.Visible = Program.myStatus;
}
}
}
创建Windows窗体应用程序,利用2个窗体实现学生成绩录入,如图5.6,5.7所示。在标题为“学生成绩录入系统”的窗体上点击“录入成绩”按钮后,打开标题为“成绩录入”的窗体,录入成绩。具体要求:
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 第四题
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
Program.Status = false;//设置状态 防止第二个窗口 点×也会增加上一次的内容
Form f2 = new Form2();
f2.ShowDialog();
}
private void Form1_Activated(object sender, EventArgs e)
{
if (Program.Status)
{//当窗口活动时 状态修改过才会添加
myText.Text += "\n" + Program.myText;
}
Program.Status = false;//设置状态 防止调用时直至录入
}
private void Form1_Load(object sender, EventArgs e)
{
myText.Text = "学号" + "\t" + "高数" + "\t" + "英语" + "\t" + "计算机" + "\t" + "平均分";
Program.Status = false;//设置状态 防止调用时直至录入
}
}
}
源代码二:
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 第四题
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void butAge_Click(object sender, EventArgs e)
{
if (textBox1.Text == "") { MessageBox.Show("id不能为空");return; }
Program.myId = int.Parse(textBox1.Text);
if (textBox2.Text == "") { MessageBox.Show("数学成绩不能为空"); return; }
Program.mathematics = int.Parse(textBox2.Text);
if (textBox3.Text == "") { MessageBox.Show("英语成绩不能为空"); return; }
Program.English = int.Parse(textBox3.Text);
if (textBox4.Text == "") { MessageBox.Show("计算机成绩不能为空"); return; }
Program.computer = int.Parse(textBox4.Text);
//计算平均分
Program.avg = (Program.mathematics + Program.English + Program.computer) / 3.0;
textBox5.Text=Program.avg.ToString();//显示平均分
}
private void butAdd_Click(object sender, EventArgs e)
{
//录入按钮
if (textBox5.Text == "") { MessageBox.Show("请计算平均成绩"); return; }
//拼接成绩
Program.myText= Program.myId + "\t" + Program.mathematics + "\t" + Program.English + "\t" + Program.computer + "\t" + Program.avg;
//设置返回状态
Program.Status = true;
Form1 f1 = new Form1();
//退出
this.Close();
}
private void butExit_Click(object sender, EventArgs e)
{
//设置返回状态
Program.Status = false;
//退出
this.Close();
}
}
}
源代码三:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 第四题
{
internal static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
//设置共享数据
public static int myId;//学号
public static int mathematics;//高数
public static int English;//英语
public static int computer;//计算机
public static double avg;//平均分
public static String myText ;//信息
public static Boolean Status = false;//返回状态
}
}
如果感觉博主的文章还不错的话,点赞 + 关注 + 收藏