Премини към съдържанието

Препоръчан отговор


Искам помощ за написване на програма на С. Програмата е следната:

Да се състави програма, която чете С програма и намира:

-броя на празните редове в програмата;

-броя на операторите в програмата;

-броя отварящи и затварящи скоби. 

Програмата да започва с меню със следните опции:

-четене програмата от файл и запис на резултата във файл (потребителя трябва да въведе имената на двата файла, като файла с програмата трябва да завършва с ".С");

-четене програмата от файл и извеждане на резултата на екрана (файлът въведен от потребителя трябва да завършва на ".С");

-четене на програмата от клавиатурата и извеждане във файл зададен от потребителя;

-четене на програмата от клавиатурата и извеждане на екрана;

Програмата да се реализира в отделни функции. Четенето от файл да става по редове.

 

Моля за вашата помощ за написването на тази курсова работа. На всеки ред трябва да има и коментар. Благодаря за съдействието.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

След като е курсова работа предоставете ващия код до момента и колеги ще помагат с мнения и съвети.

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Трябва ти да прочетеш за ostream, istream, getline, find, switch, цикли.
Ето тук имаш пример за търсене. http://www.cplusplus.com/forum/beginner/33615/

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Ето какво съм сътворила, но ми дава много грешки, може ли малко помощ!

#include <iostream>
#include <fstream>
#include <string>
//#include <cstdio>
//#include <cstdlib>
#include <conio.h>
#include <windows.h>
using namespace std;
ifstream inf;
ofstream outf;
string fname,file;
string operators[30]=
    {"<<=" , ">>="
    ,"->" , "++" , "--" , "==" , "!="
    ,">>" , "<<" , "&&"
    ,"||" , "+=" , "-=" , "*=" , "/="
    ,"%=" , "&=" , "^=" , "|=" , "+"
    ,"-" , "*" , "/" , "%" , "&"
    ,"|" , "^" , "!" , "~" , "="};
string keywords[32]=
    {
"auto"
,"break"
,"case"
,"char"
,"const"
,"continue"
,"default"
,"do"
,"double"
,"else"
,"enum"
,"extern"
,"float"
,"for"
,"goto"
,"if"
,"int"
,"long"
,"register"
,"return"
,"short"
,"signed"
,"sizeof"
,"static"
,"struct"
,"switch"
,"typedef"
,"union"
,"unsigned"
,"void"
,"volatile"
,"while"};
int brsp,bropbr,brclbr,broper,brkey;

void readf()
{
    string s;
    prev:
    cout<<"Enter file name:"<< endl;
    cin>>fname;
    inf.open(fname);
    if(inf.fail())
    {
         cout<<"This file doesn't exist!"<< endl;
         Sleep(1000);
         system("cls");
         goto prev;
    }
    while(getline(inf,s))
    {
         file+=s+'\n';
    }
}

void readc()
{
    string s;
    cout<<"Write the program here. When you are ready press ctrl+z"<< endl;
    while(getline(cin,s))
    {
        file+=s+'\n';
    }
}


void calc()
{
    system("cls");
    //cout<<"Processing text..."<< endl;
    int i,j,k;
    bool iscom1=0,iscom2=0,isstr=0;
    for(i=0; i<file.size(); i++)
    {
         if(file==' ') brsp++;
         if(file=='{' || file=='(') bropbr++;
         if(file=='}' || file==')') brclbr++;
    }
    for(i=0; i<file.size()-1; i++)
    {
         if(file=='\n' && iscom1) iscom1=false;
         if(file=='*' && file[i+1]=='/' && iscom2) {iscom2=false; i++; continue;}
         if(file=='"' && isstr) {isstr=false; continue;}
        // cout<<file<<" "<<iscom1<<" "<<iscom2<<" "<<isstr<< endl;
         if(!(iscom1 || iscom2 || isstr))
         {
             if(file=='/' && file[i+1]=='/') {iscom1=true; continue;}
             if(file=='/' && file[i+1]=='*') {iscom2=true; continue;}
             if(file=='"') isstr=true;
             bool found;
             for(j=0; j<30; j++)
             {
                 found=true;
                 for(k=i; k<file.size()-1 && k<i+operators[j].size(); k++)
                 {
                     if(file[k]!=operators[j][k-i])
                     {
                         found=false;
                         break;
                     }
                 }
                 if(found)
                 {
                     broper++;
                     i+=operators[j].size()-1;
                     //cout<<operators[j]<< endl;
                     break;
                 }
             }
             if(found) continue;
             for(j=0; j<32; j++)
             {
                found=true;
                 for(k=i; k<file.size()-1 && k<i+keywords[j].size(); k++)
                 {
                     if(file[k]!=keywords[j][k-i])
                     {
                         found=false;
                         break;
                     }
                 }
                 if(found && !isalpha(file[i-1]) && !isalpha(i+keywords[j].size()))
                 {
                     brkey++;
                     i+=keywords[j].size()-1;
                   //  cout<<keywords[j]<< endl;
                     break;
                 }
             }
         }
    }
}

void pechatf()
{
    string s;
    prev2:
    cout<<"Enter the name of the output file:"<< endl;
    cin>>s;
    outf.open(s);
    if(outf.fail())
        {
         cout<<"Cannot create this file"<< endl;
         Sleep(1000);
         system("cls");
         goto prev2;
        }
    outf<<"Number of spaces: "<<brsp<< endl;
    outf<<"Number of open brackets: "<<bropbr<< endl;
    outf<<"Number of closed brackets: "<<brclbr<< endl;
    outf<<"Number of operators: "<<broper<< endl;
    outf<<"Number of keywords: "<<brkey<< endl;
    outf.close();
    cout<<s<<" has been successfully created!"<< endl;
}

void pechatc()
{
    cout<<"Number of spaces: "<<brsp<< endl;
    cout<<"Number of open brackets: "<<bropbr<< endl;
    cout<<"Number of closed brackets: "<<brclbr<< endl;
    cout<<"Number of operators: "<<broper<< endl;
    cout<<"Number of keywords: "<<brkey<< endl;
}


void start()
{
    char ch;
    cout<<"How do you want to open the program source?"<< endl;
    cout<<"Press '1' to read from a file and write the result in a file"<< endl;
    cout<<"Press '2' to read from a file and print the result to the console"<< endl;
    cout<<"Press '3' to read the source from the console and write the result in a file"<< endl;
    cout<<"Press '4' to read the source from the console and print the result to the console"<< endl;
    cout<<"Press '5' to exit the console"<< endl;
    while(1)
    {
        ch=getch();
        if(ch=='1')
        {
             system("cls");
             readf();
             calc();
             pechatf();
             return;
        }
        if(ch=='2')
        {
            system("cls");
            readf();
            calc();
            pechatc();
            return;
        }
        if(ch=='3')
        {
            system("cls");
            readc();
            calc();
            pechatf();
            return;
        }
        if(ch=='4')
        {
            system("cls");
            readc();
            calc();
            pechatc();
            return;
        }
        if(ch=='5')
        {
            return;
        }
    }
}

int main()
{
    start();
    return 0;
}

 


Сподели този отговор


Линк към този отговор
Сподели в други сайтове

На C или на C++ трябва да е програмата последно?

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

 

преди 1 час, ined написа:

На C или на C++ трябва да е програмата последно?

 

Програмата трябва да е на С, но е написана на С++. Ако можете да я превърнете ще съм благодарна!

#include "stdafx.h"
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <Windows.h>
#include <stdlib.h>
int main()
{
    FILE *f;
    if ((fopen_s(&f, "ConsoleApplication11.cpp", "rt"))){
    printf("the file does not exist\n");
    return 1;
    }
    int main(void);
    {
        char str1[52]=
    {"<<=" ">>=" "->" "++" "--" "==" "!=" ">>" 
    "<<" "&&" "||" "+=" "-="  "*=" 
    "/=" "%=" "&=" "^="  "|=" "+" "-" 
    "*" "/" "%" "&" "|" "^" "!" "~"  "="};
int i;
for(i = 0; i < 52 ; i++)
{
if (ispunct(str1))
{
   printf("There are %d symbols\n",i);
}
else{
printf("There are no such symbols\n",i);}
}

Аз стигнах до тук но ми дава грешки.

Благодаря Ви предварително и весели празници!

Редактирано от Даниела Цоньовска (преглед на промените)

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.