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

📄 纯c的学生成绩管理系统.txt

📁 纯C的学生成绩管理系统
💻 TXT
字号:
1.题目:学生成绩管理系统  
用结构体数组或链表开发一个学生成绩管理系统。  
2.具体要求  
1)本系统应包含以下基本功能:  
1>用户交互界面。  
设计用户界面,由用户界面进入相应操作。  
2>输入学生信息。  
每个学生包括的信息为:学号、姓名、班级、学期、课程名称、课程成绩(课程名可自拟)。其中学号唯一,不可重复。  
3>编辑学生信息。  
1.修改某学生的制定信息。  
2.删除某学生的所有信息。  
4>成绩统计  
1.统计某一门课程的平均成绩,将统计结构在屏幕上显示。  
2.能按学生某门课程成绩排序,并显示结果。  
5>学生信息查询。  
1.按姓名查询:输入学生姓名,显示该学生的所有信息。  
2.按学号查找:输入学生学号,显示该学生的所有信息。  
3.按某一门课程的成绩查询:能够分屏显示。  
4.按班级查询:查询某一班级的所有学生信息,能够分屏显示。  
6>帮助系统:显示帮助文件。  
7>退出系统  
2)附加:以上输入的所有学生信息及修改后的更新信息都可以文件的形式保存,以便今后直接调用.  
 
#include<stdio.h> 
#include<stdlib.h> 
#include<malloc.h> 
#define MAXLEN 100 
#define ERROR 0 
typedef struct node 
 { int num; 
 char name[MAXLEN]; 
 int score; 
 struct node *next; 
 }list; 
  
// 头文件creat.h的内容 
//#include"hh.h" 
list *create() 
{ list *head,*p,*r; 
 int i,n; 
 head=(list *)malloc(sizeof(list)); 
 head->next=ERROR; 
 r=head; 
printf("请输入学生人数:\n"); 
scanf("%d",&n); 
for(i=1;i<=n;i++) 
{ p=(list *)malloc(sizeof(list)); 
 printf("输入学生的学号:\n"); 
 scanf("%d",&p->num); 
 printf("输入学生的姓名:\n"); 
 scanf("%s",p->name); 
 printf("输入学生的成绩:\n"); 
 scanf("%d",&p->score); 
 p->next=ERROR; 
 r->next=p; 
 r=r->next; 
} 
return(head); 
} 
// 以下是头文件insert.h的内容 
list *insert(list *h) 
{ 
 list *p,*q,*r,*head; 
 head=h; 
 r=h; 
 p=h->next; 
 // 下面构造一个学生的信息 
 q=(list *)malloc(sizeof(list)); 
 printf("输入待插入学生的学号:\n"); 
scanf("%d",&q->num); 
 printf("输入姓名:\n"); 
scanf("%s",q->name); 
 printf("输入成绩:\n"); 
 scanf("%d",&q->score); 
 q->next=ERROR; 
 // 找到链表的表尾结点 
 while(p!=ERROR) 
 { r=p; 
 p=p->next; 
 } 
 //将新结点插入到表尾 
 r->next=q;  
 r=r->next; 
 return(head); 
} 
// 以下是头文件find.h的内容 
void find(list *h) 
{ 
 int k; 
 list *p; 
 p=h->next; 
 printf("输入要查找学生的学号:\n"); 
 scanf("%d",&k); 
 while(p && p->num!=k) 
 p=p->next; 
 if(p) 
{ printf("学号\t姓名\t成绩\n"); 
 printf("%d\t%s\t%d\n",p->num,p->name,p->score); 
} 
 else 
 printf("没找到!\n"); 
} 
// 以下是头文件del.h的内容 
list *del(list *h) 
{ int k; 
list *p,*q; 
 q=h; 
 p=h->next; 
 printf("请输入待删除学生的学号:\n"); 
 scanf("%d",&k); 
 while(p && p->num!=k) 
{ q=p; 
 p=p->next; 
} 
 if(p) 
 { 
 q->next=p->next; 
 free(p); 
 } 
 else 
 printf("没有这个学生成绩,无法删除!\n"); 
 return(h); 
} 
// 以下是头文件output.h的内容 
void output(list *h) 
{ 
 list *p; 
 p=h->next; 
 while(p!=ERROR) 
 {printf("学号\t姓名\t成绩\t\n"); 
 printf("%d\t%s\t%d\n",p->num,p->name,p->score); 
 p=p->next; 
 } 
} 
int main() 
{ list *p; 
 int k; //控制循环的标志 
 while(1) 
{ 
 printf(" -----------------------------------\n"); 
printf(" | 学生成绩管理 |\n"); 
printf(" |__ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _|\n"); 
printf(" | 1. 登记成绩 |\n"); 
printf(" | 2. 查询成绩 |\n"); 
printf(" | 3. 插入成绩 |\n"); 
printf(" | 4. 删除成绩 |\n"); 
printf(" | 5. 输出所有学生成绩 |\n");  
printf(" | 0. 退出程序 |\n"); 
printf(" ------------------------------------\n"); 
printf(" 请输入你的选择:\n"); 
scanf("%d",&k); 
switch(k) 
 { case 1: p=create();break; 
 case 2: find(p);break; 
 case 3: p=insert(p);break; 
 case 4: p=del(p);break; 
 case 5: output(p);break; 
 case 0: exit(0); 
 default: printf("选择错误,重新开始!\n"); 
} 
} //while 
}  
 

⌨️ 快捷键说明

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