C语言程序课程设计任务书

课设 同时被 2 个专栏收录
5 篇文章 0 订阅
1 篇文章 0 订阅

c语言课程设计电子生词库

一、设计目的

1.进一步掌握和利用C语言进行程序设计的能力;
2.进一步理解和运用结构化程序设计的思想和方法;
3.初步掌握开发一个小型实用系统的基本方法;
4.学会调试一个较长程序的基本方法;
5.学会利用流程图或N-S图表示算法;
6.掌握书写实训开发文档的能力(书写实训报告);

二、设计任务及容

根据需要,建立属于自己的生词库,这样使用起来很方便。生词选自本人经常需要的单词,对于英文单词,给出中文含义,对于中文单词给出英文含义。
功能要求:
(1)创建生词库
用文件建立一个单词库,中英文单词均有,对于英文单词,给出中文含义,对于中文单词给出英文含义。
(2)显示词库
显示所有单词和单词数、所有中文单词和单词数、所有英文单词和单词数,显示英文单词时按字母从小到大顺序排列。
(3)编辑词库
首先确认密码后允许添加新词、删除旧词和修改旧词。
(4)查找生词
显示所要查找的单词其及含义,主菜单和子菜单能够循环出现,每一项菜单执行之后,询问用户是否继续进行。从子菜单可以返回主菜单。

三、设计要求

1.用C语言实现系统;
2.系统具有统计、查询、排序等基本功能;
3.系统的各个功能模块要求用函数的形式实现;
4.文档:实训说明书每个学生一份,并装在统一的资料盒中;
5.光盘:每个学生文档和程序资料分别建在一个以自己学号和命名的文件夹下,并要求每班负责人汇总			每个学生的文件放在以班级命名的文件夹下,刻录成一光盘,放在一个专门的资料袋中。

四、提交的成果

1. 设计任务书一份(学校统一格式) 2. 设计说明书一份,容包括:
1) 中文摘要100字,关键词3-5个。
2) 实训题目、容、要求。
3)总体设计(包含几大功能模块)。
4)详细设计(各功能模块的具体实现算法——流程图)
5)数据结构设计描述,各模块(函数)的功能介绍,参数说明等。
6)调试分析(包含各模块的测试用例,及测试结果。)
7)总结(实训完成了哪些功能,还有哪些地方需要改进,及通过实训有何收获,调试程序的体会等)
8) 参考文献、致谢等。

五、主要参考资料

1. 王连相《C/C++程序设计》 大学
2. 谭浩强《C语言程序设计(第2版)学习指导》清华大学 
3. 莉,龚义建《C语言程序设计实训指导教程》华中科技大学 
4. 小东,宏珍《C语言程序设计与应用》人民邮电
5. 郭翠英《C语言课程设计案例精编》中国水利水电
6.郭有强《C语言程序设计》清华大学
7.丹程,莹,那俊《C语言程序设计案例实践》清华大学 
8.丽娟《C语言程序设计教程》人民邮电
9.武雅丽,王永玲,解亚利《C语言程序设计》清华大学

六、各阶段时间安排(共1周)

日期内容地点
星期一教师讲解设计要求,准备参考资料教室
星期二分析系统,方案设计教室
星期三方案设计,编程教室
星期日完成实训说明书,答辩教室

下为说明书的模板和实例:(为自己的说明书)

摘 要

C语言是一种计算机程序设计语言。它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用围广泛。根据课程设计要求使用C语言设计了此电子生词库软件,使用较为简单方便。该软件生词库为使用者本人创建,软件使用过程中可以进行词库的编辑维护。生词库包含中英文单词,软件具有查找单词功能可以进行中英文单词的查找。对于英文单词,给出中文解释,对于中文单词给出英文解释。
关键词:生词库;编辑;查找;

目录

		                       目录
		1概述.........................................1
				1.1 题目内容	..........................1
				1.2 要求	..........................1
				1.3 设计目的	..........................2
		2 总体设计	..................................3
		3 详细设计	..................................6
				3.1 创建函数	..........................6
				3.2 显示函数	..........................9
				3.3 编辑函数	.........................11
				3.4 查找函数	.........................13
		4调试与测试	.................................17
				4.1 创建英文词库	.....................17
                4.2 创建中文词库	.....................18
                4.3 显示所有单词	.....................18
                4.4 显示中文单词	.....................19
                4.5 显示英文单词	.....................19
                4.6 查找英文单词	.....................20
                4.7 查找中文单词	.....................20
                4.8 退出程序..........................21
       总结	.........................................22
       致谢	.........................................23
       参考文献	.....................................24

1概述

1.1 题目内容

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。
运用C语言,设计编写一个电子生词库软件。该生词库软件可根据使用者需要,建立属于使用者自己的生词库,生词库软件使用过程中应简单易用。生词库中生词选自本人经常需要使用的单词。在生词库软件中对于英语单词,给出中文含义,对于中文单词给出英文含义。

