毕业论文管理系统设计.doc
兰 州 商 学 院 长 青 学 院本科生毕业论文(设计)论文(设计)题目: 毕业论文管理系统的设计与实现 系 别: 计算机科学系 专 业 (方 向): 计算机科学与技术 年 级、 班: 2008级计算机科学与技术班 学 生 姓 名: 赵 帆 指 导 教 师: 张旭东 2012 年 5 月 8 日毕业论文管理系统的设计与实现摘要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着重要作用。作为计算机应用的一部分,使用计算机对学生毕业论文信息进行管理,有手工管理所无法比拟的优点。提高毕业论文管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。同时,运用先进的信息技术,开发高效综合毕业论文管理系统,是提高毕业论文管理综合水平的有力措施。毕业论文管理系统是提升毕业论文管理效率的软件。针对毕业论文管理工作的全过程,从毕业论文工作的实际出发,解决工作中的关键性问题,并充分利用计算机高效的功能,实现毕业论文管理工作全过程的计算机管理,帮助具体管理人员从复杂繁琐工作中解放出来。关键词 毕业论文管理 管理系统 辅助管理 软件开发ABSTRACTWith the continuous improvement of the science and technology, computer science maturing, its powerful features for people to a profound understanding of it has entered into various areas of human society and play an important role. As part of the computer application, use the computer to manage information about students thesis, there is the incomparable advantages of manual management. The main way to improve the thesis management level is to update the manager's ideas, and improving the scientific understanding of the management activities. At the same time, using of advanced information technology, development of efficient and comprehensive thesis management system which is an effective measure to improve the thesis management level. Thesis Management System software is a software what to enhance the efficiency of thesis management.From the reality of the thesis work for the whole process of the thesis work to address the key issues in the work, and take advantage of the efficient function of computer, dissertation management of the whole process of computer management, from the complex to help the specific management the tedious task of liberation.Key Words Thesis Management management system Assist management software develop目录一、前言(1)二、需求分析(2)(一)系统需求(2)1、硬件需求(2)2、软件需求(2)(二)功能需求(2)1、权限设置(3)2、功能设置(3)三、总体设计(4)(一)基本设计概念(4)1、分层架构简介(4)2、Linq To SQL简介(5)3、Lambda表达式简介(5)(二)系统架构图(6)(三)数据库结构设计(6)1、数据库设计(7)2、数据库需求分析(7)3、数据库逻辑结构详细设计(7)4、LINQ to SQL 对象模型(13)四、系统详细设计(14)(一)实现详细过程(14)1、数据模型层设计与实现(14)2、数据访问层设计与实现(14)3、业务逻辑层设计与实现(16)4、工厂类的设计与实现(16)5、用户界面层设计与实现(19)五、系统测试(21)(一)系统测试的原则(21)(二)系统测试的方法(22)1、安装测试(Installing Testing)(22)2、白盒测试(White Box Testing)(22)3、黑盒测试(Black Box Testing)(23)(三)系统测试的步骤(23)1、单元测试(23)2、组装测试(24)3、确认测试(24)4、系统测试(24)(四)系统测试用例(24)六、研究结论与未来研究(25)参考文献(27)毕业论文管理系统的设计与实现一、前言毕业论文管理系统是一个对高等教育单位有着重大作用的信息管理系统,它的内容对于学校的管理者来说都是至关重要的,所以毕业论文管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理毕业论文相关文件,这种管理方式存在着许多缺点,如效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着重要作用。作为计算机应用的一部分,使用计算机对学生毕业论文信息进行管理,有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点能极大地提高毕业论文管理的效率,也使教育部门的科学化、正规化管理,与世界接轨的重要条件。随着计算机技术的飞速发展和高等教育体制改革的不断深入,传统的毕业论文管理方法、手段以及工作效率已不适应新的发展需求,无法很好地完成毕业论文的管理工作。提高毕业论文管理水平的主要途径是更新管理者的思想,增强对管理活动的科学认识。同时,运用先进的信息技术,开发高效综合毕业论文管理系统,是提高毕业论文管理综合水平的有力措施。毕业论文管理系统是提升毕业论文管理效率的软件。针对毕业论文管理工作的全过程,从毕业论文工作的实际出发,解决工作中的关键性问题,并充分利用计算机高效的功能,实现毕业论文管理工作全过程的计算机管理,帮助具体管理人员从复杂繁琐工作中解放出来。二、需求分析(一)系统需求系统需求分析是系统开发的第一阶段,其目标就是明确系统开发的目的和用户对于系统的具体需求,并提出新系统的逻辑方案。1、硬件需求(1)CPUCPU频率1GMHz以上(2)内存128MB或更高(建议256MB或更高)(3)硬盘安装需要100MB的硬盘空间,运行需要50MB空余空间(4)显示器建议使用 1024 x 768屏幕分辨率或更高2、软件需求(1)操作系统Microsoft Windows XP 或更高版本(2)数据库Microsoft SQL Server 2008 EXPRESS或更高版本(二)功能需求在这一阶段所要做的工作就是把用户的需求及其解决方法确定下来。其内容包括:设计者对于现在系统的概况、用户对新系统在功能上的要求等。1、权限设置学生权限设置:学生根据学生姓名及密码登录系统,只允许学生查看修改自己相关的各表信息。教师权限设置:拥有系统完整功能权限,教师可以管理教师信息,学生信息,论文信息,查看、修改学生相关的各表信息,查看统计信息、推荐优秀论文(设计)及优秀指导教师,填写、修改论文工作总结。2、功能设置本系统实现学生基本信息管理、教师基本信息管理、论文基本信息管理、按照学生从选题开始到完成答辩的过程,实现相关功能的填写并生成相应的报表。教师基本信息管理:模块中实现对教师基本信息的录入、删除、打印、导出等功能。学生基本信息管理:模块中实现对学生基本信息的录入、删除、打印、导出等功能。论文基本信息管理:模块中实现对论文基本信息的录入、删除、打印、导出等功能。选题审批模块:实现对学生选题审批表信息的录入、修改、打印、导出等功能。开题报告模块:实现对学生开题报告表信息的录入、修改、打印、导出等功能。指导教师评阅意见模块:实现对学生指导教师评阅意见表信息的录入、修改、打印、导出等功能。评阅教师评阅意见模块:实现对学生评阅教师评阅意见表信息的录入、修改、打印、导出等功能。答辩记录模块:实现对学生答辩记录表信息的录入、修改、打印、导出等功能。实习鉴定模块:实现对学生实习鉴定表信息的录入、修改、打印、导出等功能。信息统计模块:根据所选专业及年级,检索相应的论文选题汇总信息、论文成绩汇总信息,实现打印、导出等相关功能。论文推优模块:实现对优秀论文推荐信息的录入、修改、打印、导出等功能。工作总结模块:实现对院系论文工作总结情况的录入、修改、打印、导出等功能。三、总体设计(一)基本设计概念1、分层架构简介随着面向对象开发方式的崛起和广泛应用,企业应用开发从二层结构逐步演进到了三层结构。表现层实现用户界面、在领域层实现业务逻辑、在数据源层存取数据。如表1所示。表1 职能表层次职责表现层显示信息、处理用户请求、命令行调用等业务逻辑层业务逻辑,系统商业价值部分数据访问层主要与数据库,存储文件等,保存系统产生的信息随着ORM(对象关系映射)的广泛使用,在实际的软件架构中,根据映射工具的需要出现了一个专门Model模型层,或者不能模型单独叫一层,它其实贯穿三层的数据载体(值对象),本身不包含太多的业务逻辑(少量或没有),形象的说只简单的承载数据在层与层之间的传输的交通工具。2、Linq To SQL简介语言集成查询 (LINQ) 是 Visual Studio 2008 中引入的一组功能,可为 C# 和 Visual Basic 语言语法提供强大的查询功能。LINQ 引入了标准、易学的数据查询和更新模式,该技术可以扩展为几乎支持任何类型的数据存储。Visual Studio 包含 LINQ 提供程序的程序集,借助这些程序集,就能将 LINQ 用于 .NET Framework 集合、SQL Server 数据库、ADO.NET 数据集和 XML 文档。3、Lambda表达式简介所有 Lambda 表达式都使用 Lambda 运算符 =>,该运算符读为“goes to”。该 Lambda 运算符的左边是输入参数(如果有),右边包含表达式或语句块。Lambda 表达式 x => x * x 读作“x goes to x times x”。Lambda 在基于方法的 LINQ 查询中用作标准查询运算符方法(如 Where)的参数。使用基于方法的语法在 Enumerable 类中调用 Where 方法时(像在 LINQ to Objects 和 LINQ to XML 中那样),参数是委托类型System.Func<T, TResult>。使用 Lambda 表达式创建委托最为方便。例如,当您在System.Linq.Queryable 类中调用相同的方法时(像在 LINQ to SQL 中那样),则参数类型是System.Linq.Expressions.Expression<Func>,其中 Func 是包含至多十六个输入参数的任何 Func 委托。同样,Lambda 表达式只是一种用于构造表达式树的非常简练的方式。尽管事实上通过 Lambda 创建的对象的类型是不同的,但 Lambda 使得 Where 调用看起来类似。(二)系统架构图如图1系统架构图所示,是根据程序集生成的关系图,从图中可以看出数据访问层指访问数据模型。表现层通过调用业务逻辑层中的相关函数简介访问数据层中的数据。以实现对数据的操作。图1 系统架构图(三)数据库结构设计数据库在一个信息管理系统中占有非常重要的地位,数据库设计的好坏直接对应用系统的效率以及实现的效果产生影响。1、数据库设计合理的数据库结构设计可以提高数据储存效率,保证数据的完整性和一致性。设计数据库系统时应该首先充分了解用户各个方面的需求,包括现有的以及将来可能增加的需求。2、数据库需求分析进行整个数据库设计必须准确了解与分析用户需求(包括数据和处理)。用户需求分析是整个设计过程的基础,是最困难、最耗费时间的一步。作为最基本的需求分析做得是否充分与准确,决定了在其构建数据库的速度和质量。用户的需求具体体现在各种信息的提供、存储、更新和查询方面,这就要求数据库结构能充分满足各种信息的输出与输入。收集基本数据、数据结构及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。3、数据库逻辑结构详细设计概念结构是独立于任何一种数据模型的信息结构。逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构。数据库表设计如表2-19所示。教师表:用于系统保存教师基本信息。表结构如表2所示。表2 教师表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否教师ID号系统生成tNamenvarchar8是否否教师姓名tPasswordnvarchar50是否否教师密码tPhonenvarchar11是否否教师手机号tAddressnvarchar100是否否教师家庭住址tEmailnvarchar50是否否保存教师邮件地址tTitleIDuniqueidentifier32是否是教师职称IDtEducationIDuniqueidentifier32是否是教师学历ID教师职称表:用于系统保存教师可选职称信息。表结构如表3所示。表3 教师职称表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否教师职称ID号系统生成Titlenvarchar50是否否教师职称 教师学历表:用于系统保存教师可选学历信息。表结构如表4所示。表4 教师学历表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否教师学历ID号系统生成Namenvarchar50是否否教师学历学生表:用于系统保存学生基本信息。表结构如表5所示。表5 学生表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否学生ID号系统生成sNamenvarchar8是否否学生姓名sPasswordnvarchar50是否否学生密码sNumbernvarchar50是否否学生学号Sexnvarchar2是否否学生性别DepartmentIDuniqueidentifier50是否是学生所属院系IDProfessionIDuniqueidentifier32是否是学生所属专业IDGradeIDuniqueidentifier32是否是学生所在年级IDClassIDuniqueidentifier32是否是学生所在班级IDTeacherIDuniqueidentifier32是否是学生的指导教师IDThesisIDuniqueidentifier32是否是学生的论文题目ID院系表:用于系统保存学生可选院系信息。表结构如表6所示。表6 院系表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否院系ID号系统生成Namenvarchar20是否否院系名称专业表:用于系统保存学生可选专业信息。表结构如表7所示。表7 专业表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否专业ID号系统生成Namenvarchar20是否否专业名称DepartmentIDuniqueidentifier32是否是院系ID年级表:用于系统保存学生可选年级信息。表结构如表8所示。表8 年级表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否年级ID号系统生成Namenvarchar20是否否年级名称全称Simplenvarchar4是否否届别简称ProfessionIDuniqueidentifier32是否是专业ID班级表:用于系统保存学生可选班级信息。表结构如表9所示。表9 班级表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否班级ID号系统生成Namenvarchar20是否否班级名称GradeIDuniqueidentifier32是否是年级ID论文信息表:用于系统保存可选论文的基本信息。表结构如表10所示。表10 论文信息表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否论文ID号系统生成Titlenvarchar50是否否论文题目TitleSourceIDuniqueidentifier32是否是题目来源IDInstructionTeacherIDuniqueidentifier32是否是指导教师IDReviewTeacherIDuniqueidentifier32是否是评阅教师IDFundsSourcenvarchar50是否否资金来源StudentIDuniqueidentifier32是否是学生ID题目来源表:用于系统保存论文题目来源信息。表结构如表11所示。表11 题目来源表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否题目来源ID号系统生成Codenvarchar1是否否题目来源代码DescriptionnvarcharMax是否否题目来源描述选题审批表:用于系统保存学生选题审批信息。表结构如表12所示。表12 选题审批表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否选题审批表ID号系统生成ContextnvarcharMax是否否内容概要LiteraturenvarcharMax是否否查阅的文献资料OpenReportbit1是否否开题报告Documentbit1是否否文献综述Internshipbit1是否否实习记录Instructebit1是否否设计说明OthernvarcharMax是否否其他BeginDatedate3是否否开始日期CompleteDatedate3是否否完成日期开题报告表:用于系统保存学生开题报告信息。表结构如表13所示。表13 开题报告表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否开题报告ID号系统生成BasisnvarcharMax是否否立题依据TargetnvarcharMax是否否研究的主要内容MethodnvarcharMax是否否研究方法、步骤ProgressnvarcharMax是否否进度安排ReferencenvarcharMax是否否参考文献指导教师评阅意见表:用于系统保存指导教师评阅信息。表结构如表14所示。表14 指导教师评阅意见表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否指导教师评阅意见表ID号系统生成Attitudeint4是否否工作量和工作态度Surveyint4是否否调查与资料查新Designint4是否否研究方案设计Abilityint4是否否分析解决问题能力Qualityint4是否否论文质量Innovationint4是否否创新TotalScoreint4是否否总成绩评阅教师评阅意见表:用于系统保存评阅教师评阅信息。表结构如表15所示。表15 评阅教师评阅意见表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否评阅教师评阅意见表ID号系统生成Topicint4是否否选题Surveyint4是否否综述材料调查论证Demonstrateint4是否否设计、推导与论证Qualityint4是否否论文质量Innovationint4是否否创新TotalScoreint4是否否总成绩答辩记录表:用于系统保存学生答辩信息。表结构如表16所示。表16 答辩记录表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否答辩记录表ID号系统生成CompleteDatedate3是否否完成时间Locationnvarchar50是否否答辩地点ReplyDatedate3是否否答辩时间SummarynvarcharMax是否否答辩简要情况Contentsint4是否否报告内容Processint4是否否报告过程ReplySocreint4是否否答辩Innovationint4是否否创新TotalScoreint4是否否总成绩Leadernvarchar8是否否组长Member1nvarchar8是否否组员1Member2nvarchar8是否否组员2Member3nvarchar8是否否组员3Member4nvarchar8是否否组员4Member5nvarchar8是否否组员5Member6nvarchar8是否否组员6Member7nvarchar8是否否组员7Member8nvarchar8是否否组员8Assistant1nvarchar8是否否秘书1Assistant2nvarchar8是否否秘书2实习鉴定表:用于系统保存学生实习鉴定信息。表结构如表17所示。表17 实习鉴定表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否实习鉴定表ID号系统生成TeacherIDuniqueidentifier32是否是第二位指导教师IDLocationnvarchar50是否否实习地点Datedate3是否否实习日期OpinionnvarcharMax是否否毕业实习鉴定意见论文推优表:用于系统保存学生论文推优信息。表结构如表18所示。表18 论文推优表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否论文推优表ID号系统生成OpinionnvarcharMax是否否推荐人意见工作总结表:用于系统保存院系工作总结信息。表结构如表19所示。表19 工作总结表字段名数据类型数据长度是否允许为空是否主键是否外键描述备注IDuniqueidentifier32否是否工作总结表ID号系统生成DecriptionnvarcharMax是否否工作小结4、LINQ to SQL 对象模型在 LINQ to SQL 中,用开发人员所用的编程语言表示的对象模型映射到关系数据库的数据模型。然后就会按照对象模型来执行对数据的操作。在这种情况下,无需向数据库发出数据库命令(例如,INSERT),而是在对象模型中更改值和执行方法。当需要查询数据库或向其发送更改时,LINQ to SQL 会将您的请求转换成正确的 SQL 命令,然后将这些命令发送到数据库。LINQ to SQL与数据库调用关系如图2所示。图2 LINQ to SQL与数据库调用关系本系统的对象关系图如图3所示。图3 Linq To SQL 对象关系视图四、系统详细设计(一)实现详细过程本系统学生操作模块功能实现方法类似,以选题审批功能模块设计为例进行详细描述:1、数据模型层设计与实现通过建立Linq To Sql类,数据模型Approval类由系统自动生成。实现代码见附录1。2、数据访问层设计与实现数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,就是实现对数据表的Select,Insert,Update,Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。namespace TMIS.DAL public class Approval private Model.ThesisDB db = new Model.ThesisDB(); #region 生成新的审批表信息 public void Insert(Model.Approval approval) db.Approval.InsertOnSubmit(approval); db.SubmitChanges(); #endregion #region 更新审批表信息 public void Update(Model.Approval approval) Model.Approval app = db.Approval.FirstOrDefault(e => e.ID = approval.ID); app.Context = approval.Context; app.Literature = approval.Literature; app.OpenReport = approval.OpenReport; app.Document = approval.Document; app.Internship = approval.Internship; app.Instructe = app.Instructe; app.Other = approval.Other; app.BeginDate = approval.BeginDate; app.CompleteDate = approval.CompleteDate; db.SubmitChanges(); #endregion / <summary> / 获取指定ID号的选题审批表 / </summary> / <param name="guid"></param> public Model.Approval Get(Guid guid) Model.Approval app=db.Approval.FirstOrDefault(e => e.ID = guid); return app; 3、业务逻辑层设计与实现用于做一些有效性验证的工作,以更好的保证程序运行的健壮性。如完成数据添加、修改和查询业务等;不允许指定的文本框中输入空字符串,数据格式是否正确以及数据类型验证;用户权限的合法性判断等;通过以上的诸多判断以决定是否将操作继续向后传递,尽量保证程序的正常运行。namespace TMIS.BLL public class Approval / <summary> / 更新审批表信息 / </summary> / <param name="approval"></param> public void Update(Model.Approval approval) DAL.Approval dal = DALFactory.DALFactory.CreateApproval(); dal.Update(approval); / <summary> / 获取指定ID号的选题审批表 / </summary> / <param name="guid"></param> public Model.Approval Get(Guid guid) DAL.Approval dal = DALFactory.DALFactory.CreateApproval(); return dal.Get(guid); 4、工厂类的设计与实现工厂类的定义:专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或接口。简单工厂模式又称为静态工厂方法(Static Factory Met