当前位置:文档之家› 维吉尼亚密码java代码实现完整版

维吉尼亚密码java代码实现完整版

维吉尼亚密码java代码实现完整版
维吉尼亚密码java代码实现完整版

package cn.longxuzi;

import org.junit.Test;

public class Chi_SquareUtils {

private static final ICUtils icUtils = new ICUtils();

/**

* @author信息111李继华(LiJiHua)

* @param String

* [][]ciphertext

* @return null

* @Date 2013-11-21 PM 19:23

* @copyright李继华所有

*/

@Test

public void chi_square() {

String[][] ciphertext = icUtils.devideCipherText();// 获取密文划分以后的每一小组的密文数组

String[] freList = { "A=8.167", "B=1.492", "C=2.782", "D=4.253",

"E=12.702", "F=2.228", "G=2.015", "H=6.049", "I=6.996",

"J=0.153", "K=0.772", "L=4.025", "M=2.406", "N=6.749",

"O=7.507", "P=1.929", "Q=0.095", "R=5.987", "S=6.327",

"T=9.056", "U=2.758", "V=0.978", "W=2.360", "X=0.150",

"Y=1.974", "Z=0.074" };// 频率分布表构成的字符串数组

int count = 0;// 计数器(计算每一个英文字母出现的次数)

double index = 0;// 临时存储每一组密文的X^2得到的值

double[] x = new double[ciphertext.length];// 创建存储每一组密文X值的double型数组容器

int[][] sum1 = new int[ciphertext.length][freList.length];// 创建用来存储每一组每个英文字母出现的次数的整形数组容器

double[][] sum2 = new double[ciphertext.length][freList.length];// 创建存储每一组每个密文字母的(C-E)/E 值

for (int i = 0; i < ciphertext.length; i++) {// 第一层循环遍历根据密钥长度分成的每一小组密文for (int j = 0; j < freList.length; j++) {// 第二层循环遍历频率分布表中每个字母在每一小组密文中是否出现以及它们的频率

String flag = freList[j].substring(0, 1);// 临时存储取到的第J个英文字母

double E = Double.parseDouble(freList[j].substring(2,

freList[j].length()));// 临时存储取到的第J个字母对应的频率值

for (int k = 0; k < ciphertext[0].length; k++) {// 第三层循环遍历每一个密文小组中每一个密文字母

if (flag.equals(ciphertext[i][k])) {// 根据字母表顺序依次判断每一个英文字母是否在密文小组中出现了

count++;// 如果出现,开始计数每一个英文字母在小组密文字母表中总共出现的次数}

}

sum1[i][j] = count;// 赋值给用来存储字母出现次数的数组容器

count = 0;// 计数器清零

double dis = (double) (sum1[i][j] - E);

sum2[i][j] = (dis * dis) / E;

}

}

for (int i = 0; i < ciphertext.length; i++) {

for (int j = 0; j < freList.length; j++) {

index += sum2[i][j];

}

x[i] = index;

index = 0;

System.out.println("第" + (i + 1) + "小组的X值为" + Math.sqrt(x[i]));

}

}

// 以下是计算每一个密文小组X值的测试代码

public static void main(String[] args) {

while (true) {

Chi_SquareUtils ch = new Chi_SquareUtils();

ch.chi_square();

}

}

}

JAVA课程设计钟表(含代码)

Java程序课程设计 任务书 钟表的设计与开发 1、主要内容: 创建一个钟表。 借助swing类和接口内部类的实现,在本程序中以实现Runnable接口内部类的形式创建多线程对象。 Runnable接口只定义了一个run()方法,所以调用start和sleep()方法时,必须创建Thread实例化对象。Interrupt()方法的作用是中断线程。 其作用方式是:多线程对象.interrupt()。 2、具体要求(包括技术要求等): 系统的功能要求: 1.可以记录时间的钟表。 2.熟悉JAVA中swing的组件运用,基本工具的熟练掌握。 学习并掌握以下技术:Java等。 熟练使用以下开发工具:JCreator + JDK 1.6.0_02 等实现系统上述的功能。 3、进度安排: 12月28日~ 12月29日:课程设计选题,查找参考资料 12月29日~ 1月2日:完成程序代码的编写 1月2日~ 1月3日:系统测试与完善 1月4日~ 1月5日:完成课程设计报告,准备答辩 4、主要参考文献 [1]张帆.Java范例开发大全[M].北京:清华大学出版社,2010:0-831. [2]耿祥义,张跃平.Java大学实用教程[M].北京电子工业出版社,2008:213-216

摘要 随着经济全球化的发展,推动生活节奏的加快,也给时间赋予了更重要的意义。基于方便人们更好的掌握时间,我们小组设计出了这个小时钟。 本时钟是一个基于Java语言设计而成的一个小程序,目的是显示时间,并且能调准时钟。整个程序从符合操作简便、界面友好、灵活使用的要求出发,完成调用、调整的全过程。 本课程设计报告介绍了时钟的构成,论述了目标功能模块;给出了时钟设计的步骤,程序主要所用到的Swing组件以及graphics方法。 关键词:时钟,

转位式密码与替换式密码

转位式密码与替换式密码 第一节转位式密码 转位式密码就是将明文做移位和重排加密,借由重新安排字母的顺序来隐藏信息,是一种比较简单的加密方式。单纯的转位式密码很容易被破解,因为频率分布与原始文字一样,所以这种加密方式很不安全。 第二节栅栏密码 所谓栅栏密码,就是把要加密的明文分成N个一组,然后把每组的第1个字连起来,形成一段无规律的话。不过栅栏密码本身有一个潜规则,就是组成栅栏的字母一般不会太多(一般不超过30个,也就是一、两句话)。 例如加密information,先将其分行: i f r a i n n o m t o 之后再合并: ifrainnomto 这样就得到了密文ifrainnomto 解密的时候,我们先把密文从中间分开,变为两行: i f r a i n n o m t o 再按上下上下的顺序组合起来得到information。若是英文长句再分出空格即可。 有些栅栏密码并非只有2栏,这时需先观察字母数,如有30个字母,30可写成2×3×5、3×10、2×15的乘积,则可以依次尝试2栏、3栏、5栏……即可找出明文。

第三节列置换加密法 列置换加密法是一种比较复杂的加密方法,它是在行数固定的情况下,将明文一列一列地写成矩阵的结构,然后再一列一列写出之前,根据某种密钥将其重新排序。例如: 密钥:4 3 1 2 5 6 7 明文:a t t a c k p o s t p o n e d u n t i l t w o a m x y z 密文:TTNAAPTMTSUOAODWCOIXKNLYPETZ 第四节替换式密码 替换式密码,又名取代加密法,是密码学中按规律把文字加密的一种方式。替换式密码中可以用不同的字母数为单元,例如每一个或两个字母为一单元。密文接收者解密时需用原加密方式解码才能获得原文本。由于英语中替换式密码会把26个字母拆开,使用替换式密码较为容易;相反,中文需要建立密码本,然后遂字替换。然而由于中文字极多,完全替换不合经济效益。而且中文中每个字由不同大小的字根来组字,较难转换,因此使用替换式密码的示例比较少。当以替换式密码与转位式密码相比较时,会发现转位式密码只是把明文中的单元的位置改变,而单元本身没有作出改变;相反,替换式密码只是把单元转换,但密文中单元的位置没有改变。 替换式密码亦有许多不同类型。如果每一个字母为一单元(或称元素)进行加密操作,就可以称之为“简易替换密码”(英语:simplesubstitution cipher)或“单表加密”(英

Java实现电子时钟

项目效果图: 源代码: import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.awt.image.BufferedImage; import java.awt.EventQueue; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.JFrame; import javax.swing.JPanel; /* author: 蒋冰 */ public class MoveDraw extends JFrame{ private Draw draw = new Draw(); public static void main(String[] args){ EventQueue.invokeLater(new Runnable() { public void run() { try { MoveDraw frame = new MoveDraw(); frame.setVisible(true);

} catch (Exception e) { e.printStackTrace(); } } }); } public MoveDraw(){ super(); setTitle("动画"); setBounds(400,300,400,300); add(draw); Thread thread = new Thread(draw);// 创建线程对象 thread.start();// 启动线程对象 } class Draw extends JPanel implements Runnable{ Calendar calendar = new GregorianCalendar(); int hour = calendar.get(Calendar.HOUR); int minute = calendar.get(Calendar.MINUTE); int second = calendar.get(Calendar.SECOND); int year = calendar.get(Calendar.YEAR); int mouth = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); int week = calendar.get(Calendar.DAY_OF_WEEK); String date = year+"-"+mouth+"-"+day; String weeks[] = new String[]{"星期天","星期一","星期二","星期三","星期四","星期五","星期六"}; double theta = second * (2 * Math.PI)/60 ; double theta1 = (minute * (2 * Math.PI) + theta)/60; double theta2 = (hour*(2 * Math.PI) + theta1)/12; public void paint(Graphics g){ Graphics2D g2 = (Graphics2D) g; g2.clearRect(0, 0, 400, 300); g2.translate(draw.getWidth()/2, draw.getHeight()/2); g2.setColor(Color.blue); Font font = new Font("楷体",Font.ROMAN_BASELINE ,14); g2.setFont(font); g2.drawString(date, -25, 30); g2.drawString(weeks[week-1]+"", -15, 50); g2.setColor(Color.black); for(int i=1; i<=12; i++){ double theta = i*2*Math.PI/12;

java课程设计 万年历 源代码

华北科技学院 课程设计报告 面向对象程序设计(Java) 班级: 电商B09-3 姓名: 周婷玉 设计题目:__________万年历________________ 设计时间: 2011-12-28 至2012-01-06 指导教师:_______ 郭慧____________ _____ 评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:___________评阅教师:_____________

课程设计说明书 1、课程设计的目的 a)掌握面向对象程序设计基本要素(封装、继承、多态) b)掌握JA VA语言常用类包及其常用方法和JA VA语言基本语法 c)掌握基于AWT的图形用户界面设计 i.常用标准控件的使用,如标签、按钮、菜单、文本框、单选按钮、 滚动条等。 ii.事件处理机制 d)掌握布局、对话框的使用 e)掌握发布JA VA应用程序 2、功能模块简介和系统结构图 需求分析:本程序的要求为: 1.使用图形用户界面 2.能够实现日期与星期的查询 3.实现当日的时间备忘 功能设计: 1.能以月历形式显示日期与星期 2.支持用户自己输入年份,并提供月份的下拉形式来选择查询 3.添加当日行事历,储存与清除功能

阿依古丽.木沙 5011213334维吉尼亚密码的解密与破解

《网络信息安全》 课程结课论文《维吉尼亚密码加密并破解思路》 学生姓名阿依古丽.木沙 学号5011213334 所属学院信息工程学院 专业计算机科学与技术 班级17-1 指导教师李鹏 塔里木大学教务处制

摘要 使用维吉尼亚密码加密只是众多密码加密方法中的一个,本设计是基于维吉尼亚密码的一种扩展,能起到更强的加密,完成所有属于ACSII的加密,本人主要负责设计的规划,程序设计,界面设计,报告的完成等工作,整个程序是Java平台下实现的。本次设计方法的原理以及方法仍然以维吉尼亚通用的方法来介绍。 关键词:维吉尼亚加密,密钥,加密,解密。

目录 一、密码分析及密码系统设计原则 (1) 二、维吉尼亚密码 (2) (一)维吉尼亚密码的介绍 (2) (二)维吉尼亚密码的原理 (3) (三)维吉尼亚密码-特点 (5) (四)维吉尼亚密码的演变 (6) (五)维吉尼亚密码下的扩展 (6) 三、加密的意义 (7) 总结 (8) 参考文献 (9)