1.2 要求

(1)创建生词库。用文件建立一个单词库,中英文单词均有,对于英语单词,给出中文含义,对于中文单词给出英文含义。
(2)显示词库。显示所有单词和单词数、所有中文单词和单词数、所有英文单词和单词数,显示英文单词时按字母从小到大的顺序排列。
(3)编辑词库。首先确认密码,后允许添加新词,删除旧词和修改旧词。
(4)查找生词。显示所要查找的单词及其含义。
主菜单和子菜单能够循环出现,每一项菜单执行后,询问用户是否继续进行。从子菜单可以返回主菜单。
在主菜单中选择0:显示结束信息。按任意键后退出主序。

1.3 设计目的

1.进一步掌握和利用c语言进行程序设计的能力;
2.进一步理解和运用结构化程序设计的思想和方法;
3.初步掌握开发一个小型实用系统的基本方法;
4.学会调试一个较长程序的基本方法;
5.学会利用流程图或N-S图表示算法;
6.掌握书写实训开发文档的能力(书写实训报告);
C语言是一种结构化语言。它层次清晰,便于按模块化方式组织程序,易于调试和维护。C语言的表现能力和处理能力极强。它不仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问存的物理地址,进行位(bit)一级的操作。C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX、windows 98.windows NT;也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。C语言具有很多特点,如简洁紧凑、灵活方便:C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单位。运算符丰富C语言的运算符包含的围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
通过上机训练,更加深刻的理解C语言中的知识点,加深对课堂讲授容的理解更好的了解了一些关于C语言的知识,理解巩固了C语言的理论知识。 学习上机调试程序熟悉程序开发环境、学习计算机系统的操作方法。

2 总体设计

该程序采用模块化设计,主要分为主模块,创建生词库模块,编辑词库模块,显示词库模块,查找生词模块。用户通过主模块对其余各模块进行调用,实现软件功能。

主模块
创建生词库
编辑词库
显示词库
查找生词
写文件
写文件
显示所有单词
图2.1  程序模块关系图

主模块具备显示主菜单功能,用户对主菜单提供的功能进行选择后,主模块调用所需功能模块,实现相应功能,如图2.2 所示。
如图2.2 所示

