大学一年级课程设计——学生管理系统(C语言)

这篇博客分享了作者在大学一年级的课程设计项目——一个用C语言实现的学生管理系统。系统包括了从文件读取数据、录入学生信息、计算成绩统计、排名、查询等功能,详细介绍了各个功能的实现,为初学者提供了参考。
摘要由CSDN通过智能技术生成

大一的课程设计了,翻出来放上来供参考,也致曾经初学代码熬夜的我~

第一个功能(将文件中的数据存放到链表中,计算文件中的学生个数存放到a中)
第二个功能(键盘录入学生信息)
第三个功能(计算每门课程的总分和平均分)
第四个功能(计算每个学生的总分及平均分)
第五个功能(按每个学生的总分由高到低排出名次表)
第六个功能(按每个学生的总分由低到高排出名次表)
第七个功能(按学号由小到大排出成绩表)
第八个功能(按姓名的字典顺序排出成绩表)
第九个功能(按学号查询学生排名及其考试成绩)
第十个功能(按姓名查询学生排名及其考试成绩考虑学生重名)
第十一个功能(输出每一科目优秀、良好、中等、及格、不及格人数)
第十二个功能(输出每个学生的学号、姓名、各科考试成绩、总分和平均分)
第十三个功能(将每个学生的个人信息和成绩写入文件,可由键盘输入文件名)

#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
int a,b;         //定义全局变量记录学生数量与科目数量 
enum tsex{
   male,female};
struct student{
   
 char name[20];
 enum tsex sex;
 int num;
 int score[6];
 int sum;
 float ave;
 struct student *next;
}; 
struct student*creat(void);     //创建一个链表并返回首地址 
struct student*g1(void);     //实现第一个功能(将文件中的数据存放到链表中,计算文件中的学生个数存放到a中)
struct student*g2(void);     //实现第二个功能(键盘录入学生信息) 
void g3(struct student *);     //实现第三个功能(计算每门课程的总分和平均分) 
struct student*g4(struct student *);  //实现第四个功能(计算每个学生的总分及平均分)
struct student*g5(struct student *);  //实现第五个功能(按每个学生的总分由高到低排出名次表)
struct student*g7(struct student *);  //实现第六个功能(按每个学生的总分由低到高排出名次表)
struct student*g6(struct student *);   //实现第七个功能(按学号由小到大排出成绩表)
struct student*g8(struct student *);  //实现第八个功能(按姓名的字典顺序排出成绩表)
void g9(struct student *);     //实现第九个功能(按学号查询学生排名及其考试成绩)
void g10(struct student *);     //实现第十个功能(按姓名查询学生排名及其考试成绩考虑学生重名)
void g11(struct student *);     //实现第十一个功能(输出每一科目优秀、良好、中等、及格、不及格人数)
void g12(struct student *);     //实现第十二个功能(输出每个学生的学号、姓名、各科考试成绩、总分和平均分)
void g13(struct student *);     //实现第十三个功能(将每个学生的个人信息和成绩写入文件,可由键盘输入文件名)
int main(){
   
 int k,z;
 struct student *head;
 while(1){
   
    printf("┌-------------------------------------------------------------- ┐\n");
 printf("│                  欢迎使用学生成绩管理系统V3.0                      │\n");
 printf("│                                                                  │\n");
 printf("│  ┏┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┓  │\n");
 printf("│  ┇请输入您要选择的功能:                                         ┇  │\n");
 printf("│  ┇ 1.Read from a file                                         ┇  │\n");
 printf("│  ┇ 2.Append record manually                                   ┇  │\n");
 printf("│  ┇ 3.Calculate total and average score of every course        ┇  │\n");
 printf("│  ┇ 4.Calculate total and average score of every student       ┇  │\n");
 printf("│  ┇ 5.Sort in descending order by total score of every student ┇  │\n");
 printf("│  ┇ 6.Sort in ascending order by total score of every stuednet ┇  │\n");
 printf("│  ┇ 7.Sort in ascending order by number                        ┇  │\n");
 printf("│  ┇ 8.Sort in dictionary order by name                         ┇  │\n");
 printf("│  ┇ 9.Search by number                                         ┇  │\n");
 printf("│  ┇ 10.Search by name                                          ┇  │\n");
 printf("│  ┇ 11.Statistic analysis for every course                     ┇  │\n");
 printf("│  ┇ 12.List record                                             ┇  │\n");
 printf("│  ┇ 13.Write to a file                                         ┇  │\n");
 printf("│  ┇ 0.Exit                                                     ┇  │\n");
 printf("│  ┗┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┛  │\n");
 printf("│                                             Made By:Gong         │\n");
 printf("│                                                     Wan          │\n");
 printf("│                                                     Tian         │\n"); 
 printf("│                                                                  │\n");
 printf("│                                                                  │\n");
 printf("└------------------------------------------------------------------┘\n");
 printf("\n·请输入您要选择的功能:");
 scanf("%d",&k);
 while(k<0||k>13){
   
  printf("\n·您输入的信息有误,请重新输入:");
  fflush(stdin);
  scanf("%d",&k);
 }
 switch(k){
   
  case 1:{
   
   head=g1();
   break;
  }
  case 2:{
   
   head=g2();
   break;
  }
  case 3:{
   
   g3(head);
   break;
  }
  case 4:{
   
   head=g4(head); 
   break;
  }
  case 5:{
   
   head=g5(head);
   break;
  }
  case 6:{
   
   head=g6(head);
   break;
  }
  case 7:{
   
   head=g7(head);
   break;
  }
  case 8:{
   
   head=g8(head);
   break;
  }
  case 9:{
   
   g9(head);
   break;
  }
  case 10:{
   
   g10(head);
   break;
  }
  case 11:{
   
   g11(head);
   break;
  }
  case 12:{
   
   g12(head);
   break;
  }
  case 13:{
   
   g13(head);
   break;
  }
  case 0:{
   
   printf("\n\n感谢使用学生管理系统v3.0 ^.^ \n\n");
   exit(0);
      }
 }
 printf("您是否要退出系统(0.退出 1.不退出):");
 scanf("%d",&z); 
 switch(z){
   
  case 0:{
   
   printf("\n\n感谢使用学生管理系统v3.0 ^.^ \n\n");
   exit(0);
   break;
  }
  case 1:{
   
   break;
  }
 }
}
 return 0;
}
struct student*creat(void){
   
 int k;
 struct student *head,*end,*p;
 end=NULL;
 for(k=1;k<=a;k++){
   
  p=(struct student*)malloc(sizeof(struct student))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值