学生管理系统(单链表)

学生综合测评管理系统

用单链表来管理信息。代码如下。

/*
作者:兔子
目的:学生综测管理系统
时间:2021.6.29
*/

#include <iostream>
#include <string>
#include <iomanip>
#include <fstream>
using namespace std;
//学生节点类
class StudentData {
public:
	string name;							//姓名
	string sex;								//性别
	string classname;						//班级
	string id;								//学号
	string tel;								//联系电话
	double avescore = -1;					//考试平均成绩(语数英三门)
	double comprehensive_test_score = -1;	//综合测评评分
	int c_score;							//语文成绩
	int m_score;							//数学成绩
	int e_score;							//英语成绩
	int No = -1;							//考试名次
	int student_Each_score;					//同学互评分
	int morality_score;						//品德成绩
	int teacher_score;						//任课教师评分
	int comprehensive_No = -1;				//综合测评名次
	StudentData* next;
	StudentData();							//默认初始化
	StudentData(string name,string sex,string classname,string id,string tel,int c,int m,int e,int each,int tea,int mo);
	int judge();							//判断输入的数据是否合法
	void show();							//打印输出学生所有信息
	void show1();							//显示基本信息
	void show_No();							//显示考试名次
	void show_comprehensive_No();			//显示综测名次
	void alter();							//修改学生信息
	
};

StudentData::StudentData() {
	name = "null";
	sex = "null";
	classname = "null";
	id = "null";
	tel = "null";
	avescore = -1;
	comprehensive_test_score = -1;
	c_score = -1;
	m_score = -1;
	e_score = -1;
	No = -1;
	student_Each_score = -1;
	morality_score = -1;
	teacher_score = -1;
	comprehensive_No = -1;
	next = NULL;
}
StudentData::StudentData(string name, string sex, string classname, string id, string tel, int c, int m, int e, int each, int tea, int mo) {
	this->name = name;
	this->sex = sex;
	this->classname = classname;
	this->id = id;
	this->tel = tel;
	this->c_score = c;
	this->m_score = m;
	this->e_score = e;
	this->morality_score = mo;
	this->student_Each_score = each;
	this->teacher_score = tea;
	this->avescore = (c + m + e) / 3;
	this->comprehensive_test_score = 0.6 * this->avescore + 0.1 * each + 0.1 * mo + 0.2 * tea;
}
int StudentData::judge() {
	int count = 0;
	if (name.length() > 20) {
		cout << right << setw(24) << "---" << setw(8) << "名字过长" << left << setw(24) << "---" << endl;
		count++;
	}
	if (sex.length() > 2) {
		cout << right << setw(22) << "---" << setw(12) << "性别输入错误" << left << setw(22) << "---" << endl;
		count++;
	}
	if (id.length() != 11) {
		cout << right << setw(22) << "---" << setw(12) << "学号输入错误" << left << setw(22) << "---" << endl;
		count++;
	}
	if (tel.length() != 11) {
		cout << right << setw(20) << "---" << setw(16) << "电话号码输入错误" << left << setw(20) << "---" << endl;
		count++;
	}
	if (c_score > 100 || c_score < 0) {
		cout << right << setw(20) << "---" << setw(16) << "语文成绩输入错误" << left << setw(20) << "---" << endl;
		count++;
	}
	if (m_score > 100 || m_score < 0) {
		cout << right << setw(20) << "---" << setw(16) << "数学成绩输入错误" << left << setw(20) << "---" << endl;
		count++;
	}
	if (e_score > 100 || e_score < 0) {
		cout << right << setw(20) << "---" << setw(16) << "英语成绩输入错误" << left << setw(20) << "---" << endl;
		count++;
	}
	if (student_Each_score > 100 || student_Each_score < 0) {
		cout << right << setw(19) << "---" << setw(18) << "同学互评分输入错误" << left << setw(19) << "---" << endl;
		count++;
	}
	if (morality_score > 100 || morality_score < 0) {
		cout << right << setw(20) << "---" << setw(16) << "品德成绩输入错误" << left << setw(20) << "---" << endl;
		count++;
	}
	if (teacher_score > 100 || teacher_score < 0) {
		cout << right << setw(19) << "---" << setw(18) << "任课教师评分输入错误" << left << setw(19) << "---" << endl;
		count++;
	}

	if (count == 0)
		return 1;
	else
	{
		cout << "输入有" << count << "处错误" << endl;
		return 0;
	}
}
void StudentData::alter() {
	cout << "请输入学生信息:" << endl;
	cout << "姓名:";
	cin >> this->name;
	cout << "性别:";
	cin >> this->sex;
	cout << "学号:";
	cin >> this->id;
	cout << "班级:";
	cin >> this->classname;
	cout << "联系电话:";
	cin >> this->tel;
	cout << "语文成绩:";
	cin >> this->c_score;
	cout << "数学成绩:";
	cin >> this->m_score;
	cout << "英语成绩:";
	cin >> this->e_score;
	cout << "同学互评分:";
	cin >> this->student_Each_score;
	cout << "品德成绩:";
	cin >> this->morality_score;
	cout << "任课教师评分:";
	cin >> teacher_score;
	this->avescore = (c_score + m_score + e_score) / 3;
	this->comprehensive_test_score = 0.6 * avescore + 0.1 * student_Each_score + 0.1 * morality_score + 0.2 * teacher_score;
}
void StudentData::show() {
	cout << "---学生信息---" << endl;
	cout << "姓名:" << name << endl;
	cout << "性别:" << sex << endl;
	cout << "学号:" << id << endl;
	cout << "班级:" << classname << endl;
	cout << "联系电话:" << tel << endl;
	cout << "语文成绩:" << c_score << endl;
	cout << "数学成绩:" << m_score << endl;
	cout << "英语成绩:" << e_score << endl;
	cout << "考试名次:" << No << endl;
	cout << "品德成绩:" << morality_score << endl;
	cout << "同学互评分:" << student_Each_score << endl;
	cout << "考试平均成绩:" << avescore << endl;
	cout << "任课教师评分:" << teacher_score << endl;
	cout << "综合测评评分:" << comprehensive_test_score << endl;
	cout << "综合测评名次:" << comprehensive_No << endl;

}
void StudentData::show1() {
	cout << left << setw(12) << this->name;
	cout << left << setw(6) << this->sex;
	cout << left << setw(10) << this->classname;
	cout << left << setw(13) << this->id;
	cout << left << setw(13) << this->tel;
	cout << left << setw(13) << this->No;
	cout << left << setw(13) << this->avescore;
	cout << left << setw(13) << this->comprehensive_No;
	cout << left << setw(13) << this->comprehensive_test_score << endl << endl;

}
void StudentData::show_comprehensive_No() {
	cout << left << setw(12) << this->name;
	cout << left << setw(13) << this->comprehensive_No;
	cout << left << setw(13) << this->comprehensive_test_score << endl << endl;
}
void StudentData::show_No() {
	cout << left << setw(12) << this->name;
	cout << left << setw(13) << this->No;
	cout << left << setw(13) << this->avescore << endl << endl;
}

