数据结构
作者:互联网
/本次课任务,从文本文件中读入单词列表,然后显示在屏幕上 #include<stdio.h> #include<stdlib.h> #include<iostream> #include<cstring> using namespace std; //子函数声明 #define INITSIZE 100 //定义结构体类型,用于表示单词类型 typedef struct word { char spell[100]; //定义spell成员,用于存储单词的英文拼写 char interpretation[50]; //定义interpretation成员,用于存储单词的中文意思 } word; typedef struct SqList //定义存储单词的顺序表存储结构 { word *list; //list数组用于存放从文件读入的单词表 int length; //顺序表的长度 int listsize; //顺序表的容量 } SqList; void Initiate(SqList &L); void Load(SqList &L); void Print(SqList L); void Test(SqList L); int main() { SqList L; //定义顺序表变量L Initiate(L); //初始化顺序表L Load(L); //从文本文件中读取单词存入顺序表L中 Test(L); Print(L);// 将顺序表L中的单词输出到屏幕上 return 0; } void Initiate(SqList &L) //初始化顺序表L { L.list=(word *)malloc(INITSIZE*sizeof(word)); //为顺序表申请内存空间 if(!L.list) //如果申请空间失败,退出程序 { cout<<"内存空间不足!"<<endl;//在屏幕上输出“内存空间不足!” exit(0); //退出程序 } L.length=0; //初始化单词表的长度值为0 L.listsize=INITSIZE; //初始化单词表的容量为INITSIZE值 } void Load(SqList &L) //从文本文件中读取单词存入顺序表L中 { FILE *fp; //定义文件指针fp char filename[30]; printf("请输入要测试单词的文件名:"); scanf("%s",filename); if((fp=fopen(filename,"r"))==NULL) //打开文件,如果文件打开失败,退出程序 { cout<<"文件不存在"<<endl; //在屏幕上输出“文件不存在!” exit(1); } int i=0; //i变量用于记录从文件读入的单词个数 while(!feof(fp)&&i<L.listsize) //循环读入fp指针指向的文本文件中的每一个单词极其中文翻译 { fgets(L.list[i].spell,100,fp); //按顺序读出文件中的单词 fgets(L.list[i].interpretation,100,fp); //按顺序读出文件中的单词翻译 i++; //单词个数增加1 } fclose(fp); //关闭文件 L.length=i; //将顺序表中单词个数赋值给L.length } void Print(SqList L) { int i=0; while(L.length!=i) { printf("%s",L.list[i].spell); printf("%s",L.list[i].interpretation);//将顺序表L中的单词输出到屏幕上 i++; } } void Test(SqList L) { bool flag[50]; for(int i=0;i<L.length;i++) flag[i]=false; int correctnum=0; int i=0; while(correctnum<L.length) { if(flag[i]==false){ char str[20]; printf("%s\n",L.list[i].interpretation); //循环输出每一个单词的中文意思,要求用户输入该单词的英文拼写 printf("请输出该单词的英文拼写:"); scanf("%s",str); strcat(str,"\n"); if(!strcmp(L.list[i].spell,str)){ printf("答对了!你真棒\n"); correctnum++; flag[i]=true; //如果该单词拼写输入正确,输出“答对了!你真棒” } else{ printf("答错了,没关系,再接再厉!\n"); } //如果该单词拼写输入错误,输出“答错了,没关系,再接再厉!” getchar(); } i=(i+1)%L.length; } }
标签:顺序,word,void,单词,include,SqList,数据结构 来源: https://www.cnblogs.com/tanbo/p/15652822.html