c言語学生情報管理システム


リストの内容
  • システムはメニュー方式で
  • 動作する.
  • 学生情報入力機能(学生情報用ファイル保存)—入力
  • 学生情報閲覧機能——出力
  • クエリー、ソート機能——アルゴリズム1、学号クエリー2、名前クエリー
  • 学生情報の削除と修正
  • インターフェースは簡単明瞭です.
  • は一定の誤り許容能力を持っており、例えば入力の成績が0~100の間でなければ、不法であることを示し、再入力を要求する.
  • はチェーンテーブルで実現される.
  • #include   
    #include   
    #include   
    #include   
    #include   
    
    typedef struct Student  
    {  
       char name[100]; //    
       char num[100];  //    
       char sex;//   (w    m    )  
       int age;//    
       int score;//    
    }stu;  
    typedef struct LNode  
    {  
        stu data;  
        struct LNode *next;  
    }LinkList;  
    
    char nam[100];//    
    char nu[100];//    
    char s;//    
    int ag;//    
    int sc;//    
    
    void welocome()//      
    {  
        system("color b1");  
        printf("````````````````````````````````````````````````````````````````````````````````");  
        printf("
    "
    ); printf("
    "
    ); printf("
    "
    ); printf(" *********************** *************************
    "
    ); printf("
    "
    ); printf("
    "
    ); printf("
    "
    ); printf("````````````````````````````````````````````````````````````````````````````````"); } void menu()// { system("color e3"); printf(" |________________________________________________|
    "
    ); printf(" | |
    "
    ); printf(" | |
    "
    ); printf(" | |
    "
    ); printf(" | 0、 |
    "
    ); printf(" | 1、 |
    "
    ); printf(" | 2、 |
    "
    ); printf(" | 3、 |
    "
    ); printf(" | 4、 |
    "
    ); printf(" | 5、 |
    "
    ); printf(" | 6、 |
    "
    ); printf(" | 7、 |
    "
    ); printf(" | |
    "
    ); printf(" |________________________________________________|
    "
    ); return ; } void InitList( LinkList *&L)// { L=(LinkList *)malloc(sizeof(LinkList)); L->next=NULL; } void ListInsert(LinkList *&L,LinkList *p)// { LinkList *q=NULL; q=L; p->next=q->next; q->next=p; } void addstu(LinkList *&L)// { system("color f2"); printf(" :
    "
    ); printf(" :"); scanf("%s",nu); LinkList *q=L->next; while(q!=NULL ) { if(strcmp(q->data.num,nu)==0)// { printf("
    "
    ); break; } q=q->next; } if(q==NULL) { LinkList *p; InitList(p); strcpy(p->data.num,nu); printf(" :") ; scanf("%s",nam) ; strcpy(p->data.name,nam); printf(" :(w m )"); scanf(" %c",&s); p->data.sex=s; printf(" :"); scanf("%d",&ag); p->data.age=ag; printf(" :"); scanf("%d",&sc); while(sc>100||sc<0){ printf(" ,
    "
    ); scanf("%d",&sc); } p->data.score=sc; ListInsert(L,p); } } void deletestu(LinkList *L)// { system("color f4"); printf(" :"); scanf("%s",nu); // LinkList *p,*pre; if(L->next==NULL) { printf(" ,
    "
    ); return; } pre=L; p=pre->next; int judge=0; while(p) { if(strcmp(p->data.num,nu)==0) { judge=1; pre->next =p->next; free(p); printf("
    "
    ); break; } pre=p; p=p->next; } if(judge==0) printf("
    "
    ); } void changestu(LinkList *L)// { int judge=1; system("color e4"); printf(" :
    "
    ); scanf("%s",nu); LinkList *q=L->next; while(q!=NULL ) { if(strcmp(q->data.num,nu)==0) { judge=1; printf(" :1. 2. 3.
    "
    ); int n; scanf("%d",&n); switch(n) { case 1: printf(" :"); scanf("%s",nam); printf(" :%s
    "
    ,nam); strcpy(q->data.name,nam); printf(" !
    "
    ); break; case 2: printf(" "); scanf("%d",&sc); printf(" :%d
    "
    ,sc); q->data.score=sc; printf(" !
    "
    ); break; case 3: printf(" :"); scanf("%d",&ag); printf(" :%d
    "
    ,ag); q->data.age=ag; printf(" !
    "
    ); break; default : printf("
    "
    ); break; } } q=q->next; } if(judge==0) { printf("
    "
    ); } } void findstu(LinkList *L)// { int flag; system("color b1"); printf("1. :
    "
    ); printf("2. :
    "
    ); printf(" :"); scanf("%d",&flag); if(flag==1){ printf(" :"); scanf("%s",nu); // LinkList *q=L->next; while(q!=NULL ) { if(strcmp(q->data.num,nu)==0) { printf(" :%s
    "
    ,q->data.name); printf(" :%s
    "
    ,q->data.num); printf(" :%c
    "
    ,q->data.sex); printf(" :%d
    "
    ,q->data.age); printf(" :%d
    "
    ,q->data.score); break; } q=q->next; } if(q==NULL) printf("
    "
    ); }else{ printf(" :"); scanf("%s",nam); LinkList *q=L->next; while(q!=NULL ) { if(strcmp(q->data.name,nam)==0) { printf(" :%s
    "
    ,q->data.name); printf(" :%s
    "
    ,q->data.num); printf(" :%c
    "
    ,q->data.sex); printf(" :%d
    "
    ,q->data.age); printf(" :%d
    "
    ,q->data.score); break; } q=q->next; } if(q==NULL) printf("
    "
    ); } } void display(LinkList *&L)// { LinkList *q=L->next; if(q==NULL) { printf(" ,
    "
    ); return; } while(q) { system("color c0"); printf(" :%s :%s :%d :%c :%d
    "
    ,q->data.num,q->data.name,q->data.age,q->data.sex, q->data.score); q=q->next; } } void paixu(LinkList *L)// { system("color f9"); LinkList *q,*p,*r=L->next; // if(r==NULL) { printf(" ,
    "
    ); return; } while(r) // { p=r; q=r->next; LinkList *tmp;// InitList(tmp); while(q) { if(q->data.score > p->data.score) { /* q tmp*/ strcpy(tmp->data.num,q->data.num); strcpy(tmp->data.name,q->data.name); tmp->data.sex=q->data.sex; tmp->data.age=q->data.age; tmp->data.score=q->data.score; /* p q*/ strcpy(q->data.num,p->data.num); strcpy(q->data.name,p->data.name); q->data.sex=p->data.sex; q->data.age=p->data.age; q->data.score=p->data.score; /* exchange p*/ strcpy(p->data.num,tmp->data.num); strcpy(p->data.name,tmp->data.name); p->data.sex=tmp->data.sex; p->data.age=tmp->data.age; p->data.score=tmp->data.score; } q=q->next; } r=r->next; } printf(" :
    "
    ); display(L); } void saveStuDentFile(LinkList * &L)// { FILE *fp; LinkList *p=L->next; if((fp=fopen("student.txt","w"))==NULL)// .txt { printf(" ,
    "
    ); exit(1); } while(p) { fprintf(fp,"%s %s %c %d %d
    "
    ,p->data.num,p->data.name,p->data.sex,p->data.age,p->data.score); p=p->next; printf("
    "
    ); } fclose(fp); } void readStuDentput (LinkList *&L) // { FILE *fp; fp=fopen("student.txt","rb"); // .txt if(fp==NULL) { printf("
    "
    ); exit(0); // } int i=0; while(!feof(fp)) { char nu[100];// char nam[100];// char s;// int ag;// int sc;// fscanf(fp," %s %s %c %d %d",nu,nam,&s,&ag,&sc); i++; } fclose(fp); FILE *FP; FP=fopen("student.txt","rb"); // .txt if(FP==NULL) { printf("
    "
    ); exit(0); // } int b=i-1; int j=1; while(!feof(FP)) { fscanf(FP,"%s %s %c %d %d",nu,nam,&s,&ag,&sc); LinkList *n=(LinkList *)malloc(sizeof(LinkList)); strcpy(n->data.num,nu);// strcpy(n->data.name,nam);// n->data.sex=s; n->data.age=ag; n->data.score=sc; ListInsert(L,n);// n=n->next; if(j==b) break; j++; } fclose(FP); // } int main() { system("cls");// welocome();// Sleep(3000);// 3 LinkList *L; InitList(L); readStuDentput (L);// int a; int choose; while(1) { printf(" :
    "
    ); menu();// scanf("%d",&choose); switch(choose) { case 0:// printf(" ! "); exit(0); case 1:// addstu(L);// break; case 2:// deletestu(L);// break; case 3:// changestu(L);// break; case 4:// findstu(L);// break; case 5:// paixu(L); break; case 6:// display(L); break; case 7:// saveStuDentFile(L); break; default: printf("
    "
    ); break; } } }