版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象程序设计实训报告项目组:专业:学院:指导教师:实训时间:“影”“璐”“耀”项目组电子商务软件职业技术学院项目组:专业:学院:指导教师:实训时间:“影”“璐”“耀”项目组电子商务软件职业技术学院王春影 曹晓燕2014年6月16日-2014年7月4日软件职业技术学院CCUTSOFT用户档案管理系统第一部分团队构成及分工第二部分系统开发进度计划第三部分项目需求分析第四部分项目概要设计第五部分项目详细设计第六部分项目实现第七部分项目测试第八部分代码清单第九部分参考文献第十部分实训总结TOC\o"1-5"\h\z团队构成及分工 1系统开发进度计划 2项目需求分析 33.1导言 3目的 33.1.2定义及缩写 33.2系统定义 43.2.1项目来源及背景 43.2.2用户特点 43.2.3项目目标 43.2.4应用环境 43.3功能需求 5\o"CurrentDocument"3.3.1功能描述 5\o"CurrentDocument"3.3.2用例图 5\o"CurrentDocument"3.3.3用例描述 53.4数据描述 63.5性能需求 63.5.1界面需求 63.5.2响应时间需求 63.5.3可靠性需求 73.5.4开发性需求 73.5.5可扩展性需求 73.5.6系统安全性需求 74.1导言 8目的 8定义及缩写 84.2功能设计 84.2.1功能模块设计 84.2.2用户模块详述 94.3数据设计 94.3.1数据逻辑结构设计 105.项目详细设计 105.1 导言 105.1.1目的 105.1.2定义及缩写 105.2界面设计 105.2.1学生档案信息管理登录界面设计 105.2.2用户注册界面设计 155.2.3档案操作界面设计 235.2.4档案界面设计 425.3功能详细设计 425.3.1用户档案系统功能活动图 42用户档案系统功能活动图 错误!未定义书签。TOC\o"1-5"\h\z项目实现 436.1导言 43目的 436.1.2缩写及定义 446.2编码格式规范 446.2.1缩进规则 446.2.2断行规则 446.3命名规范 44类/接口 44控件 44方法 446.4功能实现 446.4.1用户名查询窗体功能实现 446.4.2学生信息查询窗体功能实现 45测试 467.1登录功能测试 467.2注册功能测试 48\o"CurrentDocument"7.2学生信息查询功能测试 49查询失败 错误!未定义书签。8.代码清单 50\o"CurrentDocument"8.1.2档案修改功能 59团队构成及分工项目组:职能成员项目角色任务分工成绩组长力慧影项目经理设计和编码组员王嘉璐需求分析、数据库设计人员需求分析、数据库设计路明耀界面设计、测试人员界面设计、软件调试及测试指导教师签字:年月曰
系统开发进度计划序号任务名称开始时间完成时间持续时间1确定题目6.166.161天2寻找资料6.166.161天3需求分析6.166.161天4概要设计6.176.215天5详细设计6.226.231天6实现6.246.263天7测试6.277.281天8文档编写7.297.46天项目需求分析3.1导言在我国,各大中小学校的各类信息管理系统并非一个新的课题,但也有的学校根本就没有信息任何管理系统,所有的工作几乎还是手工操作来完成。计算机技术在日新月异的发展,但是有的很多学校,特别是在西部贫困地区,学校的种类管理都依然由于工操作来完成,这十分落后,效率极低,成本很大,而且极异出错。随着社会的发展,信息化是社会进程的必然趋势,学校管理只有快,准,精才能发挥其价值。所以机器代替人力是必然的历史发展趋势,只有领导的重视和支持才能从人工操作改为计算机的自动化系统。人工操作必将被计算机代替。有些学校虽使用了计算机,甚至管理系统,但是仍然存在很多问题,问题一日不解决,效率就一日提不上去。还有,有的系统很不完善到处是漏洞,可以说是千疮百孔,这样极不完善的系统对管理来说是没有任何保障的。3.1.1目的本次实训是电子商务专业培养计划中的重要的实践教学环节。旨在通过完成一个项目的开发,进一步巩固前续课程所学的知识。加深学生对C#语言的理解,尤其是对面向对象思想、C#编程思想、C#编程规范、数据库操作的理解,使学生进一步掌握环境构建、代码编写、文档阅读与理解、文档编写、软件测试、发行与部署等技能,进一步提高学生的学习能力、理解能力、表达能力、沟通能力及分工协作能力。本文档是关于用户对于学生成绩管理系统的功能和性能的要求,重点描述了用户档案管理系统的功能需求,是概要设计的重要输入。本文档的预期读者是:开发人员:万慧影王嘉璐路明耀项目管理人员:万慧影王嘉璐路明耀测试人员路明耀3.1.2定义及缩写列出本文件中用到的专门术语的定义和缩写词的原词组。ADO.NET:ActiveXDataObject.NETOOP:Object-OrientedProgramming,面向对象的程序设计OOSE:Object-orientedsoftwareengineering,面向对象的软件工程3.2系统定义3.2.1项目来源及背景项目来源:长春工业大学软件职业技术学校实训题目项目背景:用户档案管理系统对学校加强学生成绩管理有着极其重要的作用。由于各个大学都在持续扩招,学生的数量日益庞大,传统的手工档案管理不仅工作量大,而且容易出现问题,另外,学生的档案要用到学校教务管理的各个方面,所以一旦学生档案管理出现了错误,后果往往是非常严重的。就一所学生数量较大的学校来说,它的设计内容非常复杂而且繁多,,而且设计的模块也很多,比如信息统计模块、打印输出模块,模糊查询模块等等。由于本软件主要是为我系定制开发的,因此针对我系用户档案管理的实际工作而言,我们经过了反复地论证,最终确定了用户档案管理系统的设计方案。3.2.2用户特点管理员的需求具体体现在各种信息的录入、修改、删除和查询,这就要求数据库结构能充分满足各种信息的输出和输入。教师可以查询基本信息,录入学生考试成绩等等。而学生用户的功能主要体现在查询中,及查询个人信息,查询用户档案等等。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。更重要的是数据库设计经验在今后其他项目的开发过程中同样有着很重要的借鉴作用3.2.3项目目标本项目设计的目标如下:提供良好的用户界面,使操作人员的工作量减少系统具有良好的运行效率,能够达到提高生成率的目的系统具有良好的可扩展性,可以容易地加入其它系统的应用;平台的设计具有一定的超前性、灵活性,能够适应企业生产配置的变化锻炼队伍,提高团队的开发能力和项目管理能力3.2.4应用环境1、机器配置处理器:IntelP32.0GHz或以上内存:2G或以上硬盘:20G或以上操作系统:WindowsXP或以上中间件:.NETFramework2.0,visualstudio2008,SQLServer2005或以上网络环境带宽:4M或以上2、服务器端配置处理器:IntelP32.0GHz或以上内存:2G或以上硬盘:20G或以上操作系统:WindowsXP或以上中间件:.NETFramework2.0,visualstudio2008,SQLServer2005或以上网络环境带宽:8M或以上3.3功能需求3.3.1功能描述本说明主要是为了对用户管理管理系统进行使用和维护。该系统充分利用计算机的现有的功能来实现对系统管理、信息录入、信息查询,等的自动化控制,将会使学生成绩管理工作大大减轻,方便友好的信息管理用户界面,简便的操作,完善的数据库管理,将会使得信息管理系统极大限度地应用于现代化用户档案管理,成为管理人员的得力助手。3.3.2用例图修改档案图3-1管理员和普通用户档案管理系统用例图3.3.3用例描述、登录窗体、登录窗体前置条件:数据库已经连接活动的基本过程:用户在登录窗体中输入用户名、密码,选择权限用户点击“登录”按钮系统查询数据库中的用户表,判断此帐号是否存在,账号和密码是否吻合名称:查询学生信息参与执行者:管理员、学生、学生信息查询窗体3前置戮据描述库已经连接1活动户名本萨管理员或学生进入学生信息查询窗体1用白夕仁白裳3-1用户名信息管称员或学生输入要查询的学生的学号,点击“查询”按钮系统查询数据库,将查询结果显示在下方的表格中。后置条件:无名称用户名描述是用户使用本系统的用户名信息定义是汉字、字母或它们的组合,长度为6~16位位置登录窗体、注册窗体、用户信息管理窗体密码信息表3-2密码信息名称密码描述是用户登录本系统的密码信息定义是汉字、字母或它们的组合,且不能为空位置登录窗体、注册窗体、用户信息管理窗体3.5性能需求3.5.1界面需求系统的界面要求如下:页面内容:主题突出、操作方便、术语和行文格式统一、规范、明确。菜单设置和布局合理,传递的信息准确。菜单结构摆放合理,方便用户使用。技术环境:页面大小适中,控制字体和版面布局3.5.2响应时间需求当用户登录,进行任何操作的时候,系统应该及时地进行反应,反应的时间在5秒以内。系统应该及时地进行反应,反应的时间在5秒以内。系统应能检测出各种非正常情况,如与设备的通信中断,无法连接数据库服务器等,以避免出现长时间等待甚至无响应。3.5.3可靠性需求1、 数据精确度所有的结果应该满足的最低精确度。2、 时间特性如响应时间、更新处理时间、数据转换与传输时间、运行时问将符合用户的要求等(这里不包括由于硬件原因所造成的时间特性下降)。3、 适应性本系统在设计时,充分考虑用户的操作方式、系统的运行环境,一旦这些条件发生变化时,本系统具有的适应能力,如其它软件接口的变化、用户需求的变化等。3.5.4开发性需求1、 完善的校园网络长春工业大学的校园网络经过多年建设,己经具备相当规模。校园网节点光纤连接到了所有的办公楼、实验楼、学生宿舍楼及教职工住宅楼,为教师和学生上网、使用本系统提供了良好的网络硬件支持。2、 功能强大的开发平台目前的管理信息系统开发平台的功能已十分强大。MicrosoftSQL2005是性能稳定的数据库,而MicrosoftVisualStudio2008更是具有Web开发的强大优势。SQLServer正是开发基于WinForm的信息系统的黄金组合。由上述两方面的分析可以看出,本系统的开发时机已经成熟,从多种角度考虑开发此系统都是可行的,并且也是十分必要的。3.5.5可扩展性需求当需求发生变化时系统应具有一定的适应能力,要求系统能够为将来的变更提供以下支持:能够在系统变更用户界面和数据库设计,甚至在更换新的DBMS后,系统的现有设计和编码能够最大程度的重用,以保护现阶段的投资和保证软件系统能够在较少后续投入的情况下适应系统的扩展和更新。在设计中最好列出针对变更所需要重新设计的模块部分3.5.6系统安全性需求系统有严格的权限管理功能,各功能模块需要相应的权限方能进入。系统需能够防止各类误操作可能造成的数据丢失,破坏。防止不法用户盗取重要信息。项目概要设计4.1导言4.1.1目的该文档的目的是描述学生成绩管理系统的概要设计,其主要内容包括:系统功能设计系统界面设计数据设计本文档预期读者:开发人员:万慧影项目管理人员;王嘉璐测试人员:路明耀4.1.2定义及缩写列出本文件中用到的专门术语的定义和缩写词的原词组。ADO.NET:ActiveXDataObject.NETOOP:Object-OrientedProgramming,面向对象的程序设计OOSE:Object-orientedsoftwareengineering,面向对象的软件工程4.2功能设计4.2.1功能模块设计用户模块添加用户删除用户查看用户权限修改用户权限删除管理权限查看管理权限添加管理权限4.2.2用户模块详述添加用户删除用户查看用户权限修改用户权限删除管理权限查看管理权限添加管理权限4.2.2用户模块详述生年学教务处—年级主任每学年学:.■-"-i教务处年级王任生名单a.添加用户:管理员可以对用户进行添加操作。阵级主任除用户:管理员可以对已有用户进行删除操作。查看用户权限:每个用户都具有一定的权限,管理员可以看用户的管学生名单理权限。修改管理权限:管理员可以修改用户的管理权限。学膈添加管理权怖管理员在权限管理中可以添加管理权限。
f.删除管理权限:管理员在权限管理中可以删除管理权限。项目详细设计5.1导言5.1.1目的该文档描述的学生成绩管理系统的详细设计,其主要内容包括:系统中各子模块功能的详细设计本文档预期读者:开发人员:万慧影项目管理人员:王嘉璐测试人员;路明耀5.1.2定义及缩写5.2界面设计5.2.1学生档案信息管理登录界面设计系统登录界面是本系统的首页,也是使用者进入系统的入口。本页设计主要由系统LOGO和用来输入账号及密码的两个文本框、用来选择权限的三个单选按钮组成,简洁大方。图5-1系统登录界面代码:privatevoidcomparePass_TextChanged(objectsender,EventArgse)(if(comparePass.Text.Equals(password.Text))(mima—true;label6.Visible—false;}else(一一•…—〃—[一〃一mima—false;label6.Text-〃两次输入密码不一致〃;label6.Visible—true;parePass.Focus();}}privatevoidsave_Click(objectsender,EventArgse)(if(isEmpty()==false)return;Useruser=newUser();user.Username=username.Text;user.Password=Jiami.EncoedeMethod(password.Text);user.Name=name.Text;user.Power=userType.Text;codeDal.insertUser(user);MessageBox.Show("操作成功〃,〃提示〃);this.Close();}privateboolisEmpty()(if(〃〃.Equals(username.Text))(MessageBox.Show(〃用户名不能为空〃,〃提示〃);returnfalse;}if(〃〃.Equals(name.Text))MessageBox.Show(〃姓名不能为空〃,〃提示〃);returnfalse;}if(〃〃.Equals(password.Text))(MessageBox.Show("密码不能为空〃,〃提示〃);returnfalse;}if(〃〃.Equals(comparePass.Text))(MessageBox.Show("确认密码不能为空",〃提示〃);returnfalse;}if("".Equals(userType.Text))(MessageBox.Show("用户类型不能为空","提示");returnfalse;}if(dui.Equals("false"))(MessageBox.Show("用户名已存在","提示");returnfalse;if(mima.Equals(〃false〃))(MessageBox.Show(〃两次输入密码不一致",〃提示〃);returnfalse;}returntrue;}privatevoidusername_TextChanged(objectsender,EventArgse)(if(!"".Equals(username.Text))(DataTabledt=codeDal.SearchUserName(username.Text);if(dt.Rows.Count>0)(dui="false";label6.Text="用户名已存在";label6.Visible=true;this.username.Focus();}else(label6.Visible=false;dui="true";}privatevoidpassword_TextChanged(objectsender,EventArgse)(if(comparePass.Text.Equals(password.Text))(mima—true;label6.Visible—false;}else(一一•…—〃—[一〃一mima—false;label6.Text-〃两次输入密码不一致〃;label6.Visible—true;}}}}5.2.2用户注册界面设计用户注册界面主要用来提用户者注册的功能。界面提供了用来输入用户名、姓名、密码、确定密码、用户类型的5个文本框,用来进行用户类型选择的2个单选按钮,并设置了注册和重置按钮。基本色调和主窗体色调一致,风格统一。代码:privatevoidcancle_Click(objectsender,EventArgse)(this.Close();}privatevoidcomparePass_TextChanged(objectsender,EventArgse)(if(comparePass.Text.Equals(password.Text))(mima—true;label6.Visible—false;}else(一一•…—〃—[一〃一mima—false;label6.Text-〃两次输入密码不一致〃;label6.Visible=true;parePass.Focus();}}privatevoidsave_Click(objectsender,EventArgse)(if(isEmpty()==false)return;Useruser=newUser();user.Username=username.Text;user.Password=Jiami.EncoedeMethod(password.Text);user.Name=name.Text;user.Power=userType.Text;codeDal.insertUser(user);MessageBox.Show("操作成功〃,〃提示〃);this.Close();}privateboolisEmpty()(if(〃〃.Equals(username.Text))(MessageBox.Show(〃用户名不能为空〃,〃提示〃);returnfalse;if(〃〃.Equals(name.Text))(MessageBox.Show(〃姓名不能为空〃,〃提示〃);returnfalse;}if(〃〃.Equals(password.Text))(MessageBox.Show("密码不能为空〃,〃提示〃);returnfalse;}if(〃〃.Equals(comparePass.Text))(MessageBox.Show("确认密码不能为空",〃提示〃);returnfalse;}if("".Equals(userType.Text))(MessageBox.Show("用户类型不能为空","提示");returnfalse;}if(dui.Equals("false"))(MessageBox.Show("用户名已存在","提示");returnfalse;}if(mima.Equals(〃false〃))(MessageBox.Show(〃两次输入密码不一致",〃提示〃);returnfalse;}returntrue;}privatevoidusername_TextChanged(objectsender,EventArgse)(if(!"".Equals(username.Text))(DataTabledt=codeDal.SearchUserName(username.Text);if(dt.Rows.Count>0)(dui="false";label6.Text="用户名已存在";label6.Visible=true;this.username.Focus();}else(label6.Visible=false;dui="true";}}}privatevoidpassword_TextChanged(objectsender,EventArgse)(if(comparePass.Text.Equals(password.Text))(mima—true;label6.Visible—false;}else(一一•…—〃—[一〃一mima—false;label6.Text-〃两次输入密码不一致〃;label6.Visible—true;}5.2.3用户修改界面用户修改界面主要用来提供用户者修改功能。界面提供了用户名,姓名,用户类型3个文本框,窗体简单大方。图5-3用户修改界面代码:publicpartialclassupdateUser:BasicForm(intuserID=0;CodeDalcodeDal=newCodeDal();publicupdateUser()(InitializeComponent();}privatevoidsave_Click(objectsender,EventArgse)(if(isEmpty()==false)return;Useruser=newUser();user.Name=name.Text;user.Power=userType.Text;user.Id=userID;codeDal.updateUser(user);MessageBox.Show(〃操作成功〃,〃提示〃);this.Close();}privateboolisEmpty()(if(〃〃.Equals(username.Text))(MessageBox.Show(〃用户名不能为空〃,〃提示〃);returnfalse;}if(〃〃.Equals(name.Text))(MessageBox.Show("姓名不能为空〃,〃提示〃);returnfalse;}if(〃〃.Equals(userType.Text))(MessageBox.Show("用户类型不能为空",〃提示");returnfalse;}returntrue;}publicvoidReceiveData(DataTabledt)userID=Convert.ToInt32(dt.Rows[0][〃id〃].ToString());username.Text=dt.Rows[0][〃username〃].ToString();name.Text=dt.Rows[0][〃name〃].ToString();userType.Text=dt.Rows[0][〃power〃].ToString();}privatevoidcancle_Click(objectsender,EventArgse)(this.Close();}privatevoidupdateUser_Load(objectsender,EventArgse)(5.2.3档案操作界面设计档案操作平台是用户登录成功后跳转到的界面。左侧设置了档案管理、用户管理信息。用户可根据需要进行相应选择。基本色调和主窗体色调一致,风格统一。图5-4档案操作界面InitializeComponent();}privatevoidtoolStripButton2_Click(objectsender,EventArgse)(ReceiveDatadata=newReceiveData();data.ShowDialog();}privatevoid数据维护ToolStripMenuItem_Click(objectsender,EventArgse)(ReceiveDatadata=newReceiveData();data.ShowDialog();}privatevoid退出系统ToolStripMenuItem_Click(objectsender,EventArgse)(Process[]ps=Process.GetProcessesByName(〃calc〃);if(ps!=null)(foreach(Processpinps)(p.Kill();}}Process[]ps1=Process.GetProcessesByName(〃hh〃);if(ps1!=null)(foreach(Processpinps1)(p.Kill();}}System.Environment.Exit(0);privatevoidtoolStripButton1_Click(objectsender,EventArgse)(UpdatePasswordpass=newUpdatePassword();pass.ReceiveName(name,Login.userID);pass.ShowDialog();}privatevoid密码修改ToolStripMenuItem_Click(objectsender,EventArgse)(UpdatePasswordpass=newUpdatePassword();pass.ReceiveName(name,Login.userID);pass.ShowDialog();}privatevoid录入档案ToolStripMenuItem1_Click(objectsender,EventArgse)(AddMessageadd=newAddMessage();add.ShowDialog();}privatevoidtoolStripButton3_Click(objectsender,EventArgse)(QueryMessagequery=newQueryMessage();query.ShowDialog();}privatevoid查询档案ToolStripMenuItem1_Click(objectsender,EventArgse)(QueryMessagequery=newQueryMessage();query.ShowDialog();}privatevoid修改档案ToolStripMenuItem1_Click(objectsender,EventArgse)(QueryMessagequery=newQueryMessage();query.ShowDialog();}privatevoid删除档案ToolStripMenuItem1_Click(objectsender,EventArgse)(QueryMessagequery=newQueryMessage();query.ShowDialog();privatevoidtoolStripButton5_Click(objectsender,EventArgse)(System.Diagnostics.Process.Start(Application.StartupPath+〃\\calc.exe〃);}privatevoidMain_FormClosing(objectsender,FormClosingEventArgse)(Process[]ps=Process.GetProcessesByName(〃calc〃);if(ps!=null)(foreach(Processpinps)(p.Kill();}}Process[]ps1=Process.GetProcessesByName(〃hh〃);if(ps1!=null)(foreach(Processpinps1)(}System.Environment.Exit(0);}privatevoid重新登录ToolStripMenuItem_Click(objectsender,EventArgse)(Process[]ps=Process.GetProcessesByName(〃calc〃);if(ps!=null)(foreach(Processpinps)(p.Kill();}}Process[]ps1=Process.GetProcessesByName(〃hh〃);if(ps1!=null)(foreach(Processpinps1)(p.Kill();}Loginlogin=newLogin();login.Show();this.Hide();}privatevoidtoolStripButton4_Click(objectsender,EventArgse)(Process[]ps=Process.GetProcessesByName(〃calc〃);if(ps!=null)(foreach(Processpinps)(p.Kill();}}Process[]ps1=Process.GetProcessesByName(〃hh〃);if(ps1!=null)(foreach(Processpinps1)(p.Kill();}System.Environment.Exit(0);}privatevoidtoolStripButton7_Click(objectsender,EventArgse)(DataTabledt=codeDal.SearchUserByID(Login.userID);if(dt.Rows.Count>0)(updateUserupdate=newupdateUser();update.ReceiveData(dt);update.ShowDialog();}else(MessageBox.Show(〃无该用户信息,请重新登录",〃提示〃);}}privatevoid添加用户ToolStripMenuItem_Click(objectsender,EventArgse)(AddUseruser=newAddUser();user.Text="添加用户界面";user.ShowDialog();}privatevoid修改用户ToolStripMenuItem_Click(objectsender,EventArgse)(QueryUserquery=newQueryUser();query.ShowDialog();}privatevoid删除用户ToolStripMenuItem_Click(objectsender,EventArgse)(QueryUserquery=newQueryUser();query.ShowDialog();}privatevoid查询用户ToolStripMenuItem_Click(objectsender,EventArgse)(QueryUserquery=newQueryUser();query.ShowDialog();}privatevoid计算器ToolStripMenuItem2_Click(objectsender,EventArgse)System.Diagnostics.Process.Start(Application.StartupPath+〃\\calc.exe〃);}privatevoid更改背景ToolStripMenuItem2_Click(objectsender,EventArgse)(try(openFileDialog1.InitialDirectory=矿c:\〃;openFileDialog1.RestoreDirectory=true;openFileDialog1.Multiselect=false;openFileDialog1.Filter=〃图片文件(*.jpg;*.jpeg;*.bmp;*.png)|*.jpg;*.jpeg;*.bmp;*.png〃;openFileDialog1.ShowDialog();//将文件转化为二进制数据StreammyStream=File.Open(openFileDialog1.FileName,FileMode.Open,FileAccess.Read);intlength=(int)myStream.Length;byte[]filedata=newbyte[length];myStream.Read(filedata,0,length);myStream.Close();imageContent=filedata;//将二进制转化为图片Streamreader=newMemoryStream(filedata);pictureBoxl.Image=(Image)newBitmap(reader);updateBeijing(filedata);}catch(return;}}publicvoidReceiveStatus(stringvalue,stringusername)(toolStripStatusLabel2.Text=value;name=username;}privatevoidMain_Load(objectsender,EventArgse)(if(Login.power.Equals(〃普通用户"))(录入档案ToolStripMenuItem1.Visible=false;修改档案ToolStripMenuItem1.Visible=false;删除档案ToolStripMenuIteml.Visible=false;添加用户ToolStripMenuItem.Visible=false;修改用户ToolStripMenuItem.Visible=false;删除用户ToolStripMenuItem.Visible=false;数据维护ToolStripMenuItem.Visible=false;toolStripButton2.Visible=false;}DataTabledt=codeDal.searchImage();if(dt.Rows.Count>0)(for(inti=0;i<dt.Rows.Count;i++)(imageContent=(byte[])dt.Rows[i]["image"];Streamreader=newMemoryStream((byte[])dt.Rows[i][〃image〃]);pictureBoxl.Image=(Image)newBitmap(reader);}}}privatevoid使用默认背景ToolStripMenuItem_Click(objectsender,EventArgse)(try//将文件转化为二进制数据stringfilePath=Application.StartupPath+〃\\moren.jpg〃;StreammyStream=File.Open(filePath,FileMode.Open,FileAccess.Read);intlength=(int)myStream.Length;byte[]filedata=newbyte[length];myStream.Read(filedata,0,length);myStream.Close();imageContent=filedata;//将二进制转化为图片Streamreader=newMemoryStream(filedata);pictureBoxl.Image=(Image)newBitmap(reader);updateBeijing(filedata);}catch(return;}}publicvoidupdateBeijing(byte[]image)DataTabledt=codeDal.searchImage();if(dt.Rows.Count>0)(for(inti=0;i<dt.Rows.Count;i++)(codeDal.updateBeijing(image,Convert.ToInt32(dt.Rows[i][〃id〃].ToString()));}}else(codeDal.insertBeijing(image);}}privatevoid记事本ToolStripMenuItem2_Click(objectsender,EventArgse)(newJishiMain().ShowDialog();}privatevoid关于ToolStripMenuItem_Click(objectsender,EventArgse)(newGuanyu().ShowDialog();privatevoid帮助ToolStripMenuItem1_Click(objectsender,EventArgse)(System.Diagnostics.Process.Start(Application.StartupPath+〃\\Help.CHM〃);}privatevoidtoolStripButton6_Click(objectsender,EventArgse)(System.Diagnostics.Process.Start(Application.StartupPath+〃\\Help.CHM〃);}privatevoid按系别ToolStripMenuItem_Click(objectsender,EventArgse)(Baobiaobaobiao=newBaobiao();baobiao.ReceiveData(〃xi〃);baobiao.ShowDialog();}privatevoid按专业ToolStripMenuItem_Click(objectsender,EventArgse)(Baobiaobaobiao=newBaobiao();baobiao.ReceiveData(〃zhuanye〃);baobiao.ShowDialog();}privatevoid按班级ToolStripMenuItem_Click(objectsender,EventArgse)(Baobiaobaobiao=newBaobiao();baobiao.ReceiveData(〃banji〃);baobiao.ShowDialog();}privatevoid按个人ToolStripMenuItem_Click(objectsender,EventArgse)(QueryMessagequery=newQueryMessage();query.ShowDialog();}privatevoid所有系别信息ToolStripMenuItem_Click(objectsender,EventArgse)(dt=null;unit.report=newGridppReport();stringapppath=Directory.GetCurrentDirectory()+"\\report\'系别信息.grf〃;unit.rptname=〃系别信息〃;unit.rptfile=apppath;unit.canConfigCols=false;unit.undisplaycols=〃〃;unit.LoadReportFile();unit.report.FetchRecord+=new_IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecord);unit.report.PrintPreview(true);}voidReportFetchRecord(refboolEof)(dt=DBConn.ExecSqlReturnDataTable(〃select*fromreport_Xi〃);if(dt!=null&&dt.Rows.Count>0)(Utility.FillRecordToReport(unit.report,dt);}}privatevoid所有专业信息ToolStripMenuItem_Click(objectsender,EventArgse)(dt=null;unit.report=newGridppReport();stringapppath=Directory.GetCurrentDirectory()+"\\report\'专业信息.grf〃;unit.rptname=〃专业信息〃;unit.rptfile=apppath;unit.canConfigCols=false;unit.undisplaycols=〃〃;unit.LoadReportFile();unit.report.FetchRecord+=new_IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordZhuanye);unit.report.PrintPreview(true);}voidReportFetchRecordZhuanye(refboolEof)(dt=DBConn.ExecSqlReturnDataTable(〃select*fromreport_Zhuanye〃);if(dt!=null&&dt.Rows.Count>0)(Utility.FillRecordToReport(unit.report,dt);5.2.4档案界面设计5.3功能详细设计5.3.1用户档案系统功能活动图普通用户可以处理两种情况,登入和注册。当用户登入时,用户看是否注册;如果没有注册则不能登入。用户进行注册并登入,可以进行档案信息和学生信息两大功能选择。项目实现6.1导言6.1.1目的本文档编写的目的是描述用户档案管理系统编码规范和各个模块的实现,主要说明:编码规范命名规范本文档预期读者开发人员:万慧影项目管理人员:王嘉璐质量保证人员:路明耀6.1.2缩写及定义列出本文件中用到的专门术语的定义和缩写词的原词组。ADO.NET:ActiveXDataObject.NETOOP:Object-OrientedProgramming,面向对象的程序设计OOSE:Object-orientedsoftwareengineering,面向对象的软件工程6.2编码格式规范6.2.1缩进规则4个空格作为缩进的一个单位6.2.2断行规则回车为一断行6.3命名规范6.3.1类/接口档案6.3.2控件Button(ok)button(on)checkbox(选择)Label(文字)PictureBox(图片)6.3.3方法筛选6.4功能实现6.4.1用户名查询窗体功能实现此窗体有查询用户功能。输入用户名,姓名,用户类型进行查询。
6.4.2学生信息查询窗体功能实现此窗体为查询学生信息窗体。窗体能够查询系别,专业,班级,入学年分,学号,姓名等功能。
7.测试7.1.1登录功能测试1.正常登录测试编号T1.1测试项目登录窗体测试子项目登录测试目的正常登录预置条件1安装和部署业务输入数据1管理员“路明耀”,密码“123456”
测试步骤1进入登录窗体2录入用户名“路明耀”,密码“123456”3点击登录预期结果1用户能成功登录业务窗体实际结果1用户能成功登录业务窗体结论功能正确2.用户不存在测试编号T1.2测试项目登录窗体测试子项目登录测试目的用户不存在预置条件1安装和部署业务输入数据2管理员“lumingyao”密码“123456”测试步骤1进入登录窗体2录入“super1”,密码“123456”3点击登录预期结果1弹出对话框,提示信息“用户名不存在,请重新输入”实际结果1弹出对话框,提示信息“用户名不存在,请重新输入”结论功能正确用户名为空测试编号T1.3测试项目登录窗体测试子项目登录测试目的用户为空预置条件1安装和部署业务输入数据2管理员“口”,密码“123456”测试步骤1进入业务登录页面2录入管理员“口”,密码“123456”3点击登录预期结果1弹出对话框,提示信息“用户名不能为空”实际结果1弹出对话框,提示信息“用户名不存在,请重新输入”结论存在问题,可能是由于没有验证用户名是否为空的判断代码
7.1.2注册功能测试1.注册成功测试编号T2.1测试项目注册窗体测试子项目注册成功测试目的成功注册预置条件1安装和部署业务输入数据1新用户名“lumingyao”,性别“男””,学号“20134175”,学院“软职”,专业“电商”,年级“一年级”测试步骤1进入注册窗体2新用户名“lumingyao”,性别“男”,学号“20134175”,学院“软职”,专业“电商”,年级“一年级”3点击注册预期结果1显示文本框“注册成功”实际结果1显示文本框“注册成功”结论功能正确2.注册失败测试编号T2.2测试项目注册窗体测试子项目注册失败测试目的未成功注册预置条件1安装和部署业务输入数据1新用户名“苏宏鑫”,性别“男”,学号“21107”,学院“软职”,专业“电商”,年级“一年级”测试步骤1进入注册窗体2新用户名“苏宏鑫”,性别“男”学号“21107”,学院“软职”专业“电商”,年级“一年级”3点击注册预期结果1显示文本框“该学生已经注册”实际结果1显示文本框“该学生已经注册”
结论功能正确7.1.3学生信息查询功能测试查询成功测试编号T23测试项目查询窗体测试子项目查询成功测试目的成功查询预置条件系别和姓名输入数据1新用户名“路明耀,性别“男”,学号“20134175”,测试步骤1进入查询窗体2用户名“路明耀”,性别“男”,学号“20134175”,专业“电商”,年级“一年级”3点击查询预期结果1显示文本框“该学生信息”实际结果1显示文本框“该学生信息”结论功能正确测试编号T24测试项目查询窗体测试子项目查询失败测试目的失败查询预置条件系别和姓名输入数据1新用户名“路明耀,性别“男”,学号“20134175”,测试步骤1进入查询窗体2用户名“路明耀”,性别“男”,学号“20134175”,专业“电商”,年级“一年级”3点击查询预期结果1显示文本框“该学生信息为空”实际结果1显示文本框“该学生信息为空”结论功能正确7.2.1代码清单openFileDialogl.InitialDirectory=@"c:\";openFileDialogl.RestoreDirectory=true;openFileDialogl.Multiselect=false;openFileDialogl.Filter=〃图片文件(*.jpg;*.jpeg;*.bmp;*.png)|*.jpg;*.jpeg;*.bmp;*.png〃;openFileDialog1.ShowDialog();StreammyStream=File.Open(openFileDialog1.FileName,FileMode.Open,FileAccess.Read);intlength=(int)myStream.Length;byte[]filedata=newbyte[length];myStream.Read(filedata,0,length);myStream.Close();imageContent=filedata;Streamreader=newMemoryStream(imageContent);pictureBox1.Image=(Image)newBitmap(reader);}catch(return;}}privatevoidxibie_SelectedIndexChanged(objectsender,EventArgse)(CbXid.SelectedIndex=xibie.SelectedIndex;zhuanye.Items.Clear();CbZid.Items.Clear();banji.Items.Clear();CbBid.Items.Clear();if(!〃〃.Equals(CbXid.Text))(DataTabledt=codeDal.searchZhuanyeByXID(Convert.ToInt32(CbXid.Text));if(dt.Rows.Count>0)(for(inti=0;i<dt.Rows.Count;i++)(CbZid.Items.Add(dt.Rows[i][〃id〃].ToString());zhuanye.Items.Add(dt.Rows[i][〃name〃].ToString());}}}privatevoidzhuanye_SelectedIndexChanged(objectsender,EventArgse)(CbZid.SelectedIndex=zhuanye.SelectedIndex;banji.Items.Clear();CbBid.Items.Clear();if(!〃〃.Equals(CbZid.Text))(DataTabledt=codeDal.searchBanjiByZID(Convert.ToInt32(CbZid.Text));if(dt.Rows.Count>0)(for(inti=0;i<dt.Rows.Count;i++)(CbBid.Items.Add(dt.Rows[i][〃id〃].ToString());banji.Items.Add(dt.Rows[i][〃name〃].ToString());privatevoidbaocun_Click(objectsender,EventArgse)(if(isEmpty()==false)return;Studentstu=newStudent();intid=Convert.ToInt32(CbBid.Text);stu.Xuehao=xuehao.Text;stu.Xingming=xingming.Text;stu.Xingbie=xingbie.Text;stu.Chushengnian=nian.Text;stu.Chushengyue=yue.Text;stu.Chushengri=ri.Text;stu.Zhengzhimianmao=zhengzhimianmao.Text;stu.Ruxuenian=rnian.Text;stu.Ruxueyue=ryue.Text;stu.Ruxueri=rri.Text;stu.Minzu=minzu.Text;stu.Chengji=chengji.Text;stu.Youbian=youbian.Text;stu.Zhunkaozheng=textBox6.Text;stu.Shenfen=shenfen.Text;stu.Jiguan=jikuan.Text;stu.Zhuzhi=zhuzhi.Text;stu.Yinghangzhanghao=yinhangzhanghao.Text;stu.Yinhangleixing=yinhang.Text;stu.Beizhu=beizhu.Text;stu.Zhaopian=imageContent;stu.Shenfen=shenfen.Text;DataTabledt=codeDal.searchStudentByXuehao(xuehao.Text);if(dt.Rows.Count>0)("提示MessageBox.Show("学号已存在,请修改学号信息","提示“)this.xuehao.Focus();return;}codeDal.insertStudent(stu,id);MessageBox.Show("操作成功","提示");this.Close();}privateboolisEmpty()(if("".Equals(xibie.Text))(MessageBox.Show("请选择系信息","提示");returnfalse;}if("".Equals(zhuanye.Text))(MessageBox.Show("请选择专业信息","提示");returnfalse;}if(〃〃.Equals(banji.Text))(MessageBox.Show("请选择班级信息〃,〃提示");returnfalse;}if(〃〃.Equals(xuehao.Text))(MessageBox.Show("请填写学号〃,〃提示〃);returnfalse;}if(〃〃.Equals(xingming.Text))(MessageBox.Show("请填写姓名〃,〃提示〃);returnfalse;}if(〃〃.Equals(xingbie.Text))(MessageBox.Show("请填写性别〃,〃提示〃);returnfalse;}if(〃〃.Equals(rnian.Text))(MessageBox.Show(〃请填写入学时间〃,〃提示〃);returnfalse;}if(〃〃.Equals(ryue.Text))(MessageBox.Show("请填写入学时间〃,〃提示〃);returnfalse;}if(〃〃.Equals(rri.Text))(MessageBox.Show("请填写入学时间〃,〃提示〃);returnfalse;}if(〃〃.Equals(minzu.Text))(MessageBox.Show("请填写民族〃,〃提示〃);returnfalse;}if(〃〃.Equals(chengji.Text))(MessageBox.Show("请填写高考成绩〃,〃提示");returnfalse;if(〃〃.Equals(textBox6.Text))(MessageBox.Show(〃请填写准考证号〃,〃提示〃);returnfalse;}if(〃〃.Equals(shenfen.Text))(MessageBox.Show("请填写身份证号〃,〃提示");returnfalse;}returntrue;}privatevoidchengji_KeyPress(objectsender,KeyPressEventArgse)(e.Handled=true;if((e.KeyChar>='0'&&e.KeyChar<='9'))e.Handled=false;}privatevoidyoubian_KeyPress(objectsender,KeyPressEventArgse)(e.Handled=true;if((e.KeyChar>='0'&&e.KeyChar<='9'))e.Handled=false;}privatevoidtextBox6_KeyPress(objectsender,KeyPressEventArgse)(e.Handled=true;if((e.KeyChar>='0'&&e.KeyChar<='9'))e.Handled=false;}privatevoidshenfen_KeyPress(objectsender,KeyPressEventArgse)(e.Handled=true;if((e.KeyChar>='0'&&e.KeyChar<='9')||e.KeyChar=='x'||e.KeyChar=='X')e.Handled=false;}privatevoidbanji_SelectedIndexChanged(objectsender,EventArgse)(CbBid.SelectedIndex=banji.SelectedIndex;privatevoidguanbi_Click(objectsender,EventArgse)(this.Close();7.2.2档案修改功能privatevoidchengji_KeyPress(objectsender,KeyPressEventArgse)(e.Handled=true;if((e.KeyChar>='0'&&e.KeyChar<='9'))e.Handled=false;}privatevoidyoubian_KeyPress(objectsender,KeyPressEventArgse)(e.Handled=true;if((e.KeyChar>='0'&&e.KeyChar<='9'))e.Handled=false;}privatevoidzhunkaozheng_KeyPress(objectsender,KeyPressEventArgse)(e.Handled=true;if((e.KeyChar>='0'&&e.KeyChar<='9'))e.Handled=false;}privatevoidshenfen_KeyPress(objectsender,KeyPressEventArgse)(e.Handled=true;if((e.KeyChar>='0'&&e.KeyChar<='9')||e.KeyChar=='x'||e.KeyChar=='X')e.Handled=false;}privatevoidUpdateMessage_Load(objectsender,EventArgse)(}privatevoidzhaopian_Click(objectsender,EventArgse)(try(openFileDialog1.InitialDirectory=@〃c:\〃;openFileDialog1.RestoreDirectory=true;openFileDialog1.Multiselect=false;openFileDialog1.Filter=〃图片文件(*.jpg;*.jpeg;*.bmp;*.png)|*.jpg;*.jpeg;*.bmp;*.png〃;openFileDialog1.ShowDialog();StreammyStream=File.Open(openFileDialog1.FileName,FileMode.Open,FileAccess.Read);intlength=(int)myStream.Length;byte[]filedata=newbyte[length];myStream.Read(filedata,0,length);myStream.Close();imageContent=filedata;Streamreader=newMemoryStream(imageContent);pictureBox1.Image=(Image)newBitmap(reader);}catch(return;}}privatevoidxibie_SelectedIndexChanged(objectsender,EventArgse)(CbXid.SelectedIndex=xibie.SelectedIndex;zhuanye.Items.Clear();CbZid.Items.Clear();banji.Items.Clear();CbBid.Items.Clear();if(!〃〃.Equals(CbXid.Text))(DataTabledt=codeDal.searchZhuanyeByXID(Convert.ToInt32(CbXid.Text));if(dt.Rows.Count>0)(for(inti=0;i<dt.Rows.Count;i++)(CbZid.Items.Add(dt.Rows[i][〃id〃].ToString());zhuanye.Items.Add(dt.Rows[i][〃name〃].ToString());}}}}privatevoidzhuanye_SelectedIndexChanged(objectsender,EventArgse)(CbZid.SelectedIndex=zhuanye.SelectedIndex;banji.Items.Clear();CbBid.Items.Clear();if(!〃〃.Equals(CbZid.Text))DataTabledt=codeDal.searchBanjiByZID(Convert.ToInt32(CbZid.Text));if(dt.Rows.Count>0)(for(inti=0;i<dt.Rows.Count;i++)(CbBid.Items.Add(dt.Rows[i][〃id〃].ToString());banji.Items.Add(dt.Rows[i][〃name〃].ToString());}}}}privatevoidbanji_SelectedIndexChanged(objectsender,EventArgse)(CbBid.SelectedIndex=banji.SelectedIndex;}publicvoidReceiveData(stringxi,intxiID,stringzhuan,intzhuanID,stringban,intbanID,intstuID)xibie.Items.Clear();CbXid.Items.Clear();DataTablexdt=codeDal.searchXi();if(xdt.Rows.Count>0)(for(inti=0;i<xdt.Rows.Count;i++)(CbXid.It
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (高考英语作文炼句)第26篇译文老师笔记
- 开题报告:指向学习调节的学生自我评价机制与策略研究
- 开题报告:粤港澳跨域教师团队建设的边界阻隔与突破机制研究
- 开题报告:医学人文教育中的师生互动及影响机制研究
- 开题报告:新时代背景下高职汽车专业群学生职业核心能力提升路径研究
- 《上海移动怒江机房》课件
- 中考地理总复习阶段测试01 地球和地图(解析版)
- 2024年债务考量离婚合同书标准格式版B版
- 2024年商业门面租赁协议标准模板一
- 元器件识别与选用 第10章 数据手册的阅读
- 订购蓝莓合同范例
- 2024年广西普法考试答案16
- 2024年度设备维修与技术支持协议
- 田径裁判员培训
- 2023年北京肿瘤医院(含社会人员)招聘考试真题
- 物流居间合同范本
- 2024年全国特种设备安全管理A证考试题库(含答案)
- 信息素养通识教程:数字化生存的必修课学习通超星期末考试答案章节答案2024年
- 学校安全隐患报告和举报奖惩制度
- 四年级英语上册 【月考卷】第一次月考卷(Unit 1-2) (含答案)(人教PEP)
- 【正式版】自主高效课堂课件
评论
0/150
提交评论