QT编程--用户注册程序的设计与实现
来源:互联网 发布:mac 快捷键 编辑:程序博客网 时间:2024/06/07 19:15
一个用户注册的程序,应用QT编程,完成一个界面简洁、可以记录并判断用户注册信息的程序
功能说明
(1)当用户点击注册后,可以将用户名、姓名、邮箱、性别、出生日期、注册日期时间、个人爱好等写入文件。
(2)可以通过遍历文件中已注册的用户信息,判断用户名是否重复。
(3)可以判断输入的邮箱格式是否正确。
(4)可以判断用户名的长度,若用户名为空或过长则注册失败。
(5)可以判断姓名的长度,若用户名为空或过长则注册失败。
(6)对以上的信息通过弹出对话框显示。
需求分析
1。功能需求分析
实现用户信息的写入和读出,弹出对话框显示程序信息。
2。 数据需求分析
实现对不合法的信息的判断,并弹出对话框显示信息。
3。 行为需求分析
当用户点击注册按钮时提交注册信息,当用户点击选择按钮时记录性别和爱好信息。
4。 其他需求
实现交互的友好性。
源代码
1. 将用户信息和注册时间用QString存储QDateTime datetime; QString time_str=datetime.currentDateTime().toString("yyyy-MM-dd HH-mm-ss"); QString struser = ui->Username->text(); QString strname = ui->Name->text(); QString strmail = ui->Mail->text(); QString strdate = ui->Dateofbirth->text();QString转化为string string smail = strmail.toStdString(); string suser = struser.toStdString(); string sname = strname.toStdString();创建文本文件 QString fileName = "Register.txt"; QFile file(fileName); if(!file.open(QIODevice::ReadOnly )) { QMessageBox::warning(this,"sdf","can't open",QMessageBox::Yes); }QTextStream stream(&file);遍历文件检测用户名 QString usertemp;QString user=struser;while (!stream.atEnd()) { usertemp += stream.readLine().section(":",1,1); } if(usertemp.indexOf(user)>=0) { QMessageBox *dig=new QMessageBox(); dig->setText("注册失败:用户名"+struser+"已经被使用"); dig->show(); judgeuser++; } else judgeuser = 0; if(suser.length()>8 && suser.length()==0) { QMessageBox *dig=new QMessageBox(); dig->setText("注册失败:用户名不能过长且不能为空"); dig->show(); judgeuserlenth++; } else judgeuserlenth = 0;检测姓名长度 if(sname.length()>8 && sname.length()==0) { QMessageBox *dig=new QMessageBox(); dig->setText("注册失败:姓名不能过长且不能为空"); dig->show(); judgeuserlenth++; } else judgeuserlenth = 0;检测邮箱合法性 if(IsValidEmail(smail)==false) { QMessageBox *dig=new QMessageBox(); dig->setText("注册失败:邮箱格式错误"); dig->show(); judgemail++; } else judgemail = 0;弹出对话框显示注册成功 if(judgeuser == 0 && judgemail == 0 && judgeuserlenth == 0) { QMessageBox *dig=new QMessageBox(); dig->setText(struser+"用户,您好!恭喜您已经注册成功"); dig->show(); } file.close(); //QFile file1(fileName); //if(!file1.open(QIODevice::ReadOnly )) //{ //QMessageBox::warning(this,"sdf","can't open",QMessageBox::Yes); // } // QTextStream stream1(&file1);将用户信息写入文本文件 if(judgeuser == 0 && judgemail == 0 && judgeuserlenth == 0) { if(file.open(QIODevice::WriteOnly | QIODevice::Text|QIODevice::Append)) { if(ui->Male->isChecked()) stream<<":"+struser+":"+strname+":male:"+strmail+":"+strdate+":"+time_str; else if (ui->Female->isChecked()) stream<<":"+struser+":"+strname+":female:"+strmail+":"+strdate+":"+time_str; if(ui->Book->isChecked()) stream<<":read"; if(ui->Ball->isChecked()) stream<<":ball"; if(ui->Internet->isChecked()) stream<<":intertnet"; if(ui->Chess->isChecked()) stream<<":chess"; if(ui->Music->isChecked()) stream<<":music"; stream<<"\n"; file.close();//关闭文件}判断邮箱格式的具体实现bool MainWindow::IsValidChar(char ch){ if( (ch>=97) && (ch<=122) ) //26个小写字母 return true; if( (ch>=65) && (ch<=90) ) //26个大写字母 return true; if((ch>=48) && (ch<=57)) //0~9 return true; if( ch==95 || ch==45 || ch==46 || ch==64 ) //_-.@ return true; return false;}bool MainWindow::IsValidEmail(string strEmail){ if( strEmail.length()<5 ) //26个小写字母 return false; char ch = strEmail[0]; if( ((ch>=97) && (ch<=122)) || ((ch>=65) && (ch<=90)) || ((ch>=48) && (ch<=57))) { int atCount =0; int atPos = 0; int i; int dotCount = 0; for(i=1;i<strEmail.length();i++) //0已经判断过了,从1开始 { ch = strEmail[i]; if(IsValidChar(ch)) { if(ch==64) //"@" { atCount ++; atPos = i; } else if( (atCount>0) && (ch==46) )//@符号后的"."号 dotCount ++; } else return false; } //6. 结尾不得是字符“@”或者“.” if( ch == 46 ) return false; //2. 必须包含一个并且只有一个符号“@” //3. @后必须包含至少一个至多三个符号“.” if( (atCount!=1) || (dotCount<1) || (dotCount>3) ) return false; //5. 不允许出现“@.”或者.@ int x,y; x=strEmail.find("@."); y=strEmail.find(".@"); if( x>0 || y>0 ) { return false; } return true; } return false;} }
阅读全文
0 0
- QT编程--用户注册程序的设计与实现
- 用户注册的邮箱激活模块的设计与实现
- Java设计一个用户注册的程序
- 设计一个用户注册程序
- 网络编程学习笔记二(实现一个基于简单TCP的用户注册程序)
- 实现PHP用户的注册与登录
- 实现PHP用户的注册与登录 .
- 用户注册与登录功能的实现
- 用户注册的邮箱激活模块的设计与实现【申明:来源于网络】
- 用户注册的实现
- 注册界面的设计与实现
- struts2的用户注册程序
- 用纯jsp实现用户的登录、注册与退出
- java 与数据库连接 实现用户的注册和登录
- java 与数据库连接 实现用户的注册和登录
- 基于QT的电子相册设计与实现
- 实现js与Qt程序的交互
- 用户注册页面的实现
- MyBatis第二讲学习笔记 ,使用MyBatis对表执行增删改查操作——基于注解的实现
- JNI/NDK开发指南(七)——C/C++访问Java实例变量和静态变量
- ios oc中的静态方法和实例方法、单例模式
- LeetCode 67. Add Binary
- Linux(CentOS)搭建redmine项目管理系统
- QT编程--用户注册程序的设计与实现
- vue2.0构建单页应用最佳实战 (一)
- 第三十三天:js写的一个计算器
- JNI/NDK开发指南(八)——调用构造方法和父类实例方法
- [leetcode]Repeated Substring Pattern顺带复习KMP
- node.js
- 高效加载 Bitmap
- C# 将 HTML 转换为图片或 PDF
- 各大OJ题目分类