• 大小: 9KB
    文件类型: .c
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: 其他
  • 标签: c  指针  链表  

资源简介

基于指针和链表的学生成绩管理系统源代码,本代码清晰易懂,对于成绩排序给出了两种方法。

资源截图

代码片段和文件信息

/*
* Copyright (c) 2011长沙源享科技
* All rights reserved
*
* 文件名称:指针和链表实现2.cpp
* 文件标识:
* 摘    要:指针和链表实现学生成绩管理系统
*
* 当前版本:1.0
* 作    者:龙文
* 完成日期:2011年3月30日
*
*/

/***************************头文件*********************************/
#include 
#include 
#include 

/***************************常量***********************************/
#define MENU_NUM 10
#define N 3


/****************************结构体********************************/
typedef struct s1
{
char       no[10] ;                   //学号由10个字符组成
char       name[15] ;                 //学生姓名
float      score[N] ;                 //各门课成绩
float      sum ;                      //总分
float      average ;                  //平均分
struct s1  *next ;                    //指向后继结点的指针
}STUDENT;                                 //定义结构体类型


/********************************全局变量*************************/
struct s1 * head=NULL;                      //链表头结点

/********************************函数声明*************************/
void InputData(  STUDENT * ptr );         //录入信息
void PrintMenu( );                        //显示菜单
int MenuSelect( );                       //选择菜单项
void Init( );                             //初始化
void create( );                           //创建链表
void print( ) ;                           //打印链表数据
void Delete( );                           //删除指定学号的记录数据
void append();                            //追加一个数据到链表尾部
void computer();                          //计算链表中所有人的总分和平均分


/***********************************主函数********************************/
void main()
{
int key;
while(1) {
key=MenuSelect();
switch(key)
{
case 1:
Init();          //初试化链表。也就是若链表不为空则释放链表中所有数据,将head置为空(NULL)
break;
case 2:
create();             //创建链表,输入数据
break;
case 3:
Delete();          //删除一个指定学号的记录数据
break;
case 4:
print();            //打印链表中所有数据
break;
case 5:
computer();              //计算链表中所有人的总分和平均分
break;
case 6:
append();                //追加一个数据到链表的尾部
break;
case 7:
Init();          //释放链表
exit(0);
}
}
}

/*****************************************************************
*函数名:PrintMenu
*
*描  述:显示操作菜单*
*
*入口参数:无
*
*出口参数:无
******************************************************************/
void PrintMenu( )
{
int i;
char * menu[]={
“-----------------------------------------------“
“|        基于指针和链表的学生成绩管理系统     |“
“|   1. 初始化链表                             |“
“|   2. 创建链表                               |“
“|   3. 删除指定学号的记录                     |“
“|   4. 打印学生成绩信息                       |“
“|   5. 计算学生的总分和平均分                 |“
“|   6. 插入一条学生记录                       |“
“|   7. 退出                                   |“
“-----------------------------------------------“
};

printf(“\n\n“);
for (i=0;i printf(“%s\n“menu[i]);
printf(“\n输入要进行的操作(1-7):“);
}

/******

评论

共有 条评论