资源描述
Java语言课程设计任务书及题目一、 Java语言课程设计目的和要求1、目的: Java语言程序设计课程是一门实践性很强的课程。 JAVA课程设计以软件工程的思想为导向,从可行性研究开始,经过系统分析、系统设计、系统实施等主要阶段的过程,通过课程设计可以培养学生综合运用理论知识,解决工程实际问题,受到系统软件设计的初步训练。是巩固学生所学理论知识、培养学生动手能力并使理论与实际相结合的重要实践环节。提高和训练学生面向对象的编程能力。本课程设计的目的是通过学生用Java语言设计一个完整的应用程序,使学生综合应用所学知识完成软件的分析、设计、调试和总结,可加深和巩固对理论教学和实验教学内容的掌握,使学生进一步掌握所学的面向对象技术完整系统开发的方法。培养其灵活运用所掌握的Java语言的综合应用能力解决实际工程问题的能力、项目开发中团队合作精神、创新意识,养成良好的编程习惯。2、要求: 本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JAVA的应用系统综合实例,来掌握Java语言编程技巧。1)对系统进行功能模块分析、控制模块分析正确,符合课题要求,实现相应功能;可以加以其他功能或修饰,使程序更加完善、合理;2)系统设计要实用,编程简练,可用,功能全面3)说明书、流程图要清楚4)记录设计情况(备查,也为编写设计说明书作好准备);5)要求采用模块化程序设计方法,及锯齿型书写格式,要求上机调试通过和按设计报告格式。( 界面要求:尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。代码要求:标识符命名遵循java命名规范。能够考虑各种异常处理,注重提高程序运行效率。)6)设计上交内容:设计报告一份(按格式书写);源程序文件。3、课程设计步骤 1)分析项目要求: 每个课程设计项目都有其相关的设计要求,其中对项目实现的功能做了详细定义。如果某些知识面掌握的不是很好,可以再返回去重新熟悉与掌握。2)自学新知识:每个课程设计项目都涉及一些新的知识面(老师没有在课堂上讲解的内容),在开始设计前,首先要查阅相关资料,学习和掌握项目中涉及的新知识,提高自学能力。3)界面设计:本次课程设计都是图形界面程序,所以在实现程序功能前,可以先完成图形界面设计(建议采用swing组件或第三方swt组件)。在部分项目运行效果示例中,抓取了运行结果界面。项目图形界面所涉及了容器、组件、布局知识,在设计图形界面前,可以再回顾下以上知识(建议采用较智能的开发工具如:Netbean、eclipse、Jbuilder等)。4)项目功能实现:每种功能其实就是相应控件的响应事件,所以要根据课程设计要求把各种功能转换成相应组件的响应事件。如动作事件(ActionEvent)、键盘事件(KeyEvent)、鼠标事件(MouseEvent)、焦点事件(FocusEvent)。对于比较复杂的功能,先要设计该功能实现的算法和程序流程图,然后再用程序语句去实现。5)项目测试与扩展:项目程序设计完以后,运行该项目,一一测试所有项目功能,如有不合要求的话,重新修改程序以达到项目要求。如有时间的话,可以在项目要求的基础上扩展创新一些功能,根据其创新情况可以给予适当的加分。 二、Java语言课程设计选题如下:1、课题:算术运算测试功能要求:该程序用字符界面实现十道100以内加减法数学题,能根据题目计算出答案,与输入答案对比,判断做题是否正确,最后计算分数。界面要求:用字符界面实现、也可用图形界面实现。2、课题:猜数游戏功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。界面要示:用字符界面实现、也可用图形界面实现。3、学生成绩管理功能要求:1) 输入十个同学的学号,姓名,四科成绩(应用数学、大学英语、Java程序设计、计算机应用基础)2) 计算出平均成绩。以平均成绩降序输出成绩表。3) 输出全组各科平均分,最高分和最低分。4) 输入姓名查询成绩界面要示:用字符界面实现、也可用图形界面实现。4、计算器模拟程序功能要求:该程序显示GUI用户界面,能实现整数的加、减、乘、除四则运算。界面要示:用图形界面实现。可参考下图。图1 计算器模拟程序界面5、画随机的圆功能要求:实现简单的动画。具体要求:自动出现由小到大变换的圆,位置与颜色随机,变到150直径时擦除,重新再出现圆;变换速度有HTML文件传入的参数控制(控制sleep时间)。界面要求:用Java Applet实现。6、用菜单和按钮来控制绘图功能要求:实现简单绘图功能,具体要求:画直线,画空心或实心椭圆、画空心或实心矩形、画多边形(图形的位置和大小可在程序中设定)。界面要求:用图形界面实现。可参考图2、图3和图4。图2 初始界面 图3 使用菜单绘图图5 使用按钮绘图三、设计时间一周,具体安排如下:第一阶段:1.班级分组,选定课题,查阅相关资料 1天2.划分模块、小组成员分工,编制源程序 3天第二阶段:上机调试,修改、完善系统 2天第三阶段:撰写、上交课程设计说明书(1份/人),上交课程设计作品源程序(每课题组一份),作品答辩。 1天四、设计方式和安排1 分组选题:最多3人为一组(尽量一人一题),每组一个课题(可根据课题工作量大小,合理分配人数),每组设组长一名,负责该组设计工作的协调、分工等。2 设计过程:1) 分析设计准备阶段(按组讨论、对系统功能进行分析,确定算法,并进行明确分工);2) 编程调试阶段(绘制流程图,编制源程序;上机调试,修改程序)3) 总结报告和书写说明书阶段(撰写上交相关资料)。五、考核内容和方式1、在设计期间,学生要按时上机,设计结束根据记录的设计材料整理成设计说明书。设计说明书中应写下设计中的主要收获,要求对问题有一定的分析,文字简短明确流畅。2、通过设计答辩方式,并结合学生的动手能力,独立分析解决问题的能力和创新精神,设计成绩由指导教师根据考勤、设计说明书质量、答辩表现以及学习态度按五级分制综合评定。成绩分优、良、中、及格和不及格五等。其他参考题目:1、编写一个记事本程序要求:用图形用户界面实现。能实现编辑、保存、另存为、查找替换等功能。提示:使用文件输入输出流。2、模拟龟兔赛跑要求:用图形用户界面实现。能设置比赛时间,马匹的数量等等。在任意时间段内马匹的速度是随机的。开始比赛之后以动画显示赛马过程。提示:使用多线程3、学生信息管理系统要求:使用图形用户界面用数据库建立1或2个学生信息表。(不限使用哪种数据库)能连接数据库并实现查询、增、删、改等功能。4、图书信息管理系统要求:使用图形用户界面用数据库建立1或2个图书信息表。(不限使用哪种数据库)能连接数据库并实现查询、增、删、改等功能。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.小游戏要求:。程序随机产生2050根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜。(使用图形界面)15.敏感词汇分析要求:任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。16、猜数字游戏要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。要求提交Application和Applet两个版本的程序。17、小学算术运算测试程序要求:制作一个可供小学数学运算程序:10以内加减法,能根据输入题数出题,判断做题是否正确,最后计算分数。要求提交Application和Applet两个版本的程序。18、模拟科学计算器要求:界面模拟Windows中的计算器程序。实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算。实现要点:添加相关组件并进行按钮事件处理。要求提交Application和Applet两个版本的程序。19、模拟画图要求:模拟Windows中的画图程序,实现图形图像的编辑、修改、保存等功能。20、模拟时钟要求:通过多线程技术,重绘界面,界面包括表盘和指针。并用数字表显示时间。实现要点:多线程技术,图形的绘制。21、打字训练测试软件要求:设计一个英文打字测试软件。从文件中调入英文录入材料,最后可以给出错误率,平均录入速度。22、ip地址、手机归属地查询实现要点:数据库查询。23、五子棋功能要求:可两人对下(用鼠标操作),判断胜负。界面要求:美观简洁,有简单操作说明。24、电话号码查询系统。要求:有电话录入,修改,增加,删除,按姓名查询,按电话号码查询,按部门查询,按部门显示,显示所有电话号码信息,打印等功能。25、其他题目:如扫雷、红心大战等游戏程序的设计;作业管理系统,具有对本学期所有作业管理、运行的管理系统;学生成绩管理系统;学生信息管理系统;试题管理系统;动画制作,根据所学知识编制一些动画程序;及媒体播放器等等自拟题目。普通题题目 计算器设计内容 设计一个图形界面(GUI)的计算器应用程序,完成简单的算术运算、设计要求 设计的计算器应用程序可以完成家法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。学习要点 本程序主要练习使用布局管理器设计一个计算器的界面,并练习使用事件监听器处理数据的输入,并完成相关的计算。设计思路 本应用程序继承自框架类(Frame),此程序使用Frame布局管理器BorderLayout,将单行文本框加入到“North”区域,包含各种按钮的面板Panel p加入到”Center”区域。 包含各种按钮的面板Panel p 采用4行5列的网格布局,然后将数字按钮和运算符按钮以及控制按钮添加到面板中。同时注册按钮事件监听器。如:Button b=new Button();b.addActionListener(事件监听器);事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”8”,”9”)、运算符按钮事件(”+”,”“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”)、求倒按钮事件(”1/x”)、退格按钮事件(”退格”)、清楚按钮事件(“C”)。在事件处理。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。计算器完成的是一个数学表达式,如:32,所以可以采用一个链表(LinkedList类)来存储数字或字符,如3,2分别存储在链表中,最后运算时,可以一一取出来进行运算。本应用程序中的数字按钮和运算符按钮可以分别定义以下两个类的对象组件数字按钮NumberButton类如下:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class NumberButton extends Button int number; public NumberButton(int number) super(+number); this.number=number; setForeground(Color.blue); public int getNumber() return number; 运算符按钮OperationButton类如下import java.awt.*;import java.awt.event.*;import javax.swing.*;public class OperationButton extends Button String 运算符号; public OperationButton(String s) super(s); 运算符号=s; setForeground(Color.red); public String get运算符号() return 运算符号; 相关学习资料LinkedList类:LinkedList类在Java标准类库的java.util包定义,它提供域数组类似的服务,包括可以插入或删除元素。与数组不同的是,LinkList对象可以根据需要,动态地改变大小。LinkList对象中存储的是对Object类的一系列引用,对任何类型对象的引用都可以被添加倒LinkList对象中。LinkedList类中有以下方法 public LinkedList() /构造方法 public Object getFirst() /返回链表中的第一个元素 public Object getLast() /返回链表中的最后一个元素 public Object removeFirst() 删除并返回第一个链表元素 public Object removeLast() 删除并返回最后一个链表元素 public void addFirst(Object o) /插入一个元素在为链表的第一个元素 public void addLast(Object o) /插入一个元素为链表的最后一个元素 public boolean contains(Object o) /是否存在该元素 public int size() /返回链表元素个数 public boolean add(Object o) /添加元素o public boolean remove(Object o)/删除元素o public boolean addAll(Collection c) /添加一个对象集 c public void clear() /清除列表中的所有元素 public Object get(int index) /返回指定位置(index)的链表元素 public Object set(int index, Object element)/设定指定位置(index)的链表元素为元素element public void add(int index, Object element) /在链表特定位置(index)上插入链表元素public Object remove(int index)/删除指定位置(index)上的链表元素下面举例应用LinkedList类import java.awt.*;import java.awt.event.*;import java.util.LinkedList;public class UseLinkedList extends Frame Public static void main(String args) String opertation1=“+”,”-“,”*”,”/”,”%”;String ipe0,ope1,ope2,ope3,ope4;Int n;LinkedList list1;For(int I=0;Iopertation.length;I+)list1.add(opertationi);ope0=(String)list1.getFirst();ope1=(String)list1.get(1);ope4=(String)list1.getLast();list1.set(2,”&”);ope2=(String)list1.get(2);list1.remove(“/”);list1.removeLast();n=list1.size();System.out.println(“链表中一共有”n”元素”);System.out.println(“ope0ope4分别为”ope0+ope1+ope2+ope3+ope4);运算结果为:3+ &运行效果示例: 题目 简单投票管理系统设计要求设计一个如图1所示的投票管理系统界面,要求输入候选人名单后,点击确认按钮实现使用选择框代表候选人,计选择框的名字就是候选人的名字。点击取消按钮候选人输入框为空,重新输入候选人名单。选中候选人的选择框时,表示给该候选人投一票。点击确定按钮时表示产生一张选票。点击刷新按钮回到程序的初始界面重新设置候选人。根据选择框的状态变化统计出候选人的最后得票数,并可按票选取多少点击排序按钮对候选人进行排序。(其中,最多从候选人中选取3人,如果一张选票选取多于3人,该票就作废票处理。如果一个也没投票,就作弃权处理。程序能显示一共统计了多少选票,并能统计出废票和弃权票的票数。学习要点本程序主要学习窗口的布局以及按钮事件的触发。设计思路定义几个类变量来记录投票相关记录如:Checkbox checkbox /选择框数组,代表候选人TextField personVote /文本条数组,显示每个人的得票情况int count /记录每个人的得票数int totalVote=0, /总票数int peopleNumber=0; /候选人个数int 有效人数=3,废票数=0,弃权票数=0; 在输入候选人名单时是输入一串名字,所以要从这一串名字中单个的提取出来并统计出候选人个数,在完成这项功能时要用到StringTokenizer类。点击确认按钮后,根据候选人个数添加单选按钮,并以候选人名字作为单选按钮的标签名。然后通过确定按钮事件分别给以上定义的各变量赋值。把结果显示出来,同时可以根据peopleNumber的值对各候选人文本框排序,即调整候选人文本框中的内容。 相关学习资料StringTokenizer类有时我们需要分析字符串并将字符串分解成可被独立使用的单词,这些单词叫做语言符号。例如,对于字符串We are Students,如果我们把空格作为该字符串的分隔符,那么该字符串有3个单词(语言符号)。而对于字符串WE,are,Student,如果我们把逗号作为了该字符串的分隔符,那么该字符串有3个单词(语音符号)。 当我们分析一个字符串并将字符串分解成可别独立使用的单词时,可以使用java.util包中的StringTokenizer类,改类有两个常用的构造方法:StringTokenizer(String s)为字符串s构造一个分析器。使用默认的分隔符集合,即空格符(若干个空格被看作一个空格)、换行符、回车符、Tab符、进纸符。StringTokenizer(String sString delim)为字符串s构造一个分析器。参数delim中的字符被作为分隔符。例如:StringTokenlizer fenxi=new StringTokenizer(“We are student”);StringTokenlizer fenxi=new StringTokenizer(“We,are;student”,”,”); 我们把一个StringTokenzier对象作一个字符串分析器。一个分析器可以使用nextToken()方法逐个获取字符串中的语言符号(单词),每当调用nextToken()时,都将在字符串中活得下一个语言符号。通常用while循环来逐个获取语言符号,为了控制循环,我们可以使用StringTokenizer类中的hasMoreTokens()方法,只要字符串中还有语言符号,该方法就返回true,否则返回false。另外我们还可以调用countTokens()方法得到字符串一共有多少个语言符号。运行效果示例图1题目:华容道一个传统的智利游戏设计要求 编写一个按钮的子类,使用该子类创建的对象代表华容道中的人物。通过焦点事件控制人物颜色,当人物获得焦点时颜色为蓝色,当失去焦点时颜色为灰色。通过键盘事件和鼠标事件来实现曹操、关羽等人物的移动。当人物上发生鼠标事件或键盘事件时,如果鼠标指针的位置是在人物的下方(也就是组件的下半部分)或按下键盘的“键,该人物向下移动。向左、向右和向上的移动原理类似。学习要点 本程序主要练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。设计思路 首先是界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)以及旁边的四个边框按钮和重新开始按钮。对于人物按钮,我们可以创建Button按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,如:按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。同时在设计该界面时要考虑到各个按钮的位置、大小等情况。在这给出了各按钮的位置和大小参数:(其中Person为继承Button按钮的人物按钮类)String name=曹操,关羽,张,刘,马,许,兵,兵,兵,兵;for(int i=0;iname.length;i+)personi=new Person(i,namei);personi.addKeyListener(this);personi.addMouseListener(this);/personi.addFocusListener(new Person)add(personi);person0.setBounds(104,54,100,100);person1.setBounds(104,154,100,50);person2.setBounds(54,154,50,100);person3.setBounds(204,154,50,100);person4.setBounds(54,54,50,100);person5.setBounds(204,54,50,100);person6.setBounds(54,254,50,50);person7.setBounds(204,254,50,50);person8.setBounds(104,204,50,50);person9.setBounds(154,204,50,50);四个边框按钮的位置和大小参数为:left.setBounds(49,49,5,260);right.setBounds(254,49,5,260);above.setBounds(49,49,210,5);below.setBounds(49,304,210,5);其次我们是对界面上的各人物按钮添加相应的相应事件(鼠标事件、键盘事件),通过这两种事件去完成界面上各人物按钮的移动。对重新开始按钮定义动作事件(ActionEvent)完成界面初始化功能(也就是各人物按钮重新归位)。相关学习资料该程序主要涉及到鼠标事件和键盘事件及焦点事件三个方面的新知识。1、 触发焦点事件组件可以触发焦点事件。组件可以使用public void addFocusListener(FocusListener Listener)增加焦点事件监视器如:button1.addFocusListener(事件监听器)当组件具有焦点监视器后,如果组件从无输入焦点变成有输入焦点或从有输入焦点到无输入焦点都会触发FocusEvent事件。创建监视器的类必须要实现FocusListener接口,该接口有两个方法:public void focusGained(FocusEvent e) /获得焦点触发public void focusLost(FocusEvent e) /失去焦点触发当组件从无输入焦点变成有输入焦点并触发FocusEvent事件时,监视器调用类实现的接口方法focusGained(FocusEvent e);当组件从有输入焦点变成无输入焦点并触发FocusEvent事件时,监视器调用类实现方法focusLost(FocusEvent e)。 方法 public Boolean requestFocusInwindow()方法可以获得输入焦点:如Button1.requestFocusInwindow()2、 鼠标事件组件是可以触发鼠标事件的事件源。如:鼠标指针进入组件,退出、停留组件上方单击鼠标、拖动鼠标、按下、释放、移动。 鼠标事件的类型是MouseEvent,即组件触发鼠标时,MouseEvent类自动创建一个事件对象。Java分别使用MouseListener接口与MouseMotionListener接口来处理鼠标事件。MouseListener接口可以处理5种鼠标事件:单击、按下、释放、进入和退出。MouseMotionListener接口可以处理2种鼠标事件:拖动、移动。3、 键盘事件当按下、释放或敲击键盘上一个键时就发生了键盘事件,如:当一个组件处于激活状态时(获得焦点),敲击键盘上一个键就导致了这个组件发生了键盘事件。事件源使用addKeyListener方法获得监视器。KeyEvent为键盘事件的类型,KeyListener是事件监视器实现的接口,其中有三种相应事件:按键、释放键、按下和释放的组合事件。Public void KeyPressed(KeyEvent e)Public void KeyTyped(KeyEvent e)Public void KeyReleased(KeyEvent e)用KeyEvent类的public int getKeycode()方法和public char getKeychar()判断哪个键被按下、敲击或释放。如:public void keyPressed(KeyEvent e)Person man=(Person)e.getSource();/返回事件源if(e.getKeyCode()=KeyEvent.VK_DOWN) /判断是否按下了向下箭头goDown(man);if(e.getKeyCode()=KeyEvent.VK_UP) /判断是否按下了向下箭头goUp(man);if(e.getKeyCode()=KeyEvent.VK_LEFT) /判断是否按下了向下箭头goLeft(man);if(e.getKeyCode()=KeyEvent.VK_RIGHT) /判断是否按下了向下箭头goRight(man);运行效果示例题目: 在Applet画面中实现y=a*x2+b*x+c 函数曲线的绘制设计要求: 1、通过Applet参数传递a,b,c值; 2、通过Applet参数控制曲线的粗细;3、曲线的颜色通过颜色对话框选取(通过一个颜色按钮控制)。4、 绘制一个小人沿曲线轨迹运动,到终点由头重新开始。题目 编写一个记事本程序设计要求1、 用图形用户界面实现。2、 能实现编辑、保存、另存为、查找替换等功能。3、 提示:使用文件输入输出流。题目 电子英汉词典设计要求1. 用图形用户界面实现。2. 能够编辑词典库中的信息3. 能够实现英译汉,汉译英。(要考虑一词多义)题目 加密与解密设计要求1. 采用图形用户界面2. 给定任意一个文本文件,进行加密,生成另一个文件。3. 对加密后的文件还原。提高题题目:标准化考试系统内容: 本系统可以进行任何标准化考试,具有选择试题,查看得分、考试计时等功能。设计要求:1 用户可以选择一套标准化考试试题。2 每套试题的考试用时由试题文件(.txt)给出。3 开始读取试题后,计时器开始计时,用户提交答案后,可以读取下一道题目。4 一个提示栏显示所剩余的考试时间,当规定时间用尽后,用户将不能再读取任何题目。5 为了增加模拟考试练习的灵活性,用户也可以选择暂停计时。6 用户答完一个题目后,可以查看该题目的正确答案和目前的分数。运行效果图:题目:Hannoi塔设计内容 设计GUI界面的Hannoi塔,用户可以通过拖动鼠标移动各个塔上的盘子,程序也可以自动演示盘子的移动过程。设计要求1 有三个表示塔的对象,分别命名为A、B和C。A塔上有若干个盘子,盘子的大小不等,并按着大小顺序依次摆放在A塔上,大盘在下,小盘在上。用户可以用鼠标拖动盘子,把A 塔上的盘子全部移动到另外两个塔中的任何一个塔上。要求每次只能移动一个盘子,在任何时候不允许大盘压在小盘的上面。2 用户也可以选择让程序自动演示。选择自动演示后,程序将以动画形式演示把A塔上的盘子全部移到C塔的过程,并将移动过程以文本形式显示在一个文本区中。运行效果图题目 学籍管理系统设计内容设计基于文件结构的学籍管理系统。设计要求1录入学生基本信息的功能2修改学生基本信息的功能3查询学生基本信息的功能4删除学生基本信息的功能运行结果图题目 制作一个图形编辑系统设计要求:1、能用拖橡皮筋的手法绘制各类图形(直线、椭圆、矩形、文字) 2、支持画笔颜色、文字大小设置; 3、能将画面中的所有图形存储到文件中; 4、能从文件读取图形进行增补; 5、采用对话框获取图形文件名。 6、思考如何利用鼠标选取图形,删除。题目 图书信息管理系统设计要求:1. 使用图形用户界面2. 用数据库建立1或2个图书信息表。(不限使用哪种数据库)3. 能连接数据库并实现查询、增、删、改等功能。题目 ATM柜员机模拟系统设计要求:使用图形用户界面。需求:当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:1、查询余额:初始余额为10000元2、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。3、ATM存款:不能出现负存款。4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。题目 一个简单的万年历功能要求:1. 能够显示实现1800-2100年的日期,包括公历、农历、星期、二十四节气。2. 能够按照月份格式显示,或按照星期格式显示。3. 能够显示系统时间。4. 能够设置闹钟。5. 能够查询若干国际大城市(分布在不同时区)的时间。题目 学生成绩管理信息系统数据库要求:1. 建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语成绩。2. 至少要有5个班级,每个班级要有10名以上学生。3. 使用.txt格式文本表示各种表。功能需求:1. 能够实现根据以下关键字查询:学生姓名 、学号、班级、课程名称。2. 能够实现按照单科成绩、总成绩、平均成绩、学号排序。3. 能够实现学生信息的插入、删除和修改。4. 能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。5. 能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。题目 聊天小程序设计要求1. 使用图形用户界面。2. 能实现一个聊天室中多人聊天。3. 可以两人私聊。4. 提示:使用socket通信挑战题题目:记忆测试系统设计内容: 记忆测试系统通过回忆法测试记忆,分为初级、中级、高级三个级别,并通过记忆榜存储每个级别的成绩。设计要求:1 单击“记忆测试”菜单可以选择初级/中级/高级,也可以查看初级记忆榜/中级记忆榜或高级记忆榜。2 选择级别后,将显示相应级别的测试区域。测试区域由若干个方块组成,每个方块都有一个图标,但该图标默认情况下不可见。用鼠标单击测试区中的任何一个方块,则计时器开始启动,同时该方块上的图标将显示出来。对于初级级别,用户必须用鼠标连续单击出6个图标相同的方块,也就是说,如果用户已经用鼠标连续单击出n(n6)个图标相同的方块,单击另一个房块时,如果该方块的图标和上一个相同,那么该方块的图标和前n 次单击出的方块的图标仍然可见,否则,前n次单击出的方块的图标都变为不可见。3 连续单击出该级别所要求的若干个图彪相同的方块后,将显示保存成绩对话框,成绩按所用时间排序。用户可以通过该对话框选择是否将自己的成绩保存到成绩表中。运行效果图:题目 超市收银系统设计要求:使用图形用户界面。需求:由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。题目 算法演示程序功能要求:1. 选择一个算法(提供选择见下),利用各种方法(图形、动画等)演示算法的演示过程。2. 可以进行手动演示,也可以自动步进式演示。3. 允许用户设置算法的各个输入参数,以及自动步进式演示中的时间间隔。4. 不同的算法输入要求见下。参考算法:1. 最小生成树算法:Prim算法、Kruskal算法。允许以下方式输入一个图形:绘制图形、输入邻接矩阵、输入边及其关联的顶点。要求在图形方式下进行演示算法执行步骤。2. 单源最短路算法:Dijkstra算法。允许以下方式输入一个图形:绘制图形、输入邻接矩阵、输入边及其关联的顶点。要求在图形方式下进行演示算法执行步骤。3. 最优编码算法:Huffman编码算法。允许用户输入一段英文文字,或者打开一个txt文档(英文内容),据此文档内容进行编码。要求动态列出每个字符的出现概率统计结果以及对应编码。5. 其他可供演示的具有一定难度的算法,如关键路径问题、有向图的极大连通分支等。题目 网络聊天程序功能要求:1. 实现类似与飞鸽的功能,自动侦测局域网内部启动该软件的用户,并显示在用户列表中。2. 可以进行两个人之间的私聊。3. 可以群聊。4. 可以发送文件。
展开阅读全文