《Java程序设计》课程设计.docx |
您所在的位置:网站首页 › java实验题对学生排序:提示用户输入学生人数 › 《Java程序设计》课程设计.docx |
《Java程序设计》课程设计.docx 《《Java程序设计》课程设计.docx》由会员分享,可在线阅读,更多相关《《Java程序设计》课程设计.docx(40页珍藏版)》请在冰豆网上搜索。 《Java程序设计》课程设计 《Java程序设计》课程设计 联系方式 号码 备注 765725111 765725111@(优先) Terryztx@ 一、课程设计总体要求: 本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。 通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧。 具体要求有以下几点: 1.问题的描述与程序将要实现的具体功能。 2.程序功能实现的具体设计思路或框架,并检查流程设计。 3.代码实现。 4.程序测试(如程序代码、功能测试、可靠性测试和效率测试等)。 5.设计小结。 二、选题(题目在后面) 整体要求: 建议使用Eclipse或NetBeans、JBuilder集成开发环境完成作业,界面友好,代码的可维护性好,有必要的注释和相应的文档。 三、考核办法 根据提交的设计文档(包括程序主要完成的功能、设计思路和框图、主要代码,程序中有何创新,有何收获和所存在的不足以及需要改进的地方。 ),程序功能的实现(要求演示)进行考核: 无任何文档,无程序,得0分; 文档混乱,没有思路,程序不能运行,不及格; 文档描述清晰,程序实现了基本功能,及格; 文档描述清晰准确,思路清晰,程序实现了要求的所有功能,良好; 文档完备,设计合理有创新,报告清晰明确,深入分析了自己进行实验的体会感想,程序实现了全部功能,功能完善,并有其它的创新实现,优秀。 四、课程设计报告内容(样例请参照第十页样本1和样本2) 1.目录 2.选题与分工 3.设计题目及具体要求 4.总体设计思路(简要说明系统包含的java源程序及其功能,描述类之间的主要关系) 5.具体设计(以表格形式描述各个类含有的成员变量和方法,并对关键代码加以说明,显示程序运行界面) 6.总结(包括对本课程的建议) 7.参考资料 五、设计时间 两周(详细时间安排经供参考),具体安排如下: 第一阶段: 1.班级分组,选定课题,查阅相关资料2天 2.划分模块、小组成员分工, 利用CASE工具进行系统设计和分析,并编制源程序5天 第二阶段: 上机调试,修改、调试、完善系统4天 第三阶段: 撰写、上交课程设计报告,上交课程设计作品源程序(每课题组一份)2天 六、设计方式和安排 分组选题: 最多3人为一组,每组一个课题(可根据课题工作量大小,合理分配人数),每组设组长一名,负责该组设计工作的协调、分工等。 设计过程: 1.分析设计准备阶段(按组讨论、对系统功能进行分析,确定算法,并进行明确分工); 2.编程调试阶段(绘制可能涉及到的数据流图、数据字典、系统流程图、用例图、类图、时序图和活动图等,编制源程序,上机调试,修改程序,编写软件测试报告,用户使用手册) 3.总结和书写报告阶段(撰写上交相关资料) 七、课程设计提交内容 由小组组长负责将课程设计报告(WORD文档)和程序的项目文件夹统一压缩打包(注意: 课程设计报告这个word文档放置在“报告”这个文件夹,程序的项目文件夹(如eclipse新建的项目文件夹)放置在“程序”文件夹,然后将这两个文件一起选中右键选择压缩为,取名为你们的“班级拼音代号-你们小组各成员的学号_姓名-《选题名称》”,例如: R082-20081408024_王五_20081408025_李四_20081408026_张三-《网络监听程序》.rar),然后联系我发送到E-Mail或当面提交电子稿。 课程设计选题 第一部分: 小型项目 1、编写一个记事本程序 要求: 用图形用户界面实现。 能实现编辑、保存、另存为、查找替换等功能。 提示: 使用文件输入输出流。 2、模拟龟兔赛跑 要求: 用图形用户界面实现。 能设置比赛时间,马匹的数量等等。 在任意时间段内马匹的速度是随机的。 开始比赛之后以动画显示赛马过程。 提示: 使用多线程 3、学生信息管理系统 要求: 使用图形用户界面 用数据库建立1或2个学生信息表。 (不限使用哪种数据库) 能连接数据库并实现查询、增、删、改等功能。 4、图书信息管理系统 要求: 使用图形用户界面 用数据库建立1或2个图书信息表。 (不限使用哪种数据库) 能连接数据库并实现查询、增、删、改(CRUD)等功能。 5、聊天小程序 要求: 使用图形用户界面。 能实现一个聊天室中多人聊天。 可以两人私聊。 提示: 使用socket通信 6、ATM柜员机模拟程序 要求: 使用图形用户界面。 当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: 1、查询余额: 初始余额为10000元 2、ATM取款: 每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 3、ATM存款: 不能出现负存款。 4、修改密码: 新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 7、超市收银系统 要求: 使用图形用户界面。 由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。 从数据库中取出有关价格信息,再把这些信息返回给收银台。 同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。 另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。 如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。 8、万年历 要求: 使用图形用户界面。 实现日期与星期的查询 9、网络监听程序 要求: 使用图形用户界面。 有服务器和客户端,服务器监听客户端的登陆。 即: 如果A客户端登陆服务器,则服务器界面上的A字母对应的红灯变成绿色。 绿灯表示连接,红灯表示断线。 提示: socket的监听方法 10、全球通计费程序 要求: 使用图形用户界面。 使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。 能根据输入实现各种用户的话费的计算并显示月实时帐单。 提示: 使用接口和多个子类实现分别表示金卡、银卡等各种套餐的话费计算。 11.日历记事本 要求: 带有日程提醒功能的日历。 1、显示信息: 用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。 2、定时提醒: 用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。 3、查询信息: 用户可以查询到某个月的所有的提示信息。 12.电子英汉词典 要求: 能够编辑词典库中的信息 能够实现英译汉,汉译英。 (要考虑一词多义) 13.加密与解密 要求: 采用图形用户界面 1、给定任意一个文本文件,进行加密,生成另一个文件。 2、对加密后的文件还原。 14.小游戏 要求: 程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜。 (使用图形界面) 15.敏感词汇分析 要求: 任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。 16、猜数字游戏 要求: 计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。 要求提交Application和Applet两个版本的程序。 17、小学算术运算测试程序 要求: 制作一个可供小学数学运算程序: 10以内加减法,能根据输入题数出题,判断做题是否正确,最后计算分数。 要求提交Application和Applet两个版本的程序。 18、模拟科学计算器【已提供此程序样本,故不能选择此题】 要求: 界面模拟Windows中的计算器程序。 实现基本数学运算、函数等功能: 加、减、乘、除、阶乘、正弦、余弦和指数运算。 实现要点: 添加相关组件并进行按钮事件处理。 要求提交Application和Applet两个版本的程序。 19、模拟画图 要求: 模拟Windows中的画图程序,实现图形图像的编辑、修改、保存等功能。 20、模拟时钟 要求: 通过多线程技术,重绘界面,界面包括表盘和指针。 并用数字表显示时间。 实现要点: 多线程技术,图形的绘制。 21、打字训练测试软件 要求: 设计一个中英文打字测试软件。 从文件中调入中英文录入材料,最后可以给出错误率,平均录入速度。 22、ip地址、手机归属地查询 实现要点: 数据库查询。 23、五子棋 功能要求: 可两人对下(用鼠标操作),判断胜负。 界面要求: 美观简洁,有简单操作说明。 24、电话号码查询系统。 要求: 有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。 25、 其他题目: 如扫雷、红心大战等游戏程序的设计; 作业管理系统,具有对本学期所有作业管理、运行的管理系统; 学生成绩管理系统; 学生信息管理系统; 试题管理系统; 动画制作,根据所学知识编制一些动画程序; 及媒体播放器等等自拟题目。 第二部分: 中型项目 一.一个简单的学生成绩管理信息系统 数据库要求: 1.建立的数据库中包含如下信息: 学生学号、姓名、班级,语文、数学、英语成绩。 2.至少要有5个班级,每个班级要有10名以上学生。 3.使用.txt格式文本表示各种表。 功能需求: 1.能够实现根据以下关键字查询: 学生姓名、学号、班级、课程名称。 2.能够实现按照单科成绩、总成绩、平均成绩、学号排序。 3.能够实现学生信息的插入、删除和修改。 4.能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。 5.能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。 界面要求: 1.尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。 2.如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。 其他要求: 1.标识符命名遵循Windows命名规范。 2.能够注意各种异常处理,注重提高程序运行效率。 提交内容: 1.用于表示数据库的.txt文件格式说明。 2.全部源代码。 3.软件设计和使用说明书(UML类图;实现的功能、主要技术;使用帮助文档)。 二、一个简单的算法演示程序 功能要求: 1.选择一个算法(提供选择见下),利用各种方法(图形、动画等)演示算法的演示过程。 2.可以进行手动演示,也可以自动步进式演示。 3.允许用户设置算法的各个输入参数,以及自动步进式演示中的时间间隔。 4.不同的算法输入要求见下。 界面要求: 1.尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。 2.如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。 其他要求: 1.标识符命名遵循Windows命名规范。 2.能够注意各种异常处理,注重提高程序运行效率。 提交内容: 1.全部源代码。 2.软件设计和使用说明书(UML类图;实现的功能、主要技术;使用帮助文档) 参考算法: 1.最小生成树算法: Prim算法、Kruskal算法。 允许以下方式输入一个图形: 绘制图形、输入邻接矩阵、输入边及其关联的顶点。 要求在图形方式下进行演示算法执行步骤。 2.单源最短路算法: Dijkstra算法。 允许以下方式输入一个图形: 绘制图形、输入邻接矩阵、输入边及其关联的顶点。 要求在图形方式下进行演示算法执行步骤。 3.最优编码算法: Huffman编码算法。 允许用户输入一段英文文字,或者打开一个txt文档(英文内容),据此文档内容进行编码。 要求动态列出每个字符的出现概率统计结果以及对应编码。 4.其他可供演示的具有一定难度的算法,如关键路径问题、有向图的极大连通分支等。 三、一个简单的网络聊天程序 功能要求: 1.实现类似与飞鸽的功能,自动侦测局域网内部启动该软件的用户,并显示在用户列表中。 2.可以进行两个人之间的私聊。 3.可以群聊。 4.可以发送文件。 界面要求: 1.尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。 其他要求: 1.标识符命名遵循Windows命名规范。 2.能够注意各种异常处理,注重提高程序运行效率。 提交内容: 1.全部源代码。 2.软件设计和使用说明书(UML类图;实现的功能、主要技术;使用帮助文档) 四、一个简单的万年历 功能要求: 1.能够显示实现1800-2100年的日期,包括公历、农历、星期、二十四节气。 2.能够按照月份格式显示,或按照星期格式显示。 3.能够显示系统时间。 4.能够设置闹钟。 5.能够查询若干国际大城市(分布在不同时区)的时间。 界面要求: 1.尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。 其他要求: 1.标识符命名遵循Windows命名规范。 2.能够注意各种异常处理,注重提高程序运行效率。 提交内容: 1.全部源代码。 2.软件设计和使用说明书(UML类图;实现的功能、主要技术;使用帮助文档) 五、一个计算数学表达式的程序 功能要求: 1.由用户输入一个简单的四则运算表达式,求出其计算结果后显示。 2.允许在表达式中出现常用的数学函数,如绝对值、取整、三角函数、倒数、平方根、平方、立方等。 界面要求: 1.尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。 2.如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。 其他要求: 1.标识符命名遵循Windows命名规范。 2.能够注意各种异常处理,注重提高程序运行效率。 提交内容: 1.全部源代码。 2.软件设计和使用说明书(UML类图;实现的功能、主要技术;使用帮助文档) 课程设计样本1 一.设计GUI界面的计算器程序 1.问题描述: 设计GUI界面的计算器程序,用户可以通过鼠标依次输入参加计算的数值,进行加、减、乘、除混合运算。 2.设计思路: 本程序功能不是太复杂,主要工作是界面的设计。 为减少通信接口设计,所有功能均在一个类中实现。 程序中的函数列表如下: 函数名称 函数功能简介 publicCalculator() 加载窗体及窗体关闭事件等 publicvoidactionPerformed(ActionEvente) 响应事件,执行相应的逻辑处理 privateDoublenumberFormat(Stringsrc) 去掉多于的0,返回double数值 privateStringnumberFormat(doublesrc) 去掉多于的0,返回字符串 privatevoidsetNumber(Stringid) 为显示域extField设置数值 privatevoidcompute(doubled1,doubled2,intot) 计算并在TextField中显示 3.代码实现: importjava.awt.*; importjavax.swing.*; importjavax.swing.border.*; importjava.awt.event.*; importjava.text.*; publicclassCalculatorextendsJFrameimplementsActionListener{ staticfinalString[]button_name={"7","8","9","/", "sqrt","4","5","6","*","%","1","2", "3","-","1/x","0","+/-",".","+","="}; doublenum=0; privatebooleanoperate_flag=false; privateintoperate_type=0; privateJPaneldisplay_main=newJPanel(); privateJPaneldisplay=newJPanel(); privateJPanelbuttons=newJPanel(); privateJButtonbackspace=newJButton("Backspace"); privateJButtonc=newJButton("C"); privateJButtonce=newJButton("CE"); privateJButton[]bg=newJButton[20]; privateJTextFieldtext=newJTextField("0"); privateJPanelmain=newJPanel(); publicCalculator(){ super("简易计算器"); setIconImage((Toolkit.getDefaultToolkit()).getImage("face.gif")); //获得图标文件 display.setLayout(newGridLayout(1,3,15,15)); display.add(backspace); display.add(c); display.add(ce); display.setBorder(newLineBorder(display.getBackground(),5)); //添加边框 c.addActionListener(this); ce.addActionListener(this); backspace.addActionListener(this); text.setFont(newFont("宋体",Font.BOLD+Font.ITALIC,20)); //设置显示字体 text.setBackground(Color.getHSBColor(44,3,87)); text.setBorder(newLineBorder(Color.ORANGE,1)); text.setHorizontalAlignment(SwingConstants.RIGHT);//设置鼠标靠右 text.setEditable(false);//屏蔽键盘输入,防止非法字符 display_main.setLayout(newGridLayout(2,1,10,10)); display_main.add(text,BorderLayout.NORTH); display_main.add(display,BorderLayout.SOUTH); buttons.setLayout(newGridLayout(4,5,10,20)); for(inti=0;i bg[i]=newJButton(button_name[i]); bg[i].addActionListener(this);//为各个按钮添加事件监听 buttons.add(bg[i]); } buttons.setBorder(newLineBorder(display.getBackground(),5));//边框 this.setLayout(newBorderLayout()); this.add(display_main,BorderLayout.NORTH); this.add(buttons,BorderLayout.SOUTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //添加关闭窗口事件监听器 pack();//自动设置窗体大小 setResizable(false);//设置面板大小不可变 setVisible(true); Toolkittk=this.getToolkit(); Dimensionde=tk.getScreenSize(); setBounds((de.width-this.getWidth())/2,(de.height-this .getHeight())/2,this.getWidth(),this.getHeight()); //使之居于屏幕正中央 } publicvoidactionPerformed(ActionEvente){//事件响应 Objectsource=e.getSource(); if(operate_flag==true){ text.setText("0"); operate_flag=false; } if(! ("".equals(text.getText()))&&text.getText().charAt(0)=='+'){ text.setText(text.getText().substring(1,text.getText().length())); }//存在'+',就去掉 try{ Double.parseDouble(text.getText()); }catch(Exceptionee){ text.setText("0"); }//检测输入数据格式是否合法,不合法就重置为0 if(source==c||source==ce){ text.setText("0"); }elseif(source==backspace){ if("0".equals(text.getText())||"+".equals(text.getText()) ||"-".equals(text.getText())){ }else{ text.setText(text.getText().substring(0, text.getText().length()-1)); } }elseif(source==bg[0]){ setNumber("7"); }elseif(source==bg[1]){ setNumber("8"); }elseif(source==bg[2]){ setNumber("9"); }elseif(source== |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |