数据结构实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构与算法分析》
课程设计
题目:文字处理程序(字符串的应用)
学生姓名:***
学号:***********
专业班级: B16软件工程1班
指导教师:**
学院: 大数据与计算机学院
2017年12月
目录
一、课程设计题目 (1)
二、开发背景 (1)
三、项目总体设计 (1)
3.1需求分析 (1)
3.2系统功能模块设计 (1)
四、详细实现步骤和流程图 (2)
4.1功能实现展示 (2)
4.2流程图框架 (4)
五、部分具体代码分析及实现 (5)
六、项目总结 (9)
七、参考文献 (9)
一、课程设计题目
文字处理程序(字符串的应用)及简单文本编辑器
二、开发背景
由于对于现在的电脑族对电脑的使用频率逐年增大,对电脑的需要具有依赖性。其中不乏有对文本的编辑的需求,因此,本次实训周做了一款简单的文本编辑器的应用程序,对文本编辑器的相关功能做了一定的实现,既简单又实用。
本软件为一个简单而且很实用的文本编辑的工具,不但可以进行一些文字的输入和文本的读取,而且,该文本编辑器也可以对文本进行一些保存、另存、剪切、粘贴、删除等常规的操作,是一款比较适合广大普通用户和非计算机专业的用户和文本编辑的处理软件,本软件不但界面友好,功能齐全,而且操作简单。
三、项目总体设计
3.1需求分析
文字处理程序运行后弹出文本编辑器的主界面,由键盘输入或以打开的方式输入或显示文本文件内容。其中程序基本操作:包括文本的复制、粘贴、剪切、删除、查找、替换等功能。统计功能:分别统计出文本文件中的各类字符的个数,包括英文字母个数、空格个数、汉字个数、标点符号个数、总字数等并显示统计信息;允许用户统计某一字符串在文章中出现的次数,并显示统计信息;加密和解密:用户可对指定文本文件进行加密和解密操作;用户可保存该文件。
3.2系统功能模块设计
四、详细实现步骤和流程图
4.1功能实现展示
运行主界面
打开文件夹
输入字体界面
另存为
加密保存
保存结果
字母数字空格汉字符号统计
复制、粘贴、剪贴和全选功能
4.2流程图框架
五、部分具体代码展示及实现
字母数字空格汉字符号统计
public class CheckThread extends Thread{
private JTextPane textPane;
private JLabel label;
public CheckThread(JTextPane textPane, JLabel label){
this.textPane = textPane;
bel = label;
}
public void run(){
while(true){
String str = textPane.getSelectedText();
if(str == null){
str = textPane.getText();
}
int letter = 0;
int num = 0;
int space = 0;
int chinese = 0;
int point = 0;
int total = 0;
for(int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){
letter++;
}else if(c >= '0' && c <= '9'){
num++;
}else if(c == ' '){
space++;
}else if(c >= '\u4e00' && c <= '\u9fa5'){
chinese++;
}else{
point++;
}
total++;
}
label.setText("字母:"+letter+" 数字:"+num+" 空格:"+space+" 汉字:"+chinese+" 符号:"+point+"总数:"+total);
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
文件创建
public class readfile {
public static void main(String args[])throws IOException {
FileNameExtensionFilter filter=new
FileNameExtensionFilter("*.txt","txt");
JFileChooser fc=new JFileChooser();
fc.setFileFilter(filter);
fc.setMultiSelectionEnabled(false);
int result=fc.showSaveDialog(null);
if (result==JFileChooser.APPROVE_OPTION) {
File file=fc.getSelectedFile();
if (!file.getPath().endsWith(".txt")) {
file=new File(file.getPath()+".txt");
}
System.out.println("file path="+file.getPath());
FileOutputStream fos=null;
try {
if (!file.exists()) {//文件不存在则创建一个
file.createNewFile();
}
fos=new FileOutputStream(file);
fos.write("文件内容".getBytes());
fos.flush();
} catch (IOException e) {
System.err.println("文件创建失败:");
e.printStackTrace();
}finally{
if (fos!=null) {
try {