前言 随着计算机联网的逐步实现,计算机信息的保密问题显得越来越重要。数据保密变换,或密码技术,是对计算机信息进行保护的最实用和最可靠的方法。 密码是实现秘密通讯的主要手段,是隐蔽语言、文字、图象的特种符号。凡是用特种符号按照通讯双方约定的方法把电文的原形隐蔽起来,不为第三者所识别的通讯方式称为密码通讯。在计算机通讯中,采用密码技术将信息隐蔽起来,再将隐蔽后的信息传输出去,使信息在传输过程中即使被窃取或载获,窃取者也不能了解信息的内容,从而保证信息传输的安全。所以,加密显得越来越重要,学会做加密软件,是很大的成果,可以用于各个领域. 本文首先介绍“维吉尼亚”密码的分析及设计规则,然后介绍维吉尼亚密码的概念,原理,特点,密码的使用,还有加密的意义等。

Java完整代码

Chapter01——初识Java 1.单词 公共的、公有的:public 静态的:static 主要的:main 打印:print 2.编写类名为HelloWorld的的程序框架 public class HelloWorld{} 3.编写main()方法的框架 public static void main(String[] args){} 4.编写代码输出HelloWorld后并换行 System.out.println(“HelloWorld”); Chapter02——变量、数据类型和运算符 1.单词 字符:character 布尔:boolean 扫描器:scanner 成绩:score 名字:name 2.写出本章节中学习过的五种数据类型 int、double、char、String、boolean 3.创建扫描器对象,并接收用户输入的年龄 Scanner input=new Scanner(System.in); System.out.print(“请输入年龄:”); int age=input.nextInt(); 4.目前有整型变量custNo,请分解出它的个位、十位、百位和千位

int gewei=custNo%10; int shiwei=custNo/10%10; int baiwei=custNo/100%10; int qianwei=custNo/1000; Chapter03——选择结构(一) 1.单词 如果:if 继续:continue 随机:random 数学:math 打断:break 2.如果张浩的Java成绩大于98分,那么老师奖励他一个MP4;否则老师罚他编码, 请补全以下代码: int score=91; if(score>98){ System.out.println(“奖励一个MP4”); }else{ System.out.println(“惩罚进行编码”); } 3.某人想买车,买什么车决定于此人在银行有多少存款。 如果此人的存款超过500万,则买凯迪拉克 否则,如果此人的存款超过100万,则买帕萨特 否则,如果此人的存款超过50万,则买伊兰特 否则。如果此人的存款超过10万,则买奥拓 否则此人买捷安特,请补全以下代码: int money=52; //我的存款,单位:万元 if(money>=500){ System.out.println(“买凯迪拉克”); }else if(money>=100){

利用JAVA实现一个时钟的小程序

JAVA课程项目报告 项目题目:利用JAVA实现一个小时钟的程序 专业班级:10软件工程 利用JAVA实现一个时钟的小程序 1.软件开发的需求分析 在当今的信息时代,时钟已经成为人们生活中必不可少

的应用工具,Java语言是当今流行的网络编程语言,它具有面向对象、与平台无关、安全、多线程等特点。使用Java 语言不仅可以实现大型企业级的分布式应用系统,还能够为小型的、嵌入式设备进行应用程序的开发。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。为了进一步巩固课堂上所学到的知识,深刻把握Java语言的重要概念及其面向对象的特性,锻炼我们熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。 此次课程设计的题目为简单的小时钟程序设计,通过做巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、JCreator等开发工具的运用,拓宽常用类库的应用。使我们通过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。 2.具体实现 2.1设计思路 Java是一种简单的,面向对象的,分布式的,解释的,键壮的,安全的,结构中立的,可移植的,性能很优异的,多线程的,动态的语言。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如

