ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΠ· тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ языков программирования с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° появлСния ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСктронных ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², построСнных для выполнСния расчётов Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ двиТСния артиллСрийских снарядов Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΈΡ€ΠΎΠ²ΠΎΠΉ Π²ΠΎΠΉΠ½Ρ‹, Π±Ρ‹Π»Π° довольно драматичСской. РаньшС программисты Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с ΡΠ°ΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ²ΡˆΠΈΠΌΠΈ собой Ρ‡Π°ΡΡ‚ΡŒ машинного языка. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ состояли ΠΈΠ· Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ Π½ΡƒΠ»Π΅ΠΉ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΠ· тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΠ· Ρ‚Скста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ

2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ особСнности срСды Visual C++

2.1 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°

2.2 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π° ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅

Π­Π²ΠΎΠ»ΡŽΡ†ΠΈΡ языков программирования с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° появлСния ΠΏΠ΅Ρ€Π²Ρ‹Ρ… элСктронных ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², построСнных для выполнСния расчётов Ρ‚Ρ€Π°Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ двиТСния артиллСрийских снарядов Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΈΡ€ΠΎΠ²ΠΎΠΉ Π²ΠΎΠΉΠ½Ρ‹, Π±Ρ‹Π»Π° довольно драматичСской. РаньшС программисты Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ с ΡΠ°ΠΌΡ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ²ΡˆΠΈΠΌΠΈ собой Ρ‡Π°ΡΡ‚ΡŒ машинного языка. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ состояли ΠΈΠ· Π΄Π»ΠΈΠ½Π½Ρ‹Ρ… строк Π΅Π΄ΠΈΠ½ΠΈΡ† ΠΈ Π½ΡƒΠ»Π΅ΠΉ. ВскорС Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π΅Π½Ρ‹ ассСмблСры, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΡ‡Π΅ΡΠΊΠΎΠΌ прСдставлСнии, Π±ΠΎΠ»Π΅Π΅ понятном для Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ADD ΠΈΠ»ΠΈ MOV).

Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ появились Ρ‚Π°ΠΊΠΈΠ΅ языки высокого уровня, ΠΊΠ°ΠΊ BASIC ΠΈ COBOL. Благодаря этим языкам появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ логичСскиС конструкции ΠΈΠ· ΡΠ»ΠΎΠ² ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ integer I = 100. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠ»ΠΈΡΡŒ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ. Одно ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½Ρ‹Ρ… прСимущСств ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языков программирования, состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°Ρ… Π±Π΅Π· компиляции. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΆΠ΅ с ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками для выполнСния Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ шагом Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ стало появлСниС Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… срСд программирования Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ Visual C++, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, Π½Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ ΠΈΡ… ΡΠ°ΠΌΠΎΠΌΡƒ, Π° Π±Ρ€Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ стандартных элСмСнтов. Π­Ρ‚ΠΎ позволяСт ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, облСгчая Ρ‚Π΅ΠΌ самым Ρ€Π°Π±ΠΎΡ‚Ρƒ программиста. А Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ всС возмоТности программирования ΠΏΠΎΠ΄ Windows, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΈ этом ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ ΡΠ»ΠΎΠΆΠ½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ ΡΠ²ΡΠ·ΠΈ с Π²Ρ‹ΡˆΠ΅ ΠΈΠ·Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌ Π½Π°ΠΌΠΈ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° срСда Visual C++ 6.0

1. ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ Π’ Π΄Π°Π½Π½ΠΎΠΌ курсовом ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ MFC:

— Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΠ· Ρ‚Скстов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ;

— ΠΠ²Ρ‚оматичСский Π²Ρ‹Π±ΠΎΡ€ языка, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ написана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°;

— Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² Ρ„Π°ΠΉΠ».

2. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ особСнности срСды Visual C++

Π‘Ρ€Π΅Π΄Π° Visual C++ - это слоТный ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Π²Ρ‹ΡΠΎΠΊΠΎΡΡ„Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ программиста. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ выполняСтся Π² ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ IDE (Integrated Development Environment). IDE слуТит для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ взаимодСйствия с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ΠΎΠΌ ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ряд ΠΎΠΊΠΎΠ½, содСрТащих Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ элСмСнты. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ срСдств ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΠ½ΡƒΡŽ Ρ‡Π°ΡΡ‚ΡŒ прилоТСния, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ элСмСнтами. ΠŸΡ€ΠΈ этом вся Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡŽ прилоТСния, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΎΡ‚Π»Π°Π΄ΠΊΡƒ, происходит Π² IDE.

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ срСда Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Visual C++ прСдставляСт собой ΠΌΠ½ΠΎΠ³ΠΎΠΎΠΊΠΎΠ½Π½ΡƒΡŽ систСму. Π’ΠΈΠ΄ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (интСрфСйс) ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π½Π°ΡΡ‚Ρ€ΠΎΠ΅ΠΊ. ΠšΡ€ΠΎΠΌΠ΅ стандартных ΠΎΠΊΠΎΠ½, Π½Π° ΡΠΊΡ€Π°Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΎΠΊΠ½Π°, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… срСдств, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Image Editor (Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ). Окна Visual C++ (Π½ΠΎ Π½Π΅ Π³Π»Π°Π²Π½ΠΎΠ΅) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ, ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ с ΡΠΊΡ€Π°Π½Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹. Одной ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ… вСрсий стал Microsoft Visual C++ 6.0. Visual C++ 6.0, Π²ΠΎΠ±Ρ€Π°Π² Π² ΡΠ΅Π±Ρ всё самоС Π»ΡƒΡ‡ΡˆΠ΅Π΅ ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… вСрсий, прСдоставляСт ряд Π½ΠΎΠ²Ρ‹Ρ… возмоТностСй. Π’Π°ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, стал Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ ΡΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ интСрфСйс срСды программирования, создаваСмыС Visual C++ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ соврСмСнных процСссоров, сущСствСнно Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Ρ‹ возмоТности ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠ°.

Visual C++ 6.0 ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² ΡΡ€Π΅Π΄Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΠΎΡ‚ Windows 95 Π΄ΠΎ Windows 2000 ΠΈ Windows XP. ΠžΡΠΎΠ±Π΅Π½Π½Ρ‹Ρ… Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ систСма Π½Π΅ ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ΅Ρ‚, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ процСссор Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΈΠΏΠ° Pentium, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти — Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ 32 ΠœΠ±Π°ΠΉΡ‚ ΠΈ Π΄ΠΎΡΡ‚Π°Ρ‚ΠΎΡ‡Π½ΠΎΠ΅ количСство свободной дисковой памяти (порядка 200 ΠœΠ±Π°ΠΉΡ‚).

2.1 ОписаниС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Богласно ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ удалСния ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΠ· Ρ‚Скстов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΡƒΡ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ» происходит ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π°, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ тСкстовом ΠΎΠΊΠ½Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ написана ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ Π·Π°ΠΏΠΈΡΡŒ Π² Ρ„Π°ΠΉΠ», ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Π² Π½ΠΈΠΆΠ½Π΅ΠΌ тСкстовом ΠΎΠΊΠ½Π΅.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ· Ρ‚Скстов ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, написанных Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… языках: C ΠΈ Π‘++, Pascal, Basic ΠΈ Assembler.

2.2 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π”Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ состоит ΠΈΠ· Ρ‚Ρ€Π΅Ρ… классов: CKursApp, CKursDlg ΠΈ CSelectLangDlg. ВсС основныС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ содСрТатся Π²ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ классС, Ρ‚.ΠΊ. ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π Π°Π±ΠΎΡ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ основана Π½Π° Π΄Π²ΡƒΡ… функциях: RemoveOneLineComments ΠΈ RemoveMultiLineComments. РСализация Π²Ρ‚ΠΎΡ€ΠΎΠΉ являСтся довольно простой. Π’ Π½Π΅Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: исходный тСкст, символ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ коммСнтария ΠΈ ΡΠΈΠΌΠ²ΠΎΠ» Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ коммСнтария. Π’ Ρ‚СкстС осущСствляСтся поиск ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ… ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ ΠΏΠ°Ρ€Π½Ρ‹Ρ… ΠΈΠΌ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΡ…, содСрТимоС ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ удаляСтся.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ однострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π±ΠΎΠ»Π΅Π΅ слоТноС ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… языках, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Π‘СйсикС, строки ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΈ ΠΎΠ΄Π½ΠΎΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ становится ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌ многострочному. Π’ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°: исходный тСкст, символ коммСнтария, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ пСрСносов ΠΈ ΡΠ°ΠΌ символ пСрСноса. Π Π°Π±ΠΎΡ‚Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст разбиваСтся Π½Π° ΡΡ‚Ρ€ΠΎΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заносятся Π² ΠΌΠ°ΡΡΠΈΠ². Π—Π°Ρ‚Π΅ΠΌ производится поиск символа коммСнтария. Если ΠΎΠ½ Π½Π°ΠΉΠ΄Π΅Π½, провСряСтся, Π΅ΡΡ‚ΡŒ Π»ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΉ строкС пСрСнос. Π‘Ρ‚Ρ€ΠΎΠΊΠ° ΠΈΠ»ΠΈ Π΅Π΅ Ρ‡Π°ΡΡ‚ΡŒ послС коммСнтария удаляСтся. ΠŸΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ пСрСноса удаляСтся Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ строка.

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ языка производится ΠΏΠΎ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡŽ. Если Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ нСизвСстно, Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Сля Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ΡΡ Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»Π°. Π—Π°Ρ‚Π΅ΠΌ производится ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ выдаСтся сообщСниС.

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΡΡŽΡ‚ΡΡ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅.

3. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ Запуск ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ осущСствляСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° kurs. exe, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ находится Π½Π° Π΄ΠΈΡΠΊΠ΅Ρ‚Π΅. ΠŸΡ€ΠΈ этом Π½Π° ΡΠΊΡ€Π°Π½Π΅ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ ΠΎΠΊΠ½ΠΎ, Π² Π»Π΅Π²ΠΎΠΉ Π²Π΅Ρ€Ρ…Π½Π΅ΠΉ части ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π½Π° надпись «Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΈΠ· Ρ‚Скста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ «- это имя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ исходный ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»Ρ‹, ввСдя ΠΈΡ… ΠΏΡƒΡ‚ΠΈ Π² Ρ‚СкстовыС ΠΎΠΊΠ½Π° ΠΈΠ»ΠΈ Π²Ρ‹Π±Ρ€Π°Π² ΠΈΡ… Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅ Π²Ρ‹Π±ΠΎΡ€Π°. Если Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ нСизвСстноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ язык Π² Π΄ΠΈΠ°Π»ΠΎΠ³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ автоматичСски появляСтся послС Π²Ρ‹Π±ΠΎΡ€Π° Ρ„Π°ΠΉΠ»Π°. Π—Π°Ρ‚Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ «Π£Π΄Π°Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ». Если тСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ расставлСнных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π², выдаСтся сообщСниС ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

БистСмныС трСбования: Pentium 100, 16 MB RAM, Windows 95/98/2000 NT/XP.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ Ρ…ΠΎΠ΄Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого программирования Visual C++. Π’Π°ΠΊΠΆΠ΅ ΠΈΠ·ΡƒΡ‡Π΅Π½Ρ‹ графичСскиС возмоТности Π΄Π°Π½Π½ΠΎΠ³ΠΎ языка.

БистСматизированы ΠΈ Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ практичСскиС Π½Π°Π²Ρ‹ΠΊΠΈ использования Π­Π’Πœ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… срСдств обслуТивания систСмных программистов, Π° Ρ‚Π°ΠΊΠΆΠ΅ тСорСтичСскиС знания ΠΏΠΎ ΠΎΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π°ΠΌ курса «ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅». ОсновноС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΡŽ соврСмСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм, способов проСктирования ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ.

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ курсового ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ знакомство с Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌΠΈ источниками ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ ΠΈ ΡΠΈΡΡ‚Π΅ΠΌΠ½ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ с Ρ†Π΅Π»ΡŒΡŽ Π°Π½Π°Π»ΠΈΠ·Π° состояния Ρ€Π΅ΡˆΠ°Π΅ΠΌΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ.

ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹ практичСскиС Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΡΡ€Π΅Π΄Π΅ Visual C++ ΠΈ Π² Π³Ρ€Π°Ρ„ичСской срСдС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

1. ΠŸΠ΅Ρ‚Π·ΠΎΠ»ΡŒΠ΄ Π§. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Windows 95. Π’ Π΄Π²ΡƒΡ… ΠΊΠ½ΠΈΠ³Π°Ρ…: BHV — Π‘Π°Π½ΠΊΡ‚ — ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2007, silt.

2. Π ΠΈΡ‡Π°Ρ€Π΄ Π‘. Π›ΠΈΠ½ΠΊΠ΅Ρ€, Π’ΠΎΠΌ АрчСр. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ для Windows 7. Библия Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°. «Π”ΠΈΠ°Π»Π΅ΠΊΡ‚ΠΈΠΊΠ° «- Москва, 2009.-864 с.: ΠΈΠ».- ΠŸΠ°Ρ€Π°Π». Ρ‚ΠΈΡ‚. Π°Π½Π³Π». Π£Ρ‡.пос.

3. ДТСсс Π›ΠΈΠ±Π΅Ρ€Ρ‚ΠΈ. Π‘++ Π·Π° 21 дСнь. «Π’ΠΈΠ»ΡŒΡΠΌΡ» — Москва, 2000.-816 с.: ΠΈΠ». .- ΠŸΠ°Ρ€Π°Π».Ρ‚ΠΈΡ‚. Π°Π½Π³Π».

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π€Π°ΠΉΠ» kursDlg. cpp

// kursDlg. cpp: implementation file

#include «stdafx.h»

#include «kurs.h»

#include «kursDlg.h»

#include «SelectLangDlg.h»

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

#define LANG_CPP 1

#define LANG_PASCAL 2

#define LANG_BASIC 3

#define LANG_ASM 4

// CKursDlg dialog

CKursDlg:CKursDlg (CWnd* pParent /*=NULL*/)

: CDialog (CKursDlg:IDD, pParent)

{

//{{AFX_DATA_INIT (CKursDlg)

// NOTE: the ClassWizard will add member initialization here

//}}AFX_DATA_INIT

// Note that LoadIcon does not require a subsequent DestroyIcon in Win32

m_hIcon = AfxGetApp ()->LoadIcon (IDR_MAINFRAME);

}

void CKursDlg: DoDataExchange (CDataExchange* pDX)

{

CDialog:DoDataExchange (pDX);

//{{AFX_DATA_MAP (CKursDlg)

// NOTE: the ClassWizard will add DDX and DDV calls here

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP (CKursDlg, CDialog)

//{{AFX_MSG_MAP (CKursDlg)

ON_WM_SYSCOMMAND ()

ON_WM_PAINT ()

ON_WM_QUERYDRAGICON ()

ON_BN_CLICKED (IDC_BTNSOURCE, OnBtnsource)

ON_BN_CLICKED (IDC_BTNMAKE, OnBtnmake)

ON_BN_CLICKED (IDC_BTNDEST, OnBtndest)

//}}AFX_MSG_MAP

END_MESSAGE_MAP ()

// CKursDlg message handlers

BOOL CKursDlg: OnInitDialog ()

{

CDialog:OnInitDialog ();

/ Set the icon for this dialog. The framework does this automatically

// when the application’s main window is not a dialog

SetIcon (m_hIcon, TRUE);// Set big icon

SetIcon (m_hIcon, FALSE);// Set small icon

m_lang = LANG_CPP;

m_name = «» ;

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control

}

void CKursDlg: OnSysCommand (UINT nID, LPARAM lParam)

{

CDialog:OnSysCommand (nID, lParam);

}

// If you add a minimize button to your dialog, you will need the code below

// to draw the icon. For MFC applications using the document/view model,

// this is automatically done for you by the framework.

void CKursDlg: OnPaint ()

{

if (IsIconic ())

{

CPaintDC dc (this); // device context for painting

SendMessage (WM_ICONERASEBKGND, (WPARAM) dc. GetSafeHdc (), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics (SM_CXICON);

int cyIcon = GetSystemMetrics (SM_CYICON);

CRect rect;

GetClientRect (&rect);

int x = (rect.Width () — cxIcon + 1) / 2;

int y = (rect.Height () — cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon (x, y, m_hIcon);

}

else

{

CDialog:OnPaint ();

}

}

// The system calls this to obtain the cursor to display while the user drags

// the minimized window.

HCURSOR CKursDlg: OnQueryDragIcon ()

{

return (HCURSOR) m_hIcon;

}

void CKursDlg: OnBtnsource ()

{

CFileDialog dlg (TRUE, NULL, NULL, 0,

" C++ and C files (*.cpp; *.c; *.h; *.hpp)|*.cpp;*.c;*.h;*.hpp|Pascal files (*.pas)|*.pas|Basic files (*.bas)|*.bas|Assembler files (*.asm)|*.asm|All files|*.*||", this);

CString lang;

CSelectLangDlg select;

if (dlg.DoModal () == IDOK)

{

m_name = dlg. GetPathName ();

SetDlgItemText (IDC_SOURCE, m_name);

int point_pos = m_name.ReverseFind ('.');

if (point_pos == -1)

{

if (select.DoModal ())

m_lang = select. m_language + 1;

else

m_lang = LANG_CPP;

}

else

{

lang = m_name.Right (m_name.GetLength () — point_pos — 1);

if ((lang == «c») || (lang == «cpp») || (lang == «h») || (lang == «hpp»))

m_lang = LANG_CPP;

else if (lang == «pas»)

m_lang = LANG_PASCAL;

else if (lang == «bas»)

m_lang = LANG_BASIC;

else if (lang == «asm»)

m_lang = LANG_ASM;

else

{

if (select.DoModal ())

m_lang = select. m_language + 1;

else

m_lang = LANG_CPP;

}

}

point_pos = m_name.ReverseFind ('\');

m_dest = m_name.Left (point_pos);

m_dest += «\output.» ;

m_dest += lang;

SetDlgItemText (IDC_DEST, m_dest);

}

}

void CKursDlg: OnBtnmake ()

{

GetDlgItemText (IDC_SOURCE, m_name);

GetDlgItemText (IDC_DEST, m_dest);

CFile source (m_name, CFile: modeRead | CFile: shareDenyRead | CFile: shareDenyWrite | CFile: normal);

CString text;

char buffer;

UINT i;

for (i = 0; i < source. GetLength (); i++)

{

source.Read (&buffer, 1);

text += buffer;

}

text.GetBuffer (0)[source.GetLength ()] = 0;

switch (m_lang)

{

case LANG_CPP:

{

RemoveOneLineComments (text, «//», FALSE, «»);

if (RemoveMultiLineComments (text, «/*», «*/») == -1)

{

AfxMessageBox («ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ многострочныС ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ», MB_ICONERROR);

return;

}

break;

}

case LANG_PASCAL:

{

RemoveOneLineComments (text, «//», FALSE, «»);

if (RemoveMultiLineComments (text, «{», «}») == -1)

{

AfxMessageBox («ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ многострочныС ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ», MB_ICONERROR);

return;

}

break;

}

case LANG_BASIC:

{

RemoveOneLineComments (text, «'», TRUE, «_»);

RemoveOneLineComments (text, «REM «, TRUE, «_»);

RemoveOneLineComments (text, «rem «, TRUE, «_»);

RemoveOneLineComments (text, «Rem «, TRUE, «_»);

break;

}

case LANG_ASM:

{

RemoveOneLineComments (text, «;», FALSE, «»);

break;

}

}

source.Close ();

CFile dest (m_dest, CFile: modeCreate | CFile: modeReadWrite | CFile: normal);

dest.Write (text.GetBuffer (0), text. GetLength ());

AfxMessageBox («ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΡƒΠ΄Π°Π»Π΅Π½Ρ‹», MB_ICONINFORMATION);

}

int CKursDlg: RemoveOneLineComments (CString& text, CString comment, BOOL bHasLineWraps, CString wrap)

{

CArray linelist;

CString line, full = text;

char *buffer = full. LockBuffer ();

char *token = strtok (buffer, «rn»);

while (token)

{

linelist.Add (CString (token));

token = strtok (NULL, «rn»);

}

full.UnlockBuffer ();

int i, find, count;

BOOL bWrap = FALSE;

for (i = 0; i < linelist. GetSize (); i++)

{

if (linelist[i]. Find (comment, 0) == 0)

{

if (bHasLineWraps)

{

if (linelist[i]. Find (wrap, 0) == linelist[i]. GetLength () — wrap. GetLength ())

bWrap = TRUE;

}

linelist.RemoveAt (i);

i—;

continue;

}

else if ((find = linelist[i]. Find (comment, 0)) > 0)

{

if (bHasLineWraps)

{

if (linelist[i]. Find (wrap, 0) == linelist[i]. GetLength () — wrap. GetLength ())

bWrap = TRUE;

}

count = linelist[i]. GetLength () — find;

linelist[i]. Delete (find, count);

continue;

}

if (bHasLineWraps && bWrap)

{

if (linelist[i]. Find (wrap, 0) == linelist[i]. GetLength () — wrap. GetLength ())

bWrap = TRUE;

else

bWrap = FALSE;

linelist.RemoveAt (i);

i—;

}

}

text = «» ;

for (i = 0; i < linelist. GetSize (); i++)

{

text += linelist[i];

text += «rn» ;

}

linelist.RemoveAll ();

return 0;

}

int CKursDlg: RemoveMultiLineComments (CString &text, CString opencomment, CString closecomment)

{

int open, close;

while ((open = text. Find (opencomment, 0)) ≠ -1)

{

if ((close = text. Find (closecomment, open)) ≠ -1)

{

text.Delete (open, close — open + closecomment. GetLength ());

}

else

return -1;

}

return 0;

}

void CKursDlg: OnBtndest ()

{

CFileDialog dlg (FALSE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,

" C++ and C files (*.cpp; *.c; *.h; *.hpp)|*.cpp;*.c;*.h;*.hpp|Pascal files (*.pas)|*.pas|Basic files (*.bas)|*.bas|Assembler files (*.asm)|*.asm|All files|*.*||", this);

if (dlg.DoModal () == IDOK)

{

m_dest = dlg. GetPathName ();

SetDlgItemText (IDC_DEST, m_dest);

}

}

Π€Π°ΠΉΠ» SelectLangDlg;

// SelectLangDlg. cpp: implementation file

#include «stdafx.h»

#include «kurs.h»

#include «SelectLangDlg.h»

#ifdef _DEBUG

#define new DEBUG_NEW

#undef THIS_FILE

static char THIS_FILE[] = __FILE__;

#endif

// CSelectLangDlg dialog

CSelectLangDlg:CSelectLangDlg (CWnd* pParent /*=NULL*/)

: CDialog (CSelectLangDlg:IDD, pParent)

{

//{{AFX_DATA_INIT (CSelectLangDlg)

m_language = 0;

//}}AFX_DATA_INIT

}

void CSelectLangDlg: DoDataExchange (CDataExchange* pDX)

{

CDialog:DoDataExchange (pDX);

//{{AFX_DATA_MAP (CSelectLangDlg)

DDX_Radio (pDX, IDC_CPP, m_language);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP (CSelectLangDlg, CDialog)

//{{AFX_MSG_MAP (CSelectLangDlg)

//}}AFX_MSG_MAP

END_MESSAGE_MAP ()

// CSelectLangDlg message handlers

void CSelectLangDlg: OnOK ()

{

UpdateData ();

CDialog:OnOK ();

}

BOOL CSelectLangDlg: OnInitDialog ()

{

CDialog:OnInitDialog ();

return TRUE; // return TRUE unless you set the focus to a control

// EXCEPTION: OCX Property Pages should return FALSE

}

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