问题描述及代码:
/**********************************************
*版权所有 (C)2015,yangzheng
*
*文件名称:学生成绩管理系统
*文件标识:无
*内容摘要:实现学成成绩的输入、插入、删除、修改、排序和输出
*其他内容:无
*当前版本:codeblocks
*作者:杨征
*完成日期:2015.12.25
*
*修改记录:
*修改日期:2015125
*版本号:codeblocks
*修改人:杨征
*修改内容:添加创建成绩单
*************************************************/
头文件:
<pre name="code" class="cpp">#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<malloc.h>
#include<string.h>
#include<iostream>
using namespace std;
typedef struct STUDENT
{
char Num[10];/*学生学号*/
char Name[20];/*学生姓名*/
char className[20];/*班级名称*/
char yearName[20];/*学期名称*/
float mark1;/*第1门成绩*/
float mark2;/*第2门成绩*/
float mark3;/*第3门成绩*/
struct STUDENT *next;
} STUDENT;
/*以下是函数声明*/
void chuangjian();
void Read();//从文件中读学生信息到链表中
void Menu();//显示菜单,根据用户的输入
void Create();//建立链表表头
STUDENT *MallocNode();//申请一个新结点,并将其初始化
void Input(STUDENT *t);//在链表的结尾处增加一个结点
void Output();//显示所有学生的信息
void DesplayInfoBystudentName();//根据用户输入的学生姓名显示该学生的信息
void shuchujiedian(STUDENT *t);//输出一个结点的信息
void Insert(STUDENT *t);//在链表的结尾处增加一个结点
void DeleteNodeBystudentNumber();//根据用户输入的学号删除该学生
void ChangeMarkByName();//根据输入的班级修改成绩
void ChangeMarkByNumber();//根据输入的学期修改成绩
void Save();//保存链表数据到文件中
void DesplayMarkSegment();//不及格学生成绩
void paixu();//按平均成绩排序
#endif // ST_H_INCLUDED
各个函数的代码
<pre name="code" class="cpp">#include"st.h"
int choose;/*用于接受用户的选择*/
STUDENT *headLink;/*链表表头指针*/
/************************************
* 功能描述:从文件中读学生信息到链表中
* 输入参数:无
* 输出参数:无
************************************/
void Read(void)
{
FILE *fp;
STUDENT *p;
fp=fopen("student.txt","r");
if(!fp)
{
printf("文件不存在\n");
return;
}
p=MallocNode();
while(fscanf(fp,"%s%s%s%f%f%f",p->Num,p->Name,p->className,&(p->mark1),&(p->mark2),&(p->mark3))>0)
{
Insert(p);
p=MallocNode();
}
fclose(fp);
}
/************************************
* 功能描述:显示菜单,根据用户的输入
* 完成相应的功能
* 输入参数:你要选择的功能的序号
* 输出参数:选择的功能
************************************/
void Menu()
{
STUDENT *p;
printf("-------请选择相应功能------------\n\n");
printf(" 1 创建成绩单 |\n");
printf(" 2 从文件中读取学生成绩 |\n");
printf(" 3 按姓名查询 |\n");
printf(" 4 增加学生 |\n");
printf(" 5 删除学生 |\n");
printf(" 6 按班级修改学生成绩 |\n");
printf(" 7 按学期修改学生成绩 |\n");
printf(" 8 保存所有学生信息 |\n");
printf(" 9 显示不及格学生成绩 |\n");
printf(" 10 按平均成绩排序并输出绩 |\n");
printf(" 11 退出 |\n\n");
scanf("%d",&choose);/*