自动收集碎片。这将减少平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。 因此运用JAVA程序编写小时钟程序,实现简单显示时间的功能。本次课程设计做的是Java简单小时钟,它是图形界面、线程、流与文件等技术的综合应用,其界面主要采用了java.awt包,javax.swing包等。程序实现了小时钟的基本功能。 2.2设计方法 在设计简单小时钟时,需要编写5个Java源文件:Server.java、Objecting.java、LogIn.java、ClientUser.java、Client.java。 小时钟除了需要编写的上述5个Java源文件所给出的类外,还需要Java系统提供的一些重要的类,如JTextField、JTextArea和File类。 2.3 运行环境 CPU:Pentium 2.8GHz以上 内存:256MB以上 硬盘空间:80G以上 操作系统:Windows XP 运行环境:JDK,JCreator 2.4 程序功能图及程序相关说明 2.4.1 主功能框

C++实现维吉尼亚密码加密

运行后先输入密钥,再输入文件名(输入文本,和输出文本的),文件名和代码在同一目录下不用加路径。 头文件: vi.h #ifndef _VI_H #define_VI_H #include #include class vi { private: std::string key; public: void setkey(); void job(); }; #endif #include"vi.h" #include #include #include usingnamespace std; void vi::setkey() { getline(cin,key,'\n'); } void vi::job() { string s,k;

cout<<"需要加密的文件名:"<='a'&&ch<='z') { n=ch+key[i]-97; if(n>122) { n-=26; out.put(n); } else out.put(n); } elseif(ch>='A'&&ch<='Z') { n=ch+key[i]-65; if(n>122) { n-=26; out.put(n); } else out.put(n); } else { out.put(ch); continue; } i=(i+1)%5; } }

密码学实验之凯撒密码和维吉尼亚密码的加解密

1.凯撒密码的加解密 源代码: #include #include #include int main() { char s[100],c; int i,p,d,e; printf("请选择: A.加密B.解密Q.退出\n"); scanf("%c",&c); if(c=='a'||c=='A') { printf("输入明文:"); scanf("%s",&s); p=strlen(s); printf("请设置偏移量:"); scanf("%d",&d); for(i=0;i='a' && s[i]<='z') s[i]=(s[i]-'a'+d)%26+'a'; else if(s[i]>='A' && s[i]<='Z') s[i]=(s[i]-'A'+d)%26+'A'; else s[i]=s[i]+d; } printf("%s",s); printf("\n\n\n"); } if(c=='b'||c=='B') { printf("请输入密文:"); scanf("%s",&s); p=strlen(s); printf("请输入加密的偏移变量:"); scanf("%d",&d); for(i=0;i='a' && s[i]<='z') { e=s[i]-'a'-d;

if(e<=0) s[i]=(e+26)%26+'a'; else s[i]=e%26+'a'; } else if(s[i]>='A' && s[i]<='Z') { e=s[i]-'A'-d; if(e<0) s[i]=(e+26)%26+'A'; else s[i]=e%26+'A'; } else s[i]=s[i]-d; } printf("%s",s); printf("\n\n"); } if(c=='q'||c=='Q') return 0; return 0; } 运行结果是: 2.维吉尼亚密码的加解密 源代码: #include "stdafx.h"

电子时钟java写的

