http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=6633 [º¹»ç]
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h> //¹è¿
#include <stdlib.h> //³¼ö»ý¼º
#include <time.h>
#define MAX 500
// Á¤ÀûÀü¿ªº¯¼ö - ÇÔ¼öÀÇ È£ÃâÀÌ ³¡³ªµµ ¼Ò¸êµÇÁö ¾ÊÀ½ (p.321)
static int wordnum; // ÇöÀç ´Ü¾î°¡ ¸î °³ ÀúÀåµÇ¾î Àִ°¡?
static char eng[MAX][30];
static char kr[MAX][30];
// ¸Å°³ º¯¼ö¸¦ ÅëÇØ ¿øº» °ªÀ» 0À¸·Î º¯°æÇÏ´Â ÇÔ¼ö - Æ÷ÀÎÅÍ (p.354)
void modify(int* ptr) {
*ptr = 0;
}
void WordView();
void WordAdd();
void WordQuiz();
int randnum();
// ¸ÞÀÎ ¸Þ´º //
void main() {
int num;
printf("\n\n----´Ü¾î ¾Ï±â ÇÁ·Î±×·¥----\n");
printf("1. ´Ü¾î º¸±â 2. ´Ü¾î Ãß°¡ 3. ´Ü¾î ¸ÂÃß±â\n");
scanf("%d", &num);
getchar();
switch (num) {
case 1: {
WordView();
break;
}
case 2: {
WordAdd();
break;
}
case 3: {
WordQuiz();
break;
}
}
}
// <1. ´Ü¾î Ç¥½ÃÇϱâ>
void WordView() {
printf("< 1. ÀúÀåµÈ ´Ü¾î ¸®½ºÆ® >\n\n\n");
printf(" ´Ü¾î / ¶æ\n\n");
for (int i = 0; i < wordnum; i++) {
printf(" %s / %s", eng[i], kr[i]);
printf("\n");
} main();
}
// <2. ´Ü¾î Ãß°¡Çϱâ>
void WordAdd() {
printf("< 2. ´Ü¾î Ãß°¡Çϱâ >\n\n\n");
do {
printf("¿µ´Ü¾î: ");
gets_s(eng[wordnum], 30);
// »ç¿ëÀÚ°¡ '±×¸¸'À̶ó°í ÀÔ·ÂÇÏ¸é ¹Ýº¹¹® ºüÁ®³ª¿À±â
if (strcmp("±×¸¸", eng[wordnum]) == 0) {
modify(eng[wordnum]); // '±×¸¸' »èÁ¦Çϱâ
main();
break;
}
else {
printf("¶æ: ");
gets_s(kr[wordnum], 30);
printf("\n");
wordnum++; // ÀúÀåµÈ ´Ü¾î °³¼ö¸¦ ´©ÀûÇÑ´Ù.
}
} while (wordnum < MAX);
}
// <3. ´Ü¾î Å×½ºÆ®Çϱâ>
void WordQuiz() {
printf("< 3. ´Ü¾î ¸ÂÃ߱⠰ÔÀÓ >\n\n\n");
// ·Î¶Ç ÇÁ·Î±×·¥ Âü°í (p.329)
int randnum(); { // ÇÔ¼ö ¼±¾ð½ÄÀÌ ¾Æ´Ñ Ç¥Çö½Ä¿¡¼´Â ¼¼¹ÌÄÝ·Ð ÇÊ¿ä?
srand (time(NULL));
int i, j;
int dup_check[MAX - 1] = { 0 }; // 500°³ ÀÚ¸®¿¡ 0ÀÌ µé¾îÀÖÀ½ ¡æ »ý¼ºµÈ Àû ¾ø´Â ³¼ö ¹øÈ£ ÀÚ¸®´Â 1
for (i = 0; i < (wordnum - 1); i++) {
j = (rand() % wordnum); // ÇöÀç 30°³ ´Ü¾î ÀúÀå ¡æ 30°³ ¼ýÀÚ(0~29)¿¡¼ ·£´ýÀ¸·Î Çϳª »ý¼º
while (dup_check[j] == 1)
j = (rand() % wordnum); // Áߺ¹ ½Ã, ¹Ýº¹»ý¼º
dup_check[j] = 1; // Áߺ¹ ¾È µÉ ½Ã, »ý¼ºÇÑ ³¼ö ¹øÈ£ ÀÚ¸´°ªÀ» 1·Î ¸¸µé±â
} return j;
}
printf("³ªÅ¸³¾ ¾ð¾î¸¦ ÀÔ·ÂÇϽÿÀ\n1¹ø: ¿µ¾î¡æ¶æ ¸ÂÃß±â\n2¹ø: ¶æ¡æ¿µ´Ü¾î ¸ÂÃß±â\n ¼ýÀÚ ÀÔ·Â: ");
int lang;
scanf("%d", &lang);
if (lang < 1 || lang>2) printf("¡Ø1°ú 2¸¸ ÀÔ·ÂÇϽÿÀ¡Ø");
else {
switch (lang) {
char ans[30] = { 0 };
case 1: {
int i = randnum(); // ÇöÀç ÀúÀåµÈ ´Ü¾î °¹¼ö¸¸Å.. Áß¿¡¼ ³¼ö »ý¼º ¡æ i
char ans[30];
printf("%s ¢¹ ", eng[i]);
scanf("%s", &ans);
getchar();
if (strcmp(ans, kr[i]))
printf("Á¤´ä!");
else
printf("¶¯!");
} break;
case 2: {
int i = randnum();
char ans[30];
printf("%s", kr[i]);
scanf(" ¢¹ %s", &ans);
getchar();
if (strcmp(ans, eng[i]))
printf("Á¤´ä!");
else
printf("¶¯!");
} break;
default:
printf("¡Ø¿À·ù¡Ø");
}
}
}
¿µ´Ü¾î ¾Ï±â ÇÁ·Î±×·¥Àε¥
WordQuiz ºÎºÐÀ» ´Ù ÁÖ¼®Ã³¸®ÇÏ¸é ´Ü¾îÃß°¡ÇÏ°í ´Ü¾î º¸±â ±â´ÉÀº Á¦´ë·Î ÀÛµ¿ Çϰŵç¿ä
±Ùµ¥ WordQuiz¸¦ Ãß°¡ÇÏ¸é ¿À·ù°¡ ¶°¿ä
randnum() {³»¿ë} ÀÌ ºÎºÐ¿¡ ÀÚ²Ù ±¸¹®¿À·ù ³ª¼
·£´ý³¼ö »ý¼ººÎºÐÀº µû·Î µ¹·ÁºÃ´Âµ¥ Á¦´ë·Î ÀÛµ¿À» Çß¾î¿ä
±Ùµ¥ ¶Ç °è¼Ó µð¹ö±ë ÇÏ´Ù º¸´Ï 'ÁöÁ¤µÈ ÆÄÀÏÀ» ãÀ» ¼ö ¾ø½À´Ï´Ù' Çϸç ÇÁ·ÒÇÁÆ®Á¶Â÷ ¾È ¶ß°í
LNK1120, LNK2019 ¶ß´Âµ¥ °Ë»öÇØµµ ¹º ¼Ò¸°Áö ¸ð¸£°Ú¾î¿ä
|
Hit : 359 Date : 2023/05/30 12:31
|