学生信息管理系统(C++)

cpp文件需要与名为‘class.txt’,'student.txt','score.txt'三个文件放在一个文件夹才能正常运行,如图:watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA57uD5Lmg55SfODc3,size_20,color_FFFFFF,t_70,g_se,x_16

 代码如下:


//使用此程序时需将源程序整个文件夹拖到桌面才可使用 

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include<process.h>
#include<conio.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 100
#include <iomanip>
#include <iostream>
using namespace std;

typedef struct
{
	int num;
	char name[10];
	float score;
	char teacher[10];
}Cls;

typedef struct
{
	Cls *elem;
	int length;
}Class;

typedef struct 
{
	int num;
	char name[10];
	char clas[10];
	char birth[10];
	long long QQ;
}Std1;

typedef int Status;
typedef Std1 ElemType;

typedef struct
{
	ElemType *elem;
	int length;
}Std;

typedef struct
{
	int snum;
	int cnum;
	float score;
	int trem;
}Sco;

typedef struct
{
	Sco *elem;
	int length;
}Score;

Status menu();
Status ReadStu( Std &stu );
Status ReadCls( Class &cls );
Status ReadSco( Score &sco );
Status InitList( Std &stu );
Status InitList( Class &cls );
Status InitList( Score &sco );
Status InputStd( Std &stu );
Status InputClass( Class &cls );
Status InputScore( Score &sco );
Status InputMenu( Std &stu, Class &cls, Score &sco );
Status OutputStd( Std &stu );
Status OutputCls( Class &cls );
Status OutputSco( Score &sco );
Status OutputMenu( Std &stu, Class &cls, Score &sco );
Status SearchStd( Std &stu );
Status SearchCls( Class &cls );
Status SearchSco( Score &sco );
Status SearchMenu( Std &stu, Class &cls, Score &sco );
Status ModifyStd( Std &stu );
Status ModifyCls( Class &cls );
Status ModifySco( Score &sco );
Status ModifyMenu( Std &stu, Class &cls, Score &sco );
Status DeleteStd( Std &stu );
Status DeleteCls( Class &cls );
Status DeleteSco( Score &sco );
Status DeleteMenu( Std &stu, Class &cls, Score &sco );
Status SaveStd( Std &stu );
Status SaveCls( Class &cls );
Status SaveSco( Score &sco );
Status SaveMenu( Std &stu, Class &cls, Score &sco );
Status SearchOsco( Score &sco , Class &cls , Std &stu );
Status SearchCSco( Std &stu, Class &cls, Score &sco );
Status Searchlsco( Std &stu, Class &cls, Score &sco, char *clas );

int main()  
{
	int i;
	Std stu;
	Class cls;
	Score sco;
	char *clas;
	InitList( stu );
	InitList( cls );
	InitList( sco );
	ReadStu( stu );
	ReadCls( cls );
	ReadSco( sco );
	short int flag = 0; 
	menu();
	do
	{ 
		flag=1;    
		switch( getch() )    
		{ 
			case '1' :
				InputMenu( stu, cls, sco );//添加信息 
				break;
			case '2' :
				OutputMenu( stu, cls, sco );//输出信息 
				break;
			case '3' :
				SearchMenu( stu, cls, sco );//查询信息 
				break;
			case '4' :
				ModifyMenu( stu, cls, sco );//修改成绩 
				break;
			case '5' :
				DeleteMenu( stu, cls, sco );//删除信息 
				break;
			case '6' :
				SearchOsco( sco , cls , stu );//查询个人成绩 
				break;
			case '7' :
				SearchCSco( stu, cls, sco ); //查询某门课程所有成绩 
				break;
			case '8' :
				Searchlsco( stu, cls, sco ,clas );//查询某班级某门课所有成绩 
				break;
			case '9' :
				SaveMenu( stu, cls, sco );  //保存信息 
				break;
			case '0' :
				cout<<"已成功退出,欢迎您下次使用^-^"<<endl;
				exit( 0 );    
			default : 
				cout<<"输入有误"<<endl;
		}
		cout<<"按任意键继续"<<endl;
		getch();
		menu();
	}
	while( flag == 1 );
}

Status menu()
{   
	system("cls");  
	cout<<endl;  
	cout<<"*********欢迎进入学生成绩管理系统**************"<<endl;
	cout<<"                 菜单                          "<<endl;
	cout<<"录入信息-------------------------------------1"<<endl;
	cout<<"输出信息-------------------------------------2"<<endl;
	cout<<"查询信息-------------------------------------3"<<endl;
	cout<<"修改信息-------------------------------------4"<<endl;
	cout<<"删除信息-------------------------------------5"<<endl;
	cout<<"查询个人成绩---------------------------------6"<<endl;
	cout<<"查询某门课程所有人成绩-----------------------7"<<endl;
	cout<<"查询某班级某门课所有成绩---------------------8"<<endl;
	cout<<"保存信息-------------------------------------9"<<endl;
	cout<<"退出系统-------------------------------------0"<<endl;
	cout<<"**********************************************"<<endl;
	cout<<"请输入您的选择"<<endl;
}

Status ReadStu( Std &stu )
{
	FILE *fp;
	int i;
	if( ( fp = fopen( "student.txt" , "r" ) ) == NULL )
	{
		cout<<"打开失败!"<<endl;
		return ERROR;
		exit( 0 );
	}
	for( i = 0; !feof(fp); i++ )
	{
		fscanf( fp ,"%d %s %s %s %lld", &stu.elem[i].num, &stu.elem[i].name, &stu.elem[i].clas
		, &stu.elem[i].birth, &stu.elem[i].QQ );
		++stu.length;
	}
	fclose( fp );
	stu.length--;
	return OK;
}

Status ReadCls( Class &cls )
{
	FILE *fp;
	int i;
	if( ( fp = fopen( "class.txt" , "r" ) ) == NULL )
	{
		cout<<"打开失败!"<<endl;
		return ERROR;
		exit( 0 );
	}
	for( i = 0; !feof(fp); i++ )
	{
		fscanf( fp ,"%d %s %f %s", &cls.elem[i].num, &cls.elem[i].name
		, &cls.elem[i].score, &cls.elem[i].teacher );
		++cls.length;
	}
	fclose( fp );
	cls.length--;
	return OK;
}

Status ReadSco( Score &sco )
{
	FILE *fp;
	int i;
	if( ( fp = fopen( "score.txt" , "r" ) ) == NULL )
	{
		cout<<"打开失败!"<<endl;
		return ERROR;
		exit( 0 );
	}
	for( i = 0; !feof(fp); i+
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值