73>
In una classe sono memorizzati 10 studenti:
● cognome;
● nome;
● voto_info
● voto_condotta
Realizza un programma che implementi le seguenti funzionalità:
1. Inserimento dei dati dgli alunni;
2. dato il nominativo di un alunno permetta di modificare solo il voto di condotta
3. modifichi (incrementando o decrementando di un punto il voto di informatica di tutti gli alunni)
0. Esc
#include<stdio.h>
#include<string.h>
#define DIM 2
#define L 20
struct studenti{
char cognome[L];
char nome[L];
int info;
int condotta;
}alunni[DIM];
void carica_dati(struct studenti []);
void visualizza_dati(struct studenti []);
void modifica_condotta(struct studenti []);
void modifica_info(struct studenti []);
int main()
{
int scelta;
scelta=5; //numero casuale che non sia tra quelli da inserire
while(1){
printf("0>esc\n1>carica_dati\n2>visualizza_dati\n3>modifica_condotta\n4>modifica_info\nscelta: ");
scanf("%d",&scelta);
fflush(stdin);
switch(scelta){
case 0:
return 0;
break;
case 1:
putchar('\n');
carica_dati(alunni);
break;
case 2:
putchar('\n');
visualizza_dati(alunni);
break;
case 3:
putchar('\n');
modifica_condotta(alunni);
break;
case 4:
putchar('\n');
modifica_info(alunni);
break;
default:
printf("Errore!!\n");
break;
}
putchar('\n');
scelta=5;
}
return 0;
}
void carica_dati(struct studenti alunni[DIM]){
int i;
for(i=0;i<DIM;i++){
printf("Cognome alunno %d: ",i+1);
gets(alunni[i].cognome);
fflush(stdin);
printf("Nome alunno %d: ",i+1);
gets(alunni[i].nome);
fflush(stdin);
do{
printf("Voto info alunno %d: ",i+1);
scanf("%d",&alunni[i].info);
fflush(stdin);
}while(alunni[i].info<=0 || alunni[i].info>10);
do{
printf("Voto condotta alunno %d: ",i+1);
scanf("%d",&alunni[i].condotta);
fflush(stdin);
}while(alunni[i].condotta<=0 || alunni[i].condotta>10);
putchar('\n');
}
}
void visualizza_dati(struct studenti alunni[DIM]){
int i;
for(i=0;i<DIM;i++){
printf("Alunno %d: %s %s\n",i+1,alunni[i].cognome,alunni[i].nome);
printf("Voto info: %d ",alunni[i].info);
printf("Voto condotta: %d",alunni[i].condotta);
putchar('\n');
}
}
void modifica_condotta(struct studenti alunni[DIM]){
int i,flag;
char n[L],c[L];
flag=0;
printf("inserisci nome: ");
gets(n);
fflush(stdin);
printf("inserisci cognome: ");
gets(c);
fflush(stdin);
for(i=0;i<DIM;i++){
//sistemare sta parte qua
if(strcmp(n,alunni[i].nome)==0 && strcmp(c,alunni[i].cognome)==0){
flag=1;
printf("modifica voto condotta: ");
scanf("%d",&alunni[i].condotta);
fflush(stdin);
}
}
if(flag==0){
printf("studente non trovato!!");
putchar('\n');
}
}
void modifica_info(struct studenti alunni[DIM]){
int i;
for(i=0;i<DIM;i++){
alunni[i].info++;
}
}
073.c