C语言背单词课程设计报告.docx

上传人:b****1 文档编号:1225909 上传时间:2022-10-19 格式:DOCX 页数:21 大小:421.43KB
下载 相关 举报
C语言背单词课程设计报告.docx_第1页
第1页 / 共21页
C语言背单词课程设计报告.docx_第2页
第2页 / 共21页
C语言背单词课程设计报告.docx_第3页
第3页 / 共21页
C语言背单词课程设计报告.docx_第4页
第4页 / 共21页
C语言背单词课程设计报告.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言背单词课程设计报告.docx

《C语言背单词课程设计报告.docx》由会员分享,可在线阅读,更多相关《C语言背单词课程设计报告.docx(21页珍藏版)》请在冰豆网上搜索。

C语言背单词课程设计报告.docx

C语言背单词课程设计报告

 

通信工程C语言强化训练实验报告

 

学号:

4110918

姓名:

诸葛逍遥

提交日期:

2012年7月4日

成绩:

评语:

 

教师签字:

东北大学秦皇岛分校计算机与通信工程学院

题目:

背单词

1.概述

该系统是帮助单词背诵单词的软件,要求用户可以选择背诵的词库,并可以编辑自己的词库,系统可以给出中文,让单词输入其英文意思,也可输出英文让单词输入中文意思。

并判定词义是否正确。

如不正确给出提示并要求用户重新输入。

如正确给以鼓励。

还应有词语预览功能。

基本功能:

1)词库的维护

2)课程预览

3)显示中文用户输入英文的背诵方法

4)显示英文用户输入中文的背诵方法

5)背诵成绩的记录。

2.课程设计目的

综合训练单词用C语言编程解决问题和处理问题的能力,巩固其对C语言课程内容和知识的掌握。

3.对课程设计的基本要求

1)尽量多的应用C语言中所学到的知识和语句

2)课程设计前应书写开题报告主要内容包括(对题目的分析和对该课程设计的概要设计)

3)课程设计后应交《课程设计报告》,和软件原代码及编译后的应用软件

4)课程设计最后一次上机实验时检查题目的完成情况

5)课程设计中必须用到的内容为

a文件的存取

b结构体的使用

c数组的使用

d指针操作

 

一、开题报告

1.变量和结构体说明

1)单词信息的结构体如下:

typedefstructword

//单词的结构体

{

charen[M_CHAR];//英文形式

charch[M_CHAR];//中文形式

}word;

2)存放单词的信息的变量如下:

words[M_NUM];//单词数组

intnum;//单词个数

2.概要设计

1)定义结构体数组用来存放单词的信息

2)单词信息存放在data.txt中,文件格式如下:

单词个数—长度为4个字节

第1个单词的信息-----长度为sizeof(word)

第2个单词的信息-----长度为sizeof(word)

第n个单词的信息-----长度为sizeof(word)

3)读文件data.txt的过程如下:

打开文件data.txt用fopen函数(以mode指定的方式打开名为filename的文件)先读取单词个数,然后逐个读取单词的信息,采用fread函数(从fp所指定的文件中读取长度为size的n个数据项,存到pt所指向的内存区)

4)写文件data.txt的过程如下:

先写入单词个数,然后逐个写入单词的信息,采用fwrite函数(把ptr所指向的n*size个字节输出的fp所指向的文件中)

5)删除单词和修改单词信息的时候,都需要先输入英文,从该英文找到单词的位置

6)程序采用菜单的形式显示,用户可以输入选择进行操作

3.树型结构模块图

功能模块图如下:

 

 

4课程流程

5.操作说明

1)本程序需要目录下存在“data.txt”文件

2)系统的菜单如下

3)添加单词信息的功能操作方法如下:

4)删除单词信息的功能操作方法如下:

5)修改单词信息的功能操作方法如下:

6)显示单词信息功能操作方法如下:

7)显示单词背诵(中至英)功能操作方法如下:

1、回答正确

2、回答错误

8)显示单词背诵(英至中)功能操作方法如下:

9)成绩查询的功能操作方法如下:

6.课程详细代码:

#include

#include

#include

#defineM_CHAR20//最大字符

#defineM_NUM100//单词的最大个数

intc=0,d=0;//统分变量

typedefstructword

//单词的结构体

{

charen[M_CHAR];//英文形式

charch[M_CHAR];//中文形式

}word;

words[M_NUM];//单词数组

intnum;//单词个数

voidread_from_file()

//从文件中读取单词的信息

