联系方式: 微信:biyebang QQ: 629001810
摘 要
互联网的出现改变了人类的生活方式,提高了人们的工作效率和生活质量,随着互联网的发展,网络教育应运而生,实现了人类教育的一次革命。如今网上教学已经成为高等教育领域中日益流行的教学模式,它的灵活性和资源共享的优势,受到各国教育界的喜爱。《数据库原理与应用技术》课程指导平台的开发将Internet网络技术与现代教育观念相融合,为教师与学生在教学环节中的交流提供更便捷的方式,实现了个人信息维护、课件上传与下载、教学信息发布、作业发布、评阅作业等,提高了教学成果。本课程指导平台从系统需求分析、概要设计、详细设计到具体的编码实现和后期的代码优化、功能测试都严格遵循了软件工程的思想。
1 《数据库原理及应用技术》课程指导平台系统设计 1.1数据库设计 《数据库原理及应用技术》课程指导平台的数据库设计(Database Design)把系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。 设计数据库应该具备数据库的基本知识和数据库设计技术,计算机科学的基础知识和程序设计的方法和技巧及软件工程的原理和方法应用领域的知识。 根据《数据库原理及应用技术》课程指导平台系统的一般要求,通过对整个系统运行过程和数据流程分析,得出本系统的实体表:学生基本信息表:DB_STU、教师基本信息表:DB_TEACHER、老师班级表:DB_TEACHER_CLASS、班级表:DB_CLASS、专业表:DB_SPEC、课件表:DB_COURSEWARE、作业班级表:DB_EXERCISE_CLASS、作业题库表:DB_EXERCISE、学生老师公共作业表:DB_PUB_EXERCISE、教学信息表:DB_INFO、逻辑年级表:DB_LOGIC_GRADE、物理年级表:DB_REAL_GRADE。 根据《数据库原理及应用技术》课程指导平台系统的一般要求,通过对整个系统运行过程和数据流程分析,设计出实际的数据库实体,以及他们之间的关系,为后边的数据库逻辑结构设计打基础。这些实体包括各种具体信息,通过相互之间的作用形成数据的流动。 根据对数据项和数据结构的分析以及对实际的数据库实体的设计,使用数据库设计工具ER/Studio设计出数据表以及数据表之间的逻辑关系,如图3所示: 经过前面的数据库分析与设计得到数据库的逻辑结构。本系统使用Microsoft SQLServer 2005作为数据库开发工具;创建名为CGB的数据库,根据各种功能的实现以及考虑到将来系统功能上的扩展,设计如下数据项和数据结构: 表1 教师基本信息表:DB_TEACHER 中文名称 字段名 类型 长度 是否允许空 备注 教师ID teacher_id Int 4 not null PK 教师编号 teacher_no nvarchar 10 not null 教师名称 teacher_name nvarchar 20 not null 教师密码 password nvarchar 100 教师头像 tea_pic_link nvarchar 100 移动电话 contact_mobile nvarchar 20 邮箱 Email nvarchar 50 QQ号 contact_qq nvarchar 20 是否锁定 locked_indicator nvarchar 1 是否系统管理员 is_sysadmin nvarchar 1 最后一次登入时间 last_login_date datetime 最后一次登出时间 last_logout_date datetime 表2 学生基本信息表:DB_STU 中文名称 字段名 类型 长度 是否允许空 备注 学生ID stu_id int 4 not null PK 学号 Stu_no nvarchar 20 学生姓名 stu_name nvarchar 20 学生年级 stu_gender nvarchar 1 学生密码 Password nvarchar 100 班级编号 class_no nvarchar 10 班级ID class_id Int 4 FK 学生头像 user_pic_link nvarchar 100 移动电话 contact_mobile nvarchar 20 邮箱 Email nvarchar 50 QQ号 contact_qq nvarchar 20 是否锁定 locked_indicator nvarchar 1 最后一次登入时间 last_login_date datetime 最后一次登出时间 last_logout_date datetime 表3 老师班级表:DB_TEACHER_CLASS 中文名称 字段名 类型 长度 是否允许空 备注 教师ID teacher_id int 4 not null PK 班级ID Class_id Int 4 not null FK 表4 班级表:DB_CLASS 中文名称 字段名 类型 长度 是否允许空 备注 班级ID Class_id int 4 not null PK 班级编号 Class_no nvarchar 10 not null 班级名称 class_name nvarchar 50 物理年级编号 grade_no Bigint not null 专业编号 spec_id int not null FK 表5 专业表:DB_SPEC 中文名称 字段名 类型 长度 是否允许空 备注 专业ID spec_id int 4 not null PK 专业编号 spec_no nvarchar 10 not null 专业名称 spec_name nvarchar 50 专业描述 spec_desc nvarchar 100 班级ID class_id int not null FK 表6 课件表:DB_COURSEWARE 中文名称 字段名 类型 长度 是否允许空 备注 课件ID cw_id int 4 not null PK 课件名称 cw_name nvarchar 50 not null 课件链接 cw_link nvarchar 100 not null 发布时间 cw_pubdate datetime not null 所属老师名称 ref_teacher nvarchar 50 not null 教师ID teacher_id int not null FK 表7 作业题库表:DB_EXERCISE 中文名称 字段名 类型 长度 是否允许空 备注 作业ID exercise_id int 8 not null PK 作业名称 exercise_name nvarchar 200 not null 作业内容 exercise_content nvarchar 8000 作业内容链接 exercise_link nvarchar 100 作业类型 exercise_type nvarchar 20 not null 发布教师 pub_teacher int 20 not null 发布时间 pub_date datetime not null 表8 作业班级表:DB_EXERCISE_CLASS 中文名称 字段名 类型 长度 是否允许空 备注 班级ID class_id int 4 not null PK FK 作业ID exercise_id int 8 not null PK FK 表9 学生老师公共作业表:DB_PUB_EXERCISE 中文名称 字段名 类型 长度 是否允许空 备注 公共作业ID pub_exercise_id int 8 not null PK 作业编号 pub_exercise_no nvarchar 20 not null 学号 stu_no nvarchar 20 not null 班级编号 class_no nvarchar 10 作业标题 pub_exercise_title nvarchar 50 not null 作业类型 pub_exercise_category nvarchar 4 not null 作业内容链接 pub_exercsie_link nvarchar 100 作业内容 pub_exercise_content nvarchar 4000 作业得分 pub_exercise_score float 评阅意见 check_advise nvarchar 2000 是否评阅 is_checked nvarchar 1 not null 表10 教学信息表:DB_INFO 中文名称 字段名 类型 长度 是否允许空 备注 信息ID info_id int 8 not null PK 信息标题 info_subject nvarchar 100 not null 信息附件链接 info_link nvarchar 100 信息内容 info_content nvarchar 4000 由谁创建 rec_created_by nvarchar 50 创建日期 rec_created_date datetime 由谁更新 rec_updated_by nvarchar 50 更新时间 rec_updated_date datetime 版本号 rec_version int 10 表11 逻辑年级表:DB_LOGIC_GRADE 中文名称 字段名 类型 长度 是否允许空 备注 逻辑年级ID logic_grade_id int 4 not null PK 逻辑年级编号 logic_grade_no nvarchar 20 not null 年级名称 logic_grade_name nvarchar 20 not null 年级描述 logic_grade_desc nvarchar 50 表12 物理年级表:DB_REAL_GRADE 中文名称 字段名 类型 长度 是否允许空 备注 班级ID class_id int 4 not null PK 物理年级编号 physics_grade_no nvarcha 20 not null 所属系名称 ref_department_name nvarcha 50 not null 逻辑年级ID logic_grade_id int not null FK 1.1系统模块分析与设计 总体任务是为教师和学生在整个学习的交流过程提供更便捷的方式。 1. 系统登录: 登录模块采用基于标准的MVC架构的开发模式。与一般的登录系统相似,主要是对登录用户的身份进行合法性验证。登录身份分成两种:教师、学生。根据自己不同的身份选择不同的登录身份,系统根据教师登录名识别是否为系统管理员。 2. 个人信息维护: 教师和学生的个人基本信息管理。包括“信息设置”和“密码设置”,用来设置个人信息的联系方式和登录密码设置。 3. 课件管理: 包括教师的上传课件模块和学生的下载课件模块,主要包括教师的添加课件、删除课件和根据课件名搜索课件,学生的下载课件和根据课件名搜索课件。 4. 教学信息管理: 包括教师的发布信息模块和学生的查看信息模块,主要包括教师的添加信息、删除信息和根据信息标题搜索课件,学生的查看信息和根据信息标题搜索教学信息。 5. 作业管理: 教师发布作业,学生提交作业。具体功能要求:首先,教师以文本或附件的形式发布新的作业要求,并可进行删除操作和根据作业名称进行搜索的操作;然后,学生下载或查看新的作业要求,可直接进行作业提交,若教师是以附件形式发布作业的,那学生也只能以附件形式提交作业,若教师发布的是文本形式的作业,那学生就只能以文本形式提交;已做作业列表中学生可以对教师未评阅的作业进行修改操作,若已评阅过则显示“当前作业已批阅不能再修改”。 6. 作业评阅: 教师可对学生提交的作业打分和给出评阅意见,学生查看得分及评阅意见。具体功能要求:首先,教师在作业列表上查看已交作业,系统对比查询,可显示班级人数、已交人数和未交人数,并以学号列出待批阅的作业供教师评阅,评阅中可给出本次作业得分和写出评阅意见,系统会显示已完全评阅完的作业列表,方便教师识别哪次作业需要继续评阅;然后,学生查看分数可直接以列表方式显示每次作业的得分及教师评阅意见。 7. 系统管理: 包括“班级分配”管理模块、“用户管理”模块,权限归管理员所有,其他角色没有此功能。 Ø 班级分配:对每个教师所带班级进行分配设置。 Ø 用户管理模块:查看用户的详细信息、激活删除用户,并可用姓名进行学生用户和教师用户的搜索操作。 8. 退出:所有的系统合法用户登录完成操作后退出系统都要进行“退出”操作、或者进行用户转换也需要进行“退出”操作。 1.2 界面设计 1.2.1 系统色彩规划 网站是信息的载体形式,色彩设计必须以完成网站可视性阅读功能为目的。本系统采用蓝色基调,白色,红色,黑色为辅调。 蓝色对视觉器官刺激较弱,它代表天空、清爽、平静、科技、理智、速度、诚实、真实、可信、人看到蓝色时情绪安宁。用它作为此平台的主色调也是最合适不过了。 白色在系统中主要作为背景色,导航栏字体颜色。白色视觉度,注目度都比较高,因为白色为全色相,所以也能满足本管理系统用户心理要求,加之与蓝色配合,使整个系统更具阅读可视性,操作易用性。整个系统看起来颇大气,富有立体感。再者,白色代表纯洁、简单、洁净。 红色纯度高,注目性高,对人视觉刺激大,因此本系统将系统某些操作提示使用红色字体,更加能起提示,警告等作用。 黑色为全色相,没有纯度,它本身无刺激性,所有在本系统中的主体文字颜色都设置为黑色,这正所谓“白底黑字”,以增强阅读可视性。 1.2.2 系统框架设计 总体思想是上,下分两栏,使用框架做布局,此方法可以使整个系统更加符合信息空间的信息存储,运行速度更快,信息层次更加清晰,用户操作则更方便,更有条理。 整体界面的设计的下栏为工作区,通过点击左边导航栏的栏目,使下栏的右框架内页面显示相关栏目的内容,如图4,图5所示: 系统实现 1《数据库原理及应用技术》课程指导平台功能模块具体实现 1.1用户登录认证部分代码 // 数据库连接操作帮助类 public sealed class SqlHelper { // 执行数据库读取 public static SqlDataReaderExecuteReader(string connectionString, CommandType commandType, stringcommandText) { return ExecuteReader(connectionString, commandType,commandText, (SqlParameter[])null); } // 执行数据库读取 public static SqlDataReaderExecuteReader(string connectionString, CommandType commandType, stringcommandText, params SqlParameter[]commandParameters) { if (connectionString == null || connectionString.Length == 0) throw new ArgumentNullException("connectionString"); SqlConnection connection = null; try { // 新建一个数据库连接实例 connection = newSqlConnection(connectionString); // 建立连接 connection.Open(); returnExecuteReader(connection, null, commandType,commandText, commandParameters, SqlConnectionOwnership.Internal); } catch { if (connection != null) // 关闭数据库连接 connection.Close(); throw; } } } // 验证用户登录类 public class CheckUserLogin{ SqlConnection conn; public CheckUserLogin() { //读取web.config里面的数据库连接字串并new一个SqlConnection实例 conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnStr"].ToString()); } //取得用户密码 public string getPassword(string user_no, stringrole) { string password = String.Empty; SqlDataReader dr = null; if (role == "stu") { dr = SqlHelper.ExecuteReader(conn, CommandType.Text, "select passwordfrom DB_STU where stu_id =" + user_no); } ………………………….. return password; } } 1.2 学生作业修改功能部分代码 //要修改的作业信息 protected DB_PUB_EXERCISEBE model = newDB_PUB_EXERCISEBE(); protected voidPage_Load(object sender, EventArgs e) { if (!IsPostBack) { LoadData(); } } //加载要修改的作业的信息 private void LoadData() { string stu_no = ((DB_STUBE)Session["CurrentUser"]).stu_no; string pub_exercise_no = Request["id"]; model = new CGP.BLL.DB_PUB_EXERCISE().GetModelByExerNo(pub_exercise_no,stu_no); } //发布作业 protected void edit_Click(object sender, EventArgse) { string stu_no = ((DB_STUBE)Session["CurrentUser"]).stu_no; LoadData(); if (model.pub_exercise_category== "文本") { if (this.Content.Value.ToString()== "") { CommonFun.WriteAlert("作业内容不能为空"); return; } } //上传作业附件 if(model.pub_exercise_category == "附件") { stringfilename = string.Empty; //string exercisetype = "附件"; if (this.FileURL.PostedFile.ContentLength> 0) { stringTruefilename = this.FileURL.PostedFile.FileName; string exName = Truefilename.Substring(Truefilename.LastIndexOf('.')).ToLower(); if (exName != ".doc"&& exName != ".pdf"&& exName != ".xls"&& exName != ".txt"&& exName != ".rar"&& exName != ".zip") { CommonFun.WriteAlert("只能上传.doc.pdf.xls.txt.rar.zip的文件!"); return; } else { filename = DateTime.Now.ToString("yyyyMMddHHmmss") + exName; this.FileURL.PostedFile.SaveAs(Server.MapPath("~/" + ConfigurationManager.AppSettings["PubExercise"] + "/")+ filename); if (!File.Exists(Server.MapPath("~/" + ConfigurationManager.AppSettings["PubExercise"] + "/")+ filename)) { CommonFun.WriteAlert("上传失败!"); return; } } } else { CommonFun.WriteAlert("请选择作业附件!"); return; } DB_PUB_EXERCISEBE pubexmodel = new DB_PUB_EXERCISEBE(); pubexmodel.pub_exercise_id = model.pub_exercise_id; pubexmodel.pub_exercise_no = model.pub_exercise_no; pubexmodel.stu_no = model.stu_no; pubexmodel.pub_exercise_title = model.pub_exercise_title; pubexmodel.pub_exercise_category = model.pub_exercise_category; pubexmodel.pub_exercise_content = model.pub_exercise_content; pubexmodel.to_teacher = model.to_teacher; pubexmodel.is_checked = model.is_checked; //表示还没有被老师评阅过的作业 pubexmodel.pub_exercise_score =model.pub_exercise_score; pubexmodel.pub_exercsie_link = ConfigurationManager.AppSettings["PubExercise"] + "/"+ filename; if (new CGP.BLL.DB_PUB_EXERCISE().Update(pubexmodel)) { CommonFun.WriteAlert("作业修改成功!", "ExerciseView.aspx"); } else { CommonFun.WriteAlert("作业修改失败!"); } 源文件
版权所有© 帮我毕业网 并保留所有权利