codice:
//main
#include "header.h"
int main (){
matrice mat;
int select=0;
int rig=0;
int col=0;
printf("=== Benvenuti nel programma di gestione ==\n");
printf("=== delle matrici==\n");
do{
printf("Premere:\n");
printf("1 Per inserire la matrice da tastiera\n");
printf("2 Per salvare la matrice su file da file\n");
printf("3 Per ordinare la matrice\n");
printf("4 Per caricare la matrice da file\n");
printf("5 per stampare la matrice\n");
printf("\nInserire la scelta: ");
scanf("%d",&select);
if(select==1){
do{
printf("\nInserire il numero delle colonne desiderato (Max%d): ",DIM);
scanf("%d",&col);
printf("\nInserire il numero delle colonne desiderato (Max%d): ",DIM);
scanf("%d",&rig);
}while(col<=0 || col>DIM && rig<=0 || rig>DIM);
}
switch (select){
case(1):
leggi_tastiera(mat,rig,col);
break;
case(2):
salva_matrice(mat,rig,col);
break;
case(3):
ordina_matrice(mat,rig,col);
stampa_matrice(mat,rig,col);
break;
case(4):
rig=carica_matrice(mat);
col=rig;
break;
case(5):
stampa_matrice(mat,rig,col);
break;
case(6):
inserisci_valore(mat,&rig,&col);
break;
}
printf("\n\nPer continuare premere 1 altrimenti 0: ");
scanf("%d",&select);
}while(select==1);
system("PAUSE");
return 0;
}
//Le funzioni
#include "header.h"
void leggi_tastiera(matrice mat,int col,int rig){
register int i,j;
for(i=0;i<rig;i++){
for(j=0;j<col;j++){
printf("\nInserire la stringa nella posizione %d-%d: ",i,j);
scanf("%s",&mat[i][j]);
}
}
}
void salva_matrice(matrice mat,int col,int rig){
FILE*f1;
register int i,j;
f1 = fopen("matrice.txt","w");
if(!f1){
printf("Errore apertura file");
}
for(i=0;i<rig;i++){
for(j=0;j<col;j++){
fprintf(f1,"%s\n",mat[i][j]);
}
}
fclose(f1);
if(fclose(f1)){
printf("File salvato con successo");
}else{
printf("Errore nel salvataggio del file");
}
}
//risolvere funzionamento!!!!!
void ordina_matrice(matrice mat,int col,int rig){
register int i,j,z;
stringa temp;
for(z=0;z<col;z++){
for(i=0;i<rig;i++){
for(j=0;j<col;j++){
if(strlen(mat[i][j-1])>strlen(mat[i][j])){
strcpy(temp,mat[i][j-1]);
strcpy(mat[i][j-1],mat[i][j]);
strcpy(mat[i][j],temp);
}
}
}
}
}
int carica_matrice(matrice mat){
printf("\nCarico una matrice 4X4\n");
register int i,j;
FILE* f1;
f1 = fopen("matrice.txt","r");
for(i=0;i<4;i++){
for(j=0;j<4;j++){
fscanf(f1,"%s",&mat[i][j]);
}
}
if(feof(f1)){
printf("\nIl file e' stato caricato con successo\n");
}else{
printf("\nErrore caricamento file\n");
}
fclose(f1);
return 4;
}
void stampa_matrice(matrice mat,int rig,int col){
printf("\nLa matrice attuale e':\n\n");
register int i,j;
for(i=0;i<rig;i++){
printf("\n");
for(j=0;j<col;j++){
printf("%s ",mat[i][j]);
}
}
}
// l'header
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define DIM 10
#define DIM1 10
#define MAX 100
typedef char stringa[MAX];
typedef stringa matrice[DIM][DIM1];
//int leggi_file(matrice mat,int *col,int *rig);
void leggi_tastiera(matrice mat,int col,int rig);
void salva_matrice(matrice mat,int col,int rig);
void ordina_matrice(matrice mat,int col,int rig);
int carica_matrice(matrice mat);
void stampa_matrice(matrice mat,int rig,int col);
int inserisci_valore(matrice mat,int *rig,int *col);