{

FILE*fp;

inti=0;

fp=fopen("data.txt","rb");//以rb(为读而打开一个二进制文件)打开data.txt文件

if(!

fp)

{

printf("打开文件data.txt失败!

\n");

return;

}

fread(&num,1,sizeof(num),fp);//先读取单词的个数

for(i=0;i

fread(&s[i],1,sizeof(word),fp);//读取每个单词的信息存放到结构体

fclose(fp);//关闭文件

}

voidwrite_to_file()

//向文件中输入单词的信息

{

FILE*fp;

inti=0;

fp=fopen("data.txt","wb+");//“wb+”建立一个新文件,进行写操作,随后读和写可以由位置函数设置读和写的起始位置

if(!

fp)

{

printf("打开文件data.txt失败!

\n");

return;

}

fwrite(&num,1,sizeof(num),fp);//先写入单词的个数

for(i=0;i

fwrite(&s[i],1,sizeof(word),fp);//写入每个单词的信息

fclose(fp);//关闭文件

}

voidadd_infor()//添加单词信息

{

inta,i=num;

printf("请输入单词的英文形式:

");

scanf("%s",s[i].en);

printf("请输入单词的中文形式:

");

scanf("%s",s[i].ch);

num++;

printf("您输入的信息为:

英文:

%s\n中文:

%s\nEnter0继续输入;Enter1返回主菜单",s[i].en,s[i].ch);

}

voiddel_infor()//删除单词信息

{

inti=0,j=0;

charch[M_CHAR];//中文形式

printf("请输入你要删除的单词中文形式:

");

scanf("%s",ch);

for(i=0;i

if(strcmp(s[i].ch,ch)==0)//strcmp(比较两个字符串str1和str2)

{

for(j=i;j

s[j]=s[j+1];

num--;//数量减少1

printf("删除成功!

\nEnter1返回主菜单");

return;

}

printf("没有这个单词!

");

printf("EnterEnter1返回主菜单");

}

voidmodify_infor()//修改单词信息

{

inti=0;

charch[M_CHAR];//中文形式

printf("请输入你要修改的单词中文形式:

");

scanf("%s",ch);

for(i=0;i

if(strcmp(s[i].ch,ch)==0)

{

printf("请输入单词正确的英文形式:

");

scanf("%s",s[i].en);

printf("请输入此单词正确的的中文形式:

");

scanf("%s",s[i].ch);

printf("修改成功!

\nEnter1返回主菜单");

return;

}

printf("没有这个单词!

");

printf("EnterEnter1返回主菜单");

}

voidshow_infor()

{inti=0;

printf("单词:

英文中文\n");

for(i=0;i

printf("%10s%10s\n",s[i].en,s[i].ch);

printf("EnterEnter1返回主菜单");

}

voidsearch_infor()//查询单词

{

inti=0;

charch[M_CHAR];//中文形式

printf("请输入你要查询的单词中文形式:

");

scanf("%s",ch);

for(i=0;i

if(strcmp(s[i].ch,ch)==0)

{

printf("英文形式中文形式\n");

printf("%10s%12s\n",s[i].en,s[i].ch);

return;

}

printf("没有这个中文形式!

");

printf("EnterEnter1返回主菜单");

}

voidch_to_en_infor()

{

charb1[20];

intz;

inti;

i=rand()%num;

printf("【%s】请输入英文单词:

",s[i].ch);

scanf("%s",b1);

for(z=0;strcmp(b1,s[i].en)!

=0;z=z)

{printf("输入错误!

请重新输入:

");scanf("%s",b1);c=c+1;}

printf("\n恭喜你,回答正确,加10分!

\n\n");d=d+1;

printf("Enter2继续输入;Enter1返回主菜单",s[i].en,s[i].ch);

}

voiden_to_ch_infor()

{

charb1[20];

intz,x=41;

inti;

i=rand()%num;

printf("【%s】请输入中文意思:

",s[i].en);

scanf("%s",b1);

for(z=0;strcmp(b1,s[i].no)!

=0;z=z)

{printf("输入错误!

请重新输入:

");scanf("%s",b1);c=c+1;}

printf("\n恭喜你,回答正确,加10分!

\n\n");d=d+1;

printf("\nEnter3继续输入;Enter1返回主菜单",s[i].en,s[i].no);

}

voidchengji_infor()

{

printf("\n共计输入错误:

%d次**每次扣10分**\n",c);

printf("共计输入正确:

%d次**每次加10分**\n",d);

printf("你的总得分为:

%d分\n\n",10*d-10*c);

printf("EnterEnter1返回主菜单");

}

voidshow_main_menu()

{

System(“color2f”);

System(“modeconcols=100lines=40”);

printf("\n");

printf("★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n");

printf("◎◎\n");

prin

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1