数据结构课程设计学生成绩管理系统源代码

#include<iostream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<windows.h>

const MaxListSize=100;//设置数组长度为100
//student类
class student
{
private:
	int num;
	int grade[5];
	float sum;
	float ping;
	char name[20];
	int age;
public:
	student(){}
	void setnum(int nu){num=nu;}
	int getnum(){int n;n=num;return n;}
	void setgrade(int a,int b){grade[b]=a;}
	int getgrade(int n){int a;a=grade[n];return a;}
	void setname(char *na){strcpy(name,na);}
	char *getname(){char *na;na=name;return na;}
	void setage(int a){age=a;}
	int getage(){int a;a=age;return a;}
	friend class SeqList;
	float getping();
	int getsum();
	student (student &s);
};
//求和
int student::getsum()
{
	int sum=0;
	for(int i=0;i<5;i++)
		sum=sum+grade[i];
	return sum;
}
//求平均
float student::getping()
{
	float sum=0;
	for(int i=0;i<5;i++)
		sum=sum+grade[i];
	sum=sum/5;
	return sum;
	
}

student::student (student &s)
{
	num=s.num;
	age=s.age;
	strcpy(name,s.name);
	for(int i=0;i<5;i++)
		grade[i]=s.grade[i];
}

typedef student datatype;
//Seqlist类
class SeqList 
{
private:
	datatype data[MaxListSize];
public:
	int size;
	int ListSize(){	return size;};
	void Find(datatype& item);
	void Find3(datatype& item);
	void Insert(datatype& item,int pos);
	void ClearList();
	void luru(int n);
	void xianshi(int n); 
	void xinming(int n);
    void xuehao(int a);
    void kecheng(int n);
	void change(int a);
	void del(int n);
	void paixu1(datatype array[],int k,int length);
	void Find1(datatype& item,int j);
	datatype erfen(datatype a[],int key,int n);
	void duoyu1();
	void Find2(datatype& item);
	void zong(int n);
};
//定义查询  
void SeqList::Find1(datatype& item,int j)
{
    printf("学号:%d",item.getnum());
    printf(" 姓名:%s",item.getname());
	printf(" 年龄:%d",item.getage());
	printf(" 成绩%d:%d",j,item.getgrade(j));
	printf("\n");
}
void SeqList::Find2(datatype& item)
{
    printf("学号:%d",item.getnum());
    printf(" 姓名:%s",item.getname());
	printf(" 年龄:%d",item.getage());
	printf(" 总成绩:%d",item.getsum());
	printf(" 平均成绩:%.2f",item.getping());
	printf("\n");
}
//希尔排序
void paixun(datatype array[],int length)  
{
    int d = length/2;   //设置希尔排序的增量
	int i ;
	int j;
	student temp,t;
	while(d>=1)
	{
		for(i=d;i<length;i++)
		{
			temp=array[i];
			j=i-d;
			while(j>=0 && array[j].getnum()>temp.getnum())
			{
				t=array[j];
				array[j+d]=t;
				j=j-d;
			}
			array[j+d]=temp;
		}
		d= d/2;    //缩小增量
	}
}
//seqlist类中查询函数
void SeqList::Find(datatype& item)
{
    printf("学号:%d",item.getnum());
    printf(" 姓名:%s",item.getname());
	printf(" 年龄:%d",item.getage());
	for(int j=0;j<5;j++)
		printf(" 成绩:%d",item.getgrade(j));
	printf(" 总成绩:%d",item.getsum());
	printf(" 平均成绩:%.2f",item.getping());
}

void SeqList::Find3(datatype& item)
{
    printf("学号:%d",item.getnum());
    printf(" 姓名:%s",item.getname());
	printf(" 年龄:%d",item.getage());
	for(int j=0;j<5;j++)
		printf(" 成绩:%d",item.getgrade(j));
	printf(" 总成绩:%d",item.getsum());
	printf(" 平均成绩:%.2f",item.getping());
}

void SeqList::ClearList ()
{
	size =0;
}

SeqList list;
void guanliyuan(int n);
void guanliyuanmain(int n);
void guanliyuan_denglu(int n);
void duoyu1();
void xianshi1(int n);
void duoyu2();
void paixun(datatype array[],int length);
void studentmain(int n);
void zhu();
void main()
{
	int a;
	do                              
	{
		system("cls");
		list.ClearList();
		printf("\n\n\n")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值