//学生类,用链表管理学生节点
class Student {
public:
	int size = 0;
	StudentData *head =new StudentData();
	StudentData* searchByid(string id);			//以学号查找
	void add();									//手动添加
	void add(StudentData* stu);					//以节点的形式添加
	void show();								//遍历链表
	void show_avescore_rangking();
	void show_comprehensive_rangking();
	bool change_information_Byid();				//以学号查找修改信息
	void change_menu();							//修改信息的菜单
	bool delete_information_Byid();				//以学号查找删除信息
	bool search();								//按学号查询一个学生全部信息
	void writeffile();							//写文件
	void sortByid();							//按学号排序
	void sort();								//排序总函数
	void compute_avescore_rangking();			//计算考试名次
	void compute_comprehensive_rangking();		//计算综测名次
};

StudentData* Student::searchByid(string id) {
	StudentData* p = this->head;		//定义临时指针指向头指针
	while (p != NULL)
	{			//只要指针不为空指针就执行循环
		if (p->id == id)
		{
			cout << right << setw(24) << "---" << setw(8) << "查询成功" << left << setw(24) << "---" << endl;
			break;
		}
		p = p->next;			//将指针后移
	}
	if (p == NULL) {			//说明遍历单链表后都没有查询到输入的学号
		cout << right << setw(24) << "---" << setw(8) << "查询失败" << left << setw(24) << "---" << endl;
		p = new StudentData();
	}
	return p;
}
void Student::show()
{
	cout << left << setw(12) << "姓名";
	cout << left << setw(6) << "性别";
	cout << left << setw(10) << "班级";
	cout << left << setw(13) << "学号";
	cout << left << setw(13) << "联系电话";
	cout << left << setw(13) << "考试名次";
	cout << left << setw(13) << "平均成绩";
	cout << left << setw(13) << "综测名次";
	cout << left << setw(13) << "综测成绩" << endl;

	StudentData* p = head->next;
	while (p != NULL) {
		p->show1();
		p = p->next;
	}
}
void Student::show_comprehensive_rangking() {
	Student::compute_comprehensive_rangking();
	cout << left << setw(12) << "姓名";
	cout << left << setw(13) << "综测名次";
	cout << left << setw(13) << "综测成绩" << endl;

	StudentData* p = head->next;
	while (p != NULL) {
		p->show_comprehensive_No();
		p = p->next;
	}
}
void Student::show_avescore_rangking() {
	Student::compute_avescore_rangking();
	cout << left << setw(12) << "姓名";
	cout << left << setw(13) << "考试名次";
	cout << left << setw(13) << "平均成绩" << endl;

	StudentData* p = head->next;
	while (p != NULL) {
		p->show_No();
		p = p->next;
	}
}
void Student::compute_comprehensive_rangking() {
	StudentData* p, * q, * tail;
	int num;
	int No = 1;
	for (int i = 0; i < size - 1; i++)
	{
		num = size - i - 1;
		q = head->next;
		p = q->next;
		tail = head;
		while (num--)
		{
			if (q->comprehensive_test_score < p->comprehensive_test_score)
			{
				q->next = p->next;
				p->next = q;
				tail->next = p;
			}
			tail = tail->next;
			q = tail->next;
			p = q->next;
		}
	}
	p = head->next;
	while (p != NULL)
	{
		p->comprehensive_No = No;
		p = p->next;
		No++;
	}
}
void Student::compute_avescore_rangking() {
	StudentData* p, * q, * tail;
	int num;
	int No = 1;
	for (int i = 0; i < size - 1; i++)
	{
		num = size - i - 1;
		q = head->next;
		p = q->next;
		tail = head;
		while (num--)
		{
			if (q->avescore < p->avescore)
			{
				q->next = p->next;
				p->next = q;
				tail->next = p;
			}
			tail = tail->next;
			q = tail->next;
			p = q->next;
		}
	}
	p = head->next;
	while (p != NULL) 
	{
		p->No = No;
		p = p->next;
		No++;
	}
}
void Student::sort() {
	StudentData* p, * q, * tail;
	int num;
	int choice;
	cout << endl << setw(20) << "--------------------" << setw(16) << "学生综合测频系统" << setw(20) << "--------------------" << endl << endl;
	cout << right << setw(24) << "---" << setw(8) << "排序方式" << left << setw(24) << "---" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "1.按学号";
	cout << left << setw(20) << "2.按综合测评评分" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "3.按考试平均成绩";
	cout << left << setw(20) << "0.返回菜单" << endl << endl;
	cout << "请输入你的选择:";
	cin >> choice;
	switch (choice)
	{
	case 1:
		for (int i = 0; i < size - 1; i++)
		{
			num = size - i - 1;
			q = head->next;
			p = q->next;
			tail = head;
			while (num--)
			{
				if (q->id > p->id)
				{
					q->next = p->next;
					p->next = q;
					tail->next = p;
				}
				tail = tail->next;
				q = tail->next;
				p = q->next;
			}
		}
		break;
	case 2:
		for (int i = 0; i < size - 1; i++)
		{
			num = size - i - 1;
			q = head->next;
			p = q->next;
			tail = head;
			while (num--)
			{
				if (q->comprehensive_test_score > p->comprehensive_test_score)
				{
					q->next = p->next;
					p->next = q;
					tail->next = p;
				}
				tail = tail->next;
				q = tail->next;
				p = q->next;
			}
		}
		break;
	case 3:
		for (int i = 0; i < size - 1; i++)
		{
			num = size - i - 1;
			q = head->next;
			p = q->next;
			tail = head;
			while (num--)
			{
				if (q->avescore > p->avescore)
				{
					q->next = p->next;
					p->next = q;
					tail->next = p;
				}
				tail = tail->next;
				q = tail->next;
				p = q->next;
			}
		}
		break;
	case 0:
		system("cls");
		break;
	default :
		cout << "输入非法!" << endl << endl;
	}
}
void Student::sortByid() {
	StudentData* p,* q,*tail;
	int num;
	for (int i = 0; i < size - 1; i++)
	{
		num = size - i - 1;
		q = head->next;
		p = q->next;
		tail = head;
		while (num--)
		{
			if (q->id > p->id) 
			{
				q->next = p->next;
				p->next = q;
				tail->next = p;
			}
			tail = tail->next;
			q = tail->next;
			p = q->next;
		}
	}
}
void Student::writeffile() {
	Student::sortByid();
	ofstream ofs;
	StudentData* p = head->next;
	ofs.open("test.txt", ios::out | ios::trunc);
	while (p != NULL) {
		ofs <<"姓名:"<< p->name << endl;
		ofs <<"性别:"<< p->sex << endl;
		ofs <<"班级:"<< p->classname << endl;
		ofs <<"学号:"<< p->id << endl;
		ofs <<"电话:"<< p->tel << endl <<endl;
		p = p->next;
	}
	ofs.close();
}
bool Student::search() {
	string id;
	cout << "请输入查询学生的学号:";
	cin >> id;
	StudentData* p = Student::searchByid(id);
	if (p->id == "null")
	{
		return false;
	}
	else {
		p->show();
		return true;
	}
}
void Student::add() {
	int right;
	StudentData* p = head;
	StudentData* r = new StudentData();
	while (true)					//外层循环控制是否重复操作
	{
		r->alter();
		right = r->judge();			//判断输入是否合理
		if (right == 1)				//合理则执行头插入操作
		{
			while (true)
			{
				if (p->next != NULL)
					p = p->next;
				else break;//找到链表尾跳出循环
			}
			r->next = p->next;
			p->next = r;
			this->size++;
			cout << "添加成功!" << endl;
			break;
		}
		else
		{
			int choice;
			cout << "是否重新输入?" << endl;
			cout << "0---No,1---Yes" << endl;
			cout << "请输入的你选择:";
			cin >> choice;
			if (choice == 0)
			{
				system("cls");
				break;
			}
			else if (choice == 1) {
				system("cls");
			}
			else if (choice != 1 && choice != 0)
			{
				cout << "非法输入!退出操作。" << endl;
				system("cls");
				break;
			}

		}
	}
	this->compute_avescore_rangking();
	this->compute_comprehensive_rangking();
}
void Student::add(StudentData* stu) 
{
	StudentData* p = head;
	stu->next = p->next;
	p->next = stu;
	this->size++;
	Student::compute_avescore_rangking();
	Student::compute_comprehensive_rangking();
}
void Student::change_menu() {
	cout << right << setw(24) << "---" << setw(8) << "修改方式" << left << setw(24) << "---" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "1.修改学生基本信息";
	cout << left << setw(20) << "2.修改学生考试成绩" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "3.修改学生综测信息";
	cout << left << setw(20) << "4.修改学生全部信息" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "0.返回菜单" << endl << endl;

}
bool Student::delete_information_Byid() {
	int choice;
	string id;
	cout << "请输入你要删除学生的学号:";
	cin >> id;
	StudentData* q = head;
	StudentData *p = Student::searchByid(id);
	if (p->id == "null") {
		return false;
	}
	while (q->next->id != id) {
		q = q->next;
	}
	cout << "是否删除该学生信息?" << endl;;
	cout << "No---0,Yes---1" << endl;
	cout << "请输入你的选择:";
	cin >> choice;
	if (choice == 0)
		return false;

	//删除节点
	q->next = p->next;
	cout << "删除成功!" << endl << endl;
	return true;

}
bool Student::change_information_Byid() 
{
	int choice;
	string Id;
	string name;
	string sex;
	string classname;
	string id;
	string tel;
	int c, m, e;
	int pin, each, tea;
	cout << "请输入你的选择:";
	cin >> choice;
	if (choice == 0) {
		system("cls");
		return false;
	}
	cout << "请输入你查找学生的学号:";
	cin >> Id;
	StudentData* p = Student::searchByid(Id);
	//查找失败返回false
	if (p->id == "null") { 
		return false;
	}
	switch (choice) {
	case 1:while (true) 
	{
			cout << "姓名:";
			cin >> name;
			cout << "性别:";
			cin >> sex;
			cout << "班级:";
			cin >> classname;
			cout << "学号:";
			cin >> id;
			cout << "联系电话:";
			cin >> tel;
			if (id.length() != 11 || tel.length() != 11) {
				cout << "学号或电话输入错误!请重新输入" << endl;
			}
			else {
				p->name = name;
				p->sex = sex;
				p->classname = classname;
				p->id = id;
				p->tel = tel;
				cout << "修改成功!" << endl << endl;
				break;
			}
		}
		break;
	case 2:while (true) 
	{
			cout << "语文:";
			cin >> c;
			cout << "数学:";
			cin >> m;
			cout << "英语:";
			cin >> e;
			if (c < 0 || c>100 || m < 0 || m>100 || e < 0 || e>100) {
				cout << "成绩输入有错误!请重新输入!"<<endl;
			}
			else {
				p->e_score = e;
				p->m_score = m;
				p->c_score = c;
				cout << "修改成功!" << endl << endl;
				break;
			}
		}
		break;
	case 3:while (true) {
		cout << "品德成绩:";
		cin >> pin;
		cout << "同学互评分:";
		cin >> each;
		cout << "任课教师评分:";
		cin >> tea;
		if (pin < 0 || pin>100 || each < 0 || each>100 || tea < 0 || tea>100) 
		{
			cout << "成绩输入有错误!请重新输入!" << endl;
		}
		else 
		{
			p->morality_score = pin;
			p->student_Each_score = each;
			p->teacher_score = tea;
			cout << "修改成功!";
			break;
		}
	}
		break;
	case 4:while (true)
		{
			p->alter();
			if (p->judge() != 1) {
				;
			}
			else {
				break;
			}
		}
		break;
	default :
		cout << "输入不合法!" << endl;
		break;
	}
	return true;
	
}

