Spring音乐播放器,我们小组设计其启动时有一个登录界面,用户初次可以注册,输入用户名和密码,点击注册即将输入信息保存到register文本文件中;如果已有用户名,输入用户名和密码,点击登录,程序会将输入的用户名和密码与已有的用户信息进行比较,如果找到完全匹配的用户名和密码,则进入音乐播放界面;若不匹配,则弹出消息框:用户名或密码错误。
首先建立一个登录界面窗口,添加button,label,和textbox,更改了窗体背景,如下图。
然后对注册和登录按钮进行消息响应编程。
C#编程内容主要涉及文件的的读写,以及判断,比较简单。
注意事项如下:
在textbox中输入用户名和密码,首次点击注册按钮,程序将textbox中的字符写入新建的Register.txt文档中,用户名和密码各一行;
注册时,若用户名或密码为空,则弹出消息框提示请填写用户名或密码;
注册时,若用户名重复,则提示用户名重复,不写入文档;
登录时,若用户名或密码为空,则弹出消息框提示请填写用户名或密码;
登录时,若用户名或密码错误,则弹出消息框提示用户名或密码错误;
默认生成的Register.txt在桌面,其后注册时,用户名和密码均写在前面注册的账号的下两行。
具体实现代码如下:
1 usingSystem;2 usingSystem.Collections.Generic;3 usingSystem.ComponentModel;4 usingSystem.Data;5 usingSystem.Drawing;6 usingSystem.Linq;7 usingSystem.Text;8 usingSystem.Windows.Forms;9 usingSystem.IO;10
11 namespaceSpring音乐播放器12 {13 public partial class登录界面 : Form14 {15 public登录界面()16 {17 InitializeComponent();18 }19 //注册
20 private void register_Click(objectsender, EventArgs e)21 {22 Boolean flag = false;//布尔变量23 string path = @"C:\Users\Administrator\Desktop\Register.txt";24
25 //判断是否填写完整用户名和密码
26 if (string.IsNullOrWhiteSpace(username.Text) || string.IsNullOrWhiteSpace(password.Text))27 {28 MessageBox.Show("请填写用户名或密码");29 return;30 }31
32 if (!File.Exists(path))//如果不存在则建立一个文档
33 {34 //Create a file to write to.
35 using (StreamWriter sw =File.CreateText(path))36 {37 //一行用户名,一行密码
38 sw.WriteLine(this.username.Text);39 sw.WriteLine(this.password.Text);40 MessageBox.Show("注册成功!");41 sw.Close();42 }43 }44 else
45 {46 //判断是否用户名重复
47 StreamReader objReader = new StreamReader("C:/Users/Administrator/Desktop/Register.txt");48 string sLine = "";49 int i = 0;50 while ((sLine = objReader.ReadLine()) != null)51 {52 i++;53 if (this.username.Text == sLine && Convert.ToInt32(i) % 2 == 1)54 {55 MessageBox.Show("该用户名已被使用!");56 flag = true;57 break;58 }59 }60 objReader.Close();61
62 if (flag == true)63 return;64 else
65 //在已有的文档中接着写
66 using (StreamWriter sw =File.AppendText(path))67 {68 sw.WriteLine(this.username.Text);69 sw.WriteLine(this.password.Text);70 MessageBox.Show("注册成功!");71 sw.Close();72 }73 }74 }75 //登录
76 private void launch_Click(objectsender, EventArgs e)77 {78 Boolean flag = false;79 string username = this.username.Text;80 string password = this.password.Text;81 if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))82 {83 MessageBox.Show("请填写用户名或密码");84 return;85 }86 StreamReader objReader = new StreamReader("C:/Users/Administrator/Desktop/Register.txt");87 string sLine = "";88 int i = 0;89 int n = 0;90 while ((sLine = objReader.ReadLine()) != null)91 {92 i++;93 if (username ==sLine && Convert.ToInt32(i) % 2 == 1 )//用户名是在第奇数行94 n = i+1;95 if (n == i && password ==sLine)//密码在对应的用户名的下一行96 {97 MessageBox.Show("登录成功!");98 flag = true;99 break;100 }101 }102 objReader.Close();103 if(flag == false)104 MessageBox.Show("用户名或密码错误!");105 }106 }107 }
实验截图如下:
注册与写入内容:
注册时用户名重复:
登录:
注册时未输入密码:
登录时密码错误:
注:
暂时还没有将登录界面与播放界面链接起来,即注册或登录后不跳转至播放界面;
用户名和密码的输入没做限制;
注册用户名的意义是准备在播放界面添加歌曲生成歌曲目录,与用户名对应,这样每个账号就有自己的歌单啦!