APP下载

《C++程序设计》项目式教学信息系统设计

2019-09-06王耀飞

现代计算机 2019年22期
关键词:程序设计功能班级

王耀飞

(内蒙古财经大学,呼和浩特 010070)

0 引言

《C++程序设计》是在《C 语言程序设计》课程的基础上,增加了封装、继承、多态等特性的计算机类学生的专业基础课,旨在培养学生在程序设计过程中的面向对象思维。《C++程序设计》课程归根结底是一门计算机编程语言课程,语言学习的优劣取决于是否经过大量的实践。现有的课程教材中虽有一部分应用实例[1-2],但大多缺乏应用场景,且代码规模不足以满足辅助课程学习的程度,学生难以在小规模代码中认识到面向对象程序设计的优势。因此,项目式教学在《C++程序设计》课程[3]中的应用有重要意义。

项目式教学是利用设计好的涵盖丰富知识点的教学项目库,分配给学生组队完成,在完成项目的过程中充分理解所学理论知识,提高团队合作能力。项目式教学[4]适用于《C++程序设计》的教学过程有其天然优势。具体表现在:

(1)适用性。C++语言抽象、封装、继承和多态等特征,需要通过完成某个具体的中小型项目,才能体会到这种面向对象语言的独特优势,项目式教学中所使用的中小型软件项目,能够强化学生对理论知识的理解,培养程序设计兴趣;

(2)高效性。程序设计语言的学习不仅仅是学习语言的基础语法,更在于通过不断实践来反作用于基础语法的学习,学生通过教学项目的学习,能够使语言的学习更加高效;

(3)可执行性。一般高校每个学期的教学时间大约17 周,可利用前12 周进行理论讲解,中间穿插一些课本程序演示,在后面的5 周集中进入项目阶段,巩固所学理论知识。

《C++程序设计》课程项目式教学过程的项目阶段包括项目发布、学生分组、组长选取、项目提交、项目评分等阶段,而学生最终所提交的文档包含需求分析、概要设计、详细设计、软件代码和帮助文档等,如果教师通过人工管理这个项目开发过程,效率不高且容易丢失文件;如果采用一些开源的项目管理工具,又不能很好地契合项目式教学的需要。因此,有必要设计一个《C++程序设计》项目式教学信息系统来辅助教师教学。

1 系统需求

1.1 功能模块

《C++程序设计》项目式教学信息系统包含三个主要模块,分别是用户管理模块、项目管理模块和班级管理模块。其中用户管理模块包含学生管理和教师管理,分别完成学生和教师用户的增、删、改、查等功能;项目管理模块包含项目库管理、项目选择管理、项目文档管理和项目评分管理,完成具体教学项目的增、删、改、查等功能;班级管理模块包含分组管理和班级成员管理,完成班级、分组和班级成员的增、删、改、查功能。具体功能模块图如图1 所示。

图1 项目式教学信息系统功能模块图

1.2 功能描述

该系统拥有学生、教师和管理员三种角色,三种角色在系统中的功能各不相同。

(1)学生功能

学生用户功能包括注册学生用户;查询/修改个人信息;与其他学生用户进行组队;组队后通过团队选择将要完成的项目;在项目的每个阶段提交所需文档;项目完成后,查询个人成绩。具体用例图如图2 所示。

图2 学生用户功能用例图

(2)教师功能

超声心动图检查纠正初步诊断:临床误诊主动脉夹层动脉瘤为急性心肌梗死2例,均经动脉造影证实;肥厚型心肌病、急性肺动脉栓塞误诊为急性心肌梗死各1例,1例急性心肌梗死被误诊为急性肺动脉栓塞。

教师用户功能包括修改个人信息;班级创建、查询、修改和删除以及班级学生的加入与删除;班级队伍查询与修改;教学项目发布、查询、修改和删除;项目流程制定,包括项目开始时间、中间节点及项目截至日期设定;学生项目成绩评定。具体用例图如图3 所示。

