一个很烂的学生成绩管理系统

来源:互联网 发布:淘宝买黄金可靠吗 编辑:程序博客网 时间:2024/05/20 22:01
#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>#include<windows.h>#define M 1000#define m1 "\t--------------------------------"#define m2 "\t| 1.管理员注册 | 2.登陆 | 3.退出系统"#define m3 "\t--------------------------------?"struct student{    int num;    char name[20];    char sex[20];    int xueling;    int math;    int English;    int zhuanye;} stu[M];void munu1();void munu();void save(int);void input();void display();int load();void add();void del();void search();void search_num();void search_name();void change();void ZC();void DL();void save1(int);struct ak{    char s[20];    char ps[20];}aker[2];struct ac{    char ss[20];    char pss[20];};void save1(int n){    FILE *fp;    int i;    if((fp=fopen("stud.dat","wb"))==NULL)    {        printf("cannot open file\n");        exit(1);    }    for(i=0;i<n;i++)        if(fprintf(fp,"%20s%20s",aker[i].s,aker[i].ps)<0)        printf("file write error\n");    fclose(fp);}void ZC(){    int n=1;    printf("请注册两名管理员:\n");fflush(stdin);    for(int i=0;i<n;i++)    {        printf("请输入账号: ");        fflush(stdin);        scanf("%s",aker[i].s);        printf("请输入密码: ");        fflush(stdin);        scanf("%s",aker[i].ps);    }    save1(n);}void DL(){    FILE *fp;    ac tmps;    int i,success=0;    printf("************************************\n");    printf("\t  欢迎进入 nyist \n");    printf("************************************\n");    again:         printf("输入账号: \n");            scanf("%s",tmps.ss);       printf("输入密码:  \n");              scanf("%s",tmps.pss);       fp=fopen("stud.dat","rb");       if(fp==NULL)       {              printf("0.0\n");              exit(0);       }       while(fscanf(fp,"%20s\n%20s\n",aker[0].s,aker[0].ps)!=0)       //while(fread(&aker[0],sizeof(ak),1,fp)!=0)       {           for(i=0;i<2;i++)              if((strcmp(tmps.ss,aker[i].s)==0)&&(strcmp(tmps.pss,aker[i].ps)==0))              {                     printf("success\n");                     success=1;                     break;              }              if(success==1)                break;       }       if(success)       {           system("cls");            munu1();            printf("Ivcxy\n");       }        char R;       if(success==0)       {              printf("错误(y/n)\n");              scanf("%c",&R);              if((R=='y')||(R=='Y'))              {                     printf("heihei\n");                     goto again;              }              else              {                     printf("end\n");                     exit(0);              }       }}int main(){//    printf("%d\n",sizeof(ak));    printf("ps:第一次登陆请注册管理员账号:\n");    int c;again:    printf(""m1"\n"m2"\n"m3"\n");    scanf("%d",&c);    if(c>2||c<1)    {        printf("nono!");        goto again;    }    switch(c)    {        case 1: ZC();break;        case 2: DL();break;        default :break;    }}void munu(){    printf("\t*****欢迎进入nyist学生成绩管理系统*****\n");    printf("\t@@@@@金牌大表弟为你服务@@@@@、n");    printf("\n");    printf("\t1.导入学生信息\n");    printf("\t2.浏览学生个人信息\n");    printf("\t3.添加学生个人信息\n");    printf("\t4.删除学生个人信息\n");    printf("\t5.修改学生个人信息\n");    printf("\t6.具体查询个人信息\n");    printf("\t7.退出系统\n");}void munu1(){    int flag;    int n;    char a;    munu();    do    {        scanf("%d",&n);        if(n>=1&&n<=7)        {            flag=1;            break;        }        else        {            flag=0;            printf("大表弟:您输入的东西我看不懂也,请在此选择\n");        }    }    while(flag==0);    while(flag==1)    {        system("cls");        switch(n)        {        case 1:            printf("请初始化学生信息\n");            input();            break;        case 2:            printf("浏览学生信息\n");            display();            break;        case 3:            printf("临时添加学生信息\n");            add();            break;        case 4:            printf(" 删除学生信息\n");            del();            break;        case 5:            printf("修改学生信息\n");            change();            break;        case 6:            printf("具体查询个人信息\n");            search();            break;        case 7:            exit(0);            break;        default:            break;        }        getchar();        printf("\n是否要继续(y or n)\n");        scanf("%c",&a);        if(a=='y')        {            flag=1;            system("cls");            munu();            printf("小表弟问:大哥说你还需要他帮助吗?1~6\n");            scanf("%d",&n);            printf("\n");        }        else        {            system("cls");            break;        }    }}void input(){    printf("请输入需要创建信息的学生人数(1--1000):\n");    int m;    scanf("%d",&m);    int i;    for(i=0; i<m; i++)    {        printf("请输入学号:\n");        srand((int)time(0));        stu[i].num=rand()%100+20000000;        if(stu[i].num!=stu[i-1].num) printf("%8d ",stu[i].num);        printf("\n");        scanf("%d",&stu[i].num);//        printf("%d ",stu[i].num);        printf("请输入学生姓名:\n");        scanf("%s",stu[i].name);        getchar();        printf("学生性别(男or女...中)\n");        scanf("%s",stu[i].sex);        getchar();        printf("请输入学龄:\n");        scanf("%d",&stu[i].xueling);        getchar();        printf("请输入学生高数成绩:\n");        scanf("%d",&stu[i].math);        getchar();        printf("请输入学生英语成绩:\n");        scanf("%d",&stu[i].English);        getchar();        printf("请输入学生专业成绩:\n");        scanf("%d",&stu[i].zhuanye);    }    printf("\n创建完毕!\n");    save(m);}void save(int m){    int i;    FILE *fp;    if((fp=fopen("lvcxy","wb"))==NULL)        printf("cannot open file\n");    for(i=0; i<m; i++)        if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)            printf("file write error\n");    fclose(fp);}int load(){    FILE *fp;    int i=0;    if((fp=fopen("lvcxy","rb"))==NULL)    {        printf("cannot open file\n");        exit(0);    }    else    {        do        {            fread(&stu[i],sizeof(struct student),1,fp);            i++;        }        while(!feof(fp));    }    fclose(fp);    return (i-1);}void display()//浏览函数{    int i;    int m=load();    for(i=0; i<m; i++)    {        printf("  \n学号\t姓名\t性别\t学龄\t高数\t英语\t专业\n");        printf("\n%d\t%s\t%s\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].xueling,stu[i].math,stu[i].English,stu[i].zhuanye);    }}void add(){    FILE *fp;    int n;    int cnt=0;    int i;    int m=load();    printf("\n原来的学生信息:\n");    display();    printf("\n");    fp=fopen("lvcxy","a");    printf("请输入想加入的学生数:\n");    scanf("%d",&n);    for(i=m; i<(m+n); i++)    {        printf("\n请输入新增加的学生信息:\n");        printf("请输入学号:");        srand((int)time(0));        stu[i].num=rand()%100+20000000;        if(stu[i].num!=stu[i-1].num)            printf("%8d",stu[i].num);        printf("\n");        printf("请输入名字:");        scanf("%s",stu[i].name);        getchar();        printf("学生性别(男or女...中)\n");        scanf("%s",stu[i].sex);        getchar();        printf("请输入学龄:\n");        scanf("%d",&stu[i].xueling);        getchar();        printf("请输入学生高数成绩:\n");        scanf("%d",&stu[i].math);        getchar();        printf("学生性别(男or女...中)\n");        scanf("%s",stu[i].sex);        getchar();        printf("请输入学龄:\n");        scanf("%d",&stu[i].xueling);        getchar();        printf("请输入学生高数成绩:\n");        scanf("%d",&stu[i].math);        getchar();        printf("请输入学生英语成绩:\n");        scanf("%d",&stu[i].English);        getchar();        printf("请输入学生专业成绩:\n");        scanf("%d",&stu[i].zhuanye);        printf("请输入学生英语成绩:\n");        scanf("%d",&stu[i].English);        getchar();        printf("请输入学生专业成绩:\n");        scanf("%d",&stu[i].zhuanye);        printf("\n");        cnt++;        printf("已经增加的人数");        printf("%d\n",cnt);    }    printf("\n添加完毕!\n");    m+=cnt;    printf("\n浏览增加后的所以学生信息:\n");    printf("\n");    save(m);    display();    fclose(fp);}void del(){    int m=load();    int i,j,n,t,flag;    char name[20];    printf("\n原来职工信息\n");    printf("\n请输入要删除同学的名字~喵喵\n");    display();//导出数据;    scanf("%s",name);    for(flag=1,i=0; i<m&&flag; i++)    {        if(!strcmp(stu[i].name,name))        {            printf("小表弟:“已经找到了>.<\n”");            printf("\n学号\t   学号 姓名 性别 学龄 高数 英语 专业\n");            printf("\n%d\t%s\t%s\t%d\t%d%d%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].xueling,                   stu[i].math,stu[i].English,stu[i].zhuanye);            printf("\n确实要删除此人信息请输入 1 ,不删除请输入 0\t不许淘气!\n");            scanf("%d",&n);            if(n==1)            {                for(j=i; j<m-1; j++)                {                    strcpy(stu[j].name,stu[j+1].name);                    stu[j].num=stu[j+1].num;                    strcpy(stu[j].sex,stu[j+1].sex);                    stu[j].xueling=stu[j+1].xueling;                    stu[j].math=stu[j+1].math;                    stu[j].English=stu[j+1].English;                    stu[j].zhuanye=stu[j+1].zhuanye;                }                flag=0;            }        }    }    if(!flag)        m=m-1;    else        printf("\n对不起,查无此人!\n");    printf("\n浏览删除后所有职工信息\n");    save(m);//调用保存    display();    printf("\n继续删除请安1,不再删除请按0");    scanf("%d",&t);    switch(t)    {    case 1:        del();        break;    case 0:        break;    default :        break;    }}void search(){    int t,flag;    do    {        printf("\n按学号查询1 姓名查询2\n");        scanf("%d",&t);        if(t>=1&&t<=2)        {            flag=1;            break;        }        else        {            flag=0;            printf("您输入有误,请重新选择!");        }    }    while(flag==0);    while(flag==1)    {        switch(t)        {        case 1: printf("按学号查询\n");flag=0;search_num();break;        case 2:            printf("按姓名查询\n");flag=0;search_name();break;        default : break;        }    }}void search_num(){    int num;    int i,t;    int m=load();    printf("请输入要查找的学号(20000001~20001000)");    scanf("%d",&num);    for(i=0; i<m; i++)        if(num==stu[i].num)        {            printf("\n已找到此人,调取记录: \n");            printf("\n学号\t   姓名\t性别\t学龄\t高数\t英语\t专业\n");            printf("\n%d\t%s\t%s\t%d\t%d\t%d\t%d\n",stu[i].name,stu[i].sex,stu[i].xueling,                   stu[i].math,stu[i].English,stu[i].zhuanye);            break;        }    if(i==m)        printf("\n查无此人\n");    printf("\n");    printf("返回查询函数请按,继续查询学号请输入1~2\n");    scanf("%d",&t);    switch(t)    {    case 1:search();break;    case 2:break;    default:break;    }}void search_name(){    char name[30];    int i,t;    int m=load();    printf("请输入要找的名字\n");    scanf("%s",name);    for(i=0; i<m; i++)        if(strcmp(stu[i].name,name)==0)        {            printf("\n已经找到,调取记录\n");            printf("\n学号\t  姓名\t性别\t学龄\t高数\t英语\t专业\n");            printf("\n%d\t  %s\t%s\t%d\t%d\t%d\t%d\n",stu[i].num,stu[i].name,stu[i].sex,stu[i].xueling,stu[i].math,stu[i].English,stu[i].zhuanye);        }    if(i==m)        printf("查无此人\n");    printf("\n");    printf("返回查询请按1,结束请安2\n");    scanf("%d",&t);    switch(t)    {    case  1:        search();        break;    case  2:        break;    default :        break;    }}void change(){    int num;    char name[20];    char sex[20];    int xueling;    int math;    int English;    int zhuanye;    int b,c,i,n,t,flag;    int m=load();    printf("\n 原来的学生信息:\n");    display();    printf("\n");    printf("请输入要修改的姓名: ");    scanf("%s",name);    for(flag=1,i=0; i<m&&flag; i++)    {        if(strcmp(stu[i].name,name)==0)        {            printf("\n已找到,调取记录:\n");            printf("\n学号\t   姓名\t性别\t学龄\t高数\t英语\t专业\n");            printf("\n%d\t%s\t%s\t%d\t%d\t%d\t%d\n",stu[i].name,stu[i].sex,stu[i].xueling,                   stu[i].math,stu[i].English,stu[i].zhuanye);            printf("\n确定要修改信息请输入1;不修改输入2\n");            if(n==1)            {                printf("\n请输入要修改的选项\n1.学号2.姓名3.性别4.学龄5.math6.English7.专业\n");                scanf("%d",&c);                if(c>7||c<1)                    printf("\n选择错误,请重新选择\n");            }            flag=0;        }        if(flag==1)            printf("\n对不起,查无其人\n");        do        {            switch(c)            {            case 1:                printf("学号修改:\n");                scanf("%d",&num);                stu[i-1].num=num;                break;            case 2:                printf("姓名修改:\n");                scanf("%s",&name);                strcpy(stu[i].name,name);                break;            case 3:                printf("性别修改:\n");                scanf("%s",&sex);                strcpy(stu[i].sex,sex);                break;            case 4:                printf("学龄修改:\n");                scanf("%d",&xueling);                stu[i-1].xueling=xueling;                break;            case 5:                printf("数学修改:\n");                scanf("%d",&math);                stu[i-1].math=math;                break;            case 6:                printf("英语修改:\n");                scanf("%d",&English);                stu[i-1].English=English;                break;            case 7:                printf("专业修改:\n");                scanf("%d",&zhuanye);                stu[i-1].zhuanye=zhuanye;                break;            }            printf("\n");            printf("\n是否确定所修改的信息?\n 输入2or1");            scanf("%d",&b);        }        while(b==2);        printf("\n浏览修改信息:\n");        printf("\n");        save(m);        display();        printf("继续输入1 or 0\n");        scanf("%d",&t);        switch(t)        {        case 1:            change();            break;        case 0:            break;        default :            break;        }        getchar();    }}

0 0
原创粉丝点击