当前位置:文档之家› 打字训练测试课程设计

打字训练测试课程设计

打字训练测试课程设计
打字训练测试课程设计

课程设计报告

课程:面向对象程序设计

学号:1510441003、1510441032

姓名:施婉君、徐安梅

班级:15计科D班

教师:韩成美

时间:2017年12月19日

计算机科学与技术系

设计名称:打字训练测试日期:2017年1 2月5日

设计内容:

要求设计一款打字训练测试程序,实现从磁盘上寻找打开一个文件、设置打字时间、时实显示打字速度和剩余时间等功能,应用到GUI,多线程,文件的输入输出等知识。需要从磁盘打开要录入文件的样本,录入前可以设定录入练习时间,录入时需要实时显示录入速度和剩余时间,录入结束后,显示录入速度和错误率。录入结束方式可以通过点击“结束测试”按钮结束测试,文章录入完成也自动结束录入,到达设置时间也自动结束录入。最后要求图形界面,界面良好美观。

设计目的与要求:

随着科学技术的不断提高,计算机科学目渐成熟,计算机怩深入到工作和生活的各个角落,文字录入是学习计算机非常重要的一部分。在手写录入技术和语音识别技术还不完善的同时大部分人还在使用键盘作为文字录入的工具。所以我编了这样一个小程序,同时也是我的面向对象程序设计的课程设计。希望能对电脑初学都和想提高打字速度的朋友们有所帮助。从磁盘添加现有的文本文件显示在程序界面上方。在打字开始前,可以设置测试时间,方便快捷地结束测试。显示测试结果。结果主要包括:打字速度和错误率。在录入过程中,显示当前速度和剩余时间。为了时实提醒用户打字速度和打字时间必需可以时实提示打字速度和剩余时间(剩余时间是设置的测试时间减掉已使用的时间)。使用菜单栏。要求菜单栏可以从“文件——>打开”添加文件,可以从“文件——>退出”退出程序,可以从“帮助——>关于”了解程序信息。多情况结束测试。1、当测试结束时,结束测试。2、当点击“结束测试”按钮结束测试。3、当文章录入完成结束测试。文字录入是学习计算机非常重要的一部分。在手写录入技术和语音识别技术还不完善的同时大部分人还在使用键盘作为文字录入的工具。所以我编了这样一个小程序,同时也是我的面向对象程序设计的课程设计。

本系统构建学生打字练习系统,基于所开发的打字程序界面友好,图形复杂。打字练习程序中应用到eclipse最新版本,java1.6以上版本的jdk。对于打字测试进入整体的部署。完成打字练习程序开发,培养程序设计和开发能力。

设计环境或器材、原理与说明:

一、设计环境:

处理器:Intel Core 2

内存: 1G

硬盘空间:312G

显卡:NVIDA显示卡适配器

操作系统;window 7 中文旗舰版

开发平台:jdk-6u21-windows-i586版

JCreator_cn

二、说明:

目前大多数打字程序都是只能在Windows下运行,跨平台运行能力不是很强。为了适应当下的需求,格外需要一款能够新的打字程序。

要求设计一款打字训练测试程序,实现从磁盘上寻找打开一个文件、设置打字时间、时实显示打字速度和剩余时间等功能,应用到GUI,多线程,文件的输入输出等知识。需要从磁盘打开要录入文件的样本,录入前可以设定录入练习时间,录入时需要实时显示录入速度和剩余时间,录入结束后,显示录入速度和错误率。录入结束方式可以通过点击“结束测试”按钮结束测试,文章录入完成也自动结束录入,到达设置时间也自动结束录入。最后要求图形界面,界面良好美观

本程序使用的开发工具是java1.6,它目前是比较流行的java语言开发工具,在执行效率方面表现良好,在跨平台方面更是强项。因此用户可以放心使用。

设计过程(步骤)或程序代码(可以加页):

1.需求分析

1.1 界面及布局设计

本程序主要分为以下几个子模块:添加文件、打开、退出、关于、开始测试、结束测试等。系统结构设计图如图3-1所示。

图1-1系统功能模块图

1.2 程序结构设计

根据分析最后决定本程序整体是用一个Typer 主类和用一个TyperProgram

类完成图形界面和监听响应事件,在内部用Timer 类实现对系统时间监控显示和完成录入后的成绩计算。其中监听键盘和文本输入用匿名内部类来实现,TyperProgram 和Timer 用多线程来实现并发运行。当程序运行时TyperProgram 的对象先运行,当点击开始按钮时Timer 对象开始运行。

主要应用到的API 类有:

java.io.*;java.awt.*;java.awt.event.*;javax.swing.*;javax.swing.even t.*;javax.swing.filechooser.FileFilter 。程序的主类是Typer 。

需要编写的主要函数有:

setWindow()用来设计用户界面,整体的JFrame 用BorderLayout 进行布局分成北中南三个块。其中北边是一个用GridLayout 布局的JPanel 分成0行2列,两列中分别是一个JTextField ;中间是一个GridLayout 布局的JPanel 分成2行1列;南边是一个FlowLayout 布局的JPanel ,里面放两个居中的按钮。

setListener()用来设置多种监听,如事件监听,键盘监听,文本监听等。其中事件监听由于实现了接口ActyionListener ,直接添加本类,再于函数actionPerformed()来实现,而其它监听都用的是匿名内部类来实现。很成功地完成了多种监听处理功能。

putScore()用来结束测试后,统计错误率,并将错误率显示在界面,右上方

打字速度测试程序

添加文件

打开

退出

关于

开始测试

结束测试

的JTextField中。

其它函数主要用于实现接口或者完成上面函数的部分功能。

程序结构设计如图1-2

class TyperProgram extends Thread implements ActionListener {

……

private class Timer implements Runnable{

……

public void putScore(){……}

public void run(){……}

……

}

……

public void setWindow(){……};

public void setListener(){……};

public void actionPerformed(ActionEvent e){……}

public void run(){

setWindow();

setListener();

}

}

public class Typer{

public static void main(String[] args){

TyperProgram tp=new TyperProgram();

tp.start();

}

}

图1-2 程序结构模块图

2 详细设计

2.1 起始界面设计

窗口为一个添加菜单栏的JFrame,菜单栏包括主要有文件和帮助两个部分,整体的JFrame用BorderLayout进行布局分成北中南三个块。其中北边是一个用GridLayout布局的JPanel分成0行2列,两列中分别是一个JTextField;中间是一个GridLayout布局的JPanel分成2行1列,每行分别为一个CardLayout 布局的JPanel,其中第一行里放了一个带按钮的JPanel和一个JTextArea,第二行里为一带图片的JPanel和和个JTextArea;南边是一个FlowLayout布局的

JPanel,里面放两个居中的按钮。主要代码如下:

JFrame jf=new JFrame("xxx打字高手");

Container cont=jf.getContentPane();

cont.setLayout(new BorderLayout());

jm=new JMenu("文件");

jmHelp=new JMenu("帮助");

jmi=new JMenuItem("打开");jmi.setActionCommand("打开");

jmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));

jmiExit= new JMenuItem("退出");jmiExit.setActionCommand("退出");

jmiAbout=new JMenuItem("关于");jmiAbout.setActionCommand("关于");

