⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 新建 文本文档 (4).txt

📁 C语言的课程设计。这是一个学生成绩管理系统
💻 TXT
字号:
 
#include <stdio.h>
#include <string.h>
#include <malloc.h>
struct student
{
 int num;
 char name[20];
 int gaoshu;
 int yingyu;
 int wuli;
 int chengxu;
 int total;
 struct student *next;
}stu[30];
struct student *head;
int i=1;
void main()               /*主菜单*/
{
 void add();
    void del();
    void create();
    void update_num();
    void chaxun();
    int n;
 while(1)
 {
        printf("欢迎使用学生成绩管理系统\n\n\n");
        printf("***************************\n");
        printf("操作选单\n\n");
        printf("请用数字键选择操作\n\n");
        printf("1 成绩录入\n\n");
        printf("2 查询\n\n");
        printf("3 删除学生资料\n\n");
        printf("4 增加学生资料\n\n");
        printf("5 修改学生资料\n\n");
        printf("0 退出\n\n");
        printf("***************************\n");
  scanf("%d",&n);
  switch(n)
  {
  case 1:create();break;
  case 2:chaxun();break;
  case 3:del();break;
  case 4:add();break;
  case 5:update_num();break;
  case 0:exit(0); break;
  default:printf("输入有误");
  }
 }
}
void create()                             /*输入函数*/            
{
 int i=1;
    struct   student   *head,*p1,*p2,*p3;   
    char   name[20];   
    head=(struct   student*)malloc(sizeof(struct student));   
    p2=head;
    while(strcmp(name,"quit")!=0)   
 {
  printf("\n输入学生成绩\n");   
        printf("以学生姓名quit来结束输入\n");   
        printf("第%d个学生姓名:",i);   
        scanf("%p3",name);   
        if(strcmp(name,"quit")!=0)   
  {   
   p3=(struct student*)malloc(sizeof(struct student));   
            strcpy(p3->name,name);   
            printf("\n第%d个学生学号:",i);   
            scanf("%d",&p3->num);   
            printf("\n第%d个学生高数成绩:",i);   
            scanf("%d",&p3->gaoshu);   
            printf("\n第%d个学生英语成绩:",i);   
            scanf("%d",&p3->yingyu);
            printf("\n第%d个学生物理成绩:",i);
            scanf("%d",&p3->wuli);
            printf("\n第%d个学生程序成绩:",i);   
            scanf("%d",&p3->chengxu);   
            p3->total=p3->gaoshu+p3->yingyu+p3->wuli+p3->chengxu;   
            p3->next=NULL;   
            p2->next=p3;   
            p2=p3;   
            i++;
  }
 }
 p2->next=NULL;   
    p1=head;   
    head=head->next;   
    free(p1);   
    return(head);  
}
void chaxun()                            /*查询菜单*/
{
 void numfound();
 void namefound();
 int m;
 while(1)
 {
  printf("欢迎进入成绩查询系统\n");
     printf("----------------------\n");
     printf("请用数字键选择操作\n");
     printf("1 按学号查询\n");
     printf("2 按姓名查询\n");
     printf("0 返回\n");
     printf("----------------------\n");
     scanf("%d",&m);
     switch(m)
  {
  case 0:exit(0);break;
     case 1:numfound();break;
     case 2:namefound();break;
     default:printf("输入有误");
     }
 }
}
void add()                               /*增加函数*/  
{   
 struct   student   * p,* q;   
 printf("\n填加一个数据\n");   
 q=(struct   student*)malloc(sizeof(struct   student));   
 printf("第%d个学生姓名:",i);   
 scanf("%s",&q->name);   
 printf("\n第%d个学生学号:",i);   
 scanf("%d",&q->num);   
 printf("\n第%d个学生高数成绩:",i);   
 scanf("%d",&q->gaoshu);   
 printf("\n第%d个学生英语成绩:",i);   
 scanf("%d",&q->yingyu);
 printf("\n第%d个学生物理成绩:",i);   
 scanf("%d",&q->wuli);   
 printf("\n第%d个学生程序成绩:",i);   
 scanf("%d",&q->chengxu);   
 q->total=q->gaoshu+q->yingyu+q->wuli+q->chengxu;   
 q->next=NULL;   
 i++;   
 p=head;   
 while(p->next!=NULL)   
 p=p->next;   
 p->next=q;   
 return(head);   
}  
void  numfound()                         /*学号查找*/            
{   
 struct student *p1;   
 int num;   
 printf("\n请输入你要查询学生的学号:");   
 scanf("%d",&num);   
 p1=head;   
 while(p1!=NULL&&p1->num!=num)   
 {   
  p1=p1->next;   
 }   
 if(p1==NULL)
 {
   printf("没有该学生\n");    
    return;   
 }   
   if(p1->num==num)   
   {   
    printf("该学生的学号为:%d",p1->num);   
    printf("\n该学生的数学成绩为:%d",p1->gaoshu);   
    printf("\n该学生的英语成绩为:%d",p1->yingyu);
    printf("\n该学生的物理成绩为:%d",p1->wuli);   
    printf("\n该学生的程序成绩为:%d",p1->chengxu);     
   }   
  }
 void   namefound(struct   student   *head)     /*姓名查找*/
  {   
   struct   student   *p;   
   char   name[20];   
   printf("\n请输入你要查询学生的姓名:");   
   scanf("%s",name);   
   p=head;   
   while(p!=NULL   &&   strcmp(p->name,name)!=0)   
   {   
    p=p->next;   
   }   
   if(p==NULL)   
   {   
    printf("没有该学生\n");   
    return;   
   }   
   else   
   {   
    printf("该学生的学号为:%d",p->num);   
    printf("\n该学生的数学成绩为:%d",p->gaoshu);   
    printf("\n该学生的英语成绩为:%d",p->yingyu);
    printf("\n该学生的物理成绩为:%d",p->wuli);   
    printf("\n该学生的程序成绩为:%d",p->chengxu);     
   }   
  }
 void update_num()                        /*修改函数*/
  {
   int i;
   int flag=0;
   int num;
   int reccount=0;
   printf("请输入要修改的学号:");
   scanf("%d",num);
   for(i=0;i<reccount;i++)
    if(strcmp(num,stu[i].num)==0)
    {
     flag=1;
  break;
    }
    if(!flag)
    {
     printf("学号为:%s的记录不存在!\n",num);
     return;
    }
    printf("\n修改前的数据为:\n");
    printf("学号:%s\n",stu[i].num);
    printf("姓名:%s\n",stu[i].name);
    printf("高数:%s\n",stu[i].gaoshu);
    printf("英语:%s\n",stu[i].yingyu);
    printf("物理:%s\n",stu[i].wuli);
    printf("程序:%s\n",stu[i].chengxu);
    printf("\n修改后的数据为:\n");
    printf("学号:");
    scanf("%s",stu[i].num);
    printf("姓名:");
    scanf("%s",stu[i].name);
    printf("高数:");
    scanf("%s",stu[i].gaoshu);
    printf("英语:");
    scanf("%s",stu[i].yingyu);
    printf("物理:");
    scanf("%s",stu[i].wuli);
    printf("程序:");
    scanf("%s",stu[i].chengxu);
  } 
 void del()                              /*删除函数*/
  {   
   struct   student   *p1,*p2;   
   int   num;   
   printf("\n请输入你要删除学生的学号:");   
   scanf("%d",&num);   
   if(head->next==NULL&&head->num==num) 
   return NULL;
   p2=head;
   p1=head->next;
   while(p1!=NULL&&p1->num!=num)   
   {   
    p2=p2->next;   
    p1=p1->next;   
   }   
   if(p1==NULL)   
   {
    printf("没有该学生\n");
    return head;
   }
   if(p1->num==num)
    p2->next=p1->next;
   return(head);
  }

 
 
 
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -