Spring音乐播放器,我们小组设计其启动时有一个登录界面,用户初次可以注册,输入用户名和密码,点击注册即将输入信息保存到register文本文件中;如果已有用户名,输入用户名和密码,点击登录,程序会将输入的用户名和密码与已有的用户信息进行比较,如果找到完全匹配的用户名和密码,则进入音乐播放界面;若不匹配,则弹出消息框:用户名或密码错误。

  首先建立一个登录界面窗口,添加button,label,和textbox,更改了窗体背景,如下图。

然后对注册和登录按钮进行消息响应编程。

C#编程内容主要涉及文件的的读写,以及判断,比较简单。

注意事项如下:

在textbox中输入用户名和密码,首次点击注册按钮,程序将textbox中的字符写入新建的Register.txt文档中,用户名和密码各一行;

注册时,若用户名或密码为空,则弹出消息框提示请填写用户名或密码;

注册时,若用户名重复,则提示用户名重复,不写入文档;

登录时,若用户名或密码为空,则弹出消息框提示请填写用户名或密码;

登录时,若用户名或密码错误,则弹出消息框提示用户名或密码错误;

默认生成的Register.txt在桌面,其后注册时,用户名和密码均写在前面注册的账号的下两行。

具体实现代码如下:

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO; namespace Spring音乐播放器
{
public partial class 登录界面 : Form
{
public 登录界面()
{
InitializeComponent();
}
//注册
private void register_Click(object sender, EventArgs e)
{
Boolean flag = false;//布尔变量
string path = @"C:\Users\Administrator\Desktop\Register.txt"; //判断是否填写完整用户名和密码
if (string.IsNullOrWhiteSpace(username.Text) || string.IsNullOrWhiteSpace(password.Text))
{
MessageBox.Show("请填写用户名或密码");
return;
} if (!File.Exists(path))//如果不存在则建立一个文档
{
// Create a file to write to.
using (StreamWriter sw = File.CreateText(path))
{
//一行用户名,一行密码
sw.WriteLine(this.username.Text);
sw.WriteLine(this.password.Text);
MessageBox.Show("注册成功!");
sw.Close();
}
}
else
{
//判断是否用户名重复
StreamReader objReader = new StreamReader("C:/Users/Administrator/Desktop/Register.txt");
string sLine = "";
int i = ;
while ((sLine = objReader.ReadLine()) != null)
{
i++;
if (this.username.Text == sLine && Convert.ToInt32(i) % == )
{
MessageBox.Show("该用户名已被使用!");
flag = true;
break;
}
}
objReader.Close(); if (flag == true)
return;
else
//在已有的文档中接着写
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(this.username.Text);
sw.WriteLine(this.password.Text);
MessageBox.Show("注册成功!");
sw.Close();
}
}
}
//登录
private void launch_Click(object sender, EventArgs e)
{
Boolean flag = false;
string username = this.username.Text;
string password = this.password.Text;
if (string.IsNullOrWhiteSpace(username) || string.IsNullOrWhiteSpace(password))
{
MessageBox.Show("请填写用户名或密码");
return;
}
StreamReader objReader = new StreamReader("C:/Users/Administrator/Desktop/Register.txt");
string sLine = "";
int i = ;
int n = ;
while ((sLine = objReader.ReadLine()) != null)
{
i++;
if (username == sLine && Convert.ToInt32(i) % 2 == 1 )//用户名是在第奇数行
n = i+;
if (n == i && password == sLine)//密码在对应的用户名的下一行
{
MessageBox.Show("登录成功!");
flag = true;
break;
}
}
objReader.Close();
if(flag == false )
MessageBox.Show("用户名或密码错误!");
}
}
}

实验截图如下:

注册与写入内容:

  

注册时用户名重复:

登录:

注册时未输入密码:

登录时密码错误:

注:

暂时还没有将登录界面与播放界面链接起来,即注册或登录后不跳转至播放界面;

用户名和密码的输入没做限制;

注册用户名的意义是准备在播放界面添加歌曲生成歌曲目录,与用户名对应,这样每个账号就有自己的歌单啦!

