C语言背单词课程设计报告东北大学秦皇岛分校.docx

上传人:b****7 文档编号:9422605 上传时间:2023-02-04 格式:DOCX 页数:18 大小:262.67KB
下载 相关 举报
C语言背单词课程设计报告东北大学秦皇岛分校.docx_第1页
第1页 / 共18页
C语言背单词课程设计报告东北大学秦皇岛分校.docx_第2页
第2页 / 共18页
C语言背单词课程设计报告东北大学秦皇岛分校.docx_第3页
第3页 / 共18页
C语言背单词课程设计报告东北大学秦皇岛分校.docx_第4页
第4页 / 共18页
C语言背单词课程设计报告东北大学秦皇岛分校.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言背单词课程设计报告东北大学秦皇岛分校.docx

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

C语言背单词课程设计报告东北大学秦皇岛分校.docx

C语言背单词课程设计报告东北大学秦皇岛分校

 

C语言程序设计

课程设计报告

设计题目:

背单词

 

专业电子信息工程

班级40914

学生吴昊

学号*******

题目:

背单词

概述:

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

并判定词义是否正确。

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

如正确给以鼓励。

还应有词语预览功能。

基本功能:

词库的维护

课程预览

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

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

背诵成绩的记录。

课程设计目的:

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

对课程设计的基本要求:

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

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

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

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

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

a)文件的存取

b)结构体的使用

c)数组的使用

d)指针操作

 

一、开题报告

1:

变量和结构体说明

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

typedefstructword

//单词的结构体

{

charen[MAX_CHAR];//英文形式

charno[MAX_CHAR];//中文形式

}word;

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

words[MAX_NUM];//单词数组

intnum;//单词个数

2:

概要设计

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

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

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

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

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

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

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

先读取单词个数,然后逐个读取单词的信息,采用fread函数

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

先写入单词个数,然后逐个写入单词的信息,采用fwrite函数

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

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

3:

树型结构模块图

功能模块图如下:

4课程流程图

5:

操作说明

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

2)系统的菜单如下:

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

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

 

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

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

 

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

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

6:

课程详细代码:

#include

#include

#include

#defineMAX_CHAR20//最大字符

#defineMAX_NUM100//单词的最大个数

typedefstructword

//单词的结构体

{

charen[MAX_CHAR];//英文形式

charno[MAX_CHAR];//中文形式

}word;

words[MAX_NUM];//单词数组

intnum;//单词个数

voidread_from_file()

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

{

FILE*fp;

inti=0;

fp=fopen("data.txt","rb");

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+");

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].no);

num++;

printf("您输入的信息为:

英文:

%s中文:

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

}

voiddel_infor()//删除单词信息

{

inti=0,j=0;

charno[MAX_CHAR];//中文形式

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

");

scanf("%s",no);

for(i=0;i

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

{

for(j=i;j

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

num--;//数量减少1

return;

}

printf("没有这个单词!

");

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

}

voidmodify_infor()//修改单词信息

{

inti=0;

charno[MAX_CHAR];//中文形式

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

");

scanf("%s",no);

for(i=0;i

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

{

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

");

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

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

");

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

return;

}

printf("没有这个单词!

");

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

}

voidshow_infor()

{inti=0;

printf("单词:

英文中文\n");

for(i=0;i

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

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

}

voidsearch_infor()//查询单词

{

inti=0;

charno[MAX_CHAR];//中文形式

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

");

scanf("%s",no);

for(i=0;i

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

{

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

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

return;

}

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

");

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

}

voidzy_infor()

{

charb1[20];

intz,d=0,c=0;

inti;

i=rand()%num;

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

",s[i].no);

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].no);

}

voidyz_infor()

{

charb1[20];

intz,x=41,d=0,c=0;

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()

{

intc,d;

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

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

printf("共计输入正确:

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

printf("你的总得分为:

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

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

}

voidshow_main_menu()

{

printf("\n");

printf("●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●\n");

printf("◎◎\n");

printf("●背单词系统●\n");

printf("◎◎\n");

printf("●作者:

4091405吴昊●\n");

printf("◎◎\n");

printf("●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●\n");

printf("◎◎\n");

printf("●1、添加单词信息2、删除单词信息●\n");

printf("◎◎\n");

printf("●3、修改单词信息4、显示单词信息●\n");

printf("◎◎\n");

printf("●5、背诵(中至英)6、背诵(英至中)●\n");

printf("◎◎\n");

printf("●7、查询成绩8、退出●\n");

printf("◎◎\n");

printf("●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●◎●\n");//用户界面

printf("\n");

printf("请选择您需要的操作序号(1-8)按回车确认:

");

}

intmain()

{

inta,choose=0;

num=0;//初始化单词个数为0

read_from_file();//读取文件

show_main_menu();

scanf("%d",&choose);

printf("\n");

while(choose!

=8)

{

switch(choose)

{

case1:

add_infor();break;

case2:

del_infor();break;

case3:

modify_infor();break;

case4:

show_infor();break;

case5:

zy_infor();break;

case6:

yz_infor();break;

case7:

chengji_infor();break;

}

while(a<10000){scanf("%d",&a);

if(a==0){

write_to_file();

add_infor();}

if(a==1)

{printf("\n");

write_to_file();

main();

printf("\n");}

if(a==2)

{

write_to_file();

zy_infor();}

if(a==3)

{

write_to_file();

yz_infor();}

if(a>3)

{break;}

}

write_to_file();//写入文件

}

printf("***************谢谢使用单词背诵系统!

再见!

***************\n");

getchar();

return1;

}

7:

心得体会

通过本次C语言课程设计,是我对C语言的文件的存取、结构体的使用、数组的使用和指针操作有了更深的理解。

还充分体会了从事软件开发工作需要特别严谨认真的态度和作风,一点都马虎不得。

每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。

有时候,我自己觉得我写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。

这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙了才向同学和老师请教。

尽管向其他人请教解决问题比较快,自己钻研花的时间较多,但我强迫自己独立的思考对我的学习提高帮助非常大。

系统测试达到了良好的效果,编程思路清晰,界面操作简单,功能比较完善,通过此次C语言课程设计,使我提高了编程的经验,为以后的学习打下了坚实的基础。

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

当前位置:首页 > 高等教育 > 文学

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

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