Advertisement
Motocelium

Calendar

Nov 14th, 2024 (edited)
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.32 KB | None | 0 0
  1. //main.c
  2.  
  3. #include <stdio.h>
  4. #include "functii.h"
  5.  
  6. int main(){
  7.     int c;
  8.     struct calendar *calendar_evenimente = NULL;
  9.    
  10.     do{
  11.         scanf("%d", &c);
  12.         switch (c){
  13.             case 1:{
  14.                 int temp_data;
  15.                 char temp_eveniment[100];
  16.                 getchar();
  17.                 scanf("%s", temp_eveniment);
  18.                 scanf("%d", &temp_data);
  19.                 calendar_evenimente = new_node(temp_data, temp_eveniment, calendar_evenimente);
  20.                 break;
  21.             }
  22.            
  23.             case 2:{
  24.                 char temp_eveniment[100];
  25.                 getchar();
  26.                 scanf("%s", temp_eveniment);
  27.                 cauta_eveniment(temp_eveniment, calendar_evenimente);
  28.                 break;
  29.             }
  30.            
  31.             case 3:{
  32.                 int temp_data;
  33.                 scanf("%d", &temp_data);
  34.                 cauta_data(temp_data, calendar_evenimente);
  35.                 break;
  36.             }
  37.            
  38.             case 4:{
  39.                 afisare_evenimente(calendar_evenimente);
  40.                 break;
  41.             }
  42.            
  43.             case 5:{
  44.                 afisare_cronologica(calendar_evenimente);
  45.                 break;
  46.             }
  47.         }
  48.        
  49.     }while (c!=6);
  50.    
  51.     return 0;
  52. }
  53.  
  54. //functii.h
  55.  
  56. #ifndef FUNCTII_H
  57. #define FUNCTII_H
  58.  
  59. #include <stdlib.h>
  60. #include <stdio.h>
  61. #include <string.h>
  62.  
  63. struct calendar{
  64.     int data;
  65.     char eveniment[100];
  66.     struct calendar *next;
  67. };
  68.  
  69. struct calendar * new_node(int, char *, struct calendar *);
  70. void cauta_eveniment(char*, struct calendar *);
  71. void cauta_data(int, struct calendar *);
  72. void afisare_evenimente(struct calendar*);
  73. void afisare_cronologica(struct calendar*);
  74.  
  75. #endif
  76.  
  77. //functii.c
  78.  
  79. #include "functii.h"
  80.  
  81. struct calendar * new_node(int temp_data, char temp_eveniment[], struct calendar *head){
  82.    
  83.     struct calendar *nod = malloc(sizeof(struct calendar));
  84.     nod->data = temp_data;
  85.     strcpy(nod->eveniment, temp_eveniment);
  86.     nod->next = NULL;
  87.    
  88.     if(head == NULL)
  89.         head = nod;
  90.    
  91.     else{
  92.         struct calendar *nod_curent = head;
  93.         while(nod_curent->next) nod_curent = nod_curent -> next;
  94.         nod_curent->next = nod;
  95.     }
  96.    
  97.     return head;
  98. }
  99.  
  100. void cauta_eveniment(char *s, struct calendar *head){
  101.     struct calendar *nod = head;
  102.     while(nod){
  103.         if(strcmp(nod->eveniment, s) == 0)
  104.             printf("%d\n", nod->data);
  105.         nod = nod->next;
  106.     }
  107. }
  108. void cauta_data(int data, struct calendar * head){
  109.     struct calendar *nod = head;
  110.     while(nod){
  111.         if(nod->data == data)
  112.             printf("%s\n", nod->eveniment);
  113.         nod = nod->next;
  114.     }
  115. }
  116.  
  117. void afisare_evenimente(struct calendar* head){
  118.     struct calendar *nod = head;
  119.    
  120.     while(nod){
  121.         printf("%s %d\n", nod->eveniment, nod->data);
  122.         nod = nod->next;
  123.     }
  124. }
  125.  
  126. void afisare_cronologica(struct calendar* head){
  127.     struct calendar *nodi, *nodj;
  128.    
  129.     for(nodi = head; nodi->next; nodi = nodi->next)
  130.         for(nodj = nodi->next; nodj; nodj = nodj->next)
  131.             if(nodi->data > nodj->data){
  132.                 int aux = nodi->data;
  133.                 nodi->data = nodj->data;
  134.                 nodj->data = aux;
  135.             }
  136.     afisare_evenimente(head);
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement