学生管理系统

在我亲爱的于老师感召下。。。。。。(好别扭啊)。。。写了一下这个学生管理系统。。还是cmd。。不过!!!!!!我终于能用Java写出可视化窗口了!!开心
这个程序也很简单。。。不过对于输入我没有进行错误判断。。。。因为C来写。。。错误真的很恶心,不像Java。。。所以恳求大家就按要求来..(可以将学生信息打印为excel表格哦)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
struct node{
    int score;
    char name[110];
    char student_id[100];
    int order_num;
    struct node *next;
};
struct node *head;///所有的信息链の开头
/*************************************************
                   主界面打印
*************************************************/
void show(){
    for(int i = 1;i<=80;i++)
    printf("*");
    printf("\n");
    printf("\t\t\t1:Creat a new sdutent file\n\n");///初始建立
    printf("\t\t\t2:Display sdutent file\n\n");///展示
    printf("\t\t\t3:Delet sdutent file\n\n");///删除
    printf("\t\t\t4:Insert new sduten file\n\n");///插入
    printf("\t\t\t5:Modify student file\n\n");///修改
    printf("\t\t\t6:Printto excel form\n\n");///打印
    printf("\t\t\t7:Game over\n\n");//结束 
    for(int i = 1;i<=80;i++)
    printf("*");
    printf("\n");
}
/*************************************************
                 判断操作输入正误
*************************************************/
bool Judge_cho(char *cho){
    if(strlen(cho) > 1)
        return false;
    if(cho[0] > '7'||cho[0] < '1')
        return false;
    return true;
}
/*************************************************
                 初始录入学生信息
*************************************************/
struct node *Creat_file(){
    system("cls");
    printf("Please enter the number of student in the intital entry\n");
    int sum,i;
    struct node *p,*q,*head;
    head = new node;
    head -> next = NULL;
    scanf("%d",&sum);
    //getchar();
    p = head;
    for(i = 1;i <= sum; i++){
        q = new node;
        q -> order_num = i;
        system("cls");
        printf("Please enter No.%d student name: ",i);
        scanf("%s",q -> name);
        printf("Please enter No.%d student sdutent id: ",i);
        scanf("%s",q -> student_id);
        printf("Please enter No.%d student score: ",i);
        scanf("%d",&q -> score);
        q -> next = NULL;
        p -> next = q;
        p = q;
    }
    printf("Input complete!");
    return head;
}
/*************************************************
                   展示学生信息
*************************************************/
void Display_file(struct node *head){
    struct node *p;
    system("cls");
    printf("\n\tOrder number\tStudent name\tStudent student_id\tStudent score\n");
    p = head -> next;
    while(p){ 
        printf("\n\t%d\t\t%s\t\t%s\t\t%d\n",p -> order_num,p -> name,p -> student_id,p -> score);//
        p = p -> next; 
    }
    printf("\n\n\nPress any key to continue");
    char a[100];
    scanf("%s",a);
}
/*************************************************
                  删除学生信息
*************************************************/
void Delet_file(struct node *head){
    system("cls");
    struct node *p,*q,*t;
    printf("Please enter the number of students who need to delete student information\n");
    char a[101];
    scanf("%s",a);
    p = head;
    int flag = 0;
    q = head -> next;
    while(q){
        if(strcmp(q -> student_id,a)==0){
            flag = 1;
            break;
        }
        p = q;
        q = q -> next;
    }
    t = q -> next;
    while(t){
        t->order_num--;
        t = t -> next; 
    }
    if(flag){
        p -> next = q -> next;
        free(q);
        printf("Delete success\n");
    }
    else
        printf("Delete failed\nCan't find this student id\n");
    Sleep(1000);
    printf("\n\n\nPress any key to continue\n");
    char b[10];
    scanf("%s",b);
}
/*************************************************
                  增添学生信息
*************************************************/
void Insert_new_file(struct node *head){
    system("cls");
    printf("Please enter the location where you want to add student information\n");
    int n;
    scanf("%d",&n);
    struct node *q,*t,*p = head -> next;
    t = head;
    while(p -> order_num != n){
        p = p -> next;
        t = t -> next;
    }
    q = new node;
    t -> next = q;
    q -> next = p; 
    printf("Please enter the id of student to add\n");
    scanf("%s",q -> student_id);
    printf("Please enter the name of student to add\n");
    scanf("%s",q -> name);
    printf("Please enter the score of student to add\n");
    scanf("%d",&q -> score);
    q -> order_num = n;
    while(p){
        p -> order_num ++;
        p = p -> next;
    }
    Sleep(1000);
    printf("\n\n\nPress any key to continue\n");
    char b[10];
    scanf("%s",b);
}
/*************************************************
                  修改学生信息
*************************************************/
void Modify_file(struct node *head){
    struct node *p,*q;
    system("cls");
    printf("Please enter the number of students who need to modify student information\n");
    char a[1010];
    scanf("%s",a);
    int flag = 0;
    p = head -> next;
    while(1){
        if(strcmp(a,p -> student_id)){
            flag = 1;
            break;
        }
        else
            p = p -> next;
    }
    if(flag){
        while(1){
            system("cls");
            printf("Please enter the information you want to modify\n");
            printf("1 -> student id\n");
            printf("2 -> student socre\n");
            printf("3 -> student name\n"); 
            printf("4 -> exit routine\n");
            int n;
            scanf("%d",&n);
            if(n == 1){
                printf("Please enter a new student id\n");
                scanf("%s",p -> student_id);
            }
            if(n == 2){
                printf("Please enter a new student socre\n");
                scanf("%d",&p->score);
            }
            if(n==3){
                printf("Please enter a new student name\n");
                scanf("%d",p -> name);
            }   
            if(n==4)
                break;
        }

        printf("Modify success\n");
    }
    else
        printf("Modify failed\nCan't find this student id\n");
    printf("\n\n\nPress any key to continue\n");
    char b[10];
    scanf("%s",b);
}
/*************************************************
                  打印学生信息
*************************************************/
void Print_file(struct node *head){
    FILE *fp = NULL;
    fp = fopen("D:\\sdutent_information.xls","w");
    struct node *p;
    p = head -> next;
    char a[100] = {"Order number"};
    char b[100] = {"Student name"};
    char c[100] = {"Student student_id"};
    char d[100] = {"Student score"};
    fprintf(fp,"%s\t%s\t%s\t%s\n",a,b,c,d);
    while(p){
        fprintf(fp,"%d\t%s\t%s\t%d\n",p -> order_num,p -> name,p -> student_id,p -> score);
        p = p -> next;
    }
    fclose(fp);
    printf("Print success\n");
    printf("EXCEL named sdutent_information is in D disk\n");
    printf("\n\n\nPress any key to continue\n");
    char f[10];
    scanf("%s",f);
}
/*************************************************
                  主函数 
*************************************************/
int main(){
    int flag = 0; 
    while(1){
        if(flag==1)
            break;
        system("cls");
        show();
        char cho[10];
        printf("\t\t\tPlease enter your choice: ");
        scanf("%s",cho);
        if(!Judge_cho(cho)){
            system("cls");
            printf("\n\n\n\n\n\n\t\t\t   Waring:illegal operation!\n");
            Sleep(2000);
            continue;
        }
        struct node *head;///所有的信息链の开头
        switch(cho[0]){
            case '1':
                head = Creat_file();
                break;
            case '2':
                Display_file(head);
                break;
            case '3':
                Delet_file(head);
                break;
            case '4':
                Insert_new_file(head);
                break;
            case '5':
                Modify_file(head);
                break;
            case '6':
                Print_file(head);
                break;
            case '7':
                flag = 1;
                break;
        }
    }
    printf("hahahahahahahahahahahahha\n");
    printf("2333333333333333333333333\n");
}

等5月份上半月过去,就可以开心的,全身心的学Java啦!!!!哈哈哈哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值