C语言课程设计
十二月英语四级听力下载
disturbance
软件学院
指导老师:
casting 学号:
姓名:
一、实验题目及要求
题目 : 电子英汉词典
设计要求 : 1.用图形用户界面实现
2.能够编辑词典库中的信息
3.能够实现英译汉,汉译英。(要考虑一词多义)
二、实验过程
pant什么意思
主要思想 : 1 建立词典库(相关文件的处理)
2 设计词典图形用户界面
3 查找单词及词典的重复使用(实现一词多义)
主要过程
1.词典库的建立:
文件的建立,写入和调出参考老师给的FILE.C 文件
FILE.C大致内容
{
FILE *fp/*建立文件指针*/
fp=fopen("d:\","wb+");/*在指定路径建立文本文件*/
for(i=0;i<SIZE;i++) /*将结构体中的内容
if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1) 写进指定文件中并进 { printf("file write error!"); 行判断是否写入*/
exit(0);
}
fread(&stu_temp,sizeof(struct student),1,fp); /*将文件中的指定内容调出*/
}
单词库存储在指定路径的指定文件中方便后文的查询和调出
单词库的建立利用结构体可以包含一词多义,并将汉译英和英译汉的词典库分 开以便实现英汉互译 (在中文dos环境下运行)
图例:(未在中文dos环境下运行)
2. 设计词典图形用户界面
参考文件Graph.c 进行图形驱动
balancevoid init()
{
int gdriver, gmode, i, j;
gdriver = DETECT;
英语培训课件
registerbgidriver(EGAVGA_driver);
initgraph(&gdriver, &gmode, "");
}
图例(未设置鼠标前)
上网查找相关资料调用鼠标
鼠标绘制函数
设置鼠标指针位置函数
设置函数得到鼠标左右键点击的不同状态
(设置鼠标后运行结果全屏无法截图)
在图形界面下设计用户界面并使用该鼠标设置相关区域的鼠标键点击后
得到不同的结果,进入英译汉或汉译英界面
3. 查找单词及词典的重复使用(考虑一词多义)
利用文件指针和函数fek ,fread 对结构体内的单词名称查找和该相关 释义的调用同时考虑英汉互译
设置查找不到单词的页面和利用while语句使实现词典是否需要重复使用 功能
图例:
三、实验结果及心得
根据题目描述基本达到题目要求。
在实验过程中对照老师给予的帮助程序和相关软件不断构思得到大致的框架,不断 的调试不断的查询函数用法的同时加深对c语言的认识,也许只是简单的一句话也许只 是简单的一个功能也是需要一个一个经过深思熟虑的代码敲打出来。
此次试验中了解图形用户界面,相关文件的存储和调用,鼠标的调用及使用等等平 常没有接触到的c语言的知识。深深感受到c语言博大精深,将为以后的软件方面知识 的学习打下深刻的基础。
四、代码(dictionary)
#include <process.h>
#include <stdlib.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <string.h>
#include <graphics.h>
#include <stdlib.h>
#include <bios.h>
#define SIZE 2 /*设置词典的词汇量*/
#define NO_PRESSED 0 /*为读取鼠标的各个状态*/
#define LEFT_PRESSED 1
#define RIGHT_PRESSED 2
void DrawMou(float x,float y);
int tMouPos(int x,int y);
int mouStatus(int* x,int* y);
void init();
void box(int startx,int starty,int high,int width) ;
struct word
{
char name[10]; /*存储英译中词典单词名*/
char exp[3][20]; /*存储英译中词典单词释义*/
char namm[10]; /*存储中译英词典单词名*/
char exx[3][20]; /*存储英译中词典单词释义*/
}; /*创建存放单词及其释义的结构体*/
char buf[20*20*4]; /*设置缓存区*/
main()
boating
{
char *f[]={"Chine-English Translation(中译英)","English-Chine Translation(英译中)"};
int key,y,x;
char u;
int t=0,r;
int o1[SIZE];
int o2[SIZE]; /*o1,o2数组用来储存单词的释义数目*/
char ek[10]; /*存储查询功能时用户输入的单词*/
int last_x,last_y;
int x1,y1; int x0,y0;
int m=0;
struct word stu[SIZE],stu_eg; /*为读取文件中内容设定的相关结构 体变量*/
FILE *fp; /*定义文件指针*/
int i,j;
fp=fopen("c:\","wb+");
if(fp==NULL)
{
printf("cannot open this file\n");
exit(0);
} /*创建或打开特定路径的文件*/
for(i=0;i<SIZE;i++)
{
puts("English word:");
scanf("%s",&stu[i].name); /*添加英译中词典中单词名*/
u='y'; /*字符变量u存储用户输入的键盘值 查询用户是否需要添加释义*/
j=0; /*变量j的数值能控制每个单词释义在 三个之内*/
while(u=='y'&&j<=2)
{
o1[i]=j; /*int类型数组o1记载每个单词拥有的 释义数*/
printf("Chine explanation %d :",j+1);
y=wherey();
scanf("%s",stu[i].exp[j]);
gettext(1,1,60,14,buf);
if(j<2)
printf("\nanother explaination ? ('n'or 'y')\n") ;
getchar();
scanf("%c",&u);
systema clrscr();
puttext(1,1,60,14,buf);
gotoxy(1,y+2);
j++;