C语言背单词课程设计报告.doc_第1页
C语言背单词课程设计报告.doc_第2页
C语言背单词课程设计报告.doc_第3页
C语言背单词课程设计报告.doc_第4页
C语言背单词课程设计报告.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

c语言程序设计课程设计报告设计题目:背单词专 业 电子信息工程 班 级 40914 学 生 吴昊 学 号 4091405 题目:背单词概述:该系统是帮助单词背诵单词的软件,要求用户可以选择背诵的词库,并可以编辑自己的词库,系统可以给出中文,让单词输入其英文意思,也可输出英文让单词输入中文意思。并判定词义是否正确。如不正确给出提示并要求用户重新输入。如正确给以鼓励。还应有词语预览功能。基本功能:词库的维护课程预览显示中文用户输入英文的背诵方法显示英文用户输入中文的背诵方法背诵成绩的记录。课程设计目的:是综合训练单词用c语言编程解决问题和处理问题的能力,巩固其对c语言课程内容和知识的掌握。对课程设计的基本要求: 1、尽量多的应用c语言中所学到的知识和语句2、课程设计前应书写开题报告主要内容包括(对题目的分析和对该课程设计的概要设计)3、课程设计后应交课程设计报告,和软件原代码及编译后的应用软件4、课程设计最后一次上机实验时检查题目的完成情况5、课程设计中必须用到的内容为a) 文件的存取b) 结构体的使用c) 数组的使用d) 指针操作一、开题报告 1:变量和结构体说明 1) 单词信息的结构体如下:typedef struct word/单词的结构体 char enmax_char; / 英文形式 char nomax_char; /中文形式word;2)存放单词的信息的变量如下:word smax_num; /单词数组int num; /单词个数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)程序采用菜单的形式显示,用户可以输入选择进行操作133:树型结构模块图学生背单词系统功能模块图如下:写入文件信息查询成绩背诵(英至中)读取文件信息添加单词信息删除单词信息修改单词信息显示单词信息背诵(中至英)4课程流程图5: 操作说明1) 本程序需要目录下存在“data.txt”文件2) 系统的菜单如下: 3) 添加单词信息的功能操作方法如下: 4) 删除单词信息的功能操作方法如下: 5) 修改单词信息的功能操作方法如下:6) 显示单词背诵(中至英)功能操作方法如下: 7) 显示单词背诵(英至中)功能操作方法如下:8) 成绩查询的功能操作方法如下:6: 课程详细代码:#include #include #include #define max_char 20 / 最大字符#define max_num 100 / 单词的最大个数typedef struct word/单词的结构体 char enmax_char; / 英文形式 char nomax_char; /中文形式word;word smax_num; /单词数组int num; /单词个数void read_from_file()/从文件中读取单词的信息 file *fp; int i=0; fp=fopen(data.txt,rb); if(!fp) printf(打开文件data.txt失败!n); return ; fread(&num,1,sizeof(num),fp); /先读取单词的个数 for(i=0;inum;i+) fread(&si,1,sizeof(word),fp); /读取每个单词的信息存放到结构体 fclose(fp);/关闭文件void write_to_file()/从文件中读取单词的信息 file *fp; int i=0; fp=fopen(data.txt,wb+); if(!fp) printf(打开文件data.txt失败!n); return ; fwrite(&num,1,sizeof(num),fp); /先写入单词的个数 for(i=0;inum;i+)fwrite(&si,1,sizeof(word),fp); /写入每个单词的信息 fclose(fp);/关闭文件void add_infor()/添加单词信息int a,i=num;printf(请输入单词的英文形式:);scanf(%s,si.en);printf(请输入单词的中文形式:);scanf(%s,si.no);num+;printf(您输入的信息为: 英文: %s 中文: %s n enter 0 继续输入; enter 1 返回主菜单,si.en,si.no);void del_infor()/删除单词信息int i=0,j=0;char nomax_char; /中文形式 printf(请输入你要删除的单词中文形式:);scanf(%s,no);for(i=0;inum;i+)/先找到该中文形式对应的序号 if(strcmp(si.no,no)=0)for(j=i;jnum-1;j+) sj=sj+1;num-; /数量减少 1return; printf(没有这个单词!); printf(enter enter 1 返回主菜单);void modify_infor()/修改单词信息int i=0;char nomax_char; /中文形式 printf(请输入你要修改的单词中文形式:);scanf(%s,no);for(i=0;inum;i+)/先找到该中文形式对应的序号 if(strcmp(si.no,no)=0)printf(请输入单词正确的英文形式:);scanf(%s,si.en);printf(请输入此单词正确的的中文形式:);scanf(%s,si.no);return;printf(没有这个单词!);printf(enter enter 1 返回主菜单);void show_infor()int i=0; printf(单词: 英文 中文 n); for(i=0;inum;i+) printf( %10s%10sn,si.en,si.no);printf(enter enter 1 返回主菜单);void search_infor()/查询单词int i=0;char nomax_char; /中文形式 printf(请输入你要查询的单词中文形式:);scanf(%s,no);for(i=0;inum;i+)/先找到该中文形式对应的序号 if(strcmp(si.no,no)=0) printf(英文形式 中文形式 n); printf(%10s%12sn,si.en,si.no);return;printf(没有这个中文形式!);printf(enter enter 1 返回主菜单);void zy_infor()char b120;int z,d=0,c=0;int i; i = rand()%num;printf(【%s】请输入英文单词:,si.no);scanf(%s,b1);for(z=0;strcmp(b1,si.en)!=0;z=z)printf(输入错误!请重新输入:);scanf(%s,b1);c=c+1;printf(n恭喜你,回答正确,加10分!nn);d=d+1;printf(enter 2 继续输入; enter 1 返回主菜单,si.en,si.no);void yz_infor()char b120;int z,x=41,d=0,c=0;int i; i = rand()%num;printf(【%s】请输入中文意思:,si.en);scanf(%s,b1);for(z=0;strcmp(b1,si.no)!=0;z=z)printf(输入错误!请重新输入:);scanf(%s,b1);c=c+1;printf(n恭喜你,回答正确,加10分!nn);d=d+1;printf(n enter 3 继续输入; enter 1 返回主菜单,si.en,si.no);void chengji_infor()int c,d;printf(n共计输入错误:%d次*每次扣10分*n,c);printf(共计输入正确:%d次*每次加10分*n,d);printf(你的总得分为:%d分nn,10*d-10*c);printf(enter enter 1 返回主菜单);void show_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)按回车确认:);int main() int a,choose=0; num=0;/初始化单词个数为0 read_from_file(); /读取文件 show_main_menu(); scanf(%d,&choose); printf(n); while(choose!=8) switch(choose) case 1: add_infor();break; case 2: del_infor();break; case 3: modify_infor();break; case 4: show_infor();break; case 5: zy_infor();break; case 6: yz_infor();break; case 7: chengji_infor();break; while (a3) break; write_to_file();/写入文件 printf( *谢谢使用单词背诵系统!再见!* n); getchar(); return 1;7: 心得体会通过本次c语言课程设计,是我对c语言的文件的存取、结构体的使用、数组的使用和指针操作有了更深的理解。还充分体会了从事软件开发工作需要特别严谨认真的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,我自己觉得我写的程序非常的正确,但是就是编译通不过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论