C语言数据结构课设学生成绩管理系统
设计题目:学生成绩管理系统 〔问题描述〕学生成绩管理是学校教务部门日常工作的重要组成部分,其处理信息量很大。本项目是对学生成绩管理的简单模拟,用菜单选择方式完成下列功能:输入输出学生成绩数据;学生成绩查询;添加学生成绩数据;修改学生成绩数据;删除学生成绩数据;按成绩排序等。 〔基本要求〕本项目的实质是完成对学生成绩信息的建立、查找、插入、修改、删除、排序等功能,可以首先定义数据结构(顺序表或者链表),然后将每个功能写成一个函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得出运行结果。学生的考试成绩必须通过键盘输入,且需对输出进行格式控制。 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
//学生结构体
typedef struct Student
{
long long id;//学号
char name[20];//姓名
char s_class[20];//班级
double java;//Java成绩
double c;//C语言成绩
double web;//web成绩
struct Student *next;//指向下一个节点的指针
}Student,List;
int ch;
//创建新节点
Student * createStudent(){
Student * newNode=(Student*)malloc(sizeof(Student));
//判断是否申请成功
if(newNode==NULL){
return NULL;
}
//申请成功
return newNode;
}
//创建空链表
List* createList(){
List* list=(List*)malloc(sizeof(List));
list->next=NULL;
return list;
}
//判断链表长度
int listLength(List *list){
int i=0;
List *n=list;
while (n->next!=NULL)
{
i++;
n=n->next;
}
return i;
}
void menu(){
printf("**********学生成绩管理系统**********\n");
printf("*\t\t1,查看所有学生\t\t*\n");
printf("*\t\t2,添加学生\t\t*\n");
printf("*\t\t3,删除学生\t\t*\n");
printf("*\t\t4,查找学生\t\t*\n");
printf("*\t\t5,成绩排序\t\t*\n");
printf("*\t\t6,修改学生信息\t\t*\n");
printf("*\t\t0,退出系统\t\t*\n");
printf("----------------------------------\n\n\n");
}
//输出表头
void printfBt(){
printf("学号\t姓名\t班级\tjava\t\tc\t\tweb\n");
}
//查看所有学生信息
void printfAll(List * list){
Student *temp=list->next;
printfBt();
if(temp==NULL){
printf("该链表为空!!!\n");
}else{
while(temp!=NULL){
printf("%lld\t%s\t%s\t%lf\t%lf\t%lf\n",temp->id,temp->name,temp->s_class,temp->java,temp->c,temp->web);
temp=temp->next;
}
}
}
//按照学号查找
void searchId(List *list,long long id){
Student *temp=list->next;
printfBt();
while(temp!=NULL){
if(id==temp->id){
printf("%lld\t%s\t%s\t%lf\t%lf\t%lf\n",temp->id,temp->name,temp->s_class,temp->java,temp->c,temp->web);
break;
}
temp=temp->next;
}
}
//按照姓名查找
void searchName(List *list,char* name){
Student *temp=list->next;
printfBt();
while(temp!=NULL){
if(strcmp(name,temp->name)==0){
printf("%lld\t%s\t%s\t%lf\t%lf\t%lf\n",temp->id,temp->name,temp->s_class,temp->java,temp->c,temp->web);
}
temp=temp->next;
}
}
//查找学生
void searchStudent(List *list){
int type;
printf(
|