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

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

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

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

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

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)显示单词背诵(中至英)功能操作方法如下:

1、回答正确

2、回答错误

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

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

6.课程详细代码:

#include<

stdio.h>

string.h>

stdlib.h>

#defineM_CHAR20//最大字符

#defineM_NUM100//单词的最大个数

intc=0,d=0;

//统分变量

typedefstructword

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<

num;

i++)

s[i],1,sizeof(word),fp);

//读取每个单词的信息存放到结构体

fclose(fp);

//关闭文件

}

voidwrite_to_file()

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

wb+"

//“wb+”建立一个新文件,进行写操作,随后读和写可以由位置函数设置读和写的起始位置

fwrite(&

//先写入单词的个数

//写入每个单词的信息

voidadd_infor()//添加单词信息

inta,i=num;

请输入单词的英文形式:

"

scanf("

%s"

s[i].en);

请输入单词的中文形式:

s[i].ch);

num++;

您输入的信息为:

英文:

%s\n中文:

%s\nEnter0继续输入;

Enter1返回主菜单"

s[i].en,s[i].ch);

voiddel_infor()//删除单词信息

inti=0,j=0;

printf("

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

ch);

i++)//先找到该中文形式对应的序号

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

{

for(j=i;

j<

num-1;

j++)

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

num--;

//数量减少1

printf("

删除成功!

\nEnter1返回主菜单"

return;

}

没有这个单词!

EnterEnter1返回主菜单"

voidmodify_infor()//修改单词信息

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

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

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

scanf("

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

修改成功!

voidshow_infor()

{inti=0;

单词:

英文中文\n"

%10s%10s\n"

printf("

voidsearch_infor()//查询单词

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

{

英文形式中文形式\n"

%10s%12s\n"

return;

没有这个中文形式!

voidch_to_en_infor()

{

charb1[20];

intz;

inti;

i=rand()%num;

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

b1);

for(z=0;

strcmp(b1,s[i].en)!

=0;

z=z)

{printf("

输入错误!

请重新输入:

scanf("

c=c+1;

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

\n\n"

d=d+1;

Enter2继续输入;

voiden_to_ch_infor()

intz,x=41;

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

strcmp(b1,s[i].no)!

\nEnter3继续输入;

s[i].en,s[i].no);

voidchengji_infor()

\n共计输入错误:

%d次**每次扣10分**\n"

c);

共计输入正确:

%d次**每次加10分**\n"

d);

你的总得分为:

%d分\n\n"

10*d-10*c);

voidshow_main_menu()

System(“color2f”);

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

★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★\n"

◎◎\n"

●帮你背单词●\n"

●●\

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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