图3 教师用户功能用例图

(3)管理员功能

管理员功能包括教师用户的创建;所有系统用户的增加、查询、修改和删除;所有班级的增加、查询、修改和删除;教师权限分配;日志、备份等系统管理。具体用例图如图4 所示。

图4 管理员功能用例图

2 系统设计与实现

2.1 系统框架设计

项目式教学信息系统框架如图5 所示。系统从逻辑层面分为存储层、业务层和用户层三个层次。

图5 项目式教学信息系统框架图

用户层是不同角色用户与系统的互动接口,用户在登录后,系统根据登录的用户名和密码确定用户角色,并根据不同角色进入不同用户界面,执行不同功能;业务层是系统的核心,连接着用户层与存储层,根据用户的不同输入指令完成相应的操作;存储层作为系统的数据中心,承载着系统所有的数据服务,用户层录入的项目信息、用户信息等均存储于此,当用户层需要查询数据时,业务层在存储层查询信息并返回给用户层。

2.2 数据库设计

系统数据库包含教师、成绩、学生、班级、组和项目6 个实体,为了更专注于实体之间的联系,因此对于学生、教师等实体中包含的性别、年龄、职称等信息未在E-R 图中体现。其E-R 简图如图6 所示。

图6 项目式教学信息系统E-R简图

根据图6 的E-R 图,可知教师与学生、班级及成绩均是一对多的关系;班级与学生,班级与组是一对多的关系;组与学生是一对多的关系,组与项目是一对一的关系;成绩与学生是一对一的关系。具体的数据库表设计如表1-表6 所示。

表1 学生表

表2 教师表

表2 教师表仅保存教师最基础的信息,其与系统其他实体的联系均体现在其他表中。

表3 班级表

表3 班级表保存班级基本信息,在这个系统中,实际上班级表可有可无,但为了方便期末统计班级成绩,计算班级平均分,因此引入班级实体表。

表4 组表

表4 组表中grp_leader 字段实际上就是学生表中的stu_id。

表5 项目表

表5 项目表中,项目信息包括项目功能需求、知识点、建议组队人数等信息。

表6 成绩表

表6 成绩表中,加入了录成绩教师字段,是为了进行权限控制,只有教授该学生课程的教师才有权限录入该学生成绩。

2.3 系统实现

根据系统设计,考虑开发效率、跨平台、开源、性能优越等特性,采用PHP+Apache+MySQL 进行系统实现[5]。学生组队成功后,组长选择项目界面如图7 所示,在此,学生可以查看项目详情并选择具体的项目,项目名称后的星号代表教师对项目的预估难度。

图7 学生选择项目

学生根据项目时间进度完成项目并上传作品,若过了截止日期未提交作品,则本次作业为0 分。具体的上传界面如图8 所示。

图8 作品上传界面

3 结语

本文设计并实现了《C++程序设计》课程项目式教学信息系统,在实际应用中,该系统大大减轻了教师在项目式教学中的项目分发、项目中间环节文档收集、项目评分等环节中的工作量,有序、高效地完成了项目式教学过程中的各个环节。系统的后续改进方面,应考虑学生参与项目库建设,在系统中引入更多学生感兴趣的教学项目;另外,项目难度应该在系统运行过程中根据项目完成情况进行自适应动态调整,这样优化后的项目难度会进一步提升学生学习效率。

猜你喜欢

程序设计功能班级
基于SolidWorks和VBA的电机阶梯轴建模程序设计
99Tcm-MIBI显像在甲状旁腺功能亢进术前诊断中的应用价值
基于OBE的Java程序设计个性化教学研究
项目化教学在Python程序设计课程中的应用
班级“无课日”
基层弄虚作假的“新功能取向”
班级“四小怪”
把党史的功能作用发挥得更加充分有效
医学专业“Python程序设计”课程教学改革总结与思考
班级英雄