예제 #1
0
/*
****************************************************************************************************************************
*  FunctionName       :Read_Mint_blue
*  Parameter          :List *L
*  Return             :Corret:OK Error:ERROR
*  Description        :Read the vocabulary from the mint blue
*****************************************************************************************************************************
*/
Status Read_Mint_blue(List *L)
{

	Status status;
	FILE *fp;
	Word word;
	
	
	fp = fopen("Lexicon.txt","r");
	if(NULL == fp) return ERROR;

	while(feof(fp) == 0)
	{
		if(feof(fp) != 0 ) break;

		fscanf(fp,"%s %s %u %u %f", word.e, word.c, &word.err_num, &word.num_recite, &word.priority);
	
		status = ListInput_Sq(L, word);
		if(status != OK) return ERROR;

		if(feof(fp) != 0 ) break;
	}
	status = ListDelete_Sq(L, L->length, &word);//ɾ³ýÒòfeof£¨£©º¯Êý¶à¶ÁµÄÒ»Ïî

	if(status != OK) return ERROR;
	fclose(fp);
	return OK;
}
예제 #2
0
int main()
{
	int i;
	SqList L;
	int get,e;
    InitList_Sq(&L);
	printf("请输入你要进行的操作序号\n");
	printf("1.线性表置空\n");
	printf("2.求线性表长度\n");
	printf("3.数据元素的插入操作\n");
	printf("4.数据元素的删除操作\n");
	printf("5.显示线性表中的全部元素\n");
	scanf("%d",&get);
	switch(get)
	{
	case 1: 
          destroy(*L);
	case 2:
          get_length(*L);
	case 3:
		  ListInsert_Sq(*L,5,10);
		  printf("");
	case 4:
          ListDelete_Sq(*L,5,&e);
	}
    return OK;
}
예제 #3
0
//对顺序链表各个功能函数的测试
void SqLsitTest()
{

	int i;
	int a[5]={1,2,3,5,8};
	int b[5]={4,6,8,9,0};
	ElemType temp;
	

	SqList La,Lb,Lc;

	InitList_Sq( La );
	InitList_Sq( Lb );
	InitList_Sq( Lc );

	for ( i=1;i< 6; i++)
		ListInsert_Sq( La,i,a[i-1]);
	for ( i=1;i< 6; i++)
		ListInsert_Sq( Lb,i,b[i-1]);

	//ListDelete_Sq( &Lb, 4, delet );
	//printf("\n the delete is: %d \n", delet);
	
	for(i=0;i <5; i++)
	{
		printf( "addr:%p, value: %d   ",&(La.elem[i]),La.elem[i]);
		printf( "addr:%p, value: %d\n",&(Lb.elem[i]),Lb.elem[i]);
		//printf( "addr:%p,   value: %d\n", (a+i),a[i]);
	    //printf( "addr:%d,   value: %d\n", (a+i),a[i]);
	}

	MergeList_sq( La, Lb, Lc);
	printf("\n===========The Sq_List_c is =========\n");
	for(i=0;i <10; i++)
	printf( " addr:%p, value: %d  \n",&(Lc.elem[i]),Lc.elem[i]);

	if ( ListDelete_Sq( Lc,4,temp) == 1 )
	{
		printf("\n==========The Delete Sq_List_c is==========\n");
		for(i=0;i <9; i++)
		printf( " addr:%p, value: %d  \n",&(Lc.elem[i]),Lc.elem[i]);

		printf("the delet element is : %d\n",temp);
	}
	
	 i = LocateElem_Sq(Lc,6,compare) ;
	 printf("\nthe Locate element is the :%d\n ", i);

}
예제 #4
0
void mian()
{
	int delet;

	SqList La,Lb,Lc;
	InitList_Sq( La );
	InitList_Sq( Lb );
	InitList_Sq( Lc );
	La.elem = { 1,2,3,4,5};
	Lb.elem = { 6,7,8,9,0};

	ListDelete_Sq( &Lb, 4, delet );
	printf("\n the delete is: %d \n", delet);


}
예제 #5
0
파일: SqList.cpp 프로젝트: cheng-guo/shdong
int main() {
	student s;
	SqList L;

	InitList_Sq(L);
	s.score = 60; s.boy = true;
	ListInsert_Sq(L, 1, s);
	s.score = 70; s.boy = false;
	ListInsert_Sq(L, 1, s);
	s.score = 90; s.boy = false;
	ListInsert_Sq(L, 2, s);

	int n = Length(L);// int n = L.length;
	for (int i = 1; i <= n; i++) {
		GetElem(L, i, s);
		std::cout << s.score << " " << s.boy << "\n";
	}

	ListDelete_Sq(L, 1, s);
	std::cout << "删除的1号元素是:"<<s.score << " " << s.boy << "\n";

	n = Length(L);
	for (int i = 1; i <= n; i++) {
		GetElem(L, i, s);
		std::cout << s.score << " " << s.boy << "\n";
	}

	double average_score = 0;
	for (int i = 1; i <= n; i++) {
		GetElem(L, i, s);
		average_score += s.score;
	}
	average_score /= n;
	std::cout << "平均分是" << average_score << "\n";
	return 0;
}
예제 #6
0
Status Recite(List *L)
{
	Status status;
	unsigned int i=1,j=0,old_err_num,len;
	char ch;
	Word word;
	

	printf("Notice: Press '#' to hint the correct spell. Press '$' to Quit the learning. Press '!'to delete the vocabulary.\n");
	while(i>0 && i<=L->length)
	{
		
		status = ListGetElem_Sq(L, i, &word);
		if(status != OK) return ERROR;
		
		len = strlen(word.e);
		word.num_recite++;
		old_err_num=word.err_num;
		j=0;
		puts(word.c);
		while(1)
		{

			ch = getche();
			if(ch=='$' || ch=='!')
			{
				Cover_row();
				break;
			}
			if('#'==ch)
			{
				word.err_num++;
				Cover_row();
				if(word.err_num-old_err_num>6)
				{
					printf("%s",word.e);
					Sleep(100*len);
				}
				else
				{
					if(word.err_num-old_err_num>3)
					{
						printf("%s",word.e);
						Sleep(100*len);
					}
					else
					{
						printf("%s",word.e);
						Sleep(100*len);
					}


				}
//				puts(word.e);
//				Sleep(100*len);
				Cover_row();
				j=0;
			}
			if(word.e[j]==ch)
			{
				if(j==len-1)
				{
					break;
				}
				j++;	
			}
			else
			{
				j=0;
				Cover_row();
			}

		}
		if('$'==ch)
		{
			return OK;
		}
		if('!'==ch)
		{
			status = ListDelete_Sq(L, i, &word);
			i--;
		}
		else
		{
			status = ListPutElem_Sq(L, i, word);
		}
		i++;
//		Cover_row();
		printf("\n\n");
	}

	return OK;
}