jm.add(jmi);jm.addSeparator();jm.add(jmiExit);

jmHelp.add(jmiAbout);

jmb.add(jm);jmb.add(jmHelp);

JPanel jptf=new JPanel(new GridLayout(0,2));

jptf.add(jtf1);jptf.add(jtf2);

cont.add(BorderLayout.NORTH,jptf);

jpg.setLayout(new GridLayout(2,0,0,30));

jta1=new JTextArea();

jta2=new JTextArea(){

private static final long serialVersionUID = 1L;

@Override public void paste(){}

};

jbAdd=new JButton("添加文件");jbAdd.setActionCommand("打开");

jpb=new JPanel(new CardLayout(300,80));

jpb.add("card",jbAdd);

jpc1.add("card1",jpb);jpc1.add("card2",jta1);

JLabel jpng=new JLabel(new ImageIcon("image/keyboard.jpg"));

jpc2=new JPanel(card2);

jpc2.add("card1",jpng);jpc2.add("card2",jta2);

jpg.add(jpc1);jpg.add(jpc2);

cont.add(BorderLayout.CENTER,jpg);

jpf=new JPanel();

jpf.setLayout(new FlowLayout(FlowLayout.CENTER,50,0));

jb1=new JButton("开始测试");jb1.setActionCommand("开始");

jb2=new JButton("结束测试");jb2.setActionCommand("结束");

jpf.add(jb1);jpf.add(jb2);

cont.add(BorderLayout.SOUTH,jpf);

起始界面如图2-1:

图2-1 起始界面图

2.2 添加文件界面设计

添加打开文件用打开对话框,并对对话框添加文件过滤器,代码如下:JFileChooser fileCh=new JFileChooser();

fileCh.setCurrentDirectory(new File("files"));

fileCh.setFileFilter(new FileFilter(){

public boolean accept(File f){

return

f.getName().toLowerCase().endsWith(".txt")||f.isDirectory();

}

public String getDescription(){

return "文本文档 *.txt*";

}

});

if(fileCh.showOpenDialog(null)==JFileChooser.CANCEL_OPTION)return;

getPath=fileCh.getSelectedFile();

if(!getPath.getPath().toLowerCase().endsWith(".txt")){

JOptionPane.showMessageDialog(null,"请选择文本文档","提示

",https://www.doczj.com/doc/ff11396873.html,RMATION_MESSAGE);

return;

}

添加文件界面设计如图2-2:

图2-

2 添加文件界面图

2.3 设置测试时间设计

录入时间设定用一个对话框实现,并接收输入信息,默认录入测试时间为5分钟,主要代码如下:

JPanel jp=new JPanel(new GridLayout(2,0));

JLabel jlab=new JLabel("设置测试时间(分):");

JTextField jtfTime=new JTextField();

jtfTime.setText("5");

jp.add(jlab);jp.add(jtfTime);

int select=JOptionPane.showConfirmDialog(null,jp,"设置

",JOptionPane.OK_CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE);

if(select!=JOptionPane.OK_OPTION)return;

strTime=jtfTime.getText();

测试时间设置如图2-3

图2-3 测试时间设置图

2.4 速度和剩余时间设计

实时显示录入速度和剩余时间通过实现Runnable接口的一个Timer类来计算实现。当开始录入时获取一个系统时间startTime=System.currentTimeMillis(),然后每隔一秒获取一个系统时间nowTime=System.currentTimeMillis(),同时统计当前录入的字数count=jta2.getText().length(),字数除以用两个时间之差得到速度最后单位换算为(字/分);剩余时间等于设置时间减去花费的时间remainTime=setTime-spendTime最后转换为*分*秒。如图4-4

2-4 测试进行中

2.5 显示测试成绩

显示录入速度和错误率。录入速度计算同上,错误率等于总的错字数/录入总字数error=(words+l)==0?0:((errorWords+k)*1.0/(words+l))*100(注:如果没有录入就结束测试,错误率为0%)。如图4-5

图2-5 测试结束

3 系统测试

系统测试是一个系统在正式投入到使用运行之前,对于该系统的需求分析、系统的设计规格、程序的可执行代码以及系统各功能模块的使用情况等方面进行全面的审查和验收,从而判断该系统是否能够满足用户的需求,可见系统测试是对系统质量把关过程中至关重要的一步。

3.1 系统测试的方法

运行程序,测试程序是否能正常运行,是否有错误,或者异常,同时检测程序的cpu和内存的占用率。

3.2 程序测试

寻找若干名用户,使用本程序进行打字测试,征求改进意义。正常运行顺序如下:添加文件/打开——>开始测试——>结束测试,非正常的运行会弹出提示对话框。

设计结果与分析(可以加页):四:运行效果图

附录:程序代码

import java.io.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import javax.swing.filechooser.FileFilter;

class TyperProgram extends Thread implements ActionListener { private JPanel jpc1,jpc2;

private JMenuItem jmi,jmiExit,jmiAbout;

private JTextField jtf1,jtf2;

private JTextArea jta1,jta2;

private JButton jb1,jb2,jbAdd;

private CardLayout card1,card2;

private String state="",strTime="";

private StringBuffer strbFile;

private int words,errorWords;

private double startTime;

private File getPath;

private BufferedReader buf;

private boolean fileOver,lock=true;

private class Timer implements Runnable{

public void putScore(){

jta2.setEditable(false);

String str1,str2;int l1,l2;

str1=jta1.getText();l1=str1.length();

str2=jta2.getText();l2=str2.length();

double error;

int k=l1

for(int i=0;i

if(str1.charAt(i)!=str2.charAt(i))

k++;

error=(words+l)==0?0:((errorWords+k)*1.0/(words+l))*100;

jtf2.setText("错误率:"+Math.ceil(error*100)/100.0+"%");

errorWords=0;words=0;

state="addFile";lock=true;

jb1.requestFocus();

}

public void run(){

double nowTime,spendTime,setTime,speed=0,remainTime;

int count,remainMin,remainSec;

nowTime=System.currentTimeMillis();

spendTime=(nowTime-startTime)/60000;

setTime=Double.parseDouble(strTime);

while(spendTime

count=jta2.getText().length();

speed=(words+count)/spendTime;

remainTime=setTime-spendTime;

remainMin=(int)remainTime;

remainSec=(int)Math.round((remainTime-remainMin)*60);

jtf1.setText("当前的速度:"+Math.round(speed)+"字/分");

jtf2.setText("剩余时间:"+remainMin+"分"+remainSec+"秒");

try{

Thread.sleep(1000);

}catch(Exception e){

e.printStackTrace();

}

nowTime=System.currentTimeMillis();

spendTime=(nowTime-startTime)/60000;

}

jtf1.setText("速度:"+Math.round(speed)+"字/分");

putScore();

}

}

public void setWindow(){

JFrame jf=new JFrame("xxx打字高手");

Container cont=jf.getContentPane();

cont.setLayout(new BorderLayout());

Font ft=new Font("新新字体",Font.PLAIN,20);

JMenuBar jmb=new JMenuBar();

JMenu jm,jmHelp;

jm=new JMenu("文件");

jmHelp=new JMenu("帮助");

jmi=new JMenuItem("打开");jmi.setActionCommand("打开");

jmi.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MAS K));

jmiExit= new JMenuItem("退出");jmiExit.setActionCommand("退出");

jmiAbout=new JMenuItem("关于");jmiAbout.setActionCommand("关于");

jm.add(jmi);jm.addSeparator();jm.add(jmiExit);

jmHelp.add(jmiAbout);

jmb.add(jm);jmb.add(jmHelp);

jtf1=new JTextField();

jtf1.setFont(ft);

jtf1.setEditable(false);

jtf2=new JTextField();

jtf2.setFont(ft);

jtf2.setEditable(false);

JPanel jptf=new JPanel(new GridLayout(0,2));

jptf.add(jtf1);jptf.add(jtf2);

cont.add(BorderLayout.NORTH,jptf);

JPanel jpg,jpf,jpb;

jpg=new JPanel();

jpg.setLayout(new GridLayout(2,0,0,30));

jta1=new JTextArea();

jta2=new JTextArea(){

private static final long serialVersionUID = 1L;

@Override public void paste(){}

};

jta1.setFont(ft);

jta1.setLineWrap(true);

jta1.setEditable(false);

jta1.setBackground(new Color(200,255,200));

jta2.setFont(ft);

jta2.setLineWrap(true);

jta2.setEditable(false);

jta2.setBackground(new Color(200,200,255));

jbAdd=new JButton("添加文件");jbAdd.setActionCommand("打开");

jpb=new JPanel(new CardLayout(300,80));

jpb.add("card",jbAdd);

card1=new CardLayout();

jpc1=new JPanel(card1);

jpc1.add("card1",jpb);jpc1.add("card2",jta1);

JLabel jpng=new JLabel(new ImageIcon("image/keyboard.jpg"));

card2=new CardLayout();

jpc2=new JPanel(card2);

jpc2.add("card1",jpng);jpc2.add("card2",jta2);

jpg.add(jpc1);jpg.add(jpc2);

cont.add(BorderLayout.CENTER,jpg);

jpf=new JPanel();

jpf.setLayout(new FlowLayout(FlowLayout.CENTER,50,0));

jb1=new JButton("开始测试");jb1.setActionCommand("开始");

jb2=new JButton("结束测试");jb2.setActionCommand("结束");

jpf.add(jb1);jpf.add(jb2);

cont.add(BorderLayout.SOUTH,jpf);

jf.setBounds(250,50,810,630);

Toolkit toolkit = jf.getToolkit();

Image image = toolkit.getImage("image/chen.png");

jf.setIconImage(image);

jf.setJMenuBar(jmb);

jf.setVisible(true);jbAdd.requestFocus();

jf.setResizable(false);

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void readyFile(){

String strFile="";

FileReader in=null;

try{

String strLine="";

in=new FileReader(getPath);

buf=new BufferedReader(in);

strLine=buf.readLine();

while(strLine!=null){

strFile+=strLine;

strLine=buf.readLine();

}

}catch(IOException e1){

e1.printStackTrace();

}

strbFile=new StringBuffer(strFile);

fileOver=false;

}

public void readFile(){

String strPart=""; int n=320;

if(strbFile.length()<=n){

jta1.setText(strbFile+"\n");

fileOver=true;

return;

}

strPart=strbFile.substring(0,n);

strbFile=strbFile.delete(0,n);

jta1.setText(strPart+"\n");

}

public void addFile(){

JFileChooser fileCh=new JFileChooser();

fileCh.setCurrentDirectory(new File("files"));

fileCh.setFileFilter(new FileFilter(){

public boolean accept(File f){

return

f.getName().toLowerCase().endsWith(".txt")||f.isDirectory();

}

public String getDescription(){

return "文本文档 *.txt*";

}

});

if(fileCh.showOpenDialog(null)==JFileChooser.CANCEL_OPTION)return;

getPath=fileCh.getSelectedFile();

if(!getPath.getPath().toLowerCase().endsWith(".txt")){

JOptionPane.showMessageDialog(null,"请选择文本文档","提示

",https://www.doczj.com/doc/ff11396873.html,RMATION_MESSAGE);

return;

}

readyFile();

readFile();

state="addFile";

card1.show(jpc1,"card2");

jb1.requestFocus();

}

public boolean isDigit(String str){

int k=0;

if(str.equals(""))return false;

for(int i=0;i

if(str.charAt(i)=='.'&&k++==0)i++;

if(!Character.isDigit(str.charAt(i)))return false;

}

return true;

}

public void setstart(){

JPanel jp=new JPanel(new GridLayout(2,0));

JLabel jlab=new JLabel("设置测试时间(分):");

JTextField jtfTime=new JTextField();

jtfTime.setText("5");

jp.add(jlab);jp.add(jtfTime);

int select=JOptionPane.showConfirmDialog(null,jp,"设置",JOptionPane.OK_CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE);

if(select!=JOptionPane.OK_OPTION)return;

strTime=jtfTime.getText();

if(isDigit(strTime)){

if(jta1.getText()!=null){

readyFile();

readFile();

}

card2.show(jpc2,"card2");

jta2.setText(null);

jta2.setEditable(true);

jta2.requestFocus();

state="start";

lock=false;

startTime=System.currentTimeMillis();

Timer ti=new Timer();

Thread t=new Thread(ti);

t.start();

}

else{

JOptionPane.showMessageDialog(null,"请输入数字","提示",https://www.doczj.com/doc/ff11396873.html,RMATION_MESSAGE);

}

}

public void setListener(){

jmi.addActionListener(this);

jmiExit.addActionListener(this);

jmiAbout.addActionListener(this);

jbAdd.addActionListener(this);

jb1.addActionListener(this);

jb2.addActionListener(this);

jbAdd.addKeyListener(new KeyListener(){

public void keyPressed(KeyEvent e1){

if(e1.getKeyCode()==KeyEvent.VK_ENTER)

addFile();

}

public void keyReleased(KeyEvent e2){}

public void keyTyped(KeyEvent e2){}

});

jta2.getDocument().addDocumentListener(new DocumentListener(){ public void insertUpdate(DocumentEvent e1){

String str1=jta1.getText();

String str2=jta2.getText();

if(str1.length()==str2.length()&&str2.endsWith("\n")){ if(fileOver){

state="over";

}

else{

words+=str2.length();

for(int i=0;i

if(str1.charAt(i)!=str2.charAt(i))

errorWords++;

EventQueue.invokeLater(new Runnable(){

public void run() {

jta2.setText(null);

}

});

readFile();

}

}

}

public void changedUpdate(DocumentEvent e2){}

public void removeUpdate(DocumentEvent e3){}

});

}

public void actionPerformed(ActionEvent e){

String strAction=e.getActionCommand();

if(strAction=="打开"&&lock){

addFile();

}

else if(strAction=="退出"){

System.exit(1);

}

else if(strAction=="关于"){

String str=" 版权所有(c):黄晨";

JOptionPane.showMessageDialog(null,str,"关于

",JOptionPane.PLAIN_MESSAGE);

}

else if(strAction=="开始"&&lock){

if(!state.equals("addFile"))

JOptionPane.showMessageDialog(null,"你还没有添加有效文档","提示",https://www.doczj.com/doc/ff11396873.html,RMATION_MESSAGE);

else

setstart();

}

else if(strAction=="结束"){

if(!state.equals("start"))

JOptionPane.showMessageDialog(null,"你还没有测试","提示

",https://www.doczj.com/doc/ff11396873.html,RMATION_MESSAGE);

else

state="over";

}

}

public void run(){

setWindow();

setListener();

}

}

public class Typer{

public static void main(String[] args){

TyperProgram tp=new TyperProgram();

tp.start();

}

}

汇编课程设计汇本打字游戏

华北科技学院 课程设计说明书 专业:网络工程 课程名称: 汇编课程设计 设计题目: 打字游戏设计 设计时间: 2011-12-05 至2011-12-16 评语: ________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:___

课程设计报告的要求 1、需求分析 描述问题。简述课题要解决的问题是什么,有什么要求和限制条件。 2、总体设计(程序设计组成框图、流程图) 3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,过程调用关系描述等)) 4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施 5、测试结果,用几组测试数据进行测试算法设计的正确性。 6、附录。源程序清单和结果:源程序要加注释。结果要包括测试数据和运行结果。 《汇编语言》课程设计案例 一、问题述及其需求分析 要求:利用汇编语言编写一个小的打字游戏 容:编写程序,在打开的菜单页面中选择游戏的难度。 难度选择包括以下5个选择 (1)very slow (2)slow (3)normal (4)fast (5)very fast 在编写过程中包括以下几个部分: (1)初始化上部分的字母 (2)获得下落的字母 (3)字母下移,同时覆盖原来的字母 (4)判断是否有输入 (5)若无输入则下落到最后 (6)覆盖原来的字符

汇编语言课程设计

沈阳大学

2.3 MASM的介绍 MASM是微软公司开发的汇编开发环境,拥有可视化的开发界面,使开发人员不必再使用DOS环境进行汇编的开发,编译速度快,支持80x86汇编以及Win32Asm是Windows下开发汇编的利器。它与windows平台的磨合程度非常好,但是在其他平台上就有所限制,使用MASM的开发人员必须在windows下进行开发,历经二三十年的发展,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4等指令系统。 2.4总体设计功能 本次课程设计的内容是采用汇编语言设计一个运行于计算机的“霓虹灯”的模拟显示 程序,由$及*字符相间,从两侧向中间螺旋汇聚直至形成一个矩形,这就要求该霓虹灯能够动态地进行变化;霓虹灯模拟显示程序主要是进行程序循环调用,可以通过CMP、JMP、JZ、RET等命令进行跳转。由于是霓虹灯的模拟显示,因此在进行程序循环调用前需要进行数据段定义,以使子程序在进行调用时能够根据数据段的定义来执行,最后显示结果。 定时器中断处理程序:计数器中断的次数记录在计数单元count中,由于定时中断的引发速率是每秒18.2次,即计数一次为55ms,当count计数值为18时,sec计数单元加一(为1秒)。 视频显示程序设计:一般由DOS 或BIOS调用来完成。有关显示输出的DOS功能调用不多,而BIOS调用的功能很强,主要包括设置显示方式、光标大小和位置、设置调色板号、显示字符、显示图形等。用INT 10H中断即可建立某种显示方式。用DOS功能调用显示技术,把系统功能调用号送至AH,把程序段规定的入口参数,送至指定的寄存器,然后由中断指令INT 21H来实现调用。 键盘扫描程序设计:利用DOS系统功能调用的01号功能,接受从键盘输入的字符到AL寄存器,以及检测键盘状态,有无输入,并检测输入各值。 2.5详细功能设计 2.5.1主程序功能 主程序通过调用各个子程序来实现清屏,改变图形等功能,具体调用过程如图1所示。 沈阳大学

JAVA课程设计报告

《JA V A程序设计》 课程设计报告 设计题目:学生信息管理系统学院名称:信息工程学院 专业班级:13计本1 姓名: 学号:

目录 一需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 二概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 三详细设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.1 数据库设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2 模块及窗体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.1 数据库模块设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.2 用户登录识别模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 3.2.3用户信息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (1)密码修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (2)用户信息添加和删除。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 3.2.4 学生息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (1)添加信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (2)信息查看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 (3)信息修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 (4)删除信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14 3.2.5 系统管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 3.2.6 主窗体菜单设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 四软件测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 五总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 参考资料:.......................................................17

汇编语言课程设计报告-打字练习程序

提供全套毕业设计,欢迎咨询 汇编语言课程设计报告 程序题目:打字练习程序 学生姓名:XX 班级:2010级计算机科学与技术专业4班学号:XXX 院系:计算机科学学院 指导教师:XXX

目录

1设计目的 本程序运行后,出现主界面,按回车键出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失;按回车键进入打字练习;按ESC键返回主界面;按空格键暂停;按‘E’退出。通过课程设计,主要达到以下目的: 1. 增进对汇编语言的认识,加强用汇编语言编程的能力; 2. 掌握汇编语言的中断调用功能的应用,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制等; 3. 了解和掌握汇编语言程序设计过程、方法及实现,为以后微机原理课程的学习打下良好基础; 4. 通过课程设计可以使我们更加了解书上的知识,了解书上的语句并且能够应用自己的程序中; 5. 掌握屏幕输出显示的设计方法。 2概要设计 2.1 系统总体分析 根据题目要求可以看到有以下几部分来实现打字练习:1.由26字母乱序组成一行显示行。2.字母自动落下。3.从键盘输入的字母与落下字母相同则该字母消失,并且下一个字母自动接着落下。4.按下“Ese”键则程序返回到主界面。5.按空格键游戏暂停。6.在主界面按“E”则程序退出。打字练习的主要功能由以上六部分组成,每一部分之间的联系都是比较紧密的。对于以上及部分,最主要的部分就是第二三两个部分,这是打字练习的重点,需要详细设计其所需要的功能。 2.2主模块框图及说明

是 否 否 是 是 图2-1程序设计流程图 程序的核心模块是打字,各个模块功能的实现主要是通过键盘输入指令来融合的,主要流程是先到主界面,然后选择你想要进行的指令ENTER 进入打字界面开始打字,E退出程序,空格在打字练习时执行暂停的功能,ESC是从打字界面返回到主界面。核心模块的流程大体如下面的流程图图2-1: 3 详细设计 3.1 主模块及子模块说明 主界面是程序的初始入口,也是其他功能模块的接入点。主模块是打字模块,也是核心模块,主要通过各个键盘符来控制各个子模块之间的协调。子模块分为判断输入字符判断模块(这当中包含两个小的子模块:主界面输入字符判断和打字模块输入字符判断)、暂停模块、退出模块(这当中包含两个小的子模块:打字界面返回主界面模块和主界面退出程序模块)

java课程设计报告--打字游戏

java课程设计报告--打字游戏 Java开发技术课程设计 (打字游戏) 学院:计算机与信息工程学院 学号:****** 姓名: ** 时间:2011年12月14日 一、程序描述 1.1程序设计的目的 通过java开发技术课程的学习,我初步了解了如何运用java语言编写程序。课程结束后,按老师的要求,在查找资料后,我完成了打字练习这个程序。 在这个过程中,主要达到了两个目的,一是检验和巩固专业知识,二是提高综合 课堂上掌握的理论知识与处理数据的素质和能力。通过该程序的编写,可以将我 业务相结合,以检验我掌握知识的宽度、深度及对知识的综合运用能力。 1.2程序设计的要求 (1)程序的界面会随机的出现字母和数字,玩家在键盘上摁相应的键后,界面上的对应的字符就会消失 (2)字符下落的速度可以选择,完成一定量的字符后,显示进入下一关,下一关的速度加快 (3)能统计正确与错误的字符数分别是多少

(4)程序的主界面是能够给玩家第一感官的部分,主要包括程序图形区域界面、程序的显示更新界面。 1.3程序设计的环境 Windows xp操作系统、Myeclipse编辑工具、jdk1.6 二、分析与设计 2.1 游戏处理流程 本次游戏设计的处理流程如下图所示 进入游戏画面 单击“开始”按钮, 游戏开始,字符开始随机。 根据出现的字符按相应的 键,对应一个消失一个(字 符)按对一定字符后将提示 进入下一关,下一关的速度 有所增加。速度也可单独调 节。 没有摁倒相应游戏中途欲中 的键,错误的断,稍后继续 数字将加一游戏 单击“退出” 单击“暂停” 退出游戏游戏暂停 再次单击开始 游戏,游戏恢复 游戏处理流程图 2.2需求分析

汇编语言-课程设计1

) 汇编语言课程实验报告 实验名称 课程设计1 实验环境 硬件平台:Intel Core i5-3210M 操作系统:DOSBox in Windows 软件工具:Turbo C , Debug, MASM 实验内容 《 将实验7中的Power idea公司的数据按照下图所示的格式在屏幕上显示出来。 实验步骤 1.要完成这个实验,首先我们需要编写三个子程序。第一个子程序是可以显示字符串到屏 幕的程序,其汇编代码如下: ;名称:show_str

;功能:在屏幕的指定位置,用指定颜色,显示一个用0结尾的字符串 ;参数:(dh)=行号,(dl)=列号(取值范围0~80),(cl)=颜色,ds:si:该字符串的首地址 ;返回:显示在屏幕上 ¥ show_str: push ax push cx push dx push es push si push di mov ax,0b800h - mov es,ax mov al,160 mul dh add dl,dl mov dh,0 add ax,dx mov di,ax mov ah,cl . show_str_x: mov cl,ds:[si] mov ch,0 jcxz show_str_f mov al,cl mov es:[di],ax inc si inc di 【 inc di jmp show_str_x show_str_f: pop di pop si pop es pop dx pop cx } pop ax ret 2.第二个程序是将word型数据转换为字符串,这样我们才能调用第一个程序将其打印出

《信息系统分析与设计》课程设计试验报告

目录 一、开发计划 (1) 1. 所选题目 (1) 2. 小组信息 (1) 3. 项目背景 (1) 二、需求分析 (2) 1. 需求定义说明书 (2) 2. 数据流图 (2) 3. 数据字典 (4) 1)数据项的定义 (4) 2)数据流的定义 (4) 3)数据存储的定义 (4) 4)处理逻辑的定义 (5) 三、概要设计 (5) 1. 系统功能模块结构图 (5) 2. 数据库概要设计(E-R图) (6) 3. 代码设计 (6) 4. 输入/输出界面设计 (7) 四、详细设计 (8) 1. 主界面模块 (8) 1) 界面设计 (8) 2) 编码 (11) 2. 派车功能模块 (11) 1) 界面设计 (12) 2) 编码 (19) 五、测试与调试 (30) 1. 系统测试目标 (30) 2. 任务测试的任务 (30) 3. 系统测试的方法 (31) 4. 系统测试用例设计 (31) 六、对软件分析、设计及实施方面的评价及体会 (32) 七、组长对小组工作及成员的评价 (32)

一、开发计划 1. 所选题目 车辆管理系统 2. 小组信息 1)小组成员:XXXXXX 2)任务分配: 7月3日: XXX:分析管理功能模块代码 XXX:分析课题,编写开发计划、需求分析 7月4日: XXX:绘制数据流程图、E-R图、模块结构图 XXX:运行系统,分析数据库结构、系统结构、数据流程、数据字典 7月5日: XXX:测试功能模块,记录测试过程及结果 XXX:测试功能模块,记录测试过程及结果 7月6日: XXX:编写好实验报告并提交 3. 项目背景 1)原系统:随着经济的日益增长,车辆作为最重要的交通工具,在企事业单位中得到普及,单位的车辆数目已经远远不止简单的几辆,与此同时就产生了车辆资源的合理分配使用问题。该问题涉及到车辆的档案管理;驾驶员档案管理;车辆(维修费用、洗车费用、燃料费用等)管理;车辆使用管理和交通事故管理等。如何对一个企事业单位的车辆进行合理分配使用,使其发挥最大的使用价值,所以该系统对于一个用车单位来说,不但可以对车辆的使用进行合理的管理,而且对车辆的使用情况进行跟踪记录,这对于单位车辆责任到人,费用清晰,避免责任混乱、费用虚假等一系列相应问题的解决。 2)目标系统:原系统的设计基本满足要求,但也存在着些许不足之处,我们所要做的就是分析原系统,尽可能的完善原系统。

JAVA课程设计题目

Java课程设计题目 一、课程设计的目的 为了进一步巩固java程序设计课程所学到的知识,深刻把握Java语言的重 要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了一周的Java程序设计课程设计。 通过此次课程设计,巩固所学java语言基本知识,增进Java语言编辑基本功,掌握JDK、Editplus、Eclipse、JCreator等开发工具的运用,拓宽常用类库的应用。使学生通 过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程 思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 二、课程设计的基本要求 1、明确题目要求,进行需求分析; 2、进行功能设计,编写设计说明; 3、进行程序设计与调试; 4、对设计过程进行系统的总结; 5、界面美观大方; 6、完成设计报告 7、课程设计建议在Editplus +JDK、JCreator +JDK、myeclipse平台上开发、调试。 8、 Java源程序应加上详尽的注释语句,对所设计的类、属性、方法说明其用途,对方法的调用说明其用意和使用参数的原因。特别是有深刻理解、有独 特见解的地方,用注释语句加以说明。 三、课程设计的主要内容 利用学到的编程知识和编程技巧,通过具体项目的分析、设计和开发,掌握开发Java大型软件项目过程中所需要的软件技术并熟悉软件。 可以以小组为单位,每组1至2名学生,在教师的指导下,每组完成一个题目。题目可由下面提供的选题中选择或学生自选经教师审核后方可。该组每个同学承担题目的不同部分,每位同学的课程设计报告必需独立完成。 题目类型大致分配如下: 1、网络通讯类,编制网络聊天(Chat)程序,以下简称“网络”类。

打字练习游戏程序

摘要 汇编语言(Assembly Language)是面向机器的程序设计语言,汇编语言是一种功能很强的程序设计语言,也是利用计算机所有硬件特性并能直接控制硬件的语言。在汇编语言中,用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。因此汇编语言亦称为符号语言。 关键字:汇编语言、程序设计、助记符

