第四篇——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 }

實驗截圖如下:

注冊與寫入內容:

  

注冊時用戶名重復:

登錄:

注冊時未輸入密碼:

登錄時密碼錯誤:

注:

暫時還沒有將登錄界面與播放界面鏈接起來,即注冊或登錄后不跳轉至播放界面;

用戶名和密碼的輸入沒做限制;

注冊用戶名的意義是准備在播放界面添加歌曲生成歌曲目錄,與用戶名對應,這樣每個賬號就有自己的歌單啦!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM