电子词典系统.docx
《电子词典系统.docx》由会员分享,可在线阅读,更多相关《电子词典系统.docx(16页珍藏版)》请在冰豆网上搜索。
电子词典系统
C语言程序课程设计任务书
一 课程设计性质与目的:
C语言程序设计是一门实践性很强的课程。
C程序课程设计是学习C语言
程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所
学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程
序、分析程序及上机操作、调试程序的能力,让学生加深理解书上所学的知识
提高动手操作能力及分析问题和解决问题的能力。
二课程设计包含的知识点:
1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语
句。
2.掌握数组的基本概念。
掌握一维数组与二维数组的使用,掌握字符数组与
字符串的关系。
3.熟练掌握指针、地址、指针类型的概念及其使用。
掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系
4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。
5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。
结构体与指针、函数的关系。
三课程设计的要求:
1.学生从以下八个题目中任意选择并完成一个题目。
要求每个学生能够独立思考
并按时完成本课程设计所包含的所有内容。
2.要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务,分析过程和算法,给出程序流程图和全部源程序,并做出总结。
3.设计报告的完整格式应包含以下内容:
a)设计总体思路
b)主程序及各个模块说明
c)总体模块框图
d)各个程序模块说明
e)程序流程图
f)程序清单
g)总结与体会
四.时间安排:
6月20日到7月8日
上午(8:
00—12:
00)
下午(2:
00—6:
00)
晚上(6:
30--10:
30)
6月20日
布置课题题目
7月1日
上机编程
7月2日
上机编程
7月3日
7月4日
上机编程、答辩
总计15天,上机三次.其余时间自己找资料.
五.课程设计考核办法:
根据学生所完成课程设计报告的完整性,正确性,和算法实现的质量,分为
优,良,中,及格和不及格五个等级。
六.课程设计指导老师:
王颖
课程设计题目
电子英汉词典设计
课程设计报告规范
一、需求分析
1、程序的功能。
2、输入输出的要求。
二、概要设计
1、程序由哪些模块组成以及一个模块之间的层次结构、模块的调用关系;每个模块的功能。
2、课题的总体数据结构和数据库结构;即要存储什么数据,这些数据是什么样的结构,它们之间有什么关系等。
三、详细设计
1、采用C语言定义相关的数据类型。
2、写出各模块的类C码算法。
3、画出函数的调用关系图。
四、调试分析以及设计体会
1、测试数据:
准备典型的测试数据和测试方案,包括正确的输入及输出结果和含有错误的输入及输出结果。
2、程序调试中遇到的问题以及解决问题的方法。
3、课程设计过程经验教训、心得体会。
五、使用说明
用户使用手册:
说明如何使用你编写的程序,详细列出每一步的操作步骤。
附1:
●课程设计报告装订顺序:
封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。
●正文的格式:
一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。
●正文的内容:
一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。
●正文总字数要求在5000字以上(不含程序原代码)。
前 言
《C语言程序设计》课程设计是对学生的一种全面综合训练,它包括问题分析,总体结构设计,用户界面设计,程序设计基本技能和技巧,多人合作,以至一整套软件工作规范的训练和科学作风的培养。
是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。
通常,课程设计的课题比平时的习题复杂得多,也更接近实际。
课程设计着眼于与应用的结合点,使学生学会如何把书上学到的知识用于解决实际问题,培养软件工作所需要的动手能力;另一方面,能使书上的知识变“活”,使学生更好地深化理解和灵活掌握教学内容。
为了达到上述目的,本课程设计安排了八个设计课题,训练重点在于基本的程序设计方法和分析问题的能力,而不强调面面俱到。
学生可任选其中一题进行设计,设计完毕写出课程设计报告,用A4纸打印成册;并将课程设计报告与源程序存盘。
学习委员将课程设计报告与磁盘收齐后交指导老师。
一、目的
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
二、设计要求
掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。
1.设计正确,方案合理。
2.界面友好,使用方便。
3.程序精炼,结构清晰。
4.设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。
5.上机演示。
6.按学号顺序选课题号,并在规定的时间内独自完成相关课题的C源程序编写、调整和运行。
源程序及编译生成各文件均保存在软盘中;
7. 务书的要求,按附录的要求编写《课程设计报告》(Word文档格式)。
并用A4的复印纸打印并装订;
8.008年7月8日之前,请各班班长收齐课程设计报告和源程序软盘交王颖老师,联系电话:
8883238。
目 录
内容摘要………………………………………………………10
关键词…………………………………………………………10
课程设计目的…………………………………………………10
课程设计主要任务…………………………………………10
程序的主要功能………………………………………………11
程序模快组成以及各个模快的功能…………………………11
流程图…………………………………………………………12
设计环境………………………………………………………13
收获及体会……………………………………………………13
源程序清单……………………………………………………14
一、内容摘要
英汉词典作为一个常用的学习工具,是我们经常要使用的。
该系统能完成一个简单的电子英汉词典的功能,如:
单词的查找、增词、删除、修改和维护等工作。
二、关键词
函数数组结构体 文件 循环语句多分支结构
三、课程设计目的
全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。
四、课程设计任务
1、功能要求:
1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
英文单词、词性、拼读音标、中文(汉语拼音)。
2)对单词和释义字符串长度的限定分别为不少于50个词条。
3)本系统显示这样的菜单:
---------电子英汉词典设计--------
1、述问题描:
英汉词典作为一个常用的学习工具,是我们经常要使用的。
该系统能完成一个简单的电子英汉词典的功能,如:
单词的查找、增词、删除、修改和维护等工作。
2、功能描述:
1)本词典采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
英文单词、词性、拼读音标、中文(汉语拼音)。
2)对单词和释义字符串长度的限定分别为不少于50个词条。
3)本系统显示这样的菜单:
--------电子英汉词典--------
1、输入新词汇
2、删除词汇
3、查找词汇
4、修改词汇信息
5、退出系统
请选择系统功能项(1…5):
3、算法提示:
1、数据结构:
结构体数组
2、数据库结构:
该系统的基本数据库如下表。
3、英文词性音标中文1
char charcharchar
4、测试数据:
要求被选用的词条有50个左右,以中学的单词为主。
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。
五、程序的主要功能
该程序实现了电子英汉词典的基本功能,系统的初始化功能、输入功能、输出功能、浏览功能、追加功能、保存功能、读取功能等七大功能。
系统操作简单,操作根据提示使用键盘即可。
六、程序模快组成以及各个模快的功能
1、main函数的下层子功能函数及其调用示意图。
删除函数delete()
可用于删除已存的单词,即删除单词的英文和对应的汉语。
查找函数search()
用于查找单词和汉字信息。
保存数据函数store()
用于维护修改后的数据和添加新的生词保存。
可有效防止数据丢失。
浏览函数view()
可以浏览所有存放的单词及对应的汉语。
修改函数modify()
可以修改和补充词意。
使词库随时更新。
七、操作流程图
八、程序设计环境
1、硬件:
Pentium4HT.
2、软件:
windows操作系统、TC2.0
心得体会
通过这段时间的课程设计,我认识到C语言是一门比较难的课程。
需要多花时间上机练习。
这次的程序训练培养了我实际分析问课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.回顾起此次C语言课程设计,至今我仍感慨颇多,的确,从课题到定稿,从理论到实践,在整整一星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了上课所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,弥补了上课所学的知识。
这次C语言程序设计同时还使得我认为它是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。
某个人的离群都可能导致整项工作的失败.只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败.团结协作是我们实习成功的一项非常重要的保证。
而这次实习也正好锻炼我们这一点,这也是非常宝贵的.我很清楚的知道团结协作的力量是伟大的,如果是我一个人孤军奋战的话,肯定不能在规定时间内完成这次课程设计的要求内容,因此我很怀念这两个星期的合作,想起我们一起查阅资料,一起讨论设计程序的思路,成功的时候一起分享喜悦.让我们懂得,科学的精神是一个大学生尤其是我们一个学工科的学生是不可缺少的. 也“粗略”的懂得了以前王颖老师说的奋战几天几夜的辛酸和不容易,人是在逆境中锻炼自身,在逆境中成材的.ﻫ答辩的时候王老师告诉我们,大学里还有好多的,课程设计的时间和环节.我们这还是刚刚开始,以后汇编语言单片机一致到大四的毕业设计都包含有课程设计的环节.答辩,写报告都不可缺少。
因此在以后的学习中我将会引以这次程序设计为鉴,学习好程序性语言。
武装自己的头脑。
丰富计算机知识!
ﻫ
附录
十、源程序清单
【源程序清单】
#include<stdio.h> /*输入输出函数*/
#include<string.h> /*字符和字符串函数*/
#include /*其他函数*/
#include<conio.h> /*字符屏幕操作函数*/
/*定义背景颜色*/
voidmy_clear(intfg_color,int bg_color)
{
textcolor(fg_color);
}
typedefstruct_Dictionary{ /*定义结构体数组*/
charword[32];
char interpret[50];
}Dictionary;
Dictionarydy[256];
intcount=0;
voidpreProcess();
voidprintMenu(); /*定义整型变量count,初始化为0*/
main()
{
preProcess();
printMenu();
}
/*打开一个文件,将数组不断读出来,然后存入字典(dy)中去*/
voidpreProcess()
{
FILE*fp=fopen("","r"); /*以只读的方式打开文件,并将地址赋给指针fp*/
char line[1024];
int i;
while(fgets(line,1024,fp) !
= NULL)
{
/*将文件中读去最多1024字符串保存到数组line中*/
for(i =0;i<strlen(line);++i)
{
if(line[i]==':
')
break;
} /*在数组line中依次读去单个字符,遇到":
"就跳出*/
line[i]='\0'; /*将冒号所在位置赋值,也就是换行*/
strcpy(dy[count].word,line);/*将line复制到dy[count]中的中去*/
strcpy(dy[count].interpret,line+i+1);
count++;
memset(line,0,sizeof(line)); /*清空line*/
}
fclose(fp);
}
/*打印指定字符*/
voidprint(Dictionary*pD)
{
if(pD!
=NULL)
{
printf("%s\n",pD->word);
printf("%s\n\n",pD->interpret);
}
}
/*在字典中查找一个指定的字符pc*/
Dictionary*_find(char*pc)
{
int i;
for(i=0;i<count;++i)
{
if(!
strcmp(dy[i].word,pc))
/*strcmp的作用就是比较dy[i].word和pc,如果有相同的,则返回0*/
{
return&dy[i];
}
}
return NULL;
}
/*从结构体数组中删除字符*/
intdel(char*pw)
{
inti;
for(i= 0; i<count;++i)
{
if(!
strcmp(dy[i].word,pw))
/*将和字典中的每个字比较,如果找到相同的,则停止,并保留*/
break;
}
if(i{
memset(&dy[i],0,sizeof(Dictionary)); /*删除中*/
count--;
if(i == count)
return 1;
if(count)
memcpy(&dy[i],&dy[count],sizeof(Dictionary));
return 1;
}
else
{
printf("***Nosuchword\n");
return0;
}
}
voidsave()
{
FILE *fp= fopen("","w");
charline[1024];
while(count--)
{
memset(line,0,sizeof(line));
strcpy(line,dy[count].word);
strcat(line,":
");
strcat(line,dy[count].interpret);
fputs(line,fp);
}
fclose(fp);
}
voidprintMenu()
{
char cmd[20];
charpw[20];
charin[50];
char ch;
Dictionary *pD=0; my_clear(4,3);
printf(" \n");
printf(" ***菜单***\n");
printf("…………………………………………………\n");
printf(" 学习如逆水行舟,不进则退!
\n");
printf(" \n");
printf(" |好|***[1]查找相关单词***|天|\n");
printf("@@@@@@@@@@@@@@@@@@@@@\n");
printf(" |好|***[2]删除相关单词***|天|\n");
printf(" \n");
printf(" |学|***[3]添加相关单词***|向|\n");
printf(" \n");
printf(" |习|###[E]退出 ###|上|\n->");
scanf("%s",cmd);
/*输入一串字符,然后查找,找到,则打印出来*/
clrscr();
switch(cmd[0])
{
case '1':
{
printf("***请输入你想查找的单词:
***\n->");
scanf("%s",pw);
getchar();
pD=_find( pw);
if(pD !
=NULL)
print(pD );
else
printf(" ***对不起,无此单词***\n");
printMenu();
break;
}
/*删除一个字符,调用前面的del()*/
case'2':
{
printf(" ***请输入你想删除的单词:
***\n->");
scanf("%s",pw);
del ( pw);
printf(" ***删除成功***\n");
printMenu();
break;
}
/*输入字符串pw和对应的解释in,然后存入字典的最后,然后printmenu*/
case'3':
{
printf(" ***请输入你想添加的单词***\n->");
scanf("%s",pw);
getchar();
printf(" ***请输入相关单词的意思***\n->");
scanf("%s",in);
getchar();
strcpy(dy[count].word,pw);
strcpy(dy[count].interpret,in);
count++;
printf("***添加成功***\n");
printMenu();break;
}
/*保存字典,输出到文件*/
case'e':
{
getchar();
printf("是否保存(Y/N)");
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
save();
printf(" @@@谢谢使用!
@@@\n");
printf(" 如有问题请发邮件至:
\n");
printf(" @@@制作人:
王杰同学@@@\n");
printf(" 谢谢王颖老师指导\n");
exit(0);
}
/*调用本身*/
{
printf("***对不起,无此单词,请重新输入:
***\n");
printMenu();
}
}
}
ﻫ
项 目
评 价
设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
答辩陈述与回答问题情况
课程设计周表现情况
综合成绩
应用技术学院课程设计评分表
教师签名