Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Plain Text by 1111 ( 14 years ago )
#include "stdafx.h"

#include <iostream>
#include <string.h>

using namespace std;

struct date{
 int dd,mm,yy;
};

struct student{
 char *name;
 date bd;
};

int datecmp(date,date);
void date_print(date);
void sort(student*,int);

int _tmain(int argc, _TCHAR* argv[])
{
 setlocale(LC_ALL,"RUS");
 int n,i;
 char f[25];
 student *p;
 cout<<"Введите количество студентов ";
 cin>>n;
 p=new student[n];
 for(i=0;i<n;i++){
  cout<<"Введите фамилию "<<i+1<<"-го студента ";
  cin>>f;
  cout<<"Введите его дату рождения ";
  cin>>p[i].bd.dd>>p[i].bd.mm>>p[i].bd.yy;
  p[i].name=f;
 }
 cout<<"Список студентов :\n";
 for(i=0;i<n;i++){
 cout.width(26);
 cout<<p[i].name<<" ";
 date_print(p[i].bd);
 }
 sort(p,n);
 cout<<"Упорядоченный список студентов :\n";
 for(i=0;i<n;i++){
  cout.width(26);
  cout.setf(1);
  cout<<p[i].name<<" ";
  date_print(p[i].bd);
 }
 getchar();
 return 0;
}

void date_print(date d)
{
 string str,dd,mm,yy;
 char s[9]={NULL};
 itoa(d.dd,s,10);
 dd=s;
 if(dd.length()==1){
 dd+=dd[0];
 dd[0]='0';
 }
 itoa(d.mm,s,10);
 mm=s;
 if(mm.length()==1){
 mm+=mm[0];
 mm[0]='0';
 }
 itoa(d.yy,s,10);
 yy=s;
 str=dd;
 str+='.';
 str+=mm;
 str+='.';
 str+=yy;
 for(int i=0;i<str.length();i++)
  cout<<s[i];
 cout<<endl;
 str.clear();dd.clear();mm.clear();yy.clear();
}
void sort(student *d,int n)
{
 int f,k=0,i;{
  do{
  f=0;
  for(i=0;i<n-1-k;i++,k++){
   if(strcmp(d[i].name,d[i+1].name)>0){
    student tmp;
    tmp=d[i];
    d[i]=d[i+1];
    d[i+1]=tmp;
    f=1;
    }
   }
  }while(f);
 }
}

 

Revise this Paste

Your Name: Code Language: