Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Привет всем ! прошу помочь найти баг в программе
- #include <cstdlib>
- #include <iostream>
- #include <string.h>
- #include <cstdio>
- using namespace std;
- struct User{
- char name[12];
- char surname[20];
- char nomer[12];
- };
- void showall (User &us);
- void addUser(User& us);
- void deleteUser(User user[],int size);
- int main(int argc, char** argv) {
- setlocale(LC_ALL,"Rus");
- //int size;
- User telbook[10];
- int k;
- cout<< "********Телефонный справочник********"<<"nnn";
- int iadd=0;
- char v;
- while(v!='n')
- {
- cout << "1 - Добавить запись.n" <<"2 - Показать всё.n"<<"3 - Удалить записьn";
- cout << "Введи команду: ";
- cin>> k;
- switch(k)
- {
- case 1:
- system("cls");
- addUser(telbook[iadd]);
- if (iadd>=1){
- for (int i=(iadd-1);i>=0;i--)
- {
- if(telbook[iadd].nomer==telbook[i].nomer)
- {
- cout<< "Введеный номер совпадает с номером " <<i+1 <<"пользователя";
- addUser(telbook[iadd]);
- }
- }cout << "Запись добавленаn";
- } iadd++; break;
- case 2:system("cls");
- for (int i =0;i<iadd;i++)
- {
- cout << i+1<< " Запись:n"; showall(telbook[i]);
- }
- cout << telbook[0].nomer<<'n'<<"Strlen:"<<strlen(telbook
- [0].nomer);
- break;
- case 3:
- system("cls");
- deleteUser(telbook, iadd);
- break;
- default :
- cout << "некорректная командаn";
- cin>>k;
- }
- cout<< "n Продолжить?? y-да/ n-выход из программыn";
- cin >>v;
- }
- return 0;
- }
- void addUser(User& us){
- int i=0;
- char nom[12];
- bool esdigit;
- cout<<"Пишите латиницейnn";
- do{//name
- esdigit=false;
- cout<<endl<< "enter namen";
- cin>>us.name;
- for (i=0;i<strlen(us.name);i++){
- if(!isalpha(us.name[i]))
- {
- cout <<"Имя не должно содержать цифрn" ;
- esdigit=true;
- }
- if(isspace(us.name[i])){break;break;}
- }
- }
- while(strlen(us.name)>12 || esdigit);
- i=0;
- do{//surneme
- esdigit=false;
- cout<< "enter surnamen";
- cin>>us.surname;
- for (i=0;i<strlen(us.surname);i++){
- if(isdigit(us.surname[i]))
- {
- cout <<"Фамилия не должна содержать цифрn" ;
- esdigit=true;break;
- }
- }
- }
- while(strlen(us.name)>20 ||strlen(us.name)<=0|| esdigit);
- bool isbykva;
- i=0;
- do{//nomer
- isbykva=false;
- cout <<"n"<< "enter nomern";
- cin>>us.nomer;
- for(i=0;i<strlen(us.nomer);i++){
- if(isalpha(us.nomer[i]))
- {
- cout<< "Номер не должен содержать буквn";
- isbykva=true;
- break;
- }
- }
- if(strlen(us.nomer)!=12)cout <<"В номере 12 цифр!!";
- }while (strlen(us.nomer)!=12 || isbykva);
- i=0;//strcpy(us.nomer,nom);
- }
- void deleteUser(User user[],int size){
- bool isbykva;
- char nomer[12];
- cout<<"n Введите номер пользователя которого желаете удалитьn";
- do{
- isbykva=false;
- cin>>nomer;
- if(strlen(nomer)!=12)cout <<"В номере 12 цифр!!";
- for(int i=0;i<strlen(nomer);i++)
- {
- if(isalpha(nomer[i]))
- {
- cout<< "Номер не должен содержать буквn";
- isbykva=true;
- break;
- }
- }
- }while (strlen(nomer)!=12 || isbykva);
- bool find= false;
- for (int i =0;i<=size;i++)
- {
- if (nomer==user[i].nomer)
- {
- find=true;//user[i].nomer=user[size-1].nomer;
- break;
- }
- if (find)
- {
- cout << "пользователь "<< user[i].name <<" "<< user[i].surname<< "
- удален";
- user[i]=user[size];
- --size;
- }else cout<< "Запись не найдена!";
- }
- }
- void showall (User &us){
- cout << us.name << " "<< us.surname<< "n"<< us.nomer<<"n";
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement