栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言课程设计 简单的单词学习系统

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言课程设计 简单的单词学习系统

帮兄弟简单写了一个课设题目,时间有限(两个小时),恳请斧正嘿嘿

目录

零、题目要求

一、导入函数库、定义结构体以及函数声明

二、一级菜单函数

三、二级菜单函数

1.词库更新系统

2.学习系统

四、功能实现函数

1.词库更新相关

2.学习系统相关

①题目回答

②单词学习

五、主函数及总结


零、题目要求

1.具体功能
①建立词库:建立单词词库和词组词库各20组,可实现词条删除和添加功能。
②单词学习统计与晋级:第一级英语单词学习,要答对10道题且答对率为80%以上才可
以晋级至下一级,不满足条件重新学习。
(rand(),#include结构体、文件或数组)
2.分步实施
①初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;
②建立单词词库和词组词库,可对该词库进行删除和添加;
③完成单词学习功能,具有统计、升级和重新学习功能;
3.要求
①用C语言实现程序设计;
②利用结构体进行相关信息处理;
③系统的各个功能模块要求用函数的形式实现;

一、导入函数库、定义结构体以及函数声明
#include
#include
#include
#include

//定义单词结构体 
typedef struct word{
	char e[100];
	char c[100];
}word;
//定义单词库 
typedef struct word_list{
	word list[20];
	int length;
}word_list;
word_list Word;//为避免使用指针,这里直接创建单词库空间
void create();
int max(int,int);
void add();
void del();
void pr();
void update();
int exc(int);
int wordlearn(int);
void startLearn();

二、一级菜单函数
//主菜单 
int menu(){
	int n;
	int flag = 1;
	while(flag){
	printf("*********欢迎来到小学生英语学习系统*********n");
	printf("*********1.新建词库 2.更新词库********n");
	printf("*********3.开始学习 4.退出    ********n");
	printf("**********************************************n");
	scanf("%d",&n);
	switch(n){
		case 1: 
		create();
		break;
		case 2:
		update(); 
		break;
		case 3:
		startLearn();
		break;
		case 4:
		flag = 0;
		printf("退出成功!n");
		break;
		default:
		printf("输入错误!n");
		}
   }
}

三、二级菜单函数

1.词库更新系统
//更新系统 
void update(){
	int flag = 1;
	int n;
	while(flag){
		printf("*******更新系统*******n");
		printf("****1.添加单词 2.删除单词*****n");
		printf("****3.查看词库 4.退出 ********n");
		scanf("%d",&n);
		switch(n){
			case 1:
				add();
				break;
			case 2:
			    del(); 
			    break;
			case 3:
				pr();
				break;
			case 4:
				flag = 0;
				break;
			default:
				printf("输入错误!n");
				 
		}
	}
}

2.学习系统
//学习系统 
void startLearn(){
	int flag = 1;
	int n;
	int score = 0;
	int grade = 1; 
	while(flag){
		printf("*******学习系统********n");
		printf("***1.单词学习  2.词组学习******n");  //词组学习实现
		printf("***3.等级查看  4.称号查看******n");
		printf("***0.退出系统  *****n");
		scanf("%d",&n);
		switch(n){
			case 1:
				score = max(score ,wordlearn(grade));
				if(score >= 80 && grade < 2){
					grade++;
				}
				break;
			case 2:
				break;
			case 3:
				printf("您现在的等级是%dn",grade);
				break;
			case 4: //太懒了直接放上去
			    if(grade == 1){
			    	printf("无称号n");
			    	break;
				} 
				printf("您现在的称号是:n");
				if(grade > 1){
					printf("初出茅庐n");
				}
				if(score == 100){
					printf("人生巅峰n");
				}
				break;
			case 0:
				flag = 0;
				break;
			default:
				printf("输入错误!n");
		}
		
	}
}

四、功能实现函数

1.词库更新相关
//创建单词库 
void create(){
	Word.length = 0;
	printf("创建成功!n"); 
}
//最大值函数 
int max(int a , int b){
	return a > b ? a:b;
}
//增加单词 
void add(){
	printf("请输入单词英文和中文(换行输入):n");
	scanf("%s%s",Word.list[Word.length].e,Word.list[Word.length].c);
	Word.length++;
}
//删除单词 
void del(){
	printf("请输入要删除的单词序号:n");
	int n,j;
	scanf("%d",&n);
	if(n > Word.length){
		printf("未找到该单词!n");
		return;
	}
	for(j = n-1 ; j < Word.length-1 ; j++){
		Word.list[j] = Word.list[j+1];
	}
	Word.length--;
	printf("删除成功!n");
}
//打印单词库 
void pr(){
	if(Word.length == 0){
		printf("词库中没有单词!n");
	}
	printf("******单词词库内容******n");
	
	int i;
	for(i = 0 ; i < Word.length ; i++){
		printf("%s  %sn",Word.list[i].e,Word.list[i].c);
	}
}

2.学习系统相关

①题目回答
//回答题目 
int exc(int grade){
	srand(time(0));
	int number = 0;
	int score = 0;
	int r;
	char temp[100];
	//等级1 
	if(grade == 1){
		while(number < 10){
			r = rand()%10 + 1;
			printf("英:%sn",Word.list[r].e);
			printf("中:");
			scanf("%s",temp);
			if(strcmp(temp,Word.list[r].c) == 0){
				score += 10;
				printf("回答正确!n");
			}else{
				while(1){
					printf("回答错误!请重新回答:n");
					scanf("%s",temp);
					if(strcmp(temp,Word.list[r].c) == 0){
						printf("回答正确,但不是一次答对,所以不加分!n");
						break;
					}
				} 
			}
			number++;
		}
	}
	//等级2 
	if(grade == 2){
		while(number < 10){
			r = rand()%10 + 11;
			printf("英:%sn",Word.list[r].e);
			printf("中:");
			scanf("%s",temp);
			if(strcmp(temp,Word.list[r].c) == 0){
				score += 10;
				printf("回答正确!n");
			}else{
				while(1){
					printf("回答错误!请重新回答:n");
					scanf("%s",temp);
					if(strcmp(temp,Word.list[r].c) == 0){
						printf("回答正确,但不是一次答对,所以不加分!n");
						break;
					}
			}
			number++;
		}
	}
	return score; //返回分数 
}
}

②单词学习
//单词学习 
int wordlearn(int grade){
	int score = 0;
	int flag = 1;
	while(flag){
	printf("请选择:n");
	printf("1.学习 2.退出n");
	int n ;
	scanf("%d",&n);
	switch(n){
		case 1:
			score = max(score,exc(grade));
			break;
		case 2:
			flag = 0;
			break;
		default:
			printf("输入错误!n");
	}
    }
    return score;
}

五、主函数及总结
int main(){
	menu();
	return 0;
}

嘿嘿,词组学习模块没有实现,大家可以试着搞一下,兄弟说的比较晚,时间比较紧急,应该还可以吧,祝他答辩顺利哈哈哈哈

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692302.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号