答辩记录
3.QQ在线唤醒客服的实现,运用HTML,JS,完成客服的编写工作,
为网站添加了客服功能。
答辩教师
唐劼
答辩记录
答辩学生
胡旭阳
答
辩
记
录
1、解释一下预约的业务逻辑实现
答:首先明确:预约功能是学员和教员双向的活动,教师可以给多个学员家教,学员只能请一个家教。一方预约另一方后,把这个预约信息写入预约表,并需要等待另一方的确认,当另一方也确认信息后(包括接受预约和拒绝预约),进行该信息的判断。如果双方都同意,那么写入预约成功表,并将教师的预约信息修改为“已预约”。
预约的实现(包括写入预约表,预约信息的传递):当查看详情时,用户可以点击“预约”按钮。点击按钮后,触发事件,首先判断用户身份和目标用户的身份是否一致。如果同为“teacher”或“student”,提示不支持预约。否则运用GridView的选中事件,获取到鼠标点击行,随后获取点击行的编号。之后通过用户编号和目标编号获取StudentNo,StudentSex,StudentSub,TeacherSex,TeachingMethods信息,然后和TeacherNo,StudentNo调用Appointment.cs中的AppointmentTeaStu()方法一同写入Appointment表中,一同写入表中的还有学生方是否同意,教师端是否同意,写入时间。
学生预约教师:学生只能预约一个教师。学生可以查看老师的详情,并预约,当学生预约一个教师后,在老师没有接受或拒绝时,学生端可以选择取消预约。接着目标教师登录后,可以查看到学员发送过来的请求信息,此时教师可以选择查看该学员的详情,接受预约或拒绝预约。当选择接受预约后,将这条记录两方信息的预约信息记录到预约成功表,以便后面分析数据,并将该学生不在主页面显示,将教师的预约状态显示为“已预约”。
答辩学生
李书华
答
辩
记
录
1、分页是如何实现的?
答:在中,GridView控件本身就带有分页的功能,首先将AllowPaging属性设置为true,表示允许分页,然后将PageSize属性设置为一个数字,用来控制每个页面显示的数据条数,最后,在GridView控件的PageIndexChanging事件中设置GridView控件的PageIndex属性中当前页面的索引值赋给GridView.
1467002024
廖欢
1.前端后端一起兼顾,所以工作量最大。其中前端一人全程承担,
自主设计网页布局与div样式(包括控件外观)界面美化;
在后端上,负责了登录注册(包括验证码),修改个人信息的主要后台代码编写,以及编写整合上传图片功能,后台管理功能及其其他细节处理等等。
2.前端质量:前端界面相对比较精致漂亮,网页风格比较偏官方,相对比较符合网站类型;
答辩学生
廖欢
答
辩
记
录
1、多个div如何在一行?
答:原理:在相关div运用HTML的float浮动属性,该div会脱离文档流,div不会独占一行,而是呈现可设置高度与宽度的块级元素,默认情况下会根据div盒子内的内容来确定所占宽度,当然,我们也可以自由设置div在行内的宽度。
使用float属性,基于多个div自动会默认呈现从左自右排列,只需设置相关div的高度与间隔,就可以感觉多个div在一行。
3.前端知识:对HTML+CSS运用比较擅长,对控件外观美化,也比较熟悉,同时也会编写使用部分JS脚本,做出想要的功能效果,甚至可以实现后端的一些功能(如网页实时显示动态时间等),当然对JS还需要进一步的学习与掌握。
4.后端知识,对中与数据库的连接及其对数据库的修改,都掌握的还可以,同时对ቤተ መጻሕፍቲ ባይዱ的大部分控件所自带的属性与事件,能都很好的运用,比如Panel的隐藏属性与Gridview的事件,在后台管理都有运用。当然,有些控件还运用的比较少,需要进一步的探索与掌握。
2、教师查询中SQL语句是如何实现的?调用了哪个表?
答:这个是使用Command对象查询数据,询教师时,首先创建SqlConnection对象连接数据库,然后定义查询字符串,最后将查询的教师数据记录绑定在数据控件上。在用户点击“查询”按钮时,将会显示在页面上。
教师查询调用的是Teacher表。
3、E-R图是什么?E和R分别代表什么?
学生学号
学生姓名
评分
评语
1467002012
胡旭阳
1.负责了网站的大部分的后台代码,包括对数据库的相关连接,后台数据的部分查询,还有index页面登录前后页面的变化,预约功能业务逻辑及其具体实现。同时由于项目是团队合作的,对登录修改个人信息及其其他一些搜索查询,也与他们参与了进一步的讨论与相关编码整合。
3.编写了软件需求文档、测试文档,需求文档对软件需求及建模进行了较好的展示,测试文档展示了开发中的不断测试的业务及后期功能测试。
4.实现了登录、注册、修改信息、上传、搜索、教师预约、学生预约、信息浏览、发布家教、应聘家教等功能,体现了互联网的用户友好特征,业务功能非常具有实用性,设计非常人性化。
5.网站整体基调活泼,美观大方,既有家教网的严谨又不失又不失活泼,符合大众审美。网站交互性强,兼容性好,可在不同平台浏览器不失真运行。
2.预约功能,资金的收取问题不够完善,预约表中对预约时间的问题没有添加。
3.掌握中对数据库的应用,包括连接数据库,对数据库的增删改查等。掌握页面载入时page_load功能的进一步实现。掌握Session的实现及其应用。掌握GridView的用法,包括数据绑定的实现,展示数据的用法,以及GridView控件的分页和GridView页面美化的实现。
2016-2017第一学期项目答辩记录
课程:软件工程综合设计与实践方向:软件测试工作室:X3405
答辩评分
项目名称
评分
评语
瑶湖家教网
1.项目开发中使用了、javaScript、CSS、HTML、SQL等技术
2.采用了UML建模技术进行建模,建模很好的体现了业务需求、功能需求、客户需求。
同意预约的实现:当用户登录个人中心后,页面载入时,进行数据库的查询。查询是否有为处理的预约信息。当登录用户身份为“teacher”时,查询Appointment表中学生方同意,教师方未同意的信息,显示出来。当登录用户身份未“student”时,查询Appointment表中学生未同意,教师方同意的信息,显示出来。随后用户可以选择查看请求预约目标的详情和接受预约,拒绝预约。当用户接受预约后,将Appointment表中该条信息的学生方和教师方同意信息都改为同意,并获取该条信息并将其写入预约成功表。当用户拒绝预约时,若用户为学生,将学生方改为不同意,若用户为教师,将教师端改为不同意。
在点击“更新”后,会经过一个统一的机制发送到服务器端进行执行,因为ASP文件中涉及到数据库,接下来会通过ODBC连接数据库,由数据库访问组件ADO完成数据库的更新操作,写入修改的信息,最后ASP生成包含数据库更新后的查询结果的HTML主页,返回到浏览器页面进行显示,“删除”功能与此类似。
3、点击链接如何转入指定网页的指定地方?
联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。比如老师给学生家教存在教学关系。如果是弱实体的联系则在菱形外面再套菱形。
4、什么是主键、外键?它们有什么意义?
答:主关键字是被挑选出来,作表的行的唯一标识的候选关键字,一个表只有一个主关键字。主关键字又可以称为主键。主键可以由一个字段、也可以由多个字段组成,分别称为单字段主键或多字段主键。
预约时需要判断Session[“UserId”],将此数据和所要预约的目标进行对比。若两方身份相同(同为教师或学生),则无法预约。
技术实现
用户查看另一方用户的详细信息:当用户点击目标用户的详情后,获取目标用户的编号。获取方式:首先运用GridView的选中事件,获取到鼠标点击行,随后获取点击行的编号并储存在Session["UserNo"]中。之后弹出用户详情界面,获取Session[“UserNo”],之后通过Session[“UserNo”]调用公共类中的GetUserMessage()获取目标用户的所有信息。
后端质量:主要功能问题基本后台都得以实现,不过也有一些小问题,比如修改资料,原意要在Page_load把信息全部读到页面(每项信息置于TextBox内),直接修改TextBox里面的数据并提交确认即可更新信息成功,按理说没有问题,然而试过却发现在读取的信息上修改,更新“TextBox”的数据并没有写入数据库,不知为何。为了避免错误,就没有把允许更改的信息事先在Page_load读取出来,而是在空的TextBox里填写更新信息。
2、登录时获取的信息和储存的方式
答:登录时获取用户名并储存在Session[“UserName”],用户身份并储存在Session[“UserId”]中。
当用户写入用户名,密码和验证码后,点击button按钮。触发验证事件,首先对验证码,用户身份进行验证,接着对数据库用户名查询,并对密码进行验证。如果验证为true,则将用户名储存在Session[“UserName”]中,将用户身份储存在Session[“UserId”]中。显示登录成功!
2、解释教员编辑的实现原理?
答:如何实现:在教员管理页面,Gridview控件首先配置了数据源SqlDataSource从而绑定并显示教员数据库内容,同时选中“启用编辑”,并在高级设置里自动生成“Update”与“Delete”语句,在页面<asp:SqlDataSource><</asp:SqlDataSource>组件内生成对应的UpdateCommand更新语句与DeleteCommand删除语句以及相应的<UpdateParameters></UpdateParameters>模块和<DeleteParameters></DeleteParameters>模块。