ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:79.04KB ,
资源ID:11884700      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11884700.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(04用户登录信息管理.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

04用户登录信息管理.docx

1、04用户登录信息管理青 岛 理 工 大 学课程实验报告课程名称软件设计与体系结构班级软件122实验日期2015.03.302015.04.13姓名贾蒙学号201207222实验成绩实验名称用户登录信息管理实验目的及要求熟悉三层架构实验环境Win7, VS2010实验内容1. 建立一个解决方案2. 按三层架构模式添加工程3. 设定工程间的依赖关系4. 实现基本用户信息的管理操作:增删改查算法描述及实验步骤1.选择 文件-新建-项目2.选择 其它项目类型-Visual Studio解决方案3.在解决方案所在的文件夹中创建以下文件夹: Bin:存放生成的可执行文件 Documents:存放所用到的文

2、档 Library:存放用到的第三方控件 Setup:存放用于安装的最终程序及其相关文件 UnitTest:存放测试代码4.准备以下文件放到相应的文件夹中:在Library文件夹中建立SQLite文件夹,从SQLite的官方网站下载sqlite-netFx40-binary-Win32-2010-1.0.84.0.zip文件,解压缩后将其中的4个文件SQLite.Designer.dll、SQLite.Interop.dll、System.Data.SQLite.dll和System.Data.SQLite.Linq.dll拷贝到SQLite文件夹待用;在Bin文件夹下面创建Database文

3、件夹,并利用sqliteadmin在其中创建一个SQLite数据库文件MyFirstDB.s3db(或用代码创建),其中包含一个表:表中admin密码为lcb,aaa密码为123,bbb密码为空在Bin文件夹下面创建配置文件MyConfig.INI:5.右键单击右图中的“解决方案MyFirstSolution(0个项目)”-添加-新建项目,建立如右图所示5个Project;其中Common、DAL、Model和BLL项目类型为“类库”,UI的项目类型为“Windows应用程序”;右键单击“MyFirstSolution.UI”设定UI为“启动项目”,该项目名称变为黑体显示。6.添加引用(右键单

4、击“引用”-“添加引用”):BLL引用DAL和ModelDAL引用Common和Library文件夹中的3个dll文件: SQLite.Designer.dll、System.Data.SQLite.dll和System.Data.SQLite.Linq.dllModel引用Common和DALUI引用Common、BLL和Model,还必须将Library文件夹中的SQLite.Interop.dll文件复制到Bin文件夹中添加引用的同时,项目间的依赖关系也就发生了变化,随之改变的是项目的编译顺序。7.填写Common的代码:修改Class1.cs的名称为CodeProcess.cs,并输入

5、其代码实现Base64的编码和解码功能添加IniClass类实现对INI文件的读写操作添加MyConfig类调用IniCalss类实现对配置文件MyConfig.INI的读写操作8.填写DAL的代码添加数据集UserDataSet,建立表Users,结构同SQLite数据库中的表Users将类Class.cs改名为MyDbHelper.cs,并输入它的代码实现数据库的操作:连接,查询,修改9.填写Model的代码:修改类Class1.cs为User.cs,并填写其代码实现利用DAL提供的功能从数据库中获取数据,并将需要保存的数据写入数据库(具体项目中,可以单个修改/保存,也应该可以批量修改/保

6、存)以属性的形式向上层提供数据10.填写BLL的代码:修改Class1.cs类为UserManager.cs类,并填写代码实现对用户信息的管理:获取数据,校验密码,修改密码11.填写UI的内容:添加Form的界面元素添加Form_Load的代码根据配置文件的内容设置界面元素需要的话,实现自动登录功能添加Button_Click点击事件的处理代码检验登录帐号和密码记录登录状态到配置文件中调试过程及实验结果总结 本次试验主要考察的是三层架构开发模式,即表示层、业务逻辑层、数据访问层。通过本次试验对三层架构开发模式有了新的认识,不再是仅仅局限于课本上枯燥的知识,本次实验后有了更加生动的认识。附录UI

7、部分代码: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 MyFirstSolution.BLL;using MyFirstSolution.Common;namespace MyFirstSolution.UI public partial class Form1 : Form p

8、rivate String count = null; private String pass = null; private int autoLogin=1; /ini文?件t路径? String file = .MyConfig.ini; MyConfig opIni; public Form1() InitializeComponent(); private void login_Click(object sender, EventArgs e) this.count = this.counter.Text.ToString(); this.pass = this.password.Te

9、xt.ToString(); if (this.auto.Checked) opIni = new MyConfig(this.file); opIni.setLoginName(this.count); opIni.setLoginPassWord(this.pass); opIni.setAutoLogin(1); else opIni = new MyConfig(this.file); opIni.setLoginName(); opIni.setLoginPassWord(); opIni.setAutoLogin(0); UserManager um = new UserManag

10、er(this.count); if (um.checkPass(this.pass) MessageBox.Show(登?录?成功|); else MessageBox.Show(登?录?失骸?败悒?); private void Form1_Load(object sender, EventArgs e) opIni = new MyConfig(this.file); this.count = opIni.getLoginName(); this.pass = opIni.getLoginPassword(); this.autoLogin = opIni.getAutoLogin();

11、 /this.autoLogin=opIni.get if (this.autoLogin = 1) this.auto.Checked = true; this.counter.Text = this.count; this.password.Text = this.pass; UserManager um = new UserManager(this.count); if (um.checkPass(this.pass) MessageBox.Show(登?录?成功|); else MessageBox.Show(登?录?失骸?败悒?); else if (this.autoLogin =

12、 0) this.auto.Checked = false; BLL部分代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using MyFirstSolution.Model;namespace MyFirstSolution.BLL public class UserManager User use; String name; public UserManager(String name) this.name = name; public Boolean checkPass

13、(String pass) use=new User(name); if (pass = use.getPass() return true; else return false; Modelde 的代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using MyFirstSolution.DAL;namespace MyFirstSolution.Model public class User MyDbHelper md; String count; public User

14、(string count) this.count = count; public String getPass() md = new MyDbHelper(); return md.getPassword(count); DAL的代码using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SQLite;using System.Data;using MyFirstSolution.Common;namespace MyFirstSolution.DA

15、L public class MyDbHelper public SQLiteConnection GetCon() string strFilePath = Data Source=C:UsersCODERDesktopTestSolutionbinDatabaseMyFirstDB.s3db; SQLiteConnection sqliteCon = new SQLiteConnection(strFilePath); return sqliteCon; public String getPassword(String name) String pass; SQLiteConnection

16、 con = GetCon(); con.Open(); String sqlstr = select Password from userInfo where Account= + name + ; SQLiteCommand cmd = con.CreateCommand(); cmd.CommandText = sqlstr; SQLiteDataReader reader = cmd.ExecuteReader(); reader.Read(); pass = reader0.ToString(); return pass; Common的代码1.base64编码using Syste

17、m;using System.Collections.Generic;using System.Linq;using System.Text;namespace MyFirstSolution.Common public class CodeProcess public string EncodeBase64(string code) byte bytes = Encoding.Default.GetBytes(code); string str = Convert.ToBase64String(bytes); return str; public string DecodeBase64(st

18、ring code) byte outputb = Convert.FromBase64String(code); string orgStr = Encoding.Default.GetString(outputb); return orgStr; 2.读取ini文件using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Runtime.InteropServices;namespace MyFirstSolution.Common class IniClas

19、s private string fileName; DllImport(kernel32) private static extern int GetPrivateProfileInt( string lpAppName, string lpKeyName, int nDefault, string lpFileName ); DllImport(kernel32) private static extern int GetPrivateProfileString( string lpAppName, string lpKeyName, string lpDefault, StringBui

20、lder lpReturnedString, int nSize, string lpFileName ); DllImport(kernel32) private static extern bool WritePrivateProfileString( string lpAppName,string lpKeyName,string lpString, string lpFileName ); public void IniFile(string filename) fileName = filename; public int GetInt(string section, string

21、key, int def) return GetPrivateProfileInt(section, key, def, fileName); public string GetString(string section, string key, string def) StringBuilder temp = new StringBuilder(1024); GetPrivateProfileString(section, key, def, temp, 1024, fileName); return temp.ToString(); public void WriteInt(string

22、section, string key, int iVal) WritePrivateProfileString(section, key, iVal.ToString(), fileName); public void WriteString(string section, string key, string strVal) WritePrivateProfileString(section, key, strVal, fileName); public void DelKey(string section, string key) WritePrivateProfileString(se

23、ction, key, null, fileName); public void DelSection(string section) WritePrivateProfileString(section, null, null, fileName); 3.操作INI文件using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace MyFirstSolution.Common public class MyConfig String filename ; String log

24、inName; String loginPassword; int autologin; String ConnectString; CodeProcess cp = new CodeProcess(); public MyConfig(String filename) this.filename = filename; public string getLoginName() IniClass ini = new IniClass(); ini.IniFile(filename); this.loginName = ini.GetString(Login, LoginName, 没?找到?)

25、; return loginName; public string getLoginPassword() IniClass ini = new IniClass(); ini.IniFile(filename); this.loginPassword = ini.GetString(Login, LoginPassword, 没?找到?); return cp.DecodeBase64(loginPassword); /return loginPassword; public int getAutoLogin() IniClass ini = new IniClass(); ini.IniFi

26、le(filename); this.autologin = ini.GetInt(Login, AutoLogin, 1); return autologin; public string getConnectString() IniClass ini = new IniClass(); ini.IniFile(filename); this.ConnectString = ini.GetString(Database, ConnectString, ); return ConnectString; public void setLoginName(String name) IniClass

27、 ini = new IniClass(); ini.IniFile(filename); ini.WriteString(Login, LoginName, name); public void setLoginPassWord(String pass) IniClass ini = new IniClass(); ini.IniFile(filename); String enPass = cp.EncodeBase64(pass); ini.WriteString(Login, LoginPassword, enPass); public void setAutoLogin(int autologin) IniClass ini = new IniClass(); ini.IniFile(filename); ini.WriteInt(Login, AutoLogin, autologin);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1