目录 摘要 0 目录 (1) 前言 (2) 第1章系统分析 (3) 第2章系统总体设计 (4) 2.1打字程序包括以下五个子程序: (4) 2.2算法的整体设计思路 (4) 2.3程序的主要特点 (4) 第3章详细设计 (5) 3.1主界面伪代码 (5) 3.2等级界面伪代码 (5) 3.3游戏界面伪代码 (6) 3.4清屏子程序设计 (6) 3.5密码程序设计 (7) 3.6宏代码 (8) 3.6.1在指定位置显示彩色字符串 (8) 3.6.2显示背景 (9) 3.6.3画横向边框的宏 (9) 3.6.4画竖边框的宏 (10) 3.7功能的进一步完善 (11) 3.7.1完善代码一 (11) 3.7.2完善代码二 (12) 3.7.3完善代码三 (12) 第4章软件使用说明书 (14) 4.1密码界面图: (14) 4.2主界面图: (14) 4.3等级选择界面: (14) 4.4游戏界面: (15) 参考文献 (17) 致谢 (18) 源代码: (19)

前言 随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。而汇编语言作为计算机专业大学生必修课,每个作为本专业的学生对汇编的理解和学习就显得尤为重要。汇编语言是计算机能够提供用户使用的最快而又最好最有效的与言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显得必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。 《打字游戏程序设计》课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。因此,要求我们能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。通过具体的问题分析、设计、调试、运行程序。在实际问题中锻炼提高自己,增加了对本门课程内容的理解,锻炼了动手能力。就这个程序具体而言:调用宏,显示背景和主界面,通过选择不同的选项,可以进入不同的界面;采用BIOS功能的中断,可以在任何时候退出当前所在的界面并通过选择进入其他的界面。这个程序最终通过菜单所提示的信息选取所要进入的界面,获得所要的功能。

2016微机原理与汇编语言课程设计参考题目(1)

微机原理课程设计题目与要求 微机原理课程设计说明: 1. 要求使用 A4 纸打印,必须有封面和目录。 封面内容有课设题目、班级、学号、姓名、指导教师、日期等内容。 2. 课设内容一般应包含如下部分: ①课设目的、内容; ②问题分析、设计思路及原因; ③电路设计及功能说明,硬件原理图(包括接口芯片简介); ④软件部分的程序流程图,算法和使用的编程技巧; ⑤汇编源程序清单,对关键的语句(段)要给出简洁的注释; ⑥设计过程中的主要难点(自己遇到的)及解决思路和办法; ⑦课设结果及分析; ⑧收获、体会和建议。 选题规则: 1-2 班同学按顺次排号,名单附件2,一共88个人,每组4人,分22组,共22个题目,每组选举一个联系人,代表本组抽选题目,并加入讨论群,用于讨论实验事宜。 论文要求: 1.必须采用统一的稿纸。 2.封面按照附件1标准格式书写; 3.课程设计(论文)必须明确包含:题目、题目分析、硬件电路图(仅硬件题目提交)件流程框图、设计思路说明、程序清单(需加必要解释); 4.硬件电路图用A4纸单独绘制,统一装订在论文中; 5.题目相同的论文必须有不同之处,否则所有完全相同的论文都以0分计。 成绩评定:课程设计成绩分两部分,设计报告占40%,设计作品占60%(演示)。 硬件演示软件平台:Proteus、Labview或其他PC平台。

题目1 编程显示学校图书馆广场雕像。 用字符组成汽车图形,在屏幕显示从左向右开动的汽车。 题目2 人名排序程序。 从键盘接收十个人名,字母上升次序显示所输入的人名,每一个人名占一行。 题目3 多功能密码锁 密码锁在输入密码正确的条件下输出开锁电平,控制电控锁开启,同时显示 00 字样。当输入密码错误时,发出错误警告声音,同时显示FF 字样。当六次误码输入的条件下,产生报警电平报警。还可以实现对密码的修改,修改成功后,蜂鸣器发出确认音。 设计任务: 1、选用 8086 和适当的存储器及接口芯片完成相应的功能。 2、用 LED 显示器显示电子锁的当前状态。 3、画出详细的硬件连接图。 4、给出程序设计思路、画出软件流程图。 5、给出地址分配表。 6、给出所有程序清单并加上必要注释。 7、完成设计说明书(列出参考文献,所用器件型号) 题目4 汽车倒车测距仪 设计内容及要求: 设计一个微机控制的汽车倒车测距仪,能测量并显示车辆后部障碍物离车辆的距离,同时用间歇的“嘟嘟”声发出警报,“嘟嘟”声间隙随障碍物距离缩短而缩短,驾驶员不但可以直接观察到检测的距离,还可以凭听觉判断车后障碍物离车辆距离的远近; ①开机后先显示“———” ,并有开机指示灯。 ② CPU 发射超声波 1ms,然后显示 60ms;即1ms+60ms 为一个工作周期,等待回波,在次周期内完成一次探测。

软件测试课程设计报告(模板)

课程设计 课程名称软件测试技术题目名称图书系统软件测试专业班级软件工程 学生姓名 学号 指导教师褚伟 二○一六年五月二十四日

目录 1.测试需求分析 (3) 1.1系统概述 (4) 1.2测试需求 (4) 2. 测试概要 (5) 3.测试计划 (5) 3.1测试方案的选择 (5) 3.2测试方案: (7) 3.3测试项目 (7) 3.4测试准备 (7) 3.5 测试覆盖率要求 (7) 4.测试项目说明 (8) 4.1测试项目名称及测试内容 (8) 4.2测试用例 (9) 5.对软件功能的结论 (24) 5.1功能1(系统登录) (24) 5.2功能2(图书管理测试) (24) 5.3功能3(图书查询测试) (24) 5.4功能4(系统管理测试) (24) 5.5功能5(借书测试) (24) 5.6功能6(还书测试) (25) 6.测试评价与结论 (25) 6.1能力 (25) 6.2缺陷和限制 (25) 6.3建议 (25) 7.总结 (26) 8.参考资料 (27)

摘要(中英文)

1.测试需求分析 1.1系统概述 本图书管理系统是一款功能非常强大的图书管理软件,本系统在继承了以往系统版本优点的基础上做了进一步优化;在功能上,本系统不仅包含图书管理的常用功能(如书籍管理、期刊管理、物品管理、读者管理、借、还、预借、续借和统计分析等等功能),而且还增加了条码的生成和打印功能(不仅为使用者省去了购买价格昂贵的条码专用打印机的费用,而且条码产生更方便,与系统结合更紧密)。 考虑到很多单位和学校有现成的身份IC卡(校园卡、会员卡等),为了有效的利用这些已有资源,让使用者使用更方便,我们特在系统中加入了会员卡管理功能,这样,图书管理员不仅可以通过读者编号进行借阅操作,也可以通过已有的身份卡(配合刷卡机或者条码扫描抢使用)来完成操作;在系统的办卡管理中有新办卡、换卡和注销卡等功能,彻底解决丢卡后的安全隐患问题(向制卡公司定制卡时,一般会要求每张卡的ID号都不同,所以一旦换卡了,原来的会员卡就作废了,即使丢失卡被别人捡到也不能进行正常的借阅操作)。 本系统具有操作简单,易学易用的特点。在开发过程中,我们总结了多年使用电脑管理图书馆业务的经验,注意到工作人员在使用电脑时容易发生的人为错误,因而使系统具有较强的容错和排错功能,而且本系统自带了一些常用的资料库(如中图分类库,出版社库等,系统会自动根据图书的标准ISBN码检索出当前图书的出版社名称和出版地点等,从而实现图书的自动录入的功能),使得用户在录入图书资料时更轻松;系统也自带了通用数据导入功能,可以非常简单地把用户以前的已有资料或者通过采集器采集到的数据资料导入到本系统中,避免了大量的重复劳动。经过长时间的不断测试和完善,系统的安全性和稳定性得到保证。 本系统完全可以配合条码扫描枪使用,操作会更流畅,更简单。 技术简介:本系统采用Adaptive Server Anywhere数据库、C/S结构,完全支持多用户操作;可运行于 Windows9x/WindowsNT/2000/Xp/2003平台,有良好的兼容性、先进性与扩充性;可在线升级。 系统特点:操作简单、界面清晰、功能强大、运行稳定快速、系统资源占用少。 1.2测试需求 本次测试针对开发的图书馆管理系统进行,包括功能测试,界面测试,图书

