软件开发实例月日PPT课件_第1页
软件开发实例月日PPT课件_第2页
软件开发实例月日PPT课件_第3页
软件开发实例月日PPT课件_第4页
软件开发实例月日PPT课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 第六章开发实例 1 学生管理 2 系统的需求为简单起见 假设选课系统有两类参与者 教务员和学生教务员 可以输入一个新学生 更新 查询学生的信息 可以输入一门新课程 更新 查询课程的信息 可为指定教师开一门课程 查询已开课程的选课学生名单 可为指定的学生选课 输入学生成绩 学生 可以查询自己所有的选课信息 包括 自己的已选课列表和待选课列表 可以选课 可以输入自己对某门课程任课教师的评价 应用开发实例 选课系统 3 系统模块划分 4 开发过程 以学生管理为例 分析 从系统模块划分的角度看 解决该问题需要一个主窗体和三个子窗体 在主窗体的子菜单中完成对各子窗体的调用 其中 主窗体 Form1 包括一个主菜单和若干子菜单输入子窗体 InputStudentForm 实现学生信息输入查询子窗体 SearchStudentForm 实现学生选课查询更新子窗体 UpdateStudentForm 实现学生信息的更新 删除 5 从软件体系结构的角度看 学生管理程序可分三层部署 数据存储层 创建学生管理所需数据库studentmanage 并将其部署在SQLServer2005数据库服务器端 数据访问层 是客户端应用程序的重要组成成份之一 实现数据库连接和访问功能 因此 要设计一个数据链接类DbConnection类 实现对服务器端数据库 如NTierStudent 的连接功能 一个实体类Student类 实现对数据对象的创建一个控制类StudentManagerAction类 实现对studentmanage库中学生信息的输入 查询 更新与删除功能 其中学生信息输入 查询 更新与删除将以该类方法的形式出现 6 数据表示层 即界面表达 是客户端应用程序的重要组成部分 需设计以下三个窗体边界类 InputStudentFormSearchStudentFormUpdateStudentForm 7 选择菜单 开始 所有程序 MicrosoftVisualStudio2005 MicrosoftVisualStudio2005 进入 起始页 MicrosoftVisualStudio 在菜单栏中选择 文件 新建 项目 打开 新建项目 对话框 在此对话框中选择项目类型为VisuanlC Windows 1 创建项目NTier 输入项目名称NTier 8 在NTier下 创建CourseManager StudentManager TeacherManager UserManager四个文件夹 具体做法 在解决方案资源管理器的树形目录中 右击NTier节点 在弹出的快捷菜单中选择 添加 新建文件夹 命令 9 2 创建主窗体界面 Form1 拖入窗体 10 3 在Ntier下创建数据连接类DbConnection usingSystem usingSystem Collections Generic usingSystem Text usingSystem Data OleDb usingSystem Xml XmlDocument类等需要此引用语句usingSystem Windows Forms Application类需要此引用语句namespaceNTier classDbConnection protectedstaticOleDbConnectionconn newOleDbConnection staticDbConnection strings Application ExecutablePath 获得完整的应用程序的路径intdotPos s IndexOf s s Substring 0 dotPos s xml 将后缀名从exe改成xmlXmlDocumentdoc newXmlDocument doc Load s 加载xml文件 见下 11 XmlNoderoot doc DocumentElement XmlNodesetttingNode root SelectSingleNode setting stringserver setttingNode SelectSingleNode server InnerText stringdb setttingNode SelectSingleNode db InnerText stringconStr Provider SQLOLEDB 1 创建ADO连接字符串conStr IntegratedSecurity SSPI conStr InitialCatalog db DataSource server conn ConnectionString conStr DbConnection类定义 接上 12 LENOVO 2A3D3E14studentmanage 在DbConnection对象定义中 连接字符串conStr中参数 数据库名 和 服务器名 取值来自于我们为该项目创建的xml配置文件 可将该配置文件保存在项目Ntier所在目录的bin debug 文件夹中 xml配置文件的文件名与项目名相同 扩展名为 xml 使用该配置文件可以动态生成数据库连接串 在不修改程序代码的前提下方便对不同服务器 不同数据库的访问 增强了程序的适应性 关于DbConnection类的配置文件 xml 13 4 在StudentManager目录下创建实体类Student classStudent publicstringno name sex birthday deptId publicStudent stringno stringname stringsex stringbirthday stringdeptId this no no this name name this sex sex this birthday birthday this deptId deptId 14 classStudentManagerAction DbConnection privateStudentstudent publicvoidsetStudent Studentst 将被管理的学生传递进来 this student st publicboolsave 把被管理的学生保存到数据库中 boolsaved true 先假设能保存成功stringsql sql insertintotblStudent studentNo studentName birthday sex deptId values student no sql student name student birthday student sex sql student deptId 5 在StudentManager目录下创建控制类StudentManagerAction 15 try conn Open 打开数据库连接 父类里的静态变量 已经被初始化OleDbCommandcmd newOleDbCommand sql conn cmd ExecuteNonQuery 插入数据库 catch OleDbExceptionex strings ex Message MessageBox Show s saved false 保存失败 finally conn Close 不管数据库操作结果如何 执行完毕都关闭数据库联接 returnsaved 16 其中usingSystem Windows Forms 是使用MessageBox等对象需要的 上述代码需要如下的引用语句部分 选中部分为用户添加 17 6 添加 增加 子窗体 InputStudentForm 增加 子窗体名 在解决方案资源管理器中展开树形目录 找到并右击StudentManager节点 在弹出的快捷菜单中选择 添加 Windows窗体 18 增加 子窗体界面设计 控件属性设置 listView控件 19 listView控件属性设置 单击该按钮 20 编写主窗体调用InputStudentForm窗体的代码 双击 增加 进入该段代码的编辑 privatevoid增加ToolStripMenuItem Click objectsender EventArgse InputStudentForminsf newInputStudentForm insf ShowDialog 增加 子窗体代码设计 主窗体的引用部分加入该语句 21 编写 增加 按钮单击事件响应代码 privatevoidbtnAdd Click objectsender EventArgse StudentManagerActionsma newStudentManagerAction Studentstudent newStudent tbStudentNo Text tbStudentName Text cbSex Text tbBirthday Text cbDept Text sma setStudent student 设定sma的学生属性if sma save 学生被保存成功了 将学生信息写入列表中 ListViewItemli newListViewItem 生成一个表项li SubItems Clear li SubItems 0 Text tbStudentNo Text 以下语句填充表项的内容li SubItems Add tbStudentName Text li SubItems Add cbSex Text li SubItems Add tbBirthday Text li SubItems Add cbDept Text lvStudentList Items Add li 将新表项追加到列表中 22 6 添加 查询 子窗体 23 listView控件属性设置 查询 子窗体界面设计 24 编写主窗体调用SearchStudentForm窗体代码 双击 查询 菜单项 进入该段代码的编辑 privatevoid查询ToolStripMenuItem Click objectsender EventArgse SearchStudentFormssf newSearchStudentForm ssf ShowDialog 查询 子窗体代码设计 25 查询 按钮单击事件响应代码 privatevoidbtnSearch Click objectsender EventArgse lvStudentList Items Clear StudentManagerAction loadAllStudent lvStudentList tbStudentNo Text tbStudentName Text 其中 loadAllStudent是StudentManagerAction类中定义的静态方法 该方法代码如下 26 publicstaticvoidloadAllStudent ListViewlv stringno stringname stringsql selectstudentNo studentName sex birthday deptName sql fromtblStudentinnerjointblDepartmentontblStudent deptId tblDepartment deptId sql where1 1 if name Equals 如果有该学生姓名 则将其加入到查询限制条件里 sql andstudentNamelike name 使用like 模糊匹配 if no Equals 如果有该学生学号 则将其加入到查询限制条件里 sql andstudentNolike no 使用like 模糊匹配 try conn Open OleDbCommandcmd newOleDbCommand sql conn OleDbDataReaderdbReader cmd ExecuteReader 得到查询结果集 27 while dbReader Read 一次一条记录读查询结果集 放进listView中 ListViewItemli newListViewItem li SubItems Clear 以下字段值皆需转化成字符串添加到listView中li SubItems 0 Text dbReader studentNo ToString li SubItems Add dbReader studentName ToString li SubItems Add dbReader sex ToString li SubItems Add dbReader birthday ToString li SubItems Add dbReader deptName ToString lv Items Add li catch OleDbExceptionex 捕捉错误 strings ex Message MessageBox Show s finally conn Close 不管数据库操作结果如何 执行完毕都关闭数据库联接 28 说明 该方法添加到StudentManagerAction类的定义中 且被声明为静态方法 可以对类来调用 注释 中前面的语句where1 1用一个恒真条件 与后续可能的条件 与 操作 简化查询条件的形成逻辑 29 学生课程列表 按钮单击事件响应代码 privatevoidbtnCourseSearch Click objectsender EventArgse if lvStudentList SelectedItems Count 0 查找学生列表中是否已被选中一行return 若无选中行 则直接返回stringstudentNo this lvStudentList SelectedItems 0 Text ToString 得到被选择的学生的学号Studentst newStudent studentNo 生成一个只有学号信息的学生对象StudentManagerActionsma newStudentManagerAction sma setStudent st 将学生对象赋给控制类对象sma loadSelectedCourse lvSelectedCourse 已选课列表里罗列学生的已选课程sma loadUnselectedCourse lvUnselectedCourse 待选课列表中罗列待选课程 30 publicvoidloadSelectedCourse ListViewlv stringsql selectsc teacherCourseNo courseName grade workerName sql fromtblSelectCoursesc tblTeacherCoursetc tblCoursec tblTeachert sql wheresc teacherCourseNo tc teacherCourseNoandtc workerNo t workerNo sql andtc courseNo c courseNoandstudentNo student no OleDbCommandcmd newOleDbCommand sql conn lv Items Clear conn Open OleDbDataReaderdbReader cmd ExecuteReader while dbReader Read ListViewItemli newListViewItem li SubItems Clear li SubItems 0 Text dbReader teacherCourseNo ToString li SubItems Add dbReader courseName ToString li SubItems Add dbReader grade ToString li SubItems Add dbReader workerName ToString lv Items Ad

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论