图2.2 主模块函数调用图
void main()
{
 int choose;
 while(1)
 {
	printf("                   |-----------------------------------|\n");
	printf("                   |        请输入选项编号(0--4)       |\n");
	printf("                   |-----------------------------------|\n");
	printf("                   |           1--创建生词库            |\n");
	printf("                   |           2--显示词库              |\n");
    printf("                   |           3--编辑词库              |\n");
	printf("                   |           4--查找生词              |\n");
	printf("                   |           0--退出系统              |\n");
	printf("                   |-----------------------------------|\n");
	 printf("请输入选项\n");
	 scanf("%d",&choose);
	 if(choose>5||choose<0)
	 {
		 printf("输入错误,请重新输入");
		 continue;
}
	 switch(choose)
		 {  case 1:CJ();;break;  
			case 2:XSCK();break;
			case 3:BJCK();;break;
			case 4:CZCC();break;
			case 0:exit(0);
			default:printf("非法输入!");  }
 }

3 详细设计

主函数主要功能为调用各功能模块,功能模块共四个,分别为创建生词库模块,编辑词库模块,显示词库模块及查找生词模块。

3.1 创建函数

创建函数功能为为用户创建生词库,并对存入单词进行存记录处理。存入单词按英汉单词及汉英单词进行保存。
创建函数图

图3.1 创建函数图
void CJ()//创建生词库
{
	char choice;
   fflush(stdin);
	printf("请输入创建的类型(E表示英汉,C表示汉英)\n");
	scanf("%c",&choice);
	
	
	switch(choice)
	{
	case 'E':CJE();break;
	case 'e':CJE();break;
	case 'C':CJC();break;
	case 'c':CJC();break;
	default:printf("输入错误!\n");break;
	}
	
}
void CJE()//创建英汉
{
	int i=0;
	char yn;
	struct English EH[M];
	FILE* fp;
	fp=fopen("c://english.txt","w");
		if(fp==NULL)
		{printf("文件打开失败\n");
			return ;}
			printf("请输入英文单词:\n");
			scanf("%s",EH[i].word );
			printf("请输入中文的解释:\n");
			scanf("%s",EH[i].explain );
			fprintf(fp,"%10s%10s",EH[i].word ,EH[i].explain );
			printf(" 操作成功!你要继续吗?(Y/N)\n");
            fflush(stdin);
			yn=getchar();
            if(yn=='n'||yn=='N')
			{  fclose(fp);
			    return;}
			if(yn=='y'||yn=='Y')
			{ while(1)
			{
				i++;
             	printf("请输入英文单词:\n");
				scanf("%s",EH[i].word );
			printf("请输入中文的解释:\n");
			scanf("%s",EH[i].explain );
			fprintf(fp,"%10s%10s",EH[i].word ,EH[i].explain );
			printf("操作成功!你要继续吗?(Y/N)\n");
            fflush(stdin);
			yn=getchar();
			if(yn=='n'||yn=='N')
				break;
			}
			}
			fclose(fp);
			return;
}

3.2 显示函数

显示函数主要功能为显示词库中单词,包含显示所有单词功能,显示英文单词功能,显示中文单词功能。
显示函数图

图3.2 显示函数图
void XSCK()//显示词库
{	
	fflush(stdin);
	char yn;
  int choose;
  do{
    printf("                   *-------------------------------------*\n");
	printf("                   *            请输入编号(0--4)       *\n");
	printf("                   *-------------------------------------*\n");
	printf("                   *             1--显示所有单词         *\n");
	printf("                   *             2--显示中文单词         *\n");
	printf("                   *             3--显示英文单词         *\n");
	printf("                   *             4--返回                 *\n");
    printf("                   *             0--退出系统             *\n");
	printf("                   *-------------------------------------*\n");
  printf("请输入你的选择!\n");
  scanf("%d",&choose);
  switch(choose)
  { case 1:XSSY();break;
    case 2:XSZW();break;
    case 3:XSYW();break;
  case 4:return;
    case 0:exit(-1);
    default:printf("输入错误\n"); }
  fflush(stdin);
  printf("要继续显示吗(Y/N)?\n");
  yn=getchar();
   while(yn!='y'&&yn!='Y'&&yn!='N'&&yn!='n')
        {
        	printf("要继续显示吗?请重新输入!\n");
	        fflush(stdin);
    	    yn=getchar();
        };
	}while(yn=='Y'||yn=='y');
	}

3.3 编辑函数

编辑函数主要功能为对词库进行编辑维护,包含添加单词,修改单词,删除旧词功能。编辑函数图

图3.3 编辑函数图
void BJCK()//编辑词库
{
char choice[20]="1111";
	char yn;
	char choice1[20];
	int count=0;
	int count1=0;
	int num=0;
	do{
	   printf("快快输入密码:\n");
	   scanf("%s",choice1);
		if(strcmp(choice,choice1)==0)
		{
			count++;
			break;
		}
		else
		{
			count1++;
			printf("密码错误!请重新输入密码\n");
		}
	}while(count1<=3);
	if(count>0)
	{
		int num;
		do{
	printf("                    |*************************************|\n");
	printf("                    |          请输入选项编号(0--4)     |\n");
	printf("                    |*************************************|\n");
	printf("                    |              1--添加新词            |\n");
	printf("                    |              2--删除旧词            |\n");
	printf("                    |              3--修改旧词            |\n");
	printf("                    |              4--返回                |\n");
	printf("                    |              0--退出系统            |\n");
	printf("                    |*************************************|\n");
		printf("请输入你的选项!\n");
		scanf("%d",&num);
		switch(num)
		{
		case 1:TJ();break;
		case 2:SC();break;
		case 3:XG();break;
		case 4:return;
		case 0:exit(0);
		}
		continue;
	}while(1);
}
}

3.4 查找函数

查找函数主要为查找单词功能,包含查找英文单词功能,查找中文单词功能。
查找函数图

图3.4 查找函数图
void CZCC()//查找生词
{
	char ch;
	fflush(stdin);
	printf("请选择选择查找的类型(E/C)\n");
	scanf("%c",&ch);
	if(ch=='e'||ch=='E')  cze();
	if(ch=='c'||ch=='C')  czc();
}
void cze()//查找英文
   {
	char word[20];
	char yn;
	struct Chinese dc[M];
	int n=0,i=0,k=-1;
	FILE* fp;
	if((fp=fopen("c:\\english.txt","r"))==NULL)
		printf("很不好意思,文件打不开!\n");
while(feof(fp)==0)
{  fscanf(fp,"%s%s",dc[n].word ,dc[n].explain );
	++n;  }
fclose(fp);
do
{
	printf("请输入你想要查找的单词!\n");
	fflush(stdin);
	gets(word);
	for(i=0;i<n;i++)
	{
		if(strcmp(word,dc[i].word )==0)
		{
		    printf("该单词的英文释义是:%s\n",dc[i].explain );
			    k=1;
				break;
		}
	}
	if(k<0)
		printf("没有该单词\n");
	printf("你想继续继续吗(Y/N)\n");
	fflush(stdin);
	yn=getchar();
	while(yn!='y'&&yn!='Y'&&yn!='N'&&yn!='n')
		{
			printf("要继续查找吗?请重新输入!\n");
			fflush(stdin);
			yn=getchar();
		};

}while(yn=='Y'||yn=='y');
fflush(stdin);

fclose(fp);
}
void czc()//查找中文
{
	char word[20];
	char yn;
	struct Chinese dc[M];
	int n=0,i=0,k=-1;
	FILE* fp;
	if((fp=fopen("c:\\chinese.txt","r"))==NULL)
		printf("很不好意思,文件打不开!\n");
while(feof(fp)==0)
{  fscanf(fp,"%s%s",dc[n].word ,dc[n].explain );
	++n;  }
fclose(fp);
do
{
	printf("请输入你想要查找的单词!\n");
	fflush(stdin);
	gets(word);
	for(i=0;i<n;i++)
	{
		if(strcmp(word,dc[i].word )==0)
		{
		    printf("该单词的英文释义是:%s\n",dc[i].explain );
			    k=1;
				break;
		}
	}
	    if(k<0)
		printf("没有该单词\n");
	printf("你想继续继续吗(Y/N)\n");
	fflush(stdin);
	yn=getchar();
	while(yn!='y'&&yn!='Y'&&yn!='N'&&yn!='n')
		{
			printf("要继续查找吗?请重新输入!\n");
			fflush(stdin);
			yn=getchar();
		};
}while(yn=='Y'||yn=='y');
fflush(stdin);
fclose(fp);
}

4调试与测试

对生词库软件所有功能进行测试,以检验生词库软件是否可靠,是否可以良好运行。

4.1 创建英文词库

运行程序后使用建立生词库功能,以英文单词“apple cat” 为例创建英文词库
创建创建英文词库图

图4.1 创建创建英文词库图

4.2 创建中文词库

使用建立生词库功能,以中文单词“狗”为例创建中文词库
创建中文词库图

    图4.2 创建中文词库图

4.3 显示所有单词

运行显示词库功能中显示所有单词功能
显示所有单词图

图4.3 显示所有单词图

4.4 显示中文单词

运行显示词库功能中显示所有中文功能
显示中文单词图

 图4.4 显示中文单词图

4.5 显示英文单词

运行显示词库功能中显示所有英文功能显示英文单词

  图4.5 显示英文单词

4.6 查找英文单词

运行查找生词功能,查找英文单词“apple”
查找英文单词图

图4.6 查找英文单词图

4.7 查找中文单词

运行查找生词功能,查找中文单词“狗”
查找中文单词图

     图4.7 查找中文单词图

4.8 退出程序

在主界面执行退出系统功能

退出程序图

     图4.8 退出程序图

总结

忙碌了一个星期,在大家的共同努力下,我们总算将此程序设计修改出来。尽管代码是百度的,但仍然很高兴,因为在改进设计的过程中,让我了解到要设计一个大型程序的思路和过程,查找资料是至关重要的,在他人的基础上,再根据自己所学进行修改与调试,最后设计出自己想要的程序,这过程虽然艰辛,但只要你持之以恒,成功指日可待。
另外平时扎实的基础也很关键,因为如果自己看不懂基础的代码,那么你面对这么一个比较有难度的程序,自己可能会望而却步,了解和学习他人的程序都是个难点,更别说让自己去设计。为了解决此类问题,最好就是多向同学,老师请教,不要怕难为情。尤其是老师,评他们多年的教学和编写程序的经验,解决我们的问题,对他们来说只是small case。
在设计这个程序时,也遇到过很多问题,但在小组同学的共同努力下,问题最终都得以解决。从这一个星期的设计过程中,我看到了我们小组的拼搏与努力,也让我知道团队精神的难能可贵,大一这一年下来大家不怎么有多大接触,但是彼此之间的友谊已经在我们心里扎根生底,在今后生活和学习中遇到问题时,我们软件工程一班会共同进退,每个人都很慷慨,并不会因为自己的私心而拒绝对同学的帮助。
最后,通过这次C语言设计程序让我受益良多,我会好好珍惜像这种难得的机会。再下一次的课设做到更好。

致谢

在我们小组共同的努力下,完成了大学的第一次课设,我们曾遇到了很多或难或易的相关问题。感谢老师,感谢他在这一学年来对我们学习的悉心教导,同时也感谢其他小组同学们在程序设计过程中给予我们小组的无私帮助,给我们提供解决问题的方法。通过这次课程设计,我获益匪浅。这次的课程设计,让我利用c语言进行程序设计的能力得到提高,使个人能力编程能力和思维得到极大改善,团队合作能力得到大大提高,也懂得了每一个人在团队中发挥的重大作用。

其中之是部分代码

  • 2
    点赞
  • 1
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 1024 设计师:白松林 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值