// dictionary.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
#define M 20
#define N 40
struct word
{
char english[M]
char chinese[N]
}
/***********************************************\
程序名称: 电子词库
程序描述:中英文单词均有
词库文件模型: 前4个字节为词库单词个数。
后面是struct word
有待讨论:
作者信息:
BY 王洋 robotok@sina.com
北京交通大学 计算机与信息技术学院
计算机科学与技术系 JK0506班
历史:
Created on 2006年6月22日
修改:2006年6月24日
\**********************************************/
int main(int argc, char* argv[])
{
int EditWord(char fname[])
int CreateFile(char fname[])
int PrintMain()
int ShowWord(char fname[])
int SearchWord(char fname[])
char fname[]="words.txt"
int choose
do
{
do
{
PrintMain()
scanf("%d", &choose )
}while( ( choose >4 ) || ( choose <0 ) )
switch ( choose )
{
case 1:
CreateFile(fname)break
case 2:
printf("请确定已经存在生词库,否则可能出错!\n")
ShowWord(fname)break
case 3:
EditWord(fname)break
case 4:
printf("请确定已经存在生词库,否则可能出错!\n")
SearchWord(fname)break
case 0:
break
default:
printf("error! please check choose")break
}
}while (choose != 0)
return 0
}
/***********************************************\
函数名称:CreateFile
函数描述:创建生词库
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月24日
修改:
\**********************************************/
int CreateFile(char fname[])
{
int n=0
char choose
FILE *fp
printf("注意:创建生词库将会删除原有词库!\n是否继续创建(Y / N)?")
do
{
choose = getchar()
} while ( choose != 'Y' &&choose != 'y' &&choose != 'N' &&choose != 'n')
if(choose == 'Y' || choose == 'y')
{
fp = fopen(fname,"ab")
//fwrite(&n, sizeof(int), 1, fp)
fclose(fp)
printf(" 创建生词库成功!\n")
}
return 0
}
/***********************************************\
函数名称:ShowWord
函数描述:显示词库
默认生词库文件存在
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月24日
修改:
\**********************************************/
int ShowWord(char fname[])
{
int n, i
struct word fword[100]
FILE *fp
int InFile( char fname[], struct word fword[], int *pn)
if ( (fp = fopen(fname,"rb")) == NULL) //打开文件
{
printf("没有创建文件!")
return 1
}
fread(&n, sizeof(int), 1, fp) //读入n值
fclose(fp)
InFile( fname, fword, &n)
printf(" 英文 , 中文\n")
for (i=0i <ni++)
{
printf("%s, %s\n",fword[i].english, fword[i].chinese)
}
return 0
}
/***********************************************\
函数名称:EditWord
函数描述:编辑词库
默认生词库文件存在
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月22日
修改: 2006年6月24日
\**********************************************/
int EditWord(char fname[])
{
int choose, n
int AddWord(char fname[], int *pn)
int DelWord(char fname[], int *pn)
int AmendWord(char fname[], int *pn)
int PrintEdit()
FILE *fp
do
{
if ( (fp = fopen(fname,"rb")) == NULL) //打开文件
{
printf("没有创建文件!")
return 1
}
fread(&n, sizeof(int), 1, fp) //读入n值
fclose(fp)
do
{
PrintEdit()
scanf("%d", &choose )
}while( ( choose >4 ) || ( choose <0 ) )
switch ( choose )
{
case 1:
AddWord(fname, &n)break
case 2:
DelWord(fname, &n)break
case 3:
AmendWord(fname, &n)break
case 4:
break
case 0:
break
default:
printf("error! please check choose")break
}
}while (choose != 0)
return 0
}
/***********************************************\
函数名称:PrintEdit
函数描述: 输出编辑菜单
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月22日
修改:
\**********************************************/
int PrintEdit()
{
printf("请确定已经存在生词库,否则可能出错!")
printf("\n|**********************************|\n")
printf("|请输入选项编号(0 -- 4) |\n")
printf("|**********************************|\n")
printf("|1——添加新词 |\n")
printf("|2——删除旧词 |\n")
printf("|3——修改旧词 |\n")
printf("|4——返回 |\n")
printf("|0——退出 |\n")
printf("|**********************************|\n")
return 0
}
/***********************************************\
函数名称:PrintMain
函数描述: 输出编辑菜单
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月24日
修改:
\**********************************************/
int PrintMain()
{
printf("\n|**********************************|\n")
printf("|请输入选项编号(0 -- 4) |\n")
printf("|**********************************|\n")
printf("|1——创建生词库 |\n")
printf("|2——显示词库 |\n")
printf("|3——编辑词库 |\n")
printf("|4——查找生词 |\n")
printf("|0——退出系统 |\n")
printf("|**********************************|\n")
return 0
}
/***********************************************\
函数名称:AddWord
函数描述: 添加新词
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月22日
修改: 2006年6月24日
\**********************************************/
int AddWord(char fname[], int *pn)
{
char choose
int i
struct word temp, fword[100]
int InFile( char fname[], struct word fword[], int *pn)
int OutFile( char fname[], struct word fword[], int *pn)
InFile( fname, fword, pn)
do
{
choose = 'c'
i = 0
printf("\n 请输入新记录的英文单词: ")
do
{
gets ( temp.english )
} while (strcmp ( temp.english ,"") == 0)
printf("\n 请输入新记录的中文: ")
gets( temp.chinese )
for (i=0i <*pni++)
if(strcmp ( temp.english , fword[i].english ) == 0 || strcmp ( temp.chinese , fword[i].chinese ) == 0)
{ //查找是否有重复
printf("\n 单词中文或英文重复,要重新输入吗(Y/N)?")
do
{
choose = getchar()
} while ( choose != 'Y' &&choose != 'y' &&choose != 'N' &&choose != 'n')
putchar('\n')
break
}
if( choose == 'c')
{
strcpy( fword[*pn].english , temp.english )
strcpy( fword[*pn].chinese , temp.chinese )
(*pn)++
OutFile( fname, fword, pn)
printf("添加新词成功!")
}
}while ( choose == 'y' || choose == 'Y')
return 0
}
/***********************************************\
函数名称:DelWord
函数描述: 删除旧词
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月22日
修改: 2006年6月24日
\**********************************************/
int DelWord(char fname[], int *pn)
{
char e_c
int i, j
struct word temp, fword[100]
int OutFile( char fname[], struct word fword[], int *pn)
int InFile( char fname[], struct word fword[], int *pn)
InFile( fname, fword, pn)
printf("\n按英文删除 OR 按中文删除(E/C)?")
do
{
e_c = getchar()
}while (e_c != 'e' &&e_c != 'c')
switch( e_c )
{
case 'e':
printf("\n输入英文: ")
do //输入英文
{
gets ( temp.english )
} while (strcmp ( temp.english ,"") == 0)
for (i=0i <*pni++)
if(strcmp ( temp.english , fword[i].english ) == 0 )
{ //查找删除
for (j=ij <*pnj++)
{
strcpy(fword[j].english, fword[j+1].english)
strcpy(fword[j].chinese, fword[j+1].chinese)
(*pn)--
printf("删除旧词成功!")
}
break// 找到并删除后退出循环
}
break
case 'c':
printf("\n输入中文: ")
do //输入中文
{
gets ( temp.chinese )
} while (strcmp ( temp.chinese ,"") == 0)
for ( i=0i <*pni++)
if ( strcmp ( temp.chinese , fword[i].chinese ) == 0)
{ //查找删除
for (j=ij <*pnj++)
{
strcpy(fword[j].english, fword[j+1].english)
strcpy(fword[j].chinese, fword[j+1].chinese)
(*pn)--
printf("删除旧词成功!")
}
break// 找到并删除后退出循环
}
break
default:
break
}
OutFile( fname, fword, pn) //将内存中的数据输出到文件
return 0
}
/***********************************************\
函数名称:AmendWord
函数描述: 修改旧词
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月22日
修改: 2006年6月24日
\**********************************************/
int AmendWord(char fname[], int *pn) //英文不变改中文
{
char e_c
int i
struct word temp, fword[100]
int OutFile( char fname[], struct word fword[], int *pn)
int InFile( char fname[], struct word fword[], int *pn)
InFile( fname, fword, pn)
printf("\n按英文查找修改 OR 按中文查找修改(E/C)?")
do
{
e_c = getchar()
}while (e_c != 'e' &&e_c != 'c')
switch( e_c )
{
case 'e':
printf("\n输入原英文: ")
do
{
gets ( temp.english )
} while (strcmp ( temp.english ,"") == 0)
printf("\n 请输入新记录的中文: ")
gets( temp.chinese )
for ( i=0i <*pni++)
if ( strcmp ( temp.english , fword[i].english ) == 0)
{
strcpy( fword[i].chinese , temp.chinese )
printf(" \n修改成功!\n")
break
}
break
case 'c':
printf("\n输入原中文: ")
do
{
gets ( temp.chinese )
} while (strcmp ( temp.chinese ,"") == 0)
printf("\n 请输入新记录的英文: ")
gets( temp.english )
for ( i=0i <*pni++)
if ( strcmp ( temp.chinese , fword[i].chinese ) == 0)
{
strcpy( fword[i].english , temp.english )
printf(" \n修改成功!\n")
break
}
break
default:
break
}
OutFile( fname, fword, pn) //将内存中的数据输出到文件
return 0
}
/***********************************************\
函数名称:OutFile
函数描述:将内存中的数据输出到文件
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月24日
修改:
\**********************************************/
int OutFile( char fname[], struct word fword[], int *pn)
{
int b
FILE *fp
b = (remove( fname ))
if (b!=0)
{
printf("删除文件失败!\n")
return 1
}
if ( (fp=fopen(fname,"ab")) == NULL) //重新创建文件
{
printf("打开新文件失败!\n")
return 1
}
fwrite(pn, sizeof(int), 1, fp)
fwrite ( fword, sizeof(struct word), *pn, fp)//把内存中的数组全部输出到文件
fclose(fp)
return 0
}
/***********************************************\
函数名称:OutFile
函数描述:将文件中的数据输入到内存
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月24日
修改:
\**********************************************/
int InFile( char fname[], struct word fword[], int *pn)
{
FILE *fp
if ( (fp = fopen ( fname,"rb" ) ) == NULL) //以二进制只读方式打开文件
{
printf("cannot open the file.\n")
exit(0)
return 1
}
if ( *pn != 0)
{
fseek( fp, (long int) sizeof(int), 0 )
fread( fword, sizeof( struct word), *pn, fp )//把数据读入内存中fword数组
}
fclose(fp)
return 0
}
/***********************************************\
函数名称:SearchWord
函数描述:查找生词
有待讨论:
返回值:
作者信息:
BY 王洋 robotok@sina.com
历史:
Created on 2006年6月24日
修改:
\**********************************************/
int SearchWord(char fname[])
{
int find = 0, n, i
struct word temp, fword[100]
char e_c
FILE *fp
int InFile( char fname[], struct word fword[], int *pn)
if ( (fp = fopen(fname,"rb")) == NULL) //打开文件
{
printf("没有创建词库文件!")
return 1
}
fread(&n, sizeof(int), 1, fp) //读入n值
fclose(fp)
InFile( fname, fword, &n)
printf("\n按英文查找 OR 按中文查找(E/C)?")
do
{
e_c = getchar()
}while (e_c != 'e' &&e_c != 'c')
switch( e_c )
{
case 'e':
printf("\n输入英文: ")
do //输入英文
{
gets ( temp.english )
} while (strcmp ( temp.english ,"") == 0)
for (i=0i <ni++)
if(strcmp ( temp.english , fword[i].english ) == 0 )
{ //查找输出
printf("\n%s的中文意思是: %s\n",temp.english, fword[i].chinese)
find = 1// 找到即 1
break// 找到并输出后退出循环
}
break
case 'c':
printf("输入中文: ")
do //输入中文
{
gets ( temp.chinese )
} while (strcmp ( temp.chinese ,"") == 0)
for ( i=0i <ni++)
if ( strcmp ( temp.chinese , fword[i].chinese ) == 0)
{ //查找输出
printf("\n%s的中文意思是: %s\n",temp.english, fword[i].chinese)
find = 1// 找到即 1
break// 找到并输出后退出循环
}
break
default:
break
}
if (!find) //如果找不到
printf("\n词库中没有您要找的词.\n")
return 0
}
矛盾的普遍性和特殊性的辨证关系及其方法论意义1。矛盾的普遍性,特殊性的含义和意义
(1)普遍性:
处处有矛盾,时时有矛盾。矛盾分析法是认识事物的根本方法
(2)特殊性:
要坚持具体问题具体分析,这是马克思主义活的灵魂
★★★☆2。矛盾的普遍性和特殊性的辨证关系原理
这一共性个性,绝对相对的道理,是关于事物矛盾问题的精髓-------毛泽东
矛盾的普遍性和特殊性是对立统一的关系
(1)相互区别:矛盾的普遍性是事物的共性,是无条件的即绝对的,矛盾的特殊性是事物的个性,它的存在是暂时的有条件的即相对的;共性比个性深刻,个性比共性丰富
(2)相互联系:
任何个别都是一般------列宁
个性体现共性,都同共性相联系而存在。共性存在于个性之中,一般只在个别中存在,只能通过个别而存在;任何事物都是共性和个性的统一。
(3)在一定条件下(场合的不同)互相转化
3。矛盾的普遍性和特殊性的辨证关系原理的意义
(1)在理论上坚持辩证法关于事物矛盾问题的精髓,反对割裂矛盾普遍性和特殊性的形而上学观点
注意:普遍和特殊的关系就是抽象和具体的关系!
(2)在认识上坚持从特殊到普遍再到特殊的认识程序(例如改革
(3)中国特色社会主义就是这一原理的具体运用
1.矛盾普遍性与特殊性的关系
矛盾的普遍性和特殊性的辩证关系问题是重点,因为::
(1)从理论上看,矛盾普遍性和特殊性的辩证关系问题,是事物矛盾问题的精髓,是学习和掌握唯物辩证法的关键。只有弄清了这一原理,才能掌握矛盾分析的方法,正确地认识事物、解决矛盾。
(2)从实践上看,矛盾普遍性和特殊性辩证关系的原理,是我们建设有中国特色社会主义的重要哲学依据。只有弄清了这一原理,才能比较深刻地理解和运用邓小平建设有中国特色社会主义理论。
(3)从认识论上看,矛盾的普遍性和特殊性辩证关系原理,既是科学的认识方法,也是科学的工作方法、领导方法的哲学基础。学习这一原理,有利于我们领会这些科学方法的精神实质,逐步学会在实践中加以应用。
同时,这又是教学难点,因为矛盾普遍和特殊性的辩证关系,理论性很强,又很概括、抽象,学生理解起来有相当的难度。其中尤其是普遍性寓于特殊性之中,更是学生较难理解的问题。
《课程标准》只是在 “教学内容”一栏中规定要讲述 “矛盾的普遍性与特殊性是辩证统一的”,而在“基本要求”中直接提出“运用”,没有讲明把这个原理讲述到什么程度。大家知道,共性和个性的关系是矛盾问题的精髓,内容极其深刻。对高中学生究竟要不要讲,讲到什么程度为宜,是有不同意见的。可能是由于这个原因,就把 “难题”留给了教师的教学活动。教材对这个原理的叙述,限定为最基本的东西,着重强调 “矛盾的普遍性和特殊性是相互联结的”。教材所述道理是清楚的,也举了不少事例。但是,学生还会感到难以理解。教学要注意对典型事例的分析,多让学生议论,穿插一些口头练习,纠正学生原有的错误认识 (如认为“个性存在于共性之中”)。
教材关于这个原理的运用,主要讲了“正确地认识事物”、“学会科学的工作方法”、“建设有中国特色社会主义”这几点。它体现了《课程标准》的一些要求,但不能代替《课程标准》的要求,因为《课程标准》的要求是针对教学活动而言的。《课程标准》提出的第一个运用要求是:“根据矛盾普遍性与特殊性辩证统一的原理,说明个人学习过程中遇到的几个问题。”这是一个较高的要求,教师首先要搞懂它。大家知道,学习的过程就是认识事物的过程,是“个别——一般——个别”的循环往复的过程。以学习来说,上课主要体现了“个别、 一般”。学生常常说的“解题要能够做到举一反三”、“要找出同类型的解法”等等,都包含着共性和个性的关系的道理。学生如果能够自觉地运用共性和个性辩证统一的道理,去分析所学的学科知识,提高学习效率,无疑是一举两得的事情。教师应事先向学生请教,讨论这一问题,然后在课堂教学中由学生谈自己的体会。
《课程标准》提出的第二个运用要求是:“根据矛盾普遍性与特殊性辩证统一的原理,对邓小平理论是当代中国的马克思主义,谈谈自己的认识。”提出这一要求,主要是为了对学生进行思想政治教育,以跟上时代的步伐。教材的叙述提供了一些基础。教师在教学中可以教材为基础,讲明理论观点。然后引导学生就这个问题谈些见解。不必要求学生有全面深刻的认识,那是办不到的。但学生的认识也应达到会用原理来解释这个结论。建议采取以讲授为主,以读、议为辅的方法,同时选放一些反映建设有中国特色社会主义伟大历程(如农村改革、西部开发等)的纪录片,以增强学生对建设有中国特色社会主义理论与实践的直观感受,从而加强教学的说服力和感染力。
从刚才的表演的小品中,我们可以看出,矛盾的普遍性和特殊性不是各不相干的,而是不可分割的,相互联结的。
(l)矛盾的普遍性和特殊性是相互联结的。
①普遍性寓于特殊性之中,没有特殊性,就没有普遍性。
这个问题是教学难点,对于这难点,教学时应该在抓住“症结”、突破误解、巧用事例、深人浅出上下功夫。所谓抓住“症结”,即抓住难点,分析其“症结”所在,重点加以突破。根据以往的教学实践,学生对“普遍性寓于特殊性之中”往往感到最难理解,产生的问题较多。有的同学甚至反其意而理解为“特殊性存在于普遍性之中”、“普遍性包括了特殊性”。究其“症结”,主要是因为对普遍性(共性)和特殊性(个性)的含义不够明确,存在着两个误解:一是将普遍性与特殊性的关系误解为“多数”与“少数”的关系,如认为“张山”这一特殊性,只是一个人,而“人”这一普遍性,既包括了张山、李冰,也包括了喀秋莎、约翰逊,包括了古今中外所有的人,从而得出“普遍性包括特殊性”、“特殊性存在于普遍性之中”的结论。二是把普遍性与特殊性的关系误解为“整体”与“部分”的关系,如把金属当成“整体”,而把金、银、铜、铁、锡……当成“部分”,因而认为“特殊性存在于普遍性之中”。
所谓“巧用事例,深人浅出”,是指要巧妙地运用具体实例,深人浅出地讲清理论。对于事例,一是要选好,举例的目的就是为了讲清概念、原理,所以应通俗易懂,如果一开始就选用学生不熟悉、老师讲不清的例子,就很难达到目的;二是要分析好,要紧紧抓住普遍性与特殊性的含义来分析事例,引导学生正确把握二者的关系。如对张山、李冰、王洋等等每一个具体的人,都可以从各个方面去进行具体分析,在高矮、胖瘦、长相上,在思想觉悟、待人接物、知识水平、业务能力上,在性格、脾气、兴趣、爱好和特长上,他们每个人都各自有自己的特点如果再对喀秋莎、约翰逊、比德拉也进行分析比较,就会发现他们的差别更大,如肤色不同、语言不同、性别不同等等。这就是他们各自的特点,即个性、特殊性。那么,张山、李冰等等这些具体的人,有没有普遍具有的共同本质、性质呢?这当然只有在张山、李冰等这些具体的人中去我,而不能离开一个个具体的人去找。张山、李冰等虽然各有特点,千差万别,但通过观察和思考,总是可以找到他们的共同性:如他们都有一个脑袋两只手、都要进行新陈代谢,而普遍具有“自觉能动性”则是人的共同的本质。这一共同本质是在个性中存在着,是我们从个性中抽象和概括出来的,而不可能离开张山李冰等个性而单独存在。因此,正确的结论:普遍性(共性)寓于特殊性(个性)之中,即特殊性包含普遍性。
普遍性寓于特殊性之中,这里的“寓”原意是“居住”、“寄托”之意,在这里则演化为“存在于”或“含于”的意思,即普遍性存在于特殊性之中,为什么这样讲呢?先请同学们思考两个问题:
第一,什么是共性和个性?
第二,什么是普遍性?它是从哪里来的? 它原来存在于什么地方?
(学生议论、回答,教师总结。)
共性是指同类事物具有的状态、属性和变化发展的规律,它对这类事物来讲也可以叫矛盾的特殊性。个性是指同类事物中各个事物所具有的,在状态、属性和变化发展规律方面的不同特点,也可以叫矛盾的特殊性。
普遍性是同类事物中许许多多不同的特殊事物所共同具有的性质和特点,它是人们对同类事物总结、概括、抽象出来的,原来它就存在于一个个具体事物之中,所以我们说普遍性就存在于各种特殊性之中,并且只能通过特殊性而存在,没有特殊性就没有普遍性。
比如人的共性,就只能存在于张山、李冰、王洋……等一个个具体的人之中。人的一般的共同本质即社会关系的总和(这里只点到即可,下册书还要具体学习),在阶级社会,都带有阶级性,就是从具体的张山、李冰、王洋......中抽象概括出来的,没有这些具体的人的特殊性,就不可能有人的普遍性。
那么能不能反过来说“特殊性寓于普遍性之中”、“普遍性包含特殊性”呢?同学们思考这个问题之前,先听一段故事:
这个故事是明朝冯梦龙的小说《警世通言》中写的。据说,宋朝宰相王安石有一首没写完的《咏菊》诗,开头两句是“西风昨夜过园林,吹落黄花满地金”。苏东坡看后,不以为然,心想,菊花敢与秋霜战,至死焦干枯烂,并不落瓣,怎么会“吹落黄花满地金”呢?于是依韵续诗两句“秋花不比春花落,说与诗人仔细吟”。王安石见到续诗,心中不快,但想到,苏东坡不晓得黄州菊花落瓣,也怪他不得,于是密报天子,调他到黄州当了个团练副使。苏在黄州当官一年,一日重九之后,到后花园赏花,不禁大吃一惊,只见菊花棚下,满地铺金,枝上全无一朵。至此方知,同为菊花,竟也有落瓣与不落瓣之分。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)