头文件stu.h
/***************************************
*版权所有 (C)2015,Chenchen
*文件名称:stu.h
*文件标识:无
*内容摘要:定义数据和函数声明
*其他说明:无
*当前版本:V1.0
*作者:陈晨
*完成时间:20161228
*修改记录:
*修改时间:20161228
*版本号:V1.0
*修改人:Chen chen
****************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;
struct Student
{
char num[10];
char name[10];
int age;
char sex[2];
char phonenum[10];
int score;
struct Student *next;
};
char filename[90]; //全局变量,用来保存要打开的文件名字
Student *L; //全局变量,用来保存学生信息
void Interface(); //主界面
void Addstudent_interface(); //录入学生主界面
Student *Addstudent(); //创建学生链表
void Class(); //班级中学生录入
void Creatfile_new(Student *head); //保存文件
void Querystudent_interface(); //查询学生信息主界面
void Querystudent_num1(); //普通查询中按学号查询
void Querystudent_name1(); //普通查询中按姓名查询
void Queryhistory_interface(); //查询历史记录界面
int Querystudent_num(); //历史记录中按学号查询
int Querystudent_name(); //历史记录中按姓名查询
Student *Readfile(); //读取文件
void Editstudent_interface(); //编辑学生信息主界面
void Editstudent_private_inforface(); //编辑个人界面
void Editstudent_private_num(); //编辑个人按学号编辑
void Editstudent_private_name(); //编辑个人按姓名编辑
void Editstudent_score_inforface(); //编辑成绩界面
void Editstudent_score_num(); //编辑成绩按学号编辑
void Editstudent_score_name(); //编辑成绩按姓名编辑
void Delstudent(); //删除学生
void Displaystudent_interface(); //显示学生信息主界面
void Displaystudent(); //显示全部学生信息
void Displaystudent_score(); //显示按成绩排序的学生信息
源文件main.cpp
/***************************************
*版权所有 (C)2015,Chenchen
*文件名称:main.cpp
*文件标识:无
*内容摘要:每个函数的实现以及主函数
*其他说明:无
*当前版本:V1.0
*作者:陈晨
*完成时间:20161228
*修改记录:
*修改时间:20161228
*版本号:V1.0
*修改人:Chen chen
****************************************/
#include "stu.h"
/*---------------录入学生信息模块---------------*/
/**********************
*功能描述:录入学生主界面
*输入参数:无
*输出参数:无
*返回值:无
**********************/
void Addstudent_interface() //录入学生主界面
{
while(1)
{
int a;
printf("\n");
printf("+++++++++++++录入学生信息模块+++++++++++++\n");
printf("\n");
printf(" 1. 普通添加 2. 返回主界面\n");
printf("\n");
printf("++++++++++++++++++++++++++++++++++++++++++\n");
printf("请输入要选择功能的编号: ");
cin>>a;
while(a!=1&&a!=2)
{
printf("****Error Number!****\n");
printf("请重新输入要选择功能的编号: ");
cin>>a;
}
switch(a)
{
case 1:
system("cls");
Class();
break;
case 2:
Interface();
break;
}
}
}
/**********************
*功能描述:添加新班级并录入函数
*输入参数:无
*输出参数:无
*返回值:无
**********************/
void Class() //添加新班级并录入函数
{
while(1)
{
printf("\n");
printf("++++++++++++++++++++++++++++++++++++++++++\n");
printf("\n");
printf(" 1. 添加学生信息 2. 返回录入界面\n");
printf("\n");
printf("++++++++++++++++++++++++++++++++++++++++++\n");
printf("请输入要选择功能的编号: ");
int b;
cin>>b;
while(b!=1&&b!=2)
{
printf("****Error Number!****\n");
printf("请重新输入要选择功能的编号: ");
cin>>b;
}
switch(b)
{
case 1:
printf("请输入您要访问的班级: ");
if(scanf("%s", filename)!=1)
{
printf("****Error!****\n");
system("cls");
Addstudent_interface();
}
L=Addstudent();
Creatfile_new(L);
printf("****学生信息添加成功!****\n"); //建立班级
Addstudent_interface();
break;
case 2:
system("cls");
Addstudent_interface();
break;
}
}
}
/**********************
*功能描述:创建学生链表
*输入参数:无
*输出参数:head
*返回值:head
**********************/
Student *Addstudent() //创建学生链表
{
struct Student *head;
struct Student *p1, *p2;
printf("请输入要录入学生的人数: ");
int n;
if(scanf("%d", &n)!=1)
{
printf("****Error!****");
Addstudent();
}
for(int i=1;i<=n;i++)
{
p1=(struct Student*)malloc(sizeof(Student));
p1->next=NULL;
printf("请在下面输入第%d名学生基本信息:\n",i);
printf(" 学号:");
cin>>p1->num;
printf(" 姓名:");
cin>>p1->name;
printf(" 年龄:");
cin>>p1->age;
printf(" 性别:");
cin>>p1->sex;
printf(" 电话号码:");
cin>>p1->phonenum;
printf(" 学科成绩:");
cin>>p1->score;
p1->next = NULL;
printf("****第%d名学生录入成功!****\n",i);
printf("\n");
if(i==1)
{
head = p2 = p1;
}
else
{
p2->next = p1;
p2 = p1;
}
}
return head;
}
/**********************
*功能描述:保存文件
*输入参数:head
*输出参数:无
*返回值:无
**********************/
void Creatfile_ne