2013级JAVA课程设计题目

Java课程设计题目 一、课程设计总体要求: 本次课程设计是对前面学过的所有面向对象的编程思想以及编程方法的一个总结、回顾和实践,因此,开始设计前学生一定要先回顾以前所学的内容,明确本次作业设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。通过编写一个基于JA V A的应用系统综合实例,来掌握Java语言编程技巧。 重要说明日程说明: 1、4月21日前分组选题,查询资料,21-27日程序设计以及上机调试。最多2人一组。 2、设计报告打印一份,并将电子版以”13信算xx班第XX组报告.rar”的压缩包发到邮 箱:325822013@https://www.doczj.com/doc/ff11396873.html,邮箱。 3、压缩包里包含:设计报告的word版,word名称参考说明2,程序源代码文件。 注意:4月27日23点59分之后不再接收电子以及纸质稿,逾期成绩一律按不及格计算,联系方式qq:325822013,TEL:670705。 机房开放安排说明: 1.机房地点:求中502、503 2.时间安排共开放2.5天: 21日(周一):1-2节信算1、2班/ 3-4节数学1、2班/ 5-6节信算3班 23日(周三)全天,25日(周五)上午自由开放 二、参考题目及要求: 1、编写一个记事本程序(2人) 要求:用图形用户界面实现。 能实现编辑、保存、另存为、查找替换等功能。 提示:使用文件输入输出流。 2、ATM柜员机模拟程序(3人) 要求:使用图形用户界面。当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行: 1、查询余额:初始余额为10000元 2、A TM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。 3、A TM存款:不能出现负存款。 4、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。 3、超市收银系统(3人) 要求:使用图形用户界面。 由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。从数据库中取出有关价格信息,再把这些信息返回给收银台。同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。 另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。

打字游戏

湖南农业大学东方科技学院 课程设计报告 课程名称:微机原理与接口技术 设计题目:打字游戏程序设计 学生姓名:罗英杰 学号: 2 年级专业:2008级计算机科学与技术 班级: 3 班 指导老师:王兴波 学院:东方科技学院 湖南·长沙 提交日期:2009年12月

一、任务与要求 1. 开始界面的提示信息:进入游戏,退出 2. 打字游戏:字母从屏幕上方下落,若用户在字母下落过程中输入正确字母,字母消失, 输入不正确,字母继续下落 3. 空格键退出游戏 二、分析与规划 1、结构分析图,如下 2、布局分析: 首先,出现菜单主界面起到提示作用。然后进入游戏,接着完成游戏的退出。

三、实现过程 1、出现菜单主界面: ZK db "WELCOME TO PLAY$" no db "shejiren: Luo Yingjie 2009/12/09 $" meg db "press Enter key to continue.......$" meg1 db "when a letter is dropping,please hit it!$" meg2 db "press space key to pause!$" meg3 db "press ESC key to return main interface!$" meg4 db "press letter 'E' to exit!$" 上面的代码菜单主界面的内容 clear_screen 00d,00d,24d,79d Init_game 00d,00d,0ah,dl,80d,nextsign1 Init_game 24d,00d,0ah,dl,80d,nextsign2 Init_game 00d,00d,0ah,dh,25d,nextsign3 Init_game 00d,79d,0ah,dh,25d,nextsign4 menu 05d,15d,ZK ;菜单信息的宏调用 menu 07h,15d,no menu 09d,15d,meg menu 11d,15d,meg1 menu 13d,15d,meg2 menu 15d,15d,meg3 menu 17d,15d,meg4 clear_screen 01d,01d,23d,78d ;清屏宏调用 clear_screen 01d,01d,23d,78d Init_game 23d,01d,01h,dl,78d,nextsign5 mov ah,02h mov bh,00h mov dh,01h

C语言打字练习程序课程设计报告

青岛理工大学 《C语言程序设计》 题目打字练习程序 指导教师:李兰老师 姓名: 学号:2011 班级: 专业:计算机科学 地点:现代教育中心机房201 时间:2012.6.26 至2012.6.29

一、内容 本程序主要实现的是对使用者的打字速度进行练习和提高。因为界面友好亲和,因此能让使用者在轻松愉快中练习并快速提高自己的打字速度和准确性。程序主要的功能有记录使用者在本次使用中的击中数和总下落字母的个数之比。并且游戏设置了九个等级,随着数字的增加,等级越高,字母下落的速度逐步提高,这样能够更好的迎合不同水平的用户需求。使用本程序很简单,因为在写代码时,我很注重的是界面的友好,所以,在用户的每次操作前,界面上都有详细的操作提醒,只要跟着提示输入就能很快速地进入并开始练习。 二、上机环境 操作系统:windows XP(win7兼容) 开发工具:VC6.0 三、函数调用关系图 void main( ) start( ) printfScreen( ) levelChoice( ) newWord ( ) moving( ) wordHit( ) result( ) leave( )

四、各函数功能说明 1、void main( ) 主函数 2、void printScreen( ) 刷新屏幕函数 3、int levelChoice( ) 游戏等级选择函数 4、int newWord( ) 生成新字符函数 5、int moving( ) 字符下降函数 6、int wordHit( ) 击中字符函数 7、int result ( ) 结果输出函数 8、int start( ) 程序开始提示操作 9、void leave( ) 函数结束

(新)汇编语言课程设计四则运算

计算机与信息工程学院《汇编语言》课程设计四则运算器的设计 专业:计算机科学与技术 班级:控制11-2班 姓名: 倪天天 学号:2011025745 指导教师:郝维来 2013年6月28日

摘要 计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。想要用汇编语言实现简单的计算器,就必须通过对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识进行运用,以实现一个基本功能完善,界面友好,操作简便易行的计算器。用汇编语言实现简单计算器还涉及到输入输出模块的设计,加减乘除运算的判断以及退出程序的判断的设计。通过对各种指令的合理使用,设计各个功能模块。当实现各个程序模块后,通过程序的调用最终实现一个简单的计算器。 关键词:计算器,汇编语言,四则运算,功能模块

