您好,欢迎访问三七文档
C#项目实训学生管理系统XXXXXX@qq.com提纲学生信息管理系统需求分析系统设计概要设计、详细设计数据库设计功能设计:班级信息管理功能界面设计提纲代码实现程序结构技术点为防止注入攻击,使用SQL参数,以保证安全保存原主键值,以保证修改功能问题总结及解决项目总结致谢需求分析整体项目本次完成学生管理系统项目,主要目的在于制作学生相关信息调用系统,通过设计实现基本的登录、注销功能,以及对学生、班级等信息的添加、删除、修改、查询功能。以方便学校管理各项信息,方便学生查询成绩、课程为基本需求,实现并完善各项功能。需求分析班级管理在班级信息管理中,实现了添加班级、修改班级信息、删除班级以及按班级编号或班级名称查询的功能。只需要打开“班级信息管理”界面,就可以清楚的查看到所有的班级信息。同时,只需双击右侧某条数据的表头部分,数据就会自动显示在左侧,方便用户进行修改、删除等操作,而且可以通过点击列名进行排序。设计-概要设计C/S设计介绍C/S的全称是Client/Server,即客户机/服务器模式。此结构可以通过将任务合理分配来降低系统开销。C/S与B/S的区别在于C/S是建立在局域网的基础上的,而B/S是建立在广域网基础上的。由C/S结构构成的这类软件的服务器程序必须部署在一台计算机上。设计分层Enlily实体层负责承载数据DAL数据访问层连接数据库,执行命令界面层提供给用户一个视觉上的界面,通过界面层,用户输入数据、获取数据,并传给数据访问层。设计-概要设计功能结构图学生信息管理系统学生管理班级管理课程管理成绩管理用户功能日志管理登录注销修改密码修改信息注册退出修改学生信息登记学生信息删除学生信息查询学生信息管理学生信息修改班级信息登记班级信息删除班级信息查询班级信息管理班级信心修改课程信息添加课程信息删除课程信息查询课程信息管理课程信息添加成绩信息查询成绩信息管理成绩信息删除日志信息查询日志信息管理日志信息设计-详细设计添加功能流程图开始结束输入想添加的班级判断输入的班级名是否存在是否合法单击“添加”按钮提示“添加”失败提示“添加”成功右侧数据栏刷新否是设计-详细设计删除功能流程图开始结束选择想删除的班级判断该班级是否有学生单击“删除”按钮提示“添加”失败提示“添加”成功右侧数据栏刷新否是在数据库中查找数据判断是否找到班级信息是否设计-数据库设计ER图讲授开课时间结课时间科目选修学生属于班级成绩学号姓名密码生日班级编号1n1mnm班级名称开课时间性别设计-功能设计添加功能首先,系统实现了添加功能,当用户进入课程管理系统时,可以通过从文本框录入来实现添加功能。由于“班级编号”项是自增长字段,所以系统设计“班级编号”文本框只能用来显示,而无法进行输入功能。“班级名称”为普通的Text文本框控件,可以输入任意字符。而创建日期使用了DateTimePicker日期选择控件,默认的显示日期为使用软件当日。当用户输入“班级姓名”和“创建日期”后,只需单击“添加”按钮,就会对想要添加的班级名称进行唯一约束判断,名称不与已存在的名称重复则添加成功。如果想添加成功,则弹出“添加成功”提示框并在右侧数据显示栏中刷新是刚刚添加的数据,如果添加失败则显示“添加失败”提示框。设计-功能设计双击表头提取数据以及删除功能系统为了可以实现删除和修改功能,首先实现了双击数据网格表头提取数据功能,用户只需要双击想要删除或修改的数据行的表头,即可把右侧数据提取到左侧的数据录入区。如果想删除该条记录,只需单击“删除”按钮,如果系统判断该班级没有学生,则可以删除,如果删除成功,出现“编号为:XXX的班级删除成功”提示框,在出现提示框以后,右侧的数据显示区也会一同更新,刚才删除成功的数据就会消失。如果删除失败,则出现“没有删除任何数据”提示框。设计-功能设计班级信息的修改、查询功能如果用户想修改班级信息,用户只需要双击想要修改的数据行的表头,即可把右侧数据提取到左侧的数据录入区。然后只需要在录入区中修改,然后点击修改按钮,就会对想要修改的班级名称进行唯一约束判断,名称不与已存在的名称重复则修改成功。在此,因为“班级编号”是自增长字段,所以,系统设置其不可以修改。如果修改成功,提示“修改成功”,如果修改失败,提示“没有修改任何数据”。系统设置了查询功能,用户可以根据“班级编号”,“班级名称”查找班级信息,用户只需在左侧查询区输入想要查询的信息,单击“查询”按钮,如果该信息存在,就会在右侧的数据显示区中显示该条数据。设计-界面设计班级信息管理在界面的左侧,为数据录入和查询区,这个区域中使用Label控件进行指示,Text控件进行录入信息,Button控件进行激发事件。在界面的右侧,使用DataGridView数据网格控件显示从数据绑定源中提取出的数据或者符合查询条件的数据。班级信息管理子窗体共分为两个部分,,使用SplitContainer控件进行分割左侧作为数据录入和查询区,右侧作为数据显示区。代码实现-程序结构班级信息管理实体层此层为Enlily实体层,负责承载数据。[Serializable]为类添加可序列化属性。可以以某种存储形式使自定义对象持久化;也可以将对象从一个地方传递到另一个地方。代码实现-程序结构班级信息管理数据访问层(以添加为例)代码实现-程序结构班级信息管理界面层(以添加为例)代码实现-技术点班级编号文本框属性设置由于班级编号是自增长字段,所以程序将“班级编号”文本框设置为不可编写状态,在属性栏有两种属性可以达到这个目的,分别是将“Enable”属性设置为“False”和将“ReadOnly”属性设置为“True”,在编写过程中我选择了后者。因为虽然两种属性都可以达到使“班级编号”文本框无法输入的目的,但是“Enable”属性是将文本框控件直接停用,在不可输入的同时也不可选中。而“ReadOnly”属性是将文本框设置为只读状态,用户依旧可以将光标移至文本框,提起其中数据,为了方便用户,我们选择了“ReadOnly”属性。代码实现-技术点防止注入攻击恶意使用者通过发现SQL注入位置,判断后台的数据库类型等一系列操作,在使用系统时编写恶意的SQL语句来进行攻击,来得到管理员权限的攻击方式被称为注入攻击。在此次编写的程序中,在“DAL”层编写SQL语句时,一定要使用SQL参数,这样都得编写方式允许我指定所提供的参数的确切类型(譬如,字符串,整数,日期等),这将防止有人试图偷偷注入另外的SQL表达式,来避免黑客利用它们。我们应该在平时就养成这种编写习惯。问题总结创建类库时右侧找不到“解决方案”缺少空格导致程序不通在编写代码的过程中,有一次在编写SQL语句时少添加了一个空格,结果直接导致了不能进行信息修改操作。在之前的课堂中老师就提到过要养成良好的编写代码习惯,但是我没有做到,所以导致了这个错误。在添加了空格之后程序就可以正常运行了。在最开始想建立类库时在右侧找不到“解决方案,解决方法是”单击“文件”——选择“新建”——选中“项目”,然后在“模版”模块下选择“类库”,选择“添入解决方案”将新建的类库加入已经创建的“StudentsApp”项目中。项目总结实训心得通过参加本次实训课程,我基本学会了“雇员信息管理系统”和“学生信息管理系统”的设计,通过对界面的设计我了解到只有从开始时就计划好设计内容,注意细节,才能在编程时少出差错,如果在开始时不注意,就可能在编程时出现思路混乱,不知道需要使用名称等问题。同时在编程的过程中我体会到,有的时候缺少一个“空格”也会导致程序的功能不能实现,所以一定要养成良好的编程习惯,有统一的风格,才能减少错误,或者在出现错误后容易发现错误原因。合作体验在项目制作过程中,我们的团队合作起到了很大的作用,一个完整的项目十分庞大,只有分工合作才能完美的完成工作。我想,在以后的工作中应该也是一样,工期往往会很仅,一个人的能力总是有限的,只有通过大家的合作,才能集合力量,完成任务。致谢首先感谢学校提供这个集中实训的机会给我们,让我们有足够的事件充分学习一个完整的系统的制作过程。然后十分感谢我们的团队的所有成员,是我们团队所有成员无间的配合,才完成了这个系统,尤其是组长无限次的为我提供各种资料,从不厌烦的为我解决问题。最后感谢教授我这些知识,并且无私的为我解决各种问题的任课老师。
本文标题:C#实训答辩PPT
链接地址:https://www.777doc.com/doc-4707234 .html