鱼C论坛

 找回密码
 立即注册
查看: 2646|回复: 50

[技术交流] c语言学生系统简易编码

[复制链接]
发表于 2019-8-14 16:53:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct score
{
        int chinese;
        int math;
        int english;
};
struct student
{
        char name[20];
        int num;
        struct score all;
        struct student *next;
};
       
struct student *head,*stu;
int key;

void main()
{
        struct student *create();
        struct student *insert(struct student *head);
        struct student *delate(struct student *head);
        struct student *revise(struct student *head);
        void print(struct student *head);
        void seek(struct student *head);
        void write(struct student *head);
        void control();
        void FREE(struct student *head);
        printf("欢迎来到学生管理系统!\n");
        system("pause");
        system("cls");
        while(1)
        {
                control();
                if(key==1)
                {
                        stu=create();
                }
                else if(key==2)
                {
                        insert(stu);
                }
                else if(key==3)
                {
                        delate(stu);
                }
                else if(key==4)
                {
                        revise(stu);
                }
                else if(key==5)
                {
                        seek(stu);
                }
                else if(key==6)
                {
                        print(stu);
                }
                else if(key==7)
                {
                        write(stu);
                }
                else if(key==0)
                {
                        FREE(stu);
                        exit(0);
                }
                system("pause");
                system("cls");
        }
}
struct student *create()
{
        struct student *head,*temp,*p,*s;
        int m,n;
        printf("请输入需要输入学生的个数!\n");
        scanf("%d",&n);
        temp=p=head=(struct student *)malloc(sizeof(struct student));
        for(m=0;m<n;m++)
        {
                printf("请输入第%d名学生姓名:\n",m+1);;
                scanf("%s",&temp->name);
                printf("请输入第%d名学生学号:\n",m+1);
                scanf("%d",&temp->num);
                printf("请输入第%d名学生 语文 英语 数学 分数:\n",m+1);
                scanf("%d%d%d",&temp->all.chinese,&temp->all.english,&temp->all.math);
                temp=(struct student *)malloc(sizeof(struct student));
                s=p;
                p->next=temp;
                p=temp;
        }
        s->next=NULL;
        return head;
}

void print(struct student *head)
{
        struct student *temp;
        temp=head;
        printf("学生  学号  语文  英语  数学\n");
        while(temp!=NULL)
        {
                printf("%s    %d    %d    %d    %d\n",temp->name,temp->num,temp->all.chinese,temp->all.english,temp->all.math);
                temp=temp->next;
        }
}

struct student *insert(struct student *head)
{
        struct student *temp,*ins;
        temp=head;
        ins=(struct student *)malloc(sizeof(struct student ));
        printf("请输入插入学生姓名:\n");;
        scanf("%s",&ins->name);
        printf("请输入插入学生学号:\n");
        scanf("%d",&ins->num);
        printf("请输入插入学生 语文 英语 数学 分数:\n");
        scanf("%d%d%d",&ins->all.chinese,&ins->all.english,&ins->all.math);
        while(temp->next!=NULL)
        {
                temp=temp->next;
        }
        temp->next=ins;
        ins->next=NULL;
        return head;
}



struct student *delate(struct student *head)
{
        struct student *temp,*p;
        char name[20];
        int m;
        temp=head;
        printf("请输入需要删去的学生姓名:\n");
        scanf("%s",&name);
        while(temp!=NULL)
        {
                m=strcmp(temp->name,name);
                if(m==0)
                {
                        p->next=temp->next;
                        break;
                }
                p=temp;
                temp=temp->next;
        }
        return head;
}


struct student *revise(struct student *head)
{
        struct student *temp;
        char name[20];
        int m,n;
        temp=head;
        printf("请输入需要修改信息的学生姓名:\n");
        scanf("%s",&name);
        while(temp!=NULL)
        {
            m=strcmp(temp->name,name);
                if(m==0)
                {
                        break;
                }
                temp=temp->next;
        }
        printf("修改学号按(1)\n修改语文成绩按(2)\n修改英语成绩按(3)\n修改数学成绩按(4)\n");
        scanf("%d",&n);
        if(n==1)
        {
                printf("请输入修改后的学号:\n");
                scanf("%d",&temp->num);
        }
        else if(n==2)
        {
                printf("请输入修改后的语文成绩:\n");
                scanf("%d",&temp->all.chinese);
        }
        else if(n==3)
        {
                printf("请输入修改后英语成绩:\n");
                scanf("%d",&temp->all.english);
        }
        else if(n==4)
        {
                printf("请输入修改后的数学成绩:\n");
                scanf("%d",&temp->all.math);
        }
        return head;
}


void seek(struct student *head)
{
    struct student *temp;
        char name[20];
        int m;
        temp=head;
        printf("请输入需要查找信息的学生姓名:\n");
        scanf("%s",&name);
        while(temp!=NULL)
        {
            m=strcmp(temp->name,name);
                if(m==0)
                {
                        break;
                }
                temp=temp->next;
        }
        if(temp==NULL)
        {
                printf("未找到学生信息!\n");
        }
        else
        {
            printf("学生  学号  语文  英语  数学\n");
            printf("%s    %d    %d    %d    %d\n",temp->name,temp->num,temp->all.chinese,temp->all.english,temp->all.math);
        }
}


void write(struct student *head)
{
        FILE *fp;
        if((fp=fopen("studentscore.txt","w"))==NULL)
        {
                printf("error!\n");
                exit(0);
        }
        else
        {
                fprintf(fp,"学生  学号  语文  英语  数学\n");
                while(head!=NULL)
                {
                    fprintf(fp,"%s    %d    %d    %d    %d\n",head->name,head->num,head->all.chinese,head->all.english,head->all.math);
                        head=head->next;
                }
        }
        fclose(fp);
}


void control()
{
        printf("新建学生目录按(1)\n插入学生按(2)\n删去学生按(3)\n修改学生信息按(4)\n查找学生按(5)\n打印目录按(6)\n保持到文件按(7)\n结束按(0)\n");
        scanf("%d",&key);
        system("cls");
}

void FREE(struct student *head)
{
        free(head);
        head=NULL;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-14 17:55:59 | 显示全部楼层
556
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-14 18:23:02 | 显示全部楼层
学习学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-14 21:16:12 | 显示全部楼层
我我我我哦
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-14 21:27:00 | 显示全部楼层
888866666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-14 23:34:43 | 显示全部楼层
好好学习天天向上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-15 13:57:26 | 显示全部楼层
6666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-15 14:13:54 | 显示全部楼层
查看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-4 20:29:34 From FishC Mobile | 显示全部楼层
好好学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-4 21:40:13 | 显示全部楼层
好好学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-4 23:16:49 | 显示全部楼层
xuexi !
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-5 00:20:45 | 显示全部楼层
我来瞅瞅
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-5 00:55:33 | 显示全部楼层
666
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-5 12:50:03 | 显示全部楼层
556
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-5 13:40:40 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-5 16:26:51 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-6 19:02:39 From FishC Mobile | 显示全部楼层
aa
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-6 20:19:46 | 显示全部楼层
好好学习天天向上
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-6 22:29:11 | 显示全部楼层
去参加竞赛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-6 23:19:05 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-25 18:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表