C语言学生成绩管理系统

本人拿到的毕业论文题目是用C语言编写学生成绩管理系统 现高分悬赏,如果有做好的代码或者文档,急需!!!!1如果用asp.net和sqlserver2008做的也可以 的哦

L美食诱惑 2021-09-18 16:33 389 次浏览 赞 75

最新问答

  • 沈阳硅藻泥

    纯手工。望采纳!!

    #include
    #include
    #include

    #define MENU_NUM 7
    #define N 3

    typedef struct s1
    {
    char no[11]; /*学号由10个字符组成*/
    char name[15]; /*姓名*/
    float score[N]; /*各门课成绩*/
    float sum; /*总分*/
    float average; /*平均分*/
    int order; /*名次*/
    struct s1 *next; /*指向后继结点的指针*/
    }STUDENT; /*定义结构体类型*/

    STUDENT * head=NULL;
    void InputData( STUDENT * ptr );
    void PrintMenu( );
    int Menu_Select( );
    void Init( );
    void create( );
    void print( ) ;
    void Delete( );
    void append();
    void computer();

    main()
    {
    int key;
    while(1) {
    key=Menu_Select();
    switch(key)
    {
    case 0: Init();
    //初试化链表。也就是若链表不为空则释放链表中所有,将head置为空(NULL)
    break;
    case 1: create();
    //创建链表,输入
    break;
    case 2: Delete();
    //删除一个指定学号的记录
    break;
    case 3: print();
    //打印链表中所有
    break;
    case 4: computer();
    //计算链表中所有人的总分和平均分
    break;
    case 5: append();
    //追加一个到链表的尾部
    break;
    case 6: Init();
    //释放链表
    exit(0);
    }
    };
    }

    void PrintMenu( )
    {
    int i;
    char * menu[]={
    "0. Init list",
    "1. Enter list",
    "2. Delete a record from list",
    "3. Print list",
    "4. Compute the score",
    "5. Insert record to list",
    "6. Quit"
    };

    printf("\n\n");
    for (i=0;i printf("%s\n",menu[i]);
    printf("\nEnter your choice(0-6):");
    }

    int Menu_Select( )
    {
    int key;

    PrintMenu( );
    scanf("%d",&key);
    return key;
    }

    void Init( ) //初始化单链表。也就是释放链表中的所有
    {
    STUDENT *p,*ptr;//定义两个临时指针变量p,ptr
    p=head;ptr=head;//将两个临时变量指向头指针head ;
    while(ptr!=NULL)
    {
    ptr=ptr->next;//ptr指向下一个结构
    free(p);//释放p所指向的结构的内存
    p=ptr;//将p指向ptr所指向的
    }
    head=NULL;//将head指向NULL
    }

    void create( ) //创建单链表
    {
    STUDENT *pt, *pth=NULL; //定义两个指针变量:pt指向即将申请新的内存,pth指向当前
    while(1)
    {
    pt=(STUDENT *)malloc(sizeof(STUDENT));//让pt指向新申请的内存空间
    InputData(pt);//输入,存放到pt所指向的结构。注意让pt的next指向NULL
    if (strcmp(pt->no,"@")==0)
    {
    free(pt);//释放pt所指向的内存空间
    break;//退出循环
    }
    else if (head==NULL)
    {
    pth=pt;
    head=pt;//将头指针head和pth指向pt
    }
    else
    {

    pth->next=pt; //将pth的next指向pt;
    pth=pt; //将pth指向pt;
    }
    };
    }

    void print( ) //打印单链表中所有
    { int i=0;
    STUDENT *p;//第一个指针p
    p=head;//将p指向head

    printf("\n");
    printf("******************************STUDENT******************************\n");
    printf("|rec|no | name | sc1| sc2| sc3| sum | ave |order|\n");
    printf("|---|----------|----------------|----|----|----|------|-----|-----|\n");

    //打印表头
    while (p!=NULL)
    {
    printf("|%3d|%10s|%-16s|%4.1f|%4.1f|%4.1f|%6.2f|%5.1f|%5d|\n",
    ++i,p->no,p->name,p->score[0],p->score[1],p->score[2],
    p->sum,p->average,p->order); //打印p所指向的结构中的所有。注意打印间的分隔线
    p=p->next;//将p指向p的下一个结构
    }
    printf("********************************END********************************\n");//打印表尾
    }

    void Delete( ) //删除一个记录
    {
    STUDENT *p,*pth;//定义两个指针p,pth
    char no[11];//定义一个整数no(用来存储输入的学号)
    printf("intput delete no\n");
    scanf("%s",no);//用输入语句输入一个学号存储到no中
    p=head;pth=head;//将p和pth都指向头指针
    if (strcmp(p->no,no)==0) //也就是若头指针指向的需要删除
    {
    head=head->next;//将head指针指向head的下一个;
    free(p);//释放p所指向的
    }
    else
    {
    p=p->next;//将p指向p的下一个
    while ( p!=NULL)
    {
    if (strcmp(p->no,no)==0) //找到了要删除的
    {
    pth->next=p->next;//将pth的next指向p的next
    free(p);//释放p
    break;//退出循环
    }
    else
    {
    pth=pth->next;//将pth指向pth的next 或 将pth指向p
    p=p->next;//将p指向p的next
    }
    }
    }
    }

    void append()
    {
    STUDENT *p,*pth;//定义两个指针变量p,pth

    pth=head;//将pth指向head
    while ( pth->next!=NULL)
    {
    pth=pth->next;//ptr指向ptr的next
    }

    p=(STUDENT *)malloc(sizeof(STUDENT));//将p指向新申请的内存空间
    InputData(p);p->next=NULL;//存储到p所指向的内存空间,注意将p的next置为NULL
    pth->next=p;//将ptr的next指向p
    }
    void InputData( STUDENT *ptr )
    { int i;
    printf("enter no:");
    scanf("%s",ptr->no);
    if (strcmp(ptr->no,"@")==0 ) return;

    printf("enter name:");
    scanf("%s",ptr->name);

    for(i=0;i<3;i++)
    {
    printf("shuru chengji\n");
    scanf("%f",&ptr->score[i]);
    }

    ptr->sum=0;
    ptr->average=0;
    ptr->order=0;
    ptr->next=NULL;
    }
    void computer()
    {
    STUDENT *p;
    p=head;
    for(;p;p=p->next)
    {
    p->sum=p->score[0]+p->score[1]+p->score[2];
    p->average=(p->score[0]+p->score[1]+p->score[2])/3;
    }
    }
    请采纳。

    浏览 226赞 82时间 2023-01-19
  • 那份噯隻許伱甡

    鄙视 鄙视

    浏览 331赞 52时间 2022-01-12

C语言学生成绩管理系统

本人拿到的毕业论文题目是用C语言编写学生成绩管理系统 现高分悬赏,如果有做好的代码或者文档,急需!!!!1如果用asp.net和sqlserver2008做的也可以 的哦