可视化考试座位编排软件的开发

来源 :光盘技术 | 被引量 : 0次 | 上传用户:dzflying
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:人工手工进行排座,是杜绝考试舞弊的良方。但人工进行排座需要对考生有相当的了解,自然而然,熟知学生的辅导员是日常考试座位安排的最佳操作者。为了解决手工填写座位表的种种缺陷,我们特设计了可视化考试座位编排软件。
  关键词:考试;软件;开发
  中图分类号:TP311.11 文献标识码:A
  
  Visual Seating Arrangement System Software Development
  XU Zheng,LIU Xiang-yang,YU Yan
  (Yunyang Medical University,Hubei Shiyan 442000)
  Key words:
  
  长期以来日常考试都是手工进行:辅导员在原有的复印的规则的座位表上手工的进行排座。这种原始的方法有如下弊病:手工填写座位表为辅导员繁重的工作雪上加霜、手工填写座位表不利于修改,一旦大范围调整,只能重新填写、相似考场的排座只能重排、学校各个教室的情况并不完全相同、同一张座位表不利于非标准的教室排座、写的座位表不利于长期保存。为了解决手工填写座位表的种种缺陷,我们特设计了可视化考试座位编排软件。
  本软件主要分为三个模块:
  1 学生信息的加载
  由于本软件暂主要面对的使用者是辅导员,因此学生信息的加载仅仅需要用户将考生的花名册列表(Excel)中的姓名字段复制出来放置在文本文件中。利用简单的文件读取行字符的语句实现编写加载命令,加载姓名文件到列表控件中,得到进行分配座位考生的姓名列表
  2 教室信息数据库管理
  随着学校建设的推进,教学楼的数量和类型也在变化。为适应需要,特别设计了一个教室信息管理系统,实现了考试教室详细信息数据库的简单的添加修改等常用操作。
  3 核心部分:可视化座位的显示及排座操作
  为了表示显示表示方便,为每个桌子都专门设计了一个C++类表示:
  class CSeat: public CObject{
  public:
   BOOL IsInList(int i,CObList *pNumList); //对象是否在对象序列中
   DECLARE_SERIAL(CSeat)//DECLARE_SERIAL对象可以进行串行化输入输出
   void Serialize(CArchive& ar); //串行化保存对象
   void SetName(const CString &Name); //设置桌子对象的显示学生名称
   CString GetName();//得到开始使用桌子的学生姓名
   virtual void Draw(CDC *pDC);//在view窗口中绘出当前单个座位图
   BOOL GetIsSelected();//得到座位是否被选择考试的信息
   void SetIsSelected(BOOL IsSel);//设置此座位参与考试
   void SetColor(COLORREF color);//设置座位的线条颜色
   COLORREF GetColor();CSeat ();virtual ~CSeat ();
  private:
  static COLORREF m_fillColor;
   BOOL m_IsSelected;
   COLORREF m_Color;
   CString m_strName;};
  用户在选择相应教学楼教室后,系统开始在View窗口中初始化显示考场的原始的布局图。然后开始手工选择考试的座位,其中核心部分代码在于判断鼠标的点是否在矩形区域内
  BOOL CDrawSeatView::IsInChipRect(CPoint point, CObList *pObList, POSITION *pCurPos, BOOL *pIsSel)
  //此函数得到鼠标是否点按在座位上,同时利用参数CurPos记录搜索链表时停止的位置,
  //利用参数IsSel记录当前位置上对象的IsSelected属性,不过,以上返回值只有在鼠标点按在了元器件上时才有使用价值
   *pCurPos = NULL;
   *pIsSel = FALSE;
   POSITION pos = pObList->GetTailPosition();
   int ht = CRectTracker::hitNothing;
   CObject *pObject;
   CSeat *pSeat;
   while(pos!=NULL){ *pCurPos = pos;
   pObject = pObList->GetAt(pos);
   if (pObject->IsKindOf(RUNTIME_CLASS(CSeat))){ pSeat = (CSeat *)pObject;
   ht = pSeat->m_RectTracker.HitTest(point);
   *pIsSel = pSeat->GetIsSelected();
   if (ht != CRectTracker::hitNothing) {return TRUE;}
   else{pObList->GetPrev(pos); }}return FALSE;
  选中参与考试的座位后,可以在已经分割窗口中的另一个姓名加载窗口中选择参加考试的学生进行考场布置。当中难点在于窗口分割中的通信,
  代码如下:
  首先获得当前窗口的框架:
  CMainFrame* MainFrame=(CMainFrame*)(this->GetParent()->GetParent());
  在窗口的框架中CSplitterWnd类中获得相应视图
  CDrawSeatView* RView=(CDrawSeatView*)MainFrame->m_wndSplitter.GetPane(0,1);
其他文献
随着全民健身运动的开展,更多的人已经有意识地去关注自己的健康,寻找适合自己的健身项目,学生是一个国家、一个民族的未来,也是全民健身的基础和未来.学校体育教学对终身体
随着电力信息系统的不断发展,基于组件的电力综合自动化系统已成为现代电力信息系统领域的主角,其安全性也越来越受到人们的重视,而访问控制技术是解决安全问题的关键。因此,有必
多媒体课件的应用越来越广泛,各种比赛也越来越多,多媒体课件的科学性、教育性、技术性、艺术性成为设计中应注意的问题,也是多媒体课件质量评价体系的主要指标。
物理教学存在的"六重六轻"现象,严重阻碍着素质教育的实施和学生创新能力的培养.对此,文章提出了教师应具备的十种业务能力,对改革课堂教学应树立四种意识,创设四种情境.
含理想运算放大器电路的分析在电子技术课程中既是重点又是难点,为提高教学效果,本文通过应用Electronics Workbench(EWB)软件对电压跟随器电路进行仿真分析,将一些抽象概念
高职艺术设计专业毕业生的计算机辅助设计(CAD)专业水平和实际操作能力,成为毕业生从事高技术岗位必备的基本素质。基于课程整合的内涵与外延,分析课程整合的组织形式,并结合CAD课程教学的内容划分详细的单元教学计划,探讨课程整合的模式与具体实施过程。针对高职艺术设计专业教育的特点,从CAD课程的教学内容和教学要求、教学方法与手段、提高教学质量的措施等方面,分析探讨促进高职艺术设计专业教育CAD课程教学