package com.lw; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.util.Calendar; import java.util.GregorianCalendar; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.border.EmptyBorder; public class DigitalClock extends JFrame { /** * */ private static final long serialV ersionUID = 4962111797317773666L; private JPanel contentPane; private JLabel label; /** * Launch the application. */ public static void main(String[] args) { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { DigitalClock frame = new DigitalClock(); frame.setV isible(true); } catch (Exception e) { e.printStackTrace(); }

Java实现迷你小闹钟源代码

package pkg110; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; import javax.swing.Timer; /** * * @author Administrator */ public class Clock extends JFrame implements ActionListener{ public final int HEIGTH = 200, L0 = 50, T0 = 50,N=8; public final double RAD = Math.PI / 180.0; int x, y, old_X, old_Y, r, x0, y0, w, h, ang; int sdo, mdo, hdo, old_M, old_H, hh, mm, ss; int delay = 1000; Calendar now; String st, alarm, Items1, Items2,str[]; JButton jb; JComboBox jc1, jc2, jc3; JLabel jl1, jl2, jl3, jl4; JTextField jtf1, jtf2, time; JPanel jp1, jp2, jp3; Timer timer; TimeZone tz = TimeZone.getTimeZone("JST"); Toolkit toolkit=Toolkit.getDefaultToolkit(); /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here Clock cp = new Clock(); cp.setVisible(true); } Clock() { super("闹钟"); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setSize(400,550); setVisible(true); Container contentPane = getContentPane(); jp2 = new JPanel(); jl1 = new JLabel("闹铃时间");

莫尔斯电码摩尔斯电码各类密码表全

摩尔斯电码由点(.)嘀、划(-)嗒两种符号按以下原则组成: 1,一点为一基本信号单位,每一划的时间长度相当于3点的时间长度。 2,在一个字母或数字内,各点、各划之间的间隔应为两点的长度。 3,字母(数字)与字母(数字)之间的间隔为7点的长度。 Atbash码凯撒码字码+摩尔斯电码QWE码键盘码 z d 1 A .- q 1 2 3 y e 2 B -... w __ abc def x f 3 C -.-. e w g 4 D -.. r 4 5 6 v h 5 E . t ghi jkl mn o u i 6 F ..-. y t j 7 G --. U 7 8 9 s k 8 H .... I pqrs tuv wxy z r l 9 I .. o q m 10 J .--- p p n 11 K -.- a o o 12 L .-.. s n p 13 M -- d m q 14 N -. f l r 15 O --- g k s 16 P .--. h j t 17 Q --.- j i u 18 R .-. k h v 19 S ... l g w 20 T - z f x 21 U ..- x e y 22 V ...- c d z 23 W .-- v c a 24 X -..- b b b 25 Y -.-- n a c 26 Z --.. m 密匙3 1 .---- 2 ..--- 3 ...-- 4 ....- 5 ..... 6 -.... 7 --... 8 ---.. 9 ----. 0 ----- ? ..--.. / -..-. () -.--.- - -....- . .-.-.-

JAVA课程设计 时钟

辽宁工业大学 JA V A程序设计课程设计(论文)题目:时钟 院(系):软件学院 专业班级:软件技术班 学号: 学生姓名: 指导教师:丁宝柱 教师职称:助教 起止时间: 2009.12.1至2009.12.16

程序设计专题(报告)任务及评语

目录 第1章课程设计的目的与要求 (1) 1.1 课程设计目的 (1) 1.2 课程设计的实验环境 (1) 1.3 课程设计的预备知识 (1) 1.4 课程设计要求 (1) 第2章课程设计内容 (2) 2.1课程设计主要内容 (2) 2.2概要设计 (2) 2.2.1自定义类说明 (2) 2.3详细设计 (3) 2.4测试分析 (16) 2.4.1程序运行情况 (16) 2.4.2程序异常处理 (16) 第3章课程设计总结 (17) 参考资料18

第1章课程设计的目的与要求 1.1 课程设计目的 《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。 1.2 课程设计的实验环境 硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。 1.3 课程设计的预备知识 熟悉JAVA语言及ECLIPSE开发工具。 1.4 课程设计要求 按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JA V A程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。

JAVA线程程序设计(小时钟)实验报告(附完整代码)

线程程序设计 一、课题内容和要求 内容:设计和编写一个编写一个指针式时钟程序,应用线程实现时钟的走动。 要求:本实验旨在通过实验,培养学生将JAVA 线程的相关知识点(包括线程调度,线程同步等)有机结合并加以综合应用,在实验中设计多线程程序的能力。 二、设计思路分析 class Clock:一个指针式时钟的主类 class Layout: 添加窗口和时钟组件 class ClockPaint:定义时钟组件 三、概要设计 public class Clock extends JFrame { public static void main(String[] s) ; } class Layout extends JFrame { public Layout(); } class ClockPaint extends JPanel implements Runnable { int x, y, r; int h, m, s; double rad = Math.PI / 180; public ClockPaint(int x, int y, int r); public void paint(Graphics g); public void run(); } 时钟的绘制:

运行时钟: 四、详细设计 import java.awt.*; import javax.swing.*; import java.util.*; public class Clock extends JFrame { public static void main(String[] s) { new Layout(); } } class Layout extends JFrame {// 添加窗口和时钟组件public Layout() { ClockPaint cp = new ClockPaint(20, 20, 70); add(cp);

维吉尼亚密码

实验二:用C语言实现维吉尼亚密码的加解密过程: #include using namespace std; #define MINCHAR 32 #define CHARSUM 94 char table[CHARSUM][CHARSUM]; bool Init(); bool Encode(char* key, char* source, char* dest); bool Dncode(char* key, char* source, char* dest); int main() { if(!Init()) { cout << "初始化错误!" << endl; return 1; } char key[256]; char str1[256]; char str2[256]; int operation; while(1) { do { cout << "请选择一个操作:1. 加密;2. 解密;-1. 退出\n"; cin >> operation; }while(operation != -1 && operation != 1 && operation != 2); if(operation == -1) return 0; else if(operation == 1)//加密 { cout << "请输入密钥:"; cin >> key; cout << "请输入待加密字符串:"; cin >> str1; Encode(key, str1, str2); cout << "加密后的字符串:" << str2 << endl; } else if(operation == 2)//解密 { cout << "请输入密钥:"; cin >> key; cout << "请输入待解密字符串:";

时钟(LED方式)java课程设计

摘要 随着经济全球化的发展,推动生活节奏的加快,也给时间赋予了更重要的意义。基于方便人们更好的掌握时间,我设计出了这个小时钟。 本时钟是一个基于Java语言设计而成的一个小程序,目的是显示日期和时间,并且能调准时钟。整个程序从符合操作简便、界面友好、灵活使用的要求出发,完成调用、调整的全过程。 本课程设计报告介绍了时钟的构成,论述了目标功能模块;给出了时钟设计的步骤。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。 关键字时钟,Java程序设计,面向对象,设计

目录 摘要..............................................................................................................................- 1 - 1前言..........................................................................................................................- 3 - 1.1 课程设计目的 ....................................................................................................- 3 - 1.2 课程设计的实验环境..........................................................................................- 3 - 1.3 课程设计的预备知识..........................................................................................- 3 - 1.4 课程设计要求 ....................................................................................................- 3 - 2 可行性分析................................................................................................................- 4 - 2.1 社会可行性........................................................................................................- 4 - 2.2 市场可行性........................................................................................................- 4 - 2.3 技术可行性........................................................................................................- 4 - 2.4 经济可行性........................................................................................................- 4 - 3 总体设计....................................................................................................................- 5 - 3.1开发平台 ............................................................................................................- 5 - 3.2时钟功能的概述..................................................................................................- 5 - 3.3时钟数字显示 .....................................................................................................- 5 - 3.3时钟指针显示 .....................................................................................................- 5 - 3.4时钟的设置.........................................................................................................- 5 - 4 代码设计....................................................................................................................- 6 - 4.1 部分源码............................................................................................................- 6 - 5 界面设计....................................................................................................................- 9 - 5.1课程设计主要内容 ..............................................................................................- 9 - 5.2概要设计 ............................................................................................................- 9 - 5.2.1自定义类说明...........................................................................................- 9 - 5.3表单设计 .......................................................................................................... - 10 - 5.4 界面展示.......................................................................................................... - 11 - 5.4.1日期的界面 ............................................................................................ - 11 - 5.4.2 部分代码 ............................................................................................... - 11 - 5.4.3 时间的界面............................................................................................ - 12 - 5.4.4 部分代码 ............................................................................................... - 12 - 5.4.5整体界面................................................................................................ - 14 - 6结束语....................................................................................................................... - 15 - 参考文献................................................................................................................ - 16 -

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