C语言实现学生成绩管理系统实战教学语言实现学生成绩管理系统实战教学
在本篇文章里小编给大家分享了关于C语言实现学生成绩管理系统实战教学内容,有兴趣的朋友们可以跟着学习
参考下。
趁着放假无事,开始用C语言开发一些小的项目,巩固基础知识的同时学习新的知识。
学生成绩管理系统实现的功能有:成绩录入、学生成绩查询、删除、修改、通过文件保存等。
开发这样一个系统需要具备的知识:线性表(链表)、文件操作、排序(如果需要成绩排序)。
开发环境为VS2015;在Linux下没有conio.h的头文件,需要修改与getch()函数相关的代码。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
/*学生信息结构体*/
typedef struct Node
{
char Name[10]; //学生姓名
char ID[15]; //学生学号
int Score[3]; //三科成绩(数学、英语、数据结构)
float Ave_Sco;
struct Node *next;
}Lnode;
void Display(); /*界面显示函数*/
void GetScore(Lnode *&h); /*成绩录入函数*/
void PrintScore(Lnode *h); /*成绩打印函数*/
void ModifyScore(Lnode *h); /*成绩修改函数*/
void FindInf(Lnode *h); /*查找信息*/
void Delete(Lnode *h); /*删除函数*/
void Quit(Lnode *h); /*退出函数*/
void SaveInf(Lnode *h);
void LoadInf(Lnode *h);
/*初始化链表*/
void InitList(Lnode *&head)
{
head = (Lnode *)malloc(sizeof(Lnode));
if (head == NULL)
{
printf("error!");
exit(1);
}
head->next = NULL; //使头节点指针域为空
}
int main()
{
Lnode *ScoreList; //建立成绩链表,所有学生信息存放在此链表
int Function;
char flag;
int t = 0;
InitList(ScoreList);
LoadInf(ScoreList);
while (1)
{
Display();
printf("请选择操作: ");
scanf("%d", &Function);
switch (Function)
{
case 1: while (1)
{
GetScore(ScoreList);
printf("是否继续输入 (Y/N)");
scanf("%s", &flag);
if (flag == 'N' || flag == 'n')break;
} system("cls"); break;
case 2: PrintScore(ScoreList); _getch(); system("cls"); break;
case 3: ModifyScore(ScoreList); system("cls"); break;
case 4: FindInf(ScoreList); _getch(); system("cls"); break;
case 5: Delete(ScoreList); _getch(); system("cls"); break;
case 6: Quit(ScoreList); break;