当前位置:文档之家› 数据结构实训报告

数据结构实训报告

《数据结构与算法分析》
课程设计
题目:文字处理程序(字符串的应用)
学生姓名:***
学号:***********
专业班级: 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 {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}}}
六、项目总结
通过这次的实训,我对程序的设计由来更深层次的认识,也让我对这门编程语言这门课程有了更深的了解。

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

在这次的设计过程中,也让我发现自己对知识掌握还存在着很多的不足知促,比如说在打开一个含有中文的TXT文件时,在中文显示时显示的就是一堆乱码,最终经过老师知道得知,是因为汉字的一两个字节读取的,而我们的编程代码是以一个字节读取的,所以出现错误。

该程序不仅可以利用线性表还可以利用串、单链表司实现。

同时我也明白了自己还有哪些地方需要改进,自己要在哪些地方进行自我的提升。

尤为重要的是,这次课程设计使我们懂得了理论与实际结合是很重要的。

在设计的过程中让我感觉到了很多知识点是还没有掌握的,需要我们自己上网进行搜索查询来解决。

我们应该能独立的去发现问题并解决问题,应用一切资源来帮助自己设计。

需要在今后的学习过程中不断的加强对知识点的掌握,还要多看书,多多地上网查找资料,不断的学习以充实自己。

在这两周的课程设计中我不断地改错,不断地调试。

我的努力终于有了成果。

最让我受益匪浅得失整个设计的过程,这个过程也是我不断学习的一个过程,不仅锻炼了我的实际操作能力,而且培养了严密的思维能力和严谨的态度,增加我对编程的兴趣。

七、参考文献
叶核亚.《数据结构(Java版)(第3版)》.北京:电子工业出版社.2013
年.
刘小晶. 《数据结构实例解析与实验指导——Java语言描述》.北京:清华大学出版.2013年.
徐孝凯. 《数据结构实用教程(Java语言描述)》.北京:清华大学出版.2013年.
陈媛. 《算法与数据结构(Java语言描述)》.北京:清华大学出版.2013年.。

相关主题