第四篇——Spring音乐登录界面设计及实现(C#)的更多相关文章

  1. 第五篇——Spring音乐播放界面设计(C#)

    由于小组成员已经完成软件的详细设计说明书,在这里只具体说明软件程序的细节编写,以免重复. 歌曲的播放采用VS自带的axWindowsMediaPlayer插件,所以程序中涉及到许多该插件的使用.Ctl ...

  2. Python图形编程探索系列-07-程序登录界面设计

    设计任务 初步设计程序登录界面,详细分析设计步骤. 程序详细分析 基本框架设计 import tkinter as tk import tkinter.messagebox root = tk.Tk( ...

  3. Qt常用的登录界面设计

    记录一下Qt常用的登录界面的设计 方便以后使用! 1.QpushButton改变一个按钮的颜色,当鼠标放上去和移开时显示不同的颜色.QPushButton { background-color: rg ...

  4. tkinter+pickle+python的一个登录界面设计

    1.代码: #导出模块 import tkinter as tk from tkinter import messagebox import pickle #定义登录的窗口.标题.大小和位置 wind ...

  5. 四:Spring Security 登录使用 JSON 格式数据

    Spring Security 登录使用 JSON 格式数据 1.基本登录方案 1.1 创建 Spring Boot 工程 1.2 添加 Security 配置 2.使用JSON登录 江南一点雨-Sp ...

  6. 从.Net到Java学习第四篇——spring boot+redis

    从.Net到Java学习系列目录 “学习java已经十天,有时也怀念当初.net的经典,让这语言将你我相连,怀念你......”接上一篇,本篇使用到的框架redis.FastJSON. 环境准备 安装 ...

  7. 课堂测试——jsp登录界面设计

    实现结果:在login.jsp页面提交用户名和密码(可以验证是否为空),点击登录跳转到loginResult.jsp页面进行验证并显示结果 JSP + JDBC + MySQL login.jsp 设 ...

  8. SSH整合 第四篇 Spring的IoC和AOP

    这篇主要是在整合Hibernate后,测试IoC和AOP的应用. 1.工程目录(SRC) 2.IoC 1).一个Service测试类 /* * 加入spring容器 */ private Applic ...

  9. Bootstrap风格登录界面设计样例

    参考:http://bootsnipp.com/tags/login Register Page   127.8K 187 Modal Login with jQuery Effects   159. ...

随机推荐

  1. Scala学习之路 (二)使用IDEA开发Scala

    目前Scala的开发工具主要有两种:Eclipse和IDEA,这两个开发工具都有相应的Scala插件,如果使用Eclipse,直接到Scala官网下载即可http://scala-ide.org/do ...

  2. WorldWind源码剖析系列:影像图层类ImageLayer

    影像图层类ImageLayer 影像图层类ImageLayer将单张影像作为纹理映射到星球表面上去.源影像必须是平面笛卡尔坐标系.该类的类图如下. 影像图层类ImageLayer提供的主要字段.属性和 ...

  3. 笔记一:CSS选择器

    0.前言:无论学什么,前端都是绕不开的一门技术,对于不同的人需求不同,作为一个python开发者不仅需要能读懂基本的html/css以及js代码,还要会使用它的常用的标签,以及了解比较有用的标签,把逻 ...

  4. Ubuntu软件的安装和使用

    windows 系统有很多的截图的软件 比如 QQ 浏览器什么的,但是ubuntu 还是很少的截图软件的接下来介绍一下ubuntu 的截图软件 1.键盘上的alt+printscreen 可以全屏幕的 ...

  5. 蓝桥杯 历届试题 网络寻路(dfs搜索合法路径计数)

    X 国的一个网络使用若干条线路连接若干个节点.节点间的通信是双向的.某重要数据包,为了安全起见,必须恰好被转发两次到达目的地.该包可能在任意一个节点产生,我们需要知道该网络中一共有多少种不同的转发路径 ...

  6. TTL,COMS,USB,232,422,485电平之详细介绍及使用

    如有错误敬请指导! 今天来详细介绍一下TTL,COMS,USB,232,422,485电平,以及之间的转换问题. 有些地方的引脚图可能不是规范的,具体引脚以自己的模块资料为主,这篇文章着重介绍使用.. ...

  7. day60

    Bootstrap 一.简介 Bootstrap是美国Twitter公司的设计师Mark Otto和Jacob Thornton合作基于HTML.CSS.JavaScript 开发的简洁.直观.强悍的 ...

  8. oracle版本兼容问题

    问题一描述:本机环境升级为vs2012升级TLS程序为framework4.0,本机ODAC为ODTwithODAC112030.本机为oracle10g本机程序生成成功,运行成功. 发布到服务器后, ...

  9. mfc 线程的优先级

    知识点:  线程优先级  获取当前线程句柄  线程优先级设置  线程优先级变动  线程优先级获取 一.线程优先级(Thread priority ) 简单的说就是(线程)的优先级越高,那么就 ...

  10. P2463 [SDOI2008]Sandy的卡片

    写一种\(O(nm)\)的做法,也就是\(O(\sum 串长)\)的. 先通过差分转化,把每个数变成这个数与上一个数的差,第一个数去掉,答案就是最长公共子串+1 按照套路把所有串拼起来,中间加一个分隔 ...