Abstract Calculator is the easiest calculation tools, a simple calculator with addition, subtraction, multiplication, division four arithmetic functions. Want to use assembly language to achieve a simple calculator, you must pass on the data storage, register usage, addition, subtraction, and related instructions such as assembly language module calls the use of knowledge in order to achieve a basic functional, user-friendly, easy to operate easy calculator. Using assembly language to achieve a simple calculator also involves the design of input and output modules, the judgment of arithmetic operations and exit the program to judge design. Through the rational use of various commands, design various functional modules. When implementing various program modules, through a call to the ultimate realization of the program a simple calculator. Keyword:Calculator, assembly language, four arithmetic, functional modules

java课程设计参考题目

参考题目 选题原则:所完成的系统应能够在生活、学习中使用,以实用性为主。模仿生活、学习中使用到的各种软件,做mini版本。开发的目标是自己、同学愿意使用你所开发的软件完成一些简单任务。从小功能着手,一点点的添加功能。添加一个功能就运行试试,减少越来越难于调试的可能。也可自选。jsp或java完成都可。 1.文件复制 完成一个程序,这个程序可以将指定文件夹中的内容复制到另一个文件夹中去。 设计要求: 1)实现文件夹复制; 2)程序中需要考虑输入输出异常处理; 3)用户可以指定不同的参数:用-ext指定要复制的文件的扩展名,可以 同时指定多个扩展名;用-empty指定不复制空目录;用-zip表示进行压缩; 还可以增加其它选项 4)在dos控制台窗口环境下,通过命令行参数运行程序,如: 2.图片浏览器 类似于ACDSEE的图片浏览器 设计要求: 1)可以对图片进行不同的分类,并能够按分类显示 2)备份功能,用压缩实现用户选定文件的备份,用户指定文件的方式 要多样,如在分类上、在实际文件夹上。 3)幻灯功能,通过分类、实际文件夹等多种方式指定要幻灯浏览的图 片; 3.压缩文件浏览器 仿照Winrar浏览压缩文件。 设计要求: 1)能够以图形方式显示zip、tar、jar压缩文件中的内容

2)能解压用户选定的文件到选定的目录,注意winrar中指定解压整个 目录的方式 3)能够对压缩文件增加注释 4.文件加密工具 能够对文件、文件夹进行加密,可以由用户选择加密算法。 设计要求: 1)图形界面选定加密、解密的文件。 5.提醒簿(使用数据库) 仿照雪狐提醒簿。 设计要求: 1)由用户定义时间及提醒的内容; 2)定时时间到弹出窗口提醒或使用其它方式; 3)用户可以更改、删除提醒; 4)提醒的方式中包括使用邮件; 5)可以浏览提醒,已完成和未完成使用不同的图标; 6)用户可以注册、登录,登录的显示属于自己的提醒事项; 7)可以导出、导入提醒。 6.部门员工管理系统(使用数据库) 图形界面实现对部门、员工的管理。部门可以增、删、改,员工可以增、删、改及在不同的部门间调动。部门放JComboBox中,所属员工信息用多个JTextField 或JTable显示都可。要用菜单实现不同的功能。 7.备忘录(使用数据库) 设计要求: 1)系统界面的左侧是日历,该日历可以按年份前后翻动,在某年内按 月可以前后翻动; 2)单击选定的日期,系统界面的右侧显示相应的记事,可增、删、改; 3)每日的记事可有多条。 8.学生成绩管理系统(使用数据库) 功能要求: 2

(完整word版)打字训练测试软件-Java课程设计

《程序设计实践》题目:打字训练测试软件 学校:陕西工业学院 学院:信息学院 班级:信管12-2 学号: 201213156619 姓名:刘克豪 2014 年 11 月 09 日

基础类、IO流与异常处理程序设计 一、实践要求 1.掌握Java常用基础类API。 2.掌握输入输出流常用类API。 二、实践要求 利用Java常用基础类API、输入输出流常用类API、Java异常处理等完成所选项目的程序设计。 三、项目需求 所选项目名称:打字训练测试软件 四、项目设计方案 EnglishGame类:主要构造都在这里完成。 MyKey类:是该程序的一个内部类。 EnglishGame作为主函数的入口。调用actionPerformed类的方法实现事件监听器。当发生点击事件时就会弹出输入框,开始英文打字功能。从而达到打字训练测试的目的。 五、核心算法详细设计 1 . public void actionPerformed(ActionEvent e) {} 2.public void keyReleased(KeyEvent arg0) {} 3. public static void main(String[] args) {} 4. public JPanel creatMenu() {} 六、完整源码 package shiyansan; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Font;

import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileReader; import java.util.Date; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextPane; import javax.swing.SwingUtilities; //所使用的包 public class EnglishGame implements ActionListener { private static JFrame f = new JFrame("英文打字游戏"); private static Container con = f.getContentPane(); JPanel mainPanel,panel0,panel1,panel2,panel3,panel4,panel5,panel6,panel7; JButton button1,button2,button3,button4,button,button5,button6; JTextPane tp1,tp2; FileReader fr; File frr; Date date1,date2; int num,len1,len2,count; long time; double rightrate; char[] ch; public void actionPerformed(ActionEvent e) {

汇编语言课程设计报告

农林大学金山学院 课程设计报告 课程名称:汇编语言课程设计 课程设计题目:动画设计“我爱大自然”姓名: 系:信息与机电工程系 专业:电子信息工程 年级:2008级 学号:082230066 指导教师:\ 职称:助教 2009~2010学年第二学期

目录 1 课程设计的目的 (2) 2 课程设计的要求 (2) 3课程设计报告容 (2) 3.1设计思路 (2) 3.2程序流程图 (2) 3.3设计源程序 (5) 3.4动画示意图 (19) 4 总结 (20) 5参考文献 (20) 6评分标准 (21)

动画设计“我爱大自然” 一、课程设计的目的 《汇编语言课程设计》是电子信息工程专业集中实践性环节之一,是学习完《汇编语言》课程后进行的一次全面的综合练习。其目的是: 培养学生熟练掌握汇编语言指令系统,深化和巩固指令系统和编程方法,提高学生的编程应用能力。为将来从事专业工作打下基础,培养良好的职业道德和严谨的工作作风。 二、课程设计的要求 1)具备初步的独立分析和解决问题的能力; 2)初步掌握问题分析、系统设计、程序编码、测试等基本方法和技能; 3)提高综合运用所学的理论知识和方法的能力; 4)训练用系统的观点和软件开发一般规进行软件开发,培养科学的工作方法和作风; 5)设计的题目要求达到一定工作量,并具有一定的深度和难度; 6)编写出课程设计说明书。 三、课程设计报告容 (一)设计思路 “我爱大自然”这个程序中包含了比较多的景物,既有静态的也有动态的,其中还有一段音乐。为了节省存储空间,提高程序设计的效率和质量,使程序简洁、清晰,便于阅读,同时也为了便于修改和扩充,采用子程序设计技术和宏定义,根据程序要实现的若干主要功能及个功能块要调用的公共部分,将程序划分为若干个相对独立的模块,为每个模块编制独立的程序段,最后将这些子程序根据调用关系连成一个整体。 这样,整个程序就被分为几个子程序的有机统一。根据BIOS中断调用原理,设置80×25彩色文本显示方式,分别编写一个子程序显示“I LOVE NATURE,LET US GO AIRING”和一个子程序在屏幕上“画”树。这两个子程序所体现出来的事物都是的。为了实现小鸟

相关主题
文本预览
相关文档 最新文档