void Changediagnosis (Account *&list,int &row)//изменение диагноза
{
char name_search[50];
Account *newdiagnosis=new Account[50];
int h=0,i;
Rus("Введите ФИО больного для поиска:");
cin>>name_search;
for(i=0;i<row;i++)
{
if(strcmp(name_search,list.name)==0)
{
h++;break;
}
}
if(h>0)
{
Rus("ФИО больного найдена в записи:\n\n");
Rus("Введите новый диагноз:\n");
cin>>newdiagnosis.diagnosis;
list=newdiagnosis;
}
else
{
Rus("ФИО больного не найдена в записи:");
}
}
Работа со списками (структуры)
Имя возраст телефон адрес
Петя 34 565-54-89 Украина, Одесса
Настя 19 7847584 Беларусь, Брест
.....
Чтобы было все красиво и ровно. Пытался добавить символ пробела к каждой недостоюще строке, например char name [30], с помощью функции size_length=strlen(name) находил реальный размер строки, затем вычислял разность меджу реальным и номинальным. Но как этот результат реализовать в виде необходимого количества пробелов не знаю(
2)Редактирование/изменение данных. Например я ввел 5 человек с 4 поля (см. выше). Необходимо изменить данные. Тоже пытался Но выводит мусор
Код:
Хотя сам проанализировал присваивания разное, все получалось:
Код:
#include <iostream>
#include <windows.h>
#include <conio.h>
#include <string.h>
using namespace std;
struct T
{
char dim[30];
};
void main()
{
T and={"dfdfd"};
T fud={"ffffffffff"};
and=fud;//структурное присваивание
int a=5,b=7;
a=b;//целочисленное присваивание
char d='w',s='s';
d=s;//символьное присваивание
char str1[20]="dfdfdf";
char str2[20]="qqqqqq";
for(int i=0;i<20;i++)
{
str1=str2;//строковое присваивание
}
cout<<"a="<<a<<"\n";
cout<<"d="<<d<<"\n";
cout<<"str1="<<str1<<"\n";
cout<<"and="<<and.dim<<"\n";
}
#include <windows.h>
#include <conio.h>
#include <string.h>
using namespace std;
struct T
{
char dim[30];
};
void main()
{
T and={"dfdfd"};
T fud={"ffffffffff"};
and=fud;//структурное присваивание
int a=5,b=7;
a=b;//целочисленное присваивание
char d='w',s='s';
d=s;//символьное присваивание
char str1[20]="dfdfdf";
char str2[20]="qqqqqq";
for(int i=0;i<20;i++)
{
str1=str2;//строковое присваивание
}
cout<<"a="<<a<<"\n";
cout<<"d="<<d<<"\n";
cout<<"str1="<<str1<<"\n";
cout<<"and="<<and.dim<<"\n";
}
Используй манипуляторы и флаги форматирование для вывода на консоль, к примеру мой знакомый с помощью сканфа таблицы рисовал, погугли на эту тему.
Манипуляторы и флаги форматирования это уже классы и ООП, вроде. Пока к сожалению или к счастью не дошли. Просмотрел тему, рано нам еще такое. Спасибо за подсказку!
Вообще то в принципе это одно и тоже, так как библиоткеки ввода С++ это ООПшные варианты СИшных потоковых функции, и флаги как раз относяться к последним, если я ни чего не путаю.
Код:
struct Account
{
char name[19];//ФИО больного
};
size_t length_name = strlen(list.name);//функция возвращет длину строки
size_name = (18-1) - length_name;//расчет реальной длины строки name,
19 минус нулевой элемент и минус символ таблицы, список заключен в таблицу
for(int j=0; j<size_name; j++)//присоединение необходимых пробелов
{
strcat(list_print.name," ");
}
{
char name[19];//ФИО больного
};
size_t length_name = strlen(list.name);//функция возвращет длину строки
size_name = (18-1) - length_name;//расчет реальной длины строки name,
19 минус нулевой элемент и минус символ таблицы, список заключен в таблицу
for(int j=0; j<size_name; j++)//присоединение необходимых пробелов
{
strcat(list_print.name," ");
}