#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 105
struct student {
int stNum;
char name[20];
int score;
};
void insert(struct student *info, int *cnt) {
int inputLoc = 0;
for(int i=0; i<MAX_SIZE; i++) {
if(info[i].stNum == 0) {
inputLoc = i;
break;
}
}
info[inputLoc].stNum = *cnt+1;
scanf("%s %d", info[inputLoc].name, &info[inputLoc].score);
*cnt=*cnt+1;
}
void delInfo(struct student *info, int *cnt) {
int min=info[0].stNum, max=info[*cnt-1].stNum;
int pickup;
printf("what you want delete number? (%d ~ %d)\n", min, max);
scanf("%d", &pickup);
for(int i=0; i<*cnt; i++) {
if(pickup == info[i].stNum) {
int checkmate = i;
strcpy(info[checkmate].name, "");
info[checkmate].stNum = -1;
info[checkmate].score = 0;
for(int j=i; j<*cnt; j++) {
strcpy(info[j].name, info[j+1].name);
info[j].stNum = info[j+1].stNum;
info[j].score = info[j+1].score;
}
printf("your %d is deleted\n", pickup);
return;
}
}
printf("we dont have to your %d\n", pickup);
}
void view(struct student *info, int *cnt) {
for(int i=0; i<*cnt; i++) {
//if(info[i].stNum != 0 && info[i].score != 0)
printf("%3d\t%7s\t%2d\n", info[i].stNum, info[i].name, info[i].score);
}
}
int main()
{
struct student info[MAX_SIZE] = {0};
int i, n, cnt=0;
for(;;) {
printf("[1:insert] [2:delete] [3:view]\nselect :> ");
scanf("%d", &n);
switch(n) {
case 1:
insert(info, &cnt);
break;
case 2:
delInfo(info, &cnt);
break;
case 3:
view(info, &cnt);
break;
default:
printf("input error");
break;
}
}
}