科研规划项目管理方案计划系统java.doc
!-目 录一、设计题目2二、设计目的2三、问题定义2四、需求分析2五、类于接口设计2 5.1类的分析与设计3六、文件结构设计3 6.1文件的分析与设计3七、具体功能实现4八、系统调试及运行5九、结论6十、附录(源程序)7一、设计题目 科研项目管理系统二、设计目的1. 运用已学过的知识进行一个简单的应用程序的开发。2. 基本掌握设计课题的基本步骤和方法。3. 掌握应用系统开发中的需求分析。4. 基本掌握应用系统开发中设计文档的编制。三、问题定义 科研项目能够通过科研项目管理系统记录和管理科研项目的进程等信息,需要设置信息的录入功能、查询功能、修改功能以及科研项目经费管理的功能,在使用系统之初需对系统进行登录,以便确保系统的安全。四、需求分析 本系统是在Myeclipse8.6(当前较为稳定和成熟的版本)的环境下进行开发的。系统按功能模块划分,系统包含添加、查询、修改记录等3大功能。本系统实现的功能描述如下:(1)科研项目信息管理科研项目信息管理的基本功能包括: 科研项目信息输入; 科研项目信息输出; 科研项目信息添加; 科研项目信息修改; 科研项目信息删除。(2)科研资金信息管理科研科研资金管理的基本功能包括: 项目资金的查询; 科研项目资金的修改;五、类与接口设计5.1类的分析与设计基于上面的分析,对科研项目管理管理系统进行以下类的分析:1、 主类的设计2、 登录类的设计3、 目录类的设计4、 项目管理类的设计5、 项目修改类的设计5.2类系统分析与设计1.主类实现对登录方法的调用2.登录类实现对登录用户的验证3.目录类实现对具体操作模块的显示与选择4.项目管理类实现目录类对项目管理的各项具体功能5项目修改类实现对项目管理中对项目实现管理的各个方法5.3系统功能模块设计此系统共有两个模块,分别为:科研项目信息信息管理,科研项目经费管理。科研项目管理系统的主要体系结构如图2.3所示科研项目管理系统科研项目经费查询科研项目经费修改项目经费信息记录科研项目信息删除科研项目信息修改科研项目信息添加科研项目信息查询科研项目信息输入科研经费管理科研项目信息管理六、文件结构设计本系统的数据存储采用对象数据的机构进行存取。科研向包括以下属性:1. 项目ID2. 2.项目名称3. 项目负责人4. 项目类型5. 项目预期完成时间6. 项目经费预算7. 项目进度8. 项目完结状态七、具体功能实现/对登录方法进行调用的主方法public class Test /* * author * title: main主方法 * date 2013-7-7 下午05:01:45 * param args * void */public static void main(String args) login lg = new login();lg.dologin();/登陆成功后对目录方法的调用if ("admin".equals(input1.next() for (int j = 0; j < 3; j+) System.out.print("请输入密码:");Scanner input2 = new Scanner(System.in);if ("123".equals(input2.next() menu me = new menu();me.check(); else System.out.println("输入的密码有误!");/目录方法的实现等public void check() System.out.println("*欢迎来到科研管理系统!请选择*");System.out.println("* 1.科研项目查询 *");System.out.println("* 2.科研项目登记 *");System.out.println("* 3.科研项目管理 *");System.out.println("* 4.项目经费管理 *");System.out.println("* 5.退出管理系统 *");System.out.println("*");Scanner input = new Scanner(System.in);int checked = input.nextInt();sciencemanagement smg = new sciencemanagement(null);switch (checked) case 1:smg.selsm();break;case 2:smg.addsm();break;case 3:smg.managesm(null);break;case 4:smg.managemoneysm(null);break;case 5:smg.exitsystem();break;/ case 5:smg.exitsm();break; 八、系统调试及运行登录界面:菜单界面:查询结果界面:项目登记界面:系统退出界面:九、结论在多次调试中发现的语法错误提示:1.Declaration missing ;:说明缺少“;”,在所指出的地方附近找出是否有少写了“;”或者“”等等的符号。2.No type information:没有类型信息,在所指出的地方看缺少什么类型信息,定义一下就行。3.Too many error or warning messages:错误或警告信息太多,重新检查程序,有时只是一个地方出现错误而导致了程序无法进行,出现了这个情况。在调试中也发现如果程序出现了逻辑错误(也就是程序并没有违背Java语言的语法规则,但程序执行结果与原意不符),那编译程序就无法给出提示,错误较难排除,所以询问了老师,改正了错误的逻辑。本系统在调试中也发现了一些问题,如有时把系统转移到别的机器上进行调试时有时出现系统不能正常运行,经过检查,发现可能是环境配置不同的错误等等,并进行了相应的解决。相信经过多次测试和调试的程序才能是一个健全的程序。十、附录源程序: package ccdx.kcsj.sm;public class Test /* * author * title: main主方法 * date 2013-7-7 下午05:01:45 * param args * void */public static void main(String args) login lg = new login();lg.dologin();package ccdx.kcsj.sm;import java.util.Scanner;/* * author * ClassName: login登录方法及其验证 * Version 1.0 * Copyright 长春大学 * date 2013-7-9 下午06:56:30 * description */public class login String username = "admin"String password = "123"public boolean dologin() System.out.println("*亲,欢迎使用科研管理系统,请先登录系统!*");for (int i = 0; i < 3; i+) System.out.print("请输入用户名:");Scanner input1 = new Scanner(System.in);if ("admin".equals(input1.next() for (int j = 0; j < 3; j+) System.out.print("请输入密码:");Scanner input2 = new Scanner(System.in);if ("123".equals(input2.next() menu me = new menu();me.check(); else System.out.println("输入的密码有误!");break; else System.out.println("输入的用户名有误!"); return false;package ccdx.kcsj.sm;import java.util.Scanner;/* * author * ClassName: menu目录 * Version 1.0 * Copyright 长春大学 * date 2013-7-9 下午06:56:13 * description */public class menu public void check() System.out.println("*欢迎来到科研管理系统!请选择*");System.out.println("* 1.科研项目查询 *");System.out.println("* 2.科研项目登记 *");System.out.println("* 3.科研项目管理 *");System.out.println("* 4.项目经费管理 *");System.out.println("* 5.退出管理系统 *");System.out.println("*");Scanner input = new Scanner(System.in);int checked = input.nextInt();sciencemanagement smg = new sciencemanagement(null);switch (checked) case 1:smg.selsm();break;case 2:smg.addsm();break;case 3:smg.managesm(null);break;case 4:smg.managemoneysm(null);break;case 5:smg.exitsystem();break;/ case 5:smg.exitsm();break;package ccdx.kcsj.sm;import java.util.Scanner;/* * author * ClassName: sciencemanagement * Version 1.0 * Copyright 长春大学 * date 2013-7-6 下午09:54:50 * description */public class sciencemanagement sciencemanagement sm = new sciencemanagement1000;int id;String managementname;String applyperson;String type;String finishedtimes;String budget;String schedule;String iffinished;public sciencemanagement(int id, String managementname, String applyperson,String type, String finishedtimes, String budget, String schedule,String iffinished) super();this.id = id;this.managementname = managementname;this.applyperson = applyperson;this.type = type;this.finishedtimes = finishedtimes;this.budget = budget;this.schedule = schedule;this.iffinished = iffinished;public sciencemanagement(sciencemanagement sm) / TODO Auto-generated constructor stub/* * author * Version 1.0 * Copyright 长春大学 * date 2013-7-9 下午06:56:54 * description 查询方法 */void selsm() sm0 = new sciencemanagement(1, "天气观测", "汪长义", "气象", "201412-25","1000万元", "进入中期", "未完结");for (int k = 0; k < 10; k+) System.out.println("请输入你要查询的科项目号:");Scanner input = new Scanner(System.in);int checked = input.nextInt();for (int i = 0; i < sm.length; i+) System.out.println(smi);if (checked = smi.id) System.out.println("*查询结果如下:*");System.out.println("项目号:" + smi.id + " 项目名称:"+ smi.managementname + " 负责人:"+ smi.applyperson + " 项目类型:" + smi.type);System.out.println("完成时间:" + smi.finishedtimes + " 项目经费:"+ smi.budget + " 进度:" + smi.schedule+ " 是否完结:" + smi.iffinished); else System.out.println("您所要查询的项目不存在!");/* * author * Version 1.0 * Copyright 长春大学 * date 2013-7-9 下午06:56:54 * description 添加方法 */void addsm() for (int i = 0; i < sm.length; i+) if (smi = null)smi = new sciencemanagement(sm);System.out.print("添加一个项目,请输入项目号:");Scanner input = new Scanner(System.in);smi.id = input.nextInt();System.out.print("请输入项目名称:");Scanner input1 = new Scanner(System.in);smi.managementname = input1.next();System.out.print("请输入负责人姓名:");Scanner input2 = new Scanner(System.in);smi.applyperson = input2.next();System.out.print("请输入项目类型:");Scanner input3 = new Scanner(System.in);smi.type = input3.next();System.out.print("请输入预期完成时间:");Scanner input4 = new Scanner(System.in);smi.finishedtimes = input4.next();System.out.print("请输入项目预算:");Scanner input5 = new Scanner(System.in);smi.budget = input5.next();System.out.print("请输入初始进度:");Scanner input6 = new Scanner(System.in);smi.schedule = input6.next();System.out.print("请输入项目状态:");Scanner input7 = new Scanner(System.in);smi.iffinished = input7.next();break;/* * author * Version 1.0 * Copyright 长春大学 * date 2013-7-9 下午06:56:54 * description 修改项目方法 */void managesm(sciencemanagement sm) for (int k = 0; k < 10; k+) System.out.println("请输入你要查询的科项目号:");Scanner input = new Scanner(System.in);int checked = input.nextInt();for (int i = 0; i < sm.length; i+) System.out.println(smi);if (checked = smi.id) System.out.println("项目号:" + smi.id + " 项目名称:"+ smi.managementname + " 负责人:"+ smi.applyperson + " 项目类型:" + smi.type+ " 完成时间:" + smi.finishedtimes + " 项目经费:"+ smi.budget + " 进度:" + smi.schedule+ " 是否完结:" + smi.iffinished); else System.out.println("您所要查询的项目不存在!");System.out.println("请选择您需要修改的项目");System.out.println("1.项目名称");System.out.println("2.负责人");System.out.println("3.项目类型");System.out.println("4.完成时间");System.out.println("5.经费管理");System.out.println("6.项目进度");System.out.println("7.项目是否完结");System.out.println("8.删除项目");Scanner input0 = new Scanner(System.in);int checked = input0.nextInt();updatemanagement update = new updatemanagement();switch (checked) case 1:update.updatename(checked);break;case 2:update.updateperson(checked);break;case 3:update.updatetype(checked);break;case 4:update.updatetime(checked);break;case 5:update.updatemoney(checked);break;case 6:update.updateschedule(checked);break;case 7:update.updatefinished(checked);break;case 8:update.delete(checked);break;/* * author * Version 1.0 * Copyright 长春大学 * date 2013-7-9 下午06:56:54 * description 查询修改项目经费方法 */void managemoneysm(sciencemanagement sm) System.out.println("请输入你要修改项目经费的项目号:");Scanner input = new Scanner(System.in);int checked = input.nextInt();for (int i = 0; i < sm.length; i+) if (checked = smi.id) System.out.println("项目号:" + smi.id + "项目名称:"+ smi.managementname + "负责人:" + smi.applyperson+ "项目类型:" + smi.type + "完成时间:" + smi.finishedtimes+ "项目经费:" + smi.budget + "进度:" + smi.schedule+ "是否完结:" + smi.iffinished); else System.out.println("您所要查询的项目不存在!");System.out.println("请输入新的项目经费:");Scanner input0 = new Scanner(System.in);String checked02 = input0.next();smchecked.budget = checked02;void exitsystem() System.out.println("您确定要退出系统?是Y:否N");Scanner input = new Scanner(System.in);String checked01 = input.next();if (checked01.equalsIgnoreCase("Y") System.out.print("欢迎下次使用!");System.exit(0);if (checked01.equalsIgnoreCase("N") menu me = new menu();me.check();package ccdx.kcsj.sm;import java.util.Scanner;/* * author * ClassName: updatemanagement修改科研项目方法类 * Version 1.0 * Copyright 长春大学 * date 2013-7-9 下午06:55:45 * description */public class updatemanagement sciencemanagement sm;void updatename(int checked) System.out.println("请输入新的项目名称:");Scanner input1 = new Scanner(System.in);smchecked.managementname = input1.next();void updateperson(int checked) System.out.println("请输入新的项目负责人:");Scanner input2 = new Scanner(System.in);smchecked.applyperson = input2.next();void updatetype(int checked) System.out.println("请输入新的项目类型");Scanner input3 = new Scanner(System.in);smchecked.type = input3.next();void updatetime(int checked) System.out.println("请输入新的预计完成时间:");Scanner input4 = new Scanner(System.in);smchecked.finishedtimes = input4.next();void updatemoney(int checked) System.out.println("请输入新的项目预算:");Scanner input5 = new Scanner(System.in);smchecked.budget = input5.next();void updateschedule(int checked) System.out.println("请输入新的项目进度:");Scanner input6 = new Scanner(System.in);smchecked.schedule = input6.next();void updatefinished(int checked) System.out.println("请输入项目是否完结:");Scanner input7 = new Scanner(System.in);smchecked.iffinished = input7.next();void delete(int checked) System.out.println("确定是否删除该项目?是Y:否N");Scanner input = new Scanner(System.in);String checked01 = input.next();if (checked01.equalsIgnoreCase("Y") for (int i = 0; i < sm.length; i+) if (checked = smi.id) smi = null;System.out.print("删除成功!");if (checked01.equalsIgnoreCase("N") break;