项目描述:学生成绩管理系统为教师录入成绩、管理员进行信息维护等提供方便,为学校节省大量人力资源,该系统实现对若干个大学生的学习成绩进行管理,包括学生的学号、姓名、各科成绩等。
功能要求:
1.使用中文菜单,界面设计和用户输入输出要人性化些;
2. 将学生信息保存在文本文档中,具体对学生信息进行插入删除查询操作时,将保
存在文本文档中的学生信息提取出来,保存在自己定义的数据结构中,然后再对该
数据结构进行操作,所有操作完成,或者在相应的命令后,再将学生信息保存到文
本文档中;
3.具有数据输入功能,输入的数据能最终保存在文件中;
4.具有数据删除功能,能最终从文件中删除;
5.排序功能,根据自己设计的数据结构,设计排序算法;
6.具有多种查询(如按学号查询、按姓名查询、按成绩查询等)及输出功能;
7.其它功能(如各种统计,统计每个学生所有课程的平均分,统计某门课程所有
学生的平均分等等);
8. 学生信息的修改(比如修改学生姓名,修改学生某门课程的成绩)。
一共有两个界面,第一个是登入界面,第二个是功能操作界面,如下图所示:
头文件代码如下:
#pragma once
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include <string.h>
#include<ctype.h>
void createHeadNode();
void createUserHeadNode();
void createDeleteHeadNode();
//读取学生数据
void initData(struct node* phead);
//读取用户的登入 判断用户的账号是否正确
void initDataUser(struct unode* uhead);
void Menu2();
void Menu();
//录入学生信息
void InputStudent(struct node* phead);
//删除学生信息
void DeleteStudent(struct node* phead);
//查找学生
void SearchStudent(struct node* phead);
//修改学生成绩
void UpdataStudent(struct node* phead);
//打印学生信息
void PrintStudent(struct node* phead);
void info_output(struct node* pfind);
//学成成绩排序(出现两个排序表 总分排序表、平均分排序表)
void SortStudent1(struct node* phead);
void SortStudent2(struct node* phead);
//写入学生信息
void FushData(struct node* phead);
//写入用户的注册
void FushDataUser(struct unode* uhead);
//找到需要的学生地址
struct node* findTheStudent(struct node* phead, int sid);
struct unode* findTheUser(struct unode* uhead, int fkey, int fname);
struct unode* findTheUser(struct unode* uhead, int uname);
//删除记录
void Dlenode(struct node* dhead,int did);
void FushDeleteRecord(struct node* dhead);
void initDataDeleteRecord(struct node* dhead);
//登入
void inputuser(struct unode* uhead);
//注册
void Code(struct unode* uhead);
//定义一个学生
struct student
{
int sid;
char name[20];
float discrete; //离散成绩
float linear; //代数成绩
float gaoshu; //高数成绩
float ave; //平均分
float total; //总分
};
//链表结点
struct node
{
student stu;//链表中存学生
struct node* pnext;//指向下一个结点的指针
};
//定义头结点
struct node* phead = NULL;
int count = 0;//用来记录当前文件中数据的条数
struct node* dhead = NULL;
//使用者
struct user
{
int uname;
int key;
};
//链表存储用户信息
struct unode
{
user use;