数据结构实践项目一——学生成绩档案管理系统(代码实现)

一、定义学生类

//学生类 
class Student
{
   
public:
	void inputStudent(Student *head);      //录入学生的信息 
	void outputStudent(Student *head);     //显示学生的信息 
	void deleteStudent(Student *head);     //删除学生的信息
	void addStudent(Student *head);        //添加学生的信息
	void changeStudent(Student *head);     //修改学生的信息 
	void findStudent(Student *head);       //查找学生的信息 
	void sortStudent(Student *head);       //学生成绩排序
	void ShellSort(Student *head);		   //希尔排序
	void TwoWayBubbleSort(Student *head);  //双向冒泡排序
	void FastSort(Student *head, Student *tail);//快速排序
	void saveStudent(Student *head);       //保存学生的信息
	void loadStudent(Student *head);       //加载学生的信息 
	void getcountStudent(Student *head);
	int    num;
	char   name[5];
	int    Chinese;
	int    English;
	int    Math;
	int    Computer;
	int    sum;
	int	   count;
	Student *next;
private:
};

二、实现各功能的方法

1、输入学生信息

void Student::inputStudent(Student *head) //输入学生的信息 
{
   
	system("cls");
	Student *p1, *p2;
	p1 = head;
	int N;
	cout << "请输入学生的总人数:" << endl;
	cin >> N;
	for (int i = 0; i < N; i++)
	{
   
		p2 = new Student;
		p1->next = p2;
		p1 = p1->next;
		cout << "请输入学生的信息:" << "学号 " << "姓名 " << "语文 " << "数学 " << "英语 " << "计算机" << endl;
		cin >> p1->num >> p1->name >> p1->Chinese >> p1->Math >> p1->English >> p1->Computer;
		p1->sum = p1->Chinese + p1->Math + p1->English + p1->Computer;
	}
	p1->next = NULL;
	cout << "输入成功!" << endl;
}

2、显示学生信息

void Student::outputStudent(Student *head)//显示学生的信息 
{
   
	system("cls");
	Student *p1, *p2;
	p1 = head->next;
	int rank = 0;//名次 
	cout << "学号\t" << "姓名\t" << "语文"
		<< "\t" << "数学" << "\t" << "英语" << "\t" << "计算机" << "\t" << "\t" << "总分"
		<< "\t" << "\t" << "排名" << endl;
	while (p1 != NULL)
	{
   
	cout << p1->num << "\t" << p1->name << "\t" << p1->Chinese << "\t" << p1->Math << "\t" << p1->English << "\t" << p1->Computer << "\t" << "\t";
		cout << p1->sum << "\t" << "\t";
		if (p1->pre)
			if (p1->pre->sum == p1->sum)
				cout << rank<<endl;
			else
				cout << rank + 1 << endl;
		else 
			cout << rank + 1 << endl;
		rank++;
		p1 = p1->next;
	}
	cout << "显示成功!" << endl;
}

3、删除学生的成绩

void Student::deleteStudent(Student *head)//删除学生的信息 
{
   
	system("cls");
	Student *p1,*p2;
	int p;
	int stunum;
	char stuname[5];
	p1 = head;
	cout << "请选择 1.按学号查找 2. 按姓名查找" << endl;
	cin >> p;
	if (p == 1)
	{
   
		system("cls");
		cout << "请输入要查找的学号:" << endl;
		cin >> stunum;
		while (p1->next!= NULL)
		{
   
			if (stunum == p1->next->num)
			{
   
				if (p1->next->next == NULL)
				{
   
					delete p1->next;
					p1->next = NULL;
					cout << "删除成功!" << endl;
					break;
				}
				else
				{
   				
					p2 = p1
  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值