北理工2013《Java程序设计》课程设计要求

北京理工大学计算机学院《Java语言程序设计》


课程设计要求(2013~2014学年上学期)


一、课程设计选题及要求

本课程设计采用开放式选题方式,同学们可以从分散于教师课件所列之开发项目中选一个,或者是依据自己兴趣和想法自行选择课程设计课题,使用Java领域的技术完成一个功能相对完整且具有一定复杂度的Java应用,可以是Java桌面应用,Web应用或是Android应用。

具体要求如下:

(1)你所完成的Java应用应该是“有用的”,能解决某个实际问题,或者是“好玩的”,比如你写了一个游戏,最好是“有创新的”。如果其中有能让别人眼前一亮的东西,则必然高分。

(2)你所完成的Java应用应该是一个“完整的”并“经过测试”的程序,可编译,可运行,可部署。

(3)程序应该使用(但不限于)Java编程语言开发,可以集成其它的编程语言,但要以Java写的为主体。

(4)你写的Java应用应该具有一定的规模和复杂度,最直观的衡量指标就是代码行数,比如手写代码仅两三百行的程序就太简单了,另一衡量指标是你写程序的架构,比如把所有代码都塞到窗体中就是个糟糕的设计方案。

(5)你应该编写完整详细的文档(参看后面提供的代码模板),尽量展示出你的程序的优点和特点。由于作业较多,教师没办法浏览所有学生的程序,因此文档写得如何,以及是否可以很方便地运行和部署就很重要,它是教师判分的主要依据。

(6)你可以参考互联网上找到的或己出版技术书籍中的相关实例及源码,但不能原封不动的“拿来”,你至少应该先“看懂”,接着“修改”/“组合”,在基础上构建出你自己的应用。这是必须完成的工作,另外,应该在文档中注明你自己完成的工作,以及你所使用的他人成果的列表。如果确认抄袭,则课程设计成绩为0分,这很丢人的。

(7)为确保每个同学能得到比较充分的训练,本门课程的课程设计任务强制要求必须由单人两人结对开发完成,不允许出现三人及以上合作开发。团队开发的训练放到下学期的《面向对象方法与技术》课程再进行。

二、成绩判定方式:

本文档所描述之程序设计课题,是评定《Java语言程序设计》这门课学生平时成绩的依据。

《Java程序设计》课程成绩评定规则:

(1) 课程设计:40%

(2) 期末开卷考试:60%

三、程序与文档的提交:


1 提交内容

(1) 可以编译通过的Java源码(以Eclipse项目的方式提交)

(2) 可以执行的.class文件、Jar文件或.apk安装包。

(3) 一个详细的开发文件,按照提供的文档模板编写。

2 提交方法

将所有文件压缩打包,格式为:

姓名_学号_班级.rar(或.zip)

然后发送到邮箱:[email protected],如压缩包大于20M,请使用移动硬盘直接到办公室交给教师。

因学生人数较多,为避免邮件丢失或教师忙中出错,给成绩评定带来麻烦,请大家尽可能地将多位同学的作业打包到同一个文件中集中交给教师。

开发文档需要一份纸质打印版,可直接送到教师办公室。

文档中务必写清楚姓名、学号、班别及联系方式!

不要重复提交新版本。教师收到的即视为最终版本,不理会版本更新请求。

课程设计提交时间:

       第16教学周周日(2013年12月23日截止),逾期不再接收作业。


附:课程设计文档模板

注:

此模板为参考模板,同学们可以在此基础上定制自己的文档。

 

北京理工大学计算机学院

《Java程序设计》课程设计模板

 

班级___________学号_____________姓名______________

 

1 程序的运行环境、安装步骤

         (1)运行环境:例如JDK  1.7,MySQL 5.6

         (2)程序的组成部份:指可以运行的程序包容哪几个文件,比如有几个jar文件,是否需要其他的支持文件(比如第3方的组件库)等

         (3)程序部署与安装步骤:如何在一台“干净”的计算机上运行你的程序?

         示例:

         1) 安装JRE 1.7和MySQL

         2)将程序jar文件复制到计算机上

         3)在Windows资源管理器中双击XXX

         4)运行脚本文件XXXX

         5)……

2 程序开发平台

         (1)代码行数:XXXX

         (2)开发环境:Eclipsefor Java Developer 4.2+ADT 20.0.3


3 程序功能说明:

         给出屏幕截图或UML用例图,底下给出文字说明。

4 程序算法说明及面向对象实现技术方案

(1)对用到的算法的说明,简要介绍其算法步骤、时间空间复杂度等

(2)数据结构和算法的面向对象实现

  • 程序中设计了哪几个类,类之间有何关系:继承、组合、实现某接口……
  • 你将这些类划分成了多少个包?
  • 你的程序包容几个jar包(或其他组件)?
  •  ……

推荐使用UML类图、包图和组件图描述你的程序架构。

5 技术亮点、关键点及其解决方案

展示出你开发的程序中最精彩得意的亮点,列出在开发中你遇到了的技术难点,说明你最后是如何解决的……

举例如下:

本程序的亮点:

  • 我写的Android应用程序支持语音输入!
  • 我写的程序比流行的XXXX更好用,强在……

本程序的技术关键点

  • 我采用了多线程技术以提升程序的性能
  • 我自己写了个文件数据库来保存数据
  • 我应用了MVC模式来设计整个程序的架构
  • 我在开发过程中大规模地使用了单元测试
  • ……

遇到的技术难点及对应的解决方案:

问题描述:处理非法数学表达式的问题

重现步骤或详细说明:当用户输入“()”时,这个表达式合法,但算法陷入了死循环       

最终的解决方案:……

 

6 简要开发过程

XX月XX号      查找资料确定要使用的算法与数据结构

XX月XX号      完成系统设计

XX月XX号      进行XXX功能开发

XX月XX号      XXX功能开发完成,进入测试阶段

……

XX月XX号      对程序进行集成测试

XX月XX号      程序开发工作完毕,编写及整理文档

7 个人小结及建议(可选)

         经过一个学期的理论与技术课堂学习和完成课程设计,你有何感悟?对本课程有哪些建议?……

 

你可能感兴趣的:(java,课程设计)