数据结构课程设计报告(简易英汉词典,含代码+截图)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

福建农林大学计算机与信息学院
计算机类
课程设计报告
课程名称:JA V A课程设计
课程设计题目:简易英汉词典
:姓名
系:计算机科学与技术
专业:计算机科学与技术
年级:2012
学号:
指导教师:
职称:
年月日
附件二:课程设计结果评定格式
福建农林大学计算机与信息学院计算机类
课程设计结果评定
简易英汉词典
1.课程设计的目的
本课程设计是在《Java程序设计》课程上设置的,是巩固学生所学理论知识、培养学生动手能力并使理论与实际相结合的重要实践环节。

本课程设计的目的和任务,是通过学生用Java语言设计一个完整的应用程序,使学生综合应用所学知识完成软件的分析、设计、调试和总结,提高学生对Java语言的综合应用能力和解决问题的能力。

2.课程设计的要求
学生可选择下面题目或者自定题目,但要求具有一定难度和复杂度,是一个较为完整的应用程序。

3.课程设计报告内容
3.1 程序代码
4.#include <iostream.h>
5.#include <fstream.h>
6.#include <stdlib.h>
7.#include <string.h>
8.
9.//using namespace std;
10.
11.class Word{
12.private:
13. char word[20];
14. char mean[40];
15.public:
16. Word *lc,*rc;
17. Word *next;
18. char *getWord(){
19. return word;
20. }
21. char *getMean(){
22. return mean;
23. }
24. void setWord(char w[20]){
25. strcpy(word,w);
26. }
27. void setMean(char m[40]){
28. strcpy(mean,m);
29. }
30.
31. Word(char w[20],char m[40]){
32. strcpy(word,w);
33. strcpy(mean,m);
34. lc=rc=next=NULL;
35. }
36. Word(char w[20]){
37. Word(w,"0");
38. lc=rc=next=NULL;
39. }
40. Word(){
41. Word("0","0");
42. lc=rc=next=NULL;
43. }
44.};
45.
46.void istWord(Word *p,Word *nw){
47. if (strcmp(nw->getWord(),p->getWord())<0){
48. if (!p->lc){
49. p->lc=nw;
50. }
51. else{
52. istWord(p->lc,nw);
53. }
54. }
55. else{
56. if (!p->rc){
57. p->rc=nw;
58. }
59. else{
60. istWord(p->rc,nw);
61. }
62. }
63. return;
64.}
65.
66.bool srcWord(Word *q,char src[20]){
67. bool r;
68. if (strcmp(src,q->getWord())<0){
69. if(!q->lc){
70. return false;
71. }
72. r=srcWord(q->lc,src);
73. }
74. else if (strcmp(src,q->getWord())>0){
75. if(!q->rc){
76. return false;
77. }
78. r=srcWord(q->rc,src);
79. }
80. else
81. cout<<"\n"<<q->getWord()<<"\n"<<q->getMean()<<endl;
82. return r;
83.}
84.
85.Word *psrcWord(Word *q,char src[20]){
86. if (strcmp(src,q->getWord())<0){
87. if(!q->lc){
88. return NULL;
89. }
90. psrcWord(q->lc,src);
91. }
92. else if (strcmp(src,q->getWord())>0){
93. if(!q->rc){
94. return NULL;
95. }
96. psrcWord(q->rc,src);
97. }
98. else
99. cout<<"\n"<<q->getWord()<<"\n"<<q->getMean()<<endl; 100. return q;
101.}
102.
103.
104.class WordList{
105.private:
106. Word words;
107.public:
108. /*loadDic函数,用于加载字典内容*/
109. void loadDic(){
110. char temp1[20],temp2[40];
111. fstream LoadFile;
112. LoadFile.open("WordList.dat",ios::in);
113. strcpy(temp1,"0");
114. LoadFile>>temp1;
115. if (!temp1){
116. cout<<"词典为空!\n";
117. return;
118. }
119. words.setWord(temp1);
120. LoadFile>>temp2;
121. words.setMean(temp2);
122. strcpy(temp1,"0");
123. LoadFile>>temp1;
124.
125. while(!LoadFile.eof()){
126. LoadFile>>temp2;
127. Word *newW=new Word(temp1,temp2);
128. istWord(&words,newW);
129. strcpy(temp1,"0");
130. strcpy(temp2,"0");
131. LoadFile>>temp1;
132. }
133. LoadFile.close();
134. cout<<"已成功录入词典内容"<<endl;
135. return;
136. }
137. /*showDic函数,用于查看词典内容*/
138. void showDic(){
139. system("cls");
140. Word *q=&words;
141. if (words.getWord()=="0"){
142. cout<<"尚未录入词典"<<endl;
143. return;
144. }
145. cout<<"NO\t"<<"word\t"<<"meaning"<<endl;
146. thDic(&words,1);
147. cout<<"-----The End------!"<<endl;
148. return;
149. }
150. /*thDic函数,用于遍历词典数据*/
151. int thDic(Word *p,int i){
152. cout<<i<<"\t"<<p->getWord()<<"\t"<<p->getMean()<<endl; 153. if (p->lc) i=thDic(p->lc,i+1);
154. if (p->rc) i=thDic(p->rc,i+1);
155. return i;
156. }
157. /*setDic函数,编辑词典*/
158. void setDic(){
159. int temp;
160. while(true){
161. system("cls");
162. cout<<"请选择操作:\n";
163. cout<<"1.修改单词意思;\n";
164. cout<<"2.删除单词;(不支持)\n";
165. cout<<"3.新增单词;(不支持)\n";
166. cout<<"退出请按 0\n";
167. cin>>temp;
168. switch(temp){
169. case 1:setWord();system("pause");break;
170. case 2:;system("pause");break;
171. case 3:;system("pause");break;
172. case 0:return;
173. default:cout<<"错误操作!";system("pause");break;
174. }
175. }
176. }
177.
178. /**
179. /*******/
180. void setWord(){
181. char temp[20];
182. Word *p;
183. int i=0;
184. system("cls");
185. cout<<"请输入查询单词:\n";
186. cin>>temp;
187. p=psrcWord(&words,temp);
188. if (!p){
189. cout<<"Not found "<<"\""<<temp<<"\" in the list!"<<endl; 190. system("pause");
191. return;
192. }
193. cout<<"请输入"<<p->getWord()<<"的新意思:\n";
194. cin>>temp;
195. p->setMean(temp);
196. cout<<"已成功修改"<<p->getWord()<<"的新意思
为:\n"<<p->getMean()<<endl;
197. return;
198. }
199. /*search函数,使用词典的查阅功能*/
200. void search(){
201. char temp[20];
202. int i=0;
203. system("cls");
204. cout<<"请输入查询单词:\n";
205. cin>>temp;
206. bool r=srcWord(&words,temp);
207. if (!r)
208. cout<<"Not found "<<"\""<<temp<<"\" in the list!"<<endl; 209. return;
210. }
211.};
212.
213.void mainFrame(){
214. int temp;
215. WordList dic;
216. dic.loadDic();
217. while(true){
218. system("cls");
219. cout<<"------------欢迎使用简易英汉词典!------------"<<endl; 220. //cout<<"(!使用前请务必将词典内容文件拷贝至\n\"C:\\SimE2C\\\"下并命名为\"WordList.dat\")\n";
221. cout<<"请选择操作:\n";
222. cout<<"1.查看词典内容;\n";
223. cout<<"2.编辑词典内容;\n";
224. cout<<"3.查询单词;\n";
225. cout<<"退出请按 0\n";
226. cin>>temp;
227. switch(temp){
228. case 1:dic.showDic();system("pause");break;
229. case 2:dic.setDic();system("pause");break;
230. case 3:dic.search();system("pause");break;
231. case 0:return;
232. default:cout<<"错误操作!";system("pause");break;
233. }
234. }
235. return;
236.}
237.
238.void main(){
239. mainFrame();
240. return;
3.2运行截图
241.}总结
这次课程设计本人主要参与了系统实现以及系统测试,还有参与小组共同完成的编写代码、实现功能模块。

历时两个星期终于在大家的一起努力下顺利完成了。

虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。

在这次的课程设计中不仅检验了我所学习的知识,也培养了我的实践能力,让我知道遇到一个问题,如何去寻找思路,如何去解决问题,最终完成整个事情。

在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。

学会了合作,学会了宽容,学会了理解,也学会了做人与处世。

课程设计是我们专业课程知识综合应用的实践训练,是我们迈向社会,从事职业工作前一个必不少的过程。

实验过程中,也十分感谢实验指导老师马骏老师的指点与教导。

这次课程设计不仅是对这学期所学知识的一种综合检验,而且也是对自己动手能力的一种提高,增强了自己实践能力。

通过这次课程设计使我明白了自己知识还比较欠缺,只是学习书本知识还是远远不够的,自己不会的东西还有太多,学习需要自己长期的积累,在以后的学习、工作中都应该不断的学习,将课本的理论知识与生活中的实践知识相结合,不断提高自己文化知识和实践能力。

参考文献
[1] 美Y.Daniel Liang 《Java程序设计》机械工业出版社, 2011.11.10日。

相关文档
最新文档