pana hema 2017-05-30 07:57 采纳率: 100%
浏览 3488
已采纳

c语言课程设计:学生档案管理系统

要求有5个功能。1 输入功能:录入学生信息;
2 显示功能:完成学生记录的显示;
3 查找功能:完成查看所有学生,按学号或姓名查找学生的相关记录,并显示;
4 更新功能:(增加或删除)。
利用结构体数组实现学生信息的数据结构设计,且各个功能模块用函数的形式实现。(加注释的话更好)

  • 写回答

1条回答

  • Histheme 2017-05-30 08:03
    关注

    #include
    #include
    #include
    #include
    #include
    struct studentding{
    char name[19];
    int goal[3];
    int xuenum;
    };
    int stunum;
    struct studentding student;
    int searchnum;
    int cmp(const void*a,const void *b)//¿ìÅŵĶԱȺ¯Êý
    {
    return ((
    (struct studentding )a).xuenum-((struct studentding )b).xuenum>0?1:-1);
    }
    void inputmes()//ÊäÈë
    {
    int x;
    puts("How many students do you have ?");
    scanf("%d",&stunum);
    student=(struct studentding *)malloc(stunum*sizeof(struct studentding)); //¶¯Ì¬ÄÚ´æ·ÖÅä¸ø½á¹¹ÌåÊý×é
    for(x=0;x {
    printf("input a student id:");
    scanf("%d",&student[x].xuenum);
    getchar();
    printf("input a student name contain less than 19 characters:");
    gets((student+x)->name);
    printf("input 3 scores:");
    scanf("%d%d%d",&student[x].goal[0],&student[x].goal[1],&student[x].goal[2]);
    while(getchar()!='\n');//³ÔµôÈ«²¿µÄ»»Ðзû
    }
    qsort(student,stunum,sizeof(struct studentding),cmp);//¿ìÅŵÄÔËÓÃ
    }
    void outputmes()
    {
    int x;
    printf("please input the id of the student which you want to search:");
    scanf("%d",&searchnum);
    getchar();
    x=search();
    if(x>=0)
    {
    printf("student id:%d name :\t%s,scores:",student[x].xuenum,student[x].name);
    printf("<%d %d %d>\n",student[x].goal[0],student[x].goal[1],student[x].goal[2]);
    }
    else
    return;
    }
    int search()//¶þ·Ö·¨²éÕÒ
    {
    int x;
    if(searchnum==student[stunum/2].xuenum)
    return stunum/2;
    else if(searchnum>student[stunum/2].xuenum)
    {
    for(x=stunum/2;x if(searchnum==student[x].xuenum)
    return x;
    puts("Not found!");
    return -1;
    }
    else if(searchnum {
    for(x=stunum/2;x>=0;x--)
    if(searchnum==student[x].xuenum)
    return x;
    puts("Not found!");
    return -1;
    }
    }
    void dele()//ɾ³ýѧÉúÐÅÏ¢
    {
    int x;
    int y;
    printf("please input the student id which you want to delete:");
    scanf("%d",&searchnum);
    getchar();
    x=search();
    if(x>=0)
    {
    memmove(&student[x],&student[x+1],sizeof(student[0])
    (stunum-x-1));
    stunum-=1;
    }
    else
    return;
    }
    int main()
    {
    char ch;
    inputmes();
    while(1)//Èý¸öÑ¡Ïî
    {
    puts("what do you select ? please press not input\na:search a student and his massage.\nb:delete a student\nc:exit ");
    ch=getch();
    if(ch=='a')//Ñ¡ÔñµÄ²Ëµ¥
    {
    outputmes();
    puts("press r to return");
    ch=getch();
    system("cls");
    }
    else if(ch=='b')
    {
    dele();
    puts("press r to return");
    ch=getch();
    system("cls");
    }
    else if(ch=='c')//Í˳öµÄÌõ¼þ
    return;
    else
    {
    puts("No,please press a ,b or c");
    sleep(1);
    system("cls");
    }
    }
    }
    去年学c时候做的,感觉应该还能用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用