计算机类
课程设计报告
课程名称: | JAVA课程设计 |
课程设计题目: | 简易英汉词典 |
:姓 名 | |
系: | 计算机科学与技术 |
专 业: | 计算机科学与技术 |
年 级: | 2012 |
学 号: | |
指导教师: | |
职 称: |
附件二:课程设计结果评定格式
福建农林大学计算机与信息学院计算机类
课程设计结果评定
评语: | |
成绩: | |
指导教师签字: | 任务下达日期: |
评定日期: |
1.课程设计的目的
本课程设计是在《Java程序设计》课程上设置的,是巩固学生所学理论知识、培养学生动手能力并使理论与实际相结合的重要实践环节。
本课程设计的目的和任务,是通过学生用Java语言设计一个完整的应用程序,使学生综合应用所学知识完成软件的分析、设计、调试和总结,提高学生对Java语言的综合应用能力和解决问题的能力。
2.课程设计的要求
学生可选择下面题目或者自定题目,但要求具有一定难度和复杂度,是一个较为完整的应用程序。
3.课程设计报告内容
3.1 程序代码
4.#include 5.#include 6.#include 7.#include 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 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; .} 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"< 83.} 84. 85.Word *psrcWord(Word *q,char src[20]){ 86. if (strcmp(src,q->getWord())<0){ 87. if(!q->lc){ 88. return NULL; . } 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"< 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<<"已成功录入词典内容"< 136. } 137. /*showDic函数,用于查看词典内容*/ 138. void showDic(){ 139. system("cls"); 140. Word *q=&words; 141. if (words.getWord()=="0"){ 142. cout<<"尚未录入词典"< 144. } 145. cout<<"NO\"<<"word\"<<"meaning"< 147. cout<<"-----The End------!"< 149. } 150. /*thDic函数,用于遍历词典数据*/ 151. int thDic(Word *p,int i){ 152. cout<getWord()<<"\"< 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"; 1. 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){ 1. cout<<"Not found "<<"\\""< 191. return; 192. } 193. cout<<"请输入"< 194. cin>>temp; 195. p->setMean(temp); 196. cout<<"已成功修改"< 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 "<<"\\""< 210. } 211.}; 212. 213.void mainFrame(){ 214. int temp; 215. WordList dic; 216. dic.loadDic(); 217. while(true){ 218. system("cls"); 219. cout<<"------------欢迎使用简易英汉词典!------------"< 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日