//系统类
class System {
public:
	StudentData* s1 = new StudentData("李泽龙", "男", "计科2002", "20408030220", "18066513115", 75, 89, 80, 85, 84, 89);
	StudentData* s2 = new StudentData("王西免", "男", "计科2002", "20408030216", "18066513114", 86, 95, 84, 80, 83, 80);
	StudentData* s3 = new StudentData("张旺祯", "男", "计科2002", "20408030221", "18066513116", 82, 89, 80, 81, 86, 84);
	StudentData* s4 = new StudentData("张少文", "女", "计科2002", "20408030227", "18066513118", 83, 80, 82, 80, 87, 94);
	Student stu;
	void MenuShow();
	void Menu();
	void title();
	void user_guide();
};
void System::title() 
{
	cout << endl <<setw(20)<<"--------------------"<<setw(16)<< "学生综合测频系统"<<setw(20)<<"--------------------" << endl << endl;
}
void System::MenuShow() 
{
	System::title();
	cout << setw(10) << " " << left << setw(22) << "1.录入学生信息" ;
	cout << left << setw(20) << "2.修改学生信息" << endl << endl;
	cout << setw(10) << " " << left<< setw(22) << "3.删除学生信息" ;
	cout << left << setw(20) << "4.查询学生信息" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "5.查询综测成绩表";
	cout << left << setw(20) << "6.查询考试成绩表" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "7.显示所有学生信息";
	cout << left << setw(20) << "8.排序" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "9.将所有信息写入文件";
	cout << left << setw(20) << "10.使用指南" << endl << endl;
	cout << setw(10) << " " << left << setw(22) << "0.退出系统" << endl << endl;



}
void System::user_guide()
{
	cout << "1.在录入学生信息时学号是11位,名字默认最长5个字,输入之后会对输入的信息进行检测。"<<endl;
	cout << "2.修改信息时提供4种修改方式,都是以学号查询位基础。" << endl;
	cout << "3.删除信息时,按学号查询删除,查询成功后再次确认。" << endl;
	cout << "4.查询学生信息时,提供两种方式,查询基本信息,全部信息,按学号查询" << endl;
	cout << "5.查询综测成绩表时,显示姓名,名次,综测成绩。" << endl;
	cout << "6.查询考试成绩表时,显示姓名,名次,考试成绩。" << endl;
	cout << "7.显示所有信息可以显示基本信息和全部信息" << endl;
	cout <<"8.排序操作提供按学号,考试成绩,综测成绩3种排序" << endl;
	cout << "9.写入文件是会自动先进行按学号排序,使得写入的学号从小到大。" << endl;

}
void System::Menu() {
	stu.add(s1);
	stu.add(s2);
	stu.add(s3);
	stu.add(s4);
	int choice;
	while (true) {
		System::MenuShow();
		cout << "请输入你的选择:";
		cin >> choice;
		switch (choice)
		{
		case 0:
			//退出系统
			system("cls");
			cout << "你已经安全退出系统,欢迎下次使用。" << endl;
			exit(0);
		case 1:
			//录入学生信息
			system("cls");
			stu.add();
			break;
		case 2:
			//修改学生信息
			system("cls");
			stu.change_menu();
			stu.change_information_Byid();
			break;
		case 3:
			//删除学生信息
			system("cls");
			stu.delete_information_Byid();
			break;
		case 4:
			//查询学生信息
			system("cls");
			int i;
			while (true)
			{
				system("cls");
				System::title();
				stu.search();
				cout << endl << "是否继续?(No---0,Yes---1)" << endl;
				cout << "请输入选择:";
				cin >> i;
				if (i == 1);
				else
					break;
			}
			break;
		case 5:
			//查询综测成绩表
			system("cls");
			stu.show_comprehensive_rangking();
			break;
		case 6:
			//查询考试成绩表
			system("cls");
			stu.show_avescore_rangking();
			break;
		case 7:
			//显示所有学生信息
			system("cls");
			stu.show();
			break;
		case 8:
			//排序
			system("cls");
			stu.sort();
			break;
		case 9 :
			//写文件保存
			system("cls");
			stu.writeffile();
			break;
		case 10:
			system("cls");
			System::user_guide();
		default:
			break;
		}
	}
}
int main() {
	System menu;
	menu.Menu();
	return 0;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生管理系统可以用单链表来实现。下面是单链表程序的分析: 1. 定义链表节点结构体 首先,我们需要定义链表节点的结构体,它包含了学生信息和指向下一个节点的指针。例如: ```c struct student { int id; // 学号 char name[20]; // 姓名 float score; // 成绩 }; struct node { struct student data; // 学生信息 struct node *next; // 指向下一个节点的指针 }; ``` 2. 实现链表的初始化 链表的初始化需要创建头节点,并将头节点的指针指向 NULL。例如: ```c struct node *head = NULL; void init_list() { head = (struct node*)malloc(sizeof(struct node)); head->next = NULL; } ``` 3. 实现链表的插入 链表的插入可以分为三个步骤:创建新节点、将新节点插入到链表中、修改节点指针。例如: ```c void insert_node(struct student stu) { struct node *new_node = (struct node*)malloc(sizeof(struct node)); new_node->data = stu; new_node->next = NULL; // 将新节点插入到链表中 struct node *p = head; while (p->next != NULL && p->next->data.id < stu.id) p = p->next; new_node->next = p->next; p->next = new_node; } ``` 4. 实现链表的查询 查询链表中的节点可以通过遍历链表来实现。例如: ```c struct node* find_node(int id) { struct node *p = head->next; while (p != NULL && p->data.id != id) p = p->next; return p; } ``` 5. 实现链表的删除 链表的删除需要先找到要删除的节点,然后修改链表中相应节点的指针。例如: ```c void delete_node(int id) { struct node *p = head; while (p->next != NULL && p->next->data.id != id) p = p->next; if (p->next != NULL) { struct node *q = p->next; p->next = q->next; free(q); } } ``` 6. 实现链表的输出 输出链表中的节点需要遍历链表,并将节点的信息输出到终端。例如: ```c void print_list() { struct node *p = head->next; while (p != NULL) { printf("%d\t%s\t%.2f\n", p->data.id, p->data.name, p->data.score); p = p->next; } } ``` 以上就是单链表程序的分析,我们可以根据需求对链表进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值