Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //main.c
- #include <stdio.h>
- #include "functii.h"
- int main(){
- int c;
- struct calendar *calendar_evenimente = NULL;
- do{
- scanf("%d", &c);
- switch (c){
- case 1:{
- int temp_data;
- char temp_eveniment[100];
- getchar();
- scanf("%s", temp_eveniment);
- scanf("%d", &temp_data);
- calendar_evenimente = new_node(temp_data, temp_eveniment, calendar_evenimente);
- break;
- }
- case 2:{
- char temp_eveniment[100];
- getchar();
- scanf("%s", temp_eveniment);
- cauta_eveniment(temp_eveniment, calendar_evenimente);
- break;
- }
- case 3:{
- int temp_data;
- scanf("%d", &temp_data);
- cauta_data(temp_data, calendar_evenimente);
- break;
- }
- case 4:{
- afisare_evenimente(calendar_evenimente);
- break;
- }
- case 5:{
- afisare_cronologica(calendar_evenimente);
- break;
- }
- }
- }while (c!=6);
- return 0;
- }
- //functii.h
- #ifndef FUNCTII_H
- #define FUNCTII_H
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- struct calendar{
- int data;
- char eveniment[100];
- struct calendar *next;
- };
- struct calendar * new_node(int, char *, struct calendar *);
- void cauta_eveniment(char*, struct calendar *);
- void cauta_data(int, struct calendar *);
- void afisare_evenimente(struct calendar*);
- void afisare_cronologica(struct calendar*);
- #endif
- //functii.c
- #include "functii.h"
- struct calendar * new_node(int temp_data, char temp_eveniment[], struct calendar *head){
- struct calendar *nod = malloc(sizeof(struct calendar));
- nod->data = temp_data;
- strcpy(nod->eveniment, temp_eveniment);
- nod->next = NULL;
- if(head == NULL)
- head = nod;
- else{
- struct calendar *nod_curent = head;
- while(nod_curent->next) nod_curent = nod_curent -> next;
- nod_curent->next = nod;
- }
- return head;
- }
- void cauta_eveniment(char *s, struct calendar *head){
- struct calendar *nod = head;
- while(nod){
- if(strcmp(nod->eveniment, s) == 0)
- printf("%d\n", nod->data);
- nod = nod->next;
- }
- }
- void cauta_data(int data, struct calendar * head){
- struct calendar *nod = head;
- while(nod){
- if(nod->data == data)
- printf("%s\n", nod->eveniment);
- nod = nod->next;
- }
- }
- void afisare_evenimente(struct calendar* head){
- struct calendar *nod = head;
- while(nod){
- printf("%s %d\n", nod->eveniment, nod->data);
- nod = nod->next;
- }
- }
- void afisare_cronologica(struct calendar* head){
- struct calendar *nodi, *nodj;
- for(nodi = head; nodi->next; nodi = nodi->next)
- for(nodj = nodi->next; nodj; nodj = nodj->next)
- if(nodi->data > nodj->data){
- int aux = nodi->data;
- nodi->data = nodj->data;
- nodj->data = aux;
- }
- afisare_evenimente(head);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement