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 }
實驗截圖如下:
注冊與寫入內容:
注冊時用戶名重復:
登錄:
注冊時未輸入密碼:
登錄時密碼錯誤:
注:
暫時還沒有將登錄界面與播放界面鏈接起來,即注冊或登錄后不跳轉至播放界面;
用戶名和密碼的輸入沒做限制;
注冊用戶名的意義是准備在播放界面添加歌曲生成歌曲目錄,與用戶名對應,這樣每個賬號就有自己的歌單啦!