<>C/C++语言实现登陆界面

<>整体功能介绍

/***********************************************************
实现一个登陆界面
1 输出一个登陆界面
2 用户名能够实现邮箱验证,regex库,密码要不可见
3 进度条的模拟实现
4 音乐播放
***************************************************************/

<>分步实现

<>1.输出一个登陆界面

首先对此功能使用到的函数进行简单的介绍。

<>(1).system();

int system(const char *command) 把 command
指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。使用此函数需要包含头文件:#include <stdlib.h>

*<1>调整窗口

* system函数+dos指令
* 标题:title 标题名
* 颜色:color f0
* 大小:mode con cols = 40 lins =8;//此处可自己定义cols和lins大小
* 例如:
* system("calc");打开计算器“”里面是计算机的命令。
* system("pause");//防止闪屏
实现
void setWindosStyle(void) { system("title 邮箱验证"); system("color f0"); system(
"mode con cols=40 lines=8"); }
<>2.用户及密码

此处要实现密码不可见,故使用到了_getch()函数,可自行百度。
void setUserNamPass(uin8_t* username, uin8_t* userpassword) { cout << "\t用户名:";
cin>> username; cout << "\t密 码:"; //cin >> userpassword; // 密码不可见:字符串当做字符处理 //
每次按键输出一个*号就可以,然后把所有按键保存到password里面 char key; uin32_t i = 0; while ((key = _getch
()) != '\r') { if (i < 6) { userpassword[i++] = key; putchar('*'); } else { cout
<< "密码过长" << endl; system("pause"); return; } } //字符串结束标记:\0; userpassword[i] =
'\0'; }
<>3.邮箱验证

此功能是用来判断输入需要构造正则表达式对象,然后调用regex_match()函数来判断输入字符串是否满足要求;使用到C++头文件#include 。
bool checkEmail(uin8_t* username) { bool result = false; //ctb @163 .com.cn
regexobject("(\\w+)@(\\w+)(\\.(\\w+))+"); /*1. 字母a-z A-Z 或者下划线或者0-9,正则表达式*/ //+
多个 result = regex_match(username, object); return result; }
<>4. 进度条的模拟实现

此功能使用到了#include <Windows.h>头文件的Sleep()函数。
void proc(void) { string str("-"); for (uin32_t i = 0; i <= 20; i++) { system(
"cls"); cout << str << endl; cout << i * 5 << "%" << endl; str += "-"; Sleep(500
); } printf("sucess....!\n"); }
<>5 .播放音乐

此功能使用到 #include(mmsystem.h)头文件里的mciSendString()函数,可百度了解此函数功能。
首先下载一个音乐MPS文件,然后将其拷贝到此过程工程目录下。注意:实现此功能需加载静态包,

* #pragma comment(lib,“winmm.lib”)//加载静态包 void palyMusic(void) { mciSendString
("open 1.mp3 alias music", 0, 0, 0); mciSendString("play music repeat", 0, 0, 0)
; }
<>6.测试

<><1>.头文件
//#pragma once #ifndef _TEST_H_ #define _TEST_H_ typedef int uin32_t; typedef
char uin8_t; #include<iostream> #include <cstdio>//c++引用中标准,一般是c+原来的文件名字 #
include <conio.h>//_getch() #include <regex>//正则表达式 #include <string> #include
<Windows.h> #include <mmsystem.h> using namespace std; void setWindosStyle();
void setUserNamPass(uin8_t* username, uin8_t*userpassword); bool checkEmail(
uin8_t* username); void proc(void); void palyMusic(void); #endif // !_TEST_H_
<><2>.main函数
#include "test.h" uin32_t main(void) { //用户名+密码 uin8_t username[20] = "";
uin8_t userpassword[7] = ""; setWindosStyle(); setUserNamPass(username,
userpassword); if ((checkEmail(username)) == true) { if (!(strcmp(username,
"ctb@163.com.cn")&&strcmp(userpassword,"12345"))) { //弹出进度条 proc(); cout <<
"music begin!!!" << endl; //在播放音乐 palyMusic(); } else { cout << "用户名或者密码错误" <<
endl; } } else { printf("inpute email name no standard\n"); } system("pause");
return 0; }

技术
©2019-2020 Toolsou All rights reserved,
浏览器内核(理解)HashMap详解让人意想不到的Python之樱花树(turtle库的华丽样式)html写樱花树,写樱花树的作文某东14薪变16薪,是诚意还是套路?java四大函数式接口(重点,简单)