Описать массив записей - телефонный справочник - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Ребят, помогите пожалуйста, иначе очислят((((( Надо написать четыре проги, 3 мне написали, но они выдают ошибку и одну я не написал... пожалуйста помогите 1) Написать программу, которая выводит на экран содержимое файла A:/numbers.txt 2) Составьте программу, которая описывает массив записей-телефонный справочник и обеспечивает ввод данных, поиск номера телефона по фамилии 3) Создайте функцию, которая возвращает количество элементов массива, меньших, чем число, заданное пользователем. Целочисленный массив и число передаются в качестве параметра. При этом массив передается через указатель 4) Создайте функцию возвращающую значение квадрата своего аргумента. Перегрузите функцию так, чтобы она могла вызываться или с целой или со строкой, задающей целое значение аргумента.Например, оба эти вызова должны подсчитывать значение 5вквадрате=25 1,3,4 мне сделали, но там ошибки проверьте где может быть плиззззз 1я:
#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;
}
3я :
#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;
}
4я :
#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;
}

Объяснение кода листинга программы

  1. Создается класс phone для представления записей телефонного справочника.
  2. В классе phone создаются четыре приватных переменных: firstname, lastname, middlename, number.
  3. Определяются два дружественных оператора для ввода и вывода объектов класса phone.
  4. В функции main() создается массив из 75 объектов класса phone, name и namen.
  5. Пользователю предлагается ввести число от 1 до 3.
  6. Если выбрано добавление контакта (1), создается файл для записи данных, и пользователю предлагается ввести данные о контакте.
  7. Данные о контакте записываются в файл.
  8. Если выбрано поиск контакта (2), пользователю предлагается ввести фамилию искомого контакта.
  9. Файл открывается для чтения, и данные о контактах с указанной фамилией читаются из файла.
  10. Если выбрано выход (3), программа завершается.
  11. Если введенная фамилия не совпадает ни с одной фамилией в файле, выводится сообщение об ошибке.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы