欢迎来到天天文库
浏览记录
ID:8459309
大小:125.50 KB
页数:11页
时间:2018-03-28
《算法设计与分析课程论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、附件二【学生用】西北农林科技大学信息工程学院《算法分析与设计》综合训练实习报告题目:QQ好友录排序学号xxxxxxxxx姓名xxx专业班级软件工程xxx指导教师xxx实践日期2011年5月16日2011年5月20日目录一、综合训练目的与要求1二、综合训练任务描述1三、算法设计1四、详细设计及说明4五、调试与测试4六、实习日志5七、实习总结6八、附录:核心代码清单6一、综合训练目的与要求本综合训练是软件工程专业重要的实践性环节之一,是在学生学习完《算法分析》课程后进行的综合练习。本课综合训练的目的和任务:1.巩固和加深学生对算法分析课程基本知识的理解和掌握;2.培养利用
2、算法知识解决实际问题的能力;3.掌握利用程序设计语言进行算法程序的开发、调试、测试的能力;4.掌握书写算法设计说明文档的能力;5.提高综合运用算法、程序设计语言、数据结构知识的能力。正文二、综合训练任务描述QQ好友录排序假如我们导出了一个QQ好友录到一个文本文件中,其中每行包含一个好友的信息,格式如下:备注名称#好友昵称#QQ号码#出生年月#所在的组张三#梦幻诛仙##1994-03-17#诛仙李四#幻想王国##1990-05-08#幻想王五#魔兽世界##2000-03-09#魔兽赵六#极品飞车##1988-09-03#飞车1.实现按照备注名称字母序进行排序,导出一个新
3、的通讯录文件。2.实现按照备注名称笔画数进行排序,导出一个新的通讯录文件。3.实现按照出生年月进行排序。4.实现按照QQ号码进行排序。用Java语言,或者C++语言,推荐用Java语言。要求类文件组织合理三、算法设计(1)文字描述在拿到题目的开始我就在考虑到底用什么算法,因为这是算法实践,但是经过分析考虑我发现本题不能算是严格的算法题目,至少基本上没有用到什么算法,应该属于是一个设计题。那么就下来就简单一些了,为了简化代码书写以及组织的难度,首先按照题目要求分步完成每一个小题的功能实现,最后在将其改造成为函数,将其全部组织在主函数中在主函数中进行调用。对于题目中的排序
4、在代码里应用的是快速排序的排序方法。(2)框图9类QQhaoma()主函数main()类QQzimu1()类QQbihua()类QQshengri()类QQzimu()引用调用(2)伪代码Filefile=newFile("C:\QQ.txt");FileReaderfr=newFileReader(file);BufferedReaderbr1=newBufferedReader(fr);Stringaline;inti=0;while((aline=br1.readLine())!=null){i++;}intlength=i;fr.close();br1.cl
5、ose();FileReaderfr2=newFileReader(file);BufferedReaderbr2=newBufferedReader(fr2);String[]arr=newString[length];i=0;while((aline=br2.readLine())!=null){arr[i]=(String)aline;i++;}length=i;本段代码实现的是文件的读取,以及初步处理,即确定该文件里存储的好友信息的条数,为后面的字符串数组以及其他的数组确定边界。try{Filefile1=newFile("D:\QQzimupaixu.tx
6、t");BufferedWriterout1=newBufferedWriter(newFileWriter(file1,true));out1.write("QQ好友按照备注首汉字的汉语拼音首字母进行排序的结果如下:");out1.newLine();9for(inti1=0;i17、字拼音处理的架包,可以从网上下载后导入到编译器里。publicclassQQzimuimplementsComparator{publicintcompare(Objecto1,Objecto2){charc1=((String)o1).charAt(0);charc2=((String)o2).charAt(0);returnconcatPinyinStringArray(PinyinHelper.toHanyuPinyinStringArray(c1)).compareTo(concatPinyinStringArray(Piny
7、字拼音处理的架包,可以从网上下载后导入到编译器里。publicclassQQzimuimplementsComparator{publicintcompare(Objecto1,Objecto2){charc1=((String)o1).charAt(0);charc2=((String)o2).charAt(0);returnconcatPinyinStringArray(PinyinHelper.toHanyuPinyinStringArray(c1)).compareTo(concatPinyinStringArray(Piny
此文档下载收益归作者所有