基于某大学的论文系统的开发实例分析

1论文通知发布阶段

管理员发布选题通知(或者存为草稿)。发布后,老师学生管理员均可见;草稿状态仅管理员可见。

草稿状态下,文章可以被(编辑查看删除发表);发布状态下,文章可以的操作有(查看,选导结果,设置开题,上传答辩资料)and(此时不可编辑)。


确定参与人员:导师,匿名导师,学生。三者存在一个数量制约:每个导师(or 匿名导师)可以审理的学生人数假设为5个,则有5*导师数目 大于等于 学生数目 and 5*匿名导师数目 大于等于 学生数目。每个导师(匿名导师)可以审理学生数是可修改的,普适的方法应该是累加求和。


在勾选学生时,首先出来的是班级列表,点击班级列表出来该班的人员。

这里应该有2次查询:1,获取班级(可能不是所有,或许某些班不能参与这个题目的选择);2,获取某班级的满足(可以选导)条件的学生。

暂且认为这是2次带条件的getall查询 。


2选导阶段 (论文通知正式发布之后即 进入选导阶段)

在学生选导师界面,一个学生可以选3个导师(并查看相关信息),第一第二第三志愿,选完之后不可更改。(在时间顺序上,学生选完导师,导师审核查看。)

在老师界面,可以看到所有选了自己的学生信息(列表形式),但是他只能pass 5个,并且可以看到每个学生对他是第几志愿。

【查看过程的问题】

问题来了,如果老师一张表,学生一张表。从学生表里面一条信息能读出来他选的3个导师,假设有3个字段分别是(第一志愿,第二志愿,第三志愿),里面是导师的唯一识别码(假设是工号)。那么如何查出来所有选了A导师的学生?查3次数据库吗?

SELECT  *  FROM  tablename  WHERE  第一志愿=A导师的工号  AND  state = 1  id DESC

这样写三遍肯定太慢了。


目前想到一个解决办法——可以多一张表。学生选导信息表,和原来的学生信息表有相似但是主键id不一样。

选导信息表,id主键,自增。字段可以有

userinfo (就一些学生信息) ,第几志愿,哪个导师,是否通过。就 一个学生可以有3条数据在里面,学生查看自己的123志愿可以用二维数组输出,老师看选了自己的学生也很方便。算是牺牲空间换取算法复杂度吧- -

【审核过程的问题】

A. 导师审核的问题。三个导师均不通过,则进入后台管理员审核阶段;有一个通过,即选择该导师;多个通过,根据志愿优先级选择靠前的导师。

B.后台管理员审核。直接给他选个导师(or让他重新选导师,导师再重新审核?),因为在论文通知阶段的人员限制上,就隐藏了可以【调剂】,因为肯定是够位子的,每个人都能坐上。

C.系统自动审核。超过选导时间之后,开始自动审核(机制目前不明)。


3选题审核 (选导结束之后进入选题阶段)

【11-13添加】

【选的题目应该是由导师发布,在选导之后导师可以发布题目,一个题目下设置一定数量的学生。这意味着学生在选导结束前都是不知道自己要做什么的】

选题时间范围:范围内,学生可以提交;超出截止日期变为不可提交,同时,导师开始审核题目

审题流程:

A (学生提交选题)学生在提交选题的时间范围内,提交标题加附件,可编辑

B(导师查看选题)学生提交时间结束,导师查看他带的学生所提交的文件(支持下载)

C (导师审核)通过则进入D,不通过则返回A(重新提交)

D(管理员审核)通过则整个选题阶段通过,不通过则返回A(重新提交)


整个流程就是一个顺序结构加上一个是否判断

细节部分,应该就是

学生提交完选题,自己应该能看到一个状态按钮(等待导师审核,导师审核通过(是否需要一个等待管理员审核?),导师审核不通过,选题阶段通过)

导师处理选题,状态按钮有(您已通过该选题,审核不通过等待再次提交,等待管理员通过,该选题您未审核)

管理员处理页面(未审核 ,审核通过,审核不通过)

权限越高,状态按钮越少- -官儿大还是好啊= =


4开题答辩(选题审核通过之后进入开题答辩阶段)

开题答辩流程和选题流程类似。

管理员设置开题 (通知说明内容+开题报告模板)通知内容应该有(提交时间范围,答辩时间地点人员)

开题答辩流程:

A (学生提交开题答辩申请)学生在一定的时间范围内,提交开题报告+答辩PPT (是否可以重复提交更新?答辩PPT,答辩PPT2.0,答辩PPT最终版,答辩PPT绝对不改版)

B(导师查看资料)学生提交时间结束,导师查看他带的学生所提交的文件(支持下载)

C (导师审核)通过则进入D,不通过则返回A(重新提交)

D(管理员审核)通过则进入E,不通过则返回A(重新提交)

E(开题答辩并导入结果)系统自动审核答辩结果,通过则开题答辩流程通过,不通过则返回A(重新提交)


这里的状态按钮就不再重复了。对于步骤E,应该是录入一个定量的数据,例如分数。大于等于60则为通过,小于60则不通过。也有可能是就一个选择框,批量操作过掉?

5资格审查(初审)【开题审核结果通过之后进入本阶段】

资格审核是需要多项均满足才pass ,or  die~

学分审核(导入教务信息然后对学分进行分析审核)感觉这个要做的事情很多,导入教务信息,对某个学生本科期间的全部pass的科目列出,获得该科目的学分值,求和。

大于一定分数则过,反之则不过

还有巴拉巴拉一系列审核阶段


此处,管理员可以直接将某学生的状态信息改为pass (直接设置审核结果),这个是学生审核实在过不了的处理方法(or 走后门的处理方法?)


6预答辩 (资格审核pass之后进入本阶段)

流程和开题答辩一致:

管理员上传答辩材料 (通知说明内容+论文模板)通知内容应该有(提交时间范围,答辩时间地点人员)

开题答辩流程:

A (学生提交预答辩申请)学生在一定的时间范围内,提交论文+答辩PPT (是否可以重复提交更新?论文,论文修改版,论文修改版plus,论文再改亲妈爆炸版)

B(导师查看资料)学生提交时间结束,导师查看他带的学生所提交的文件(支持下载)

C (导师审核)通过则进入D,不通过则返回A(重新提交)

D(管理员审核)通过则进入E,不通过则返回A(重新提交)

E(预答辩并导入结果【线下收集】)系统自动审核答辩结果,通过则预答辩流程通过,不通过则返回A(重新提交)


这里存在了类似的控制结构,是否可以写一个模板: 有些步骤 是固定的,学生提交,导师查看,导师审核,管理员审核  。这是一个单输入单输出的系统,输入信号是学生提交的信息,输出结果是 pass or die 一个二进制结果。(if )线下结果审核 ,带这个的话,只是构成一个 与门,对,我可以让这个与门存在,在没有线下结果审核的步骤情况下,给1就行,不影响输入输出结果。


7查重&盲审 (预答辩通过后,进入本阶段)(反正是别的学校老师确认就这样,那我也就不废话了)

(这个阶段和盲审相联系,并且存在逻辑漏洞,可以钻空子,有点闹心,心疼我昂)

流程如下:


学生提交论文,进入查重阶段(系统搞定)

查重结果分为3类:
A  重复率> 30%  直接拿回去修改,再次提交,再来查重

B  20%<=重复率<=30%  可以进入下一步,但是,该类学生打上一个flage ,需要二次查重

C  重复率<20% 进入下一阶段


专家分数导入(线下答辩结果收集)(这个属于盲审)

if (每个专家给分均大于等于60)

{进入下一阶段;}

else

{重新进入查重阶段 }


判断学生是否需要二次查重

不要二次查重即可进入资格复审阶段(本阶段结束)

下面漏洞来了~~~~~如果需要进行二次查重,此时你要重新提交论文,重复率小于20%则过,大于等于20%则再改。 【这个只针对,需要二次查重的人群】

这里论文存在2个版本:专家分数版,二次查重版。

在专家分数版通过之后,我就可以随便改~改出一个能通过二次查重(<20%)的版本即可!因为专家给的分数只是针对你的《论文.专家分数版》


8资格审查(复审) (查重&盲审通过即可进入本阶段)

步骤和 5资格审查(初审) 一致


9毕业答辩 (资格复审通过则进入本阶段)

和开题答辩,预答辩步骤一致!

固定步骤,学生提交,导师查看,导师审核,管理员审核 ,线下结果导入&审核 (任一审核不过则进入第一步)


这里存在一个漏洞就是,又需要提交一次论文!上次为了过查重,论文早已凌乱不堪!终于可以改回来了思密达!


答辩完成,END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值