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("您现在的等级是%d\n",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  %s\n",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("英:%s\n",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("英:%s\n",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;
}

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

你可能感兴趣的:(c语言,开发语言,程序设计)