Описать массив записей - телефонный справочник - C (СИ)
Формулировка задачи:
Ребят, помогите пожалуйста, иначе очислят((((( Надо написать четыре проги, 3 мне написали, но они выдают ошибку и одну я не написал...
пожалуйста помогите
1) Написать программу, которая выводит на экран содержимое файла A:/numbers.txt
2) Составьте программу, которая описывает массив записей-телефонный справочник и обеспечивает ввод данных, поиск номера телефона по фамилии
3) Создайте функцию, которая возвращает количество элементов массива, меньших, чем число, заданное пользователем. Целочисленный массив и число передаются в качестве параметра. При этом массив передается через указатель
4) Создайте функцию возвращающую значение квадрата своего аргумента. Перегрузите функцию так, чтобы она могла вызываться или с целой или со строкой, задающей целое значение аргумента.Например, оба эти вызова должны подсчитывать значение 5вквадрате=25
1,3,4 мне сделали, но там ошибки проверьте где может быть плиззззз
1я:
3я :
4я :
#include <stdio.h> #include <conio.h> main() { FILE *fd; fd=fopen("file_name.txt","r");// – открываем файл в режим чтения , файл должен существовать !!! if(fd==NULL) { printf("\n Ошибка открытия файла"); return 0; } char c=getc(fd); // getc Возвращает следующий символ из файла while(c!=EOF) //– сравниваем c константой EOF – конец файла { printf("%c",c); c=getc(fd); } fclose(fd); // закрываем файл getch(); return 0; }
#include <iostream.h> #include <conio.h> int f=0; int * SortMass(int *addr,int num_elements,int x) { int *tmp = new int [num_elements]; int k=0; for(int i=0;i<num_elements;i++) { if(addr[i]<x) { tmp[k]=addr[i]; k++; } } f=k; return tmp; } int main() { int n = 5 , x ; // 5 ел-ов int *M = new int [n]; cout << "Source Massive is : " ; randomize(); for(int i=0;i<n;i++) // Забьём массив рандоммными значениями { M[i]=rand()%11; // От 0 до 11 cout << M[i] << " "; } cout << endl << "Get x = "; cin >> x; int *N = SortMass(M,n,x); // Функция даст нам новый указатель на массив cout << "New Massive is : " ; for(int i=0;i<f;i++) { cout << N[i] << " "; } getch(); return 0; }
#include <iostream.h> #include <conio.h> long kv(int x){return x*x;} long kv(char *str) { return atoi(str)*atoi(str);} int main() { int x; cout << "Get x = "; cin >> x; if(isdigit(x)==0)return 0; cout << "Kak chislo -> result = " << kv(x); int *m = &x; // m указатель на x cout << "Kak stroka -> result = " << kv(*m); getch(); return 0; }
Решение задачи: «Описать массив записей - телефонный справочник»
textual
Листинг программы
#include <iostream> #include <fstream> #include <string.h> using namespace std; class phone { friend istream& operator >> (istream& in, phone& numbi); friend ostream& operator << (ostream& out, phone numbo); public: char firstname[20]; char lastname[20]; char middlename[20]; char number[15]; }; istream& operator >> (istream& in, phone& numbi) { in >> numbi.firstname >> numbi.lastname >> numbi.middlename >> numbi.number; return in; } ostream& operator << (ostream& out, phone numbo) { out << numbo.firstname << " " << numbo.lastname << " " << numbo.middlename << " " << numbo.number; out << endl; return out; } int main() { phone name[75], namen[75]; char next; char lastname[20]; int i, b; cout << "1.Add contact, 2.Search contact, 3.Exit" << endl; cin >> b; if(b==1) { ofstream fileout("file.txt", ios::app); if(!fileout) { cerr << "Error: opening file" << endl; return 1; } for(i=0;i<1;i++) { cout << "Enter firstname, lastname, middlename, number" << endl; cin >> name[i]; fileout << name[i]; } } else if(b==2) { cout << "Enter lastname of the contact:"; cin >> lastname; ifstream filein("file.txt"); if(!filein) { cerr << "Error: opening file"; return 2; } i=0; while(1) { filein >> namen[i]; if(!strcmp(namen[i].lastname, lastname)) { cout << namen[i]; break; } next=filein.peek(); if(next==EOF)break; i++; } } else if(b==3) return 1; return 0; }
Объяснение кода листинга программы
- Создается класс phone для представления записей телефонного справочника.
- В классе phone создаются четыре приватных переменных: firstname, lastname, middlename, number.
- Определяются два дружественных оператора для ввода и вывода объектов класса phone.
- В функции main() создается массив из 75 объектов класса phone, name и namen.
- Пользователю предлагается ввести число от 1 до 3.
- Если выбрано добавление контакта (1), создается файл для записи данных, и пользователю предлагается ввести данные о контакте.
- Данные о контакте записываются в файл.
- Если выбрано поиск контакта (2), пользователю предлагается ввести фамилию искомого контакта.
- Файл открывается для чтения, и данные о контактах с указанной фамилией читаются из файла.
- Если выбрано выход (3), программа завершается.
- Если введенная фамилия не совпадает ни с одной фамилией в файле, выводится сообщение об ошибке.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д