第四篇——Spring音乐登录界面设计及实现(C#)
Spring音乐播放器,我们小组设计其启动时有一个登录界面,用户初次可以注册,输入用户名和密码,点击注册即将输入信息保存到register文本文件中;如果已有用户名,输入用户名和密码,点击登录,程序会将输入的用户名和密码与已有的用户信息进行比较,如果找到完全匹配的用户名和密码,则进入音乐播放界面;若不匹配,则弹出消息框:用户名或密码错误。
首先建立一个登录界面窗口,添加button,label,和textbox,更改了窗体背景,如下图。
然后对注册和登录按钮进行消息响应编程。
C#编程内容主要涉及文件的的读写,以及判断,比较简单。
注意事项如下:
在textbox中输入用户名和密码,首次点击注册按钮,程序将textbox中的字符写入新建的Register.txt文档中,用户名和密码各一行;
注册时,若用户名或密码为空,则弹出消息框提示请填写用户名或密码;
注册时,若用户名重复,则提示用户名重复,不写入文档;
登录时,若用户名或密码为空,则弹出消息框提示请填写用户名或密码;
登录时,若用户名或密码错误,则弹出消息框提示用户名或密码错误;
默认生成的Register.txt在桌面,其后注册时,用户名和密码均写在前面注册的账号的下两行。
具体实现代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using System.IO; 10 11 namespace Spring音乐播放器 12 { 13 public partial class 登录界面 : Form 14 { 15 public 登录界面() 16 { 17 InitializeComponent(); 18 } 19 //注册 20 private void register_Click(object sender, 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(object sender, 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 }
实验截图如下:
注册与写入内容:
注册时用户名重复:
登录:
注册时未输入密码:
登录时密码错误:
注:
暂时还没有将登录界面与播放界面链接起来,即注册或登录后不跳转至播放界面;
用户名和密码的输入没做限制;
注册用户名的意义是准备在播放界面添加歌曲生成歌曲目录,与用户名对应,这样每个账号就有自己的歌单啦!