C++作业

本文介绍了一个使用C++实现的学生信息管理系统,该系统通过继承的方式定义了本科生和研究生类,并利用模板类实现了链表来存储和管理学生信息。系统支持创建不同类型的学生记录并显示其详细信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include<iostream>
#include<string>
using namespace std;
class Student
{
public:
	virtual void get()=0;
	virtual void display()=0;
	string name;
	int num;
};
class UnderGraduate :public Student//本科生
{
public:
	void get()
	{
		cout << "姓名:"; cin >> name;
		cout << "学号:"; cin >> num; 
		cout << "班级号:"; cin >> classnum;
	}
	void display();
private:
	int classnum;
};
class Graduate :public Student//研究生
{
public:
	void get()
	{
		cout << "姓名:"; cin >> name;
		cout << "学号:"; cin >> num;; 
		cout << "导师姓名:"; cin >> Tutor;
	}
	void display();
private:
	string Tutor;
};
void UnderGraduate::display()
{
	cout << "姓名:" << name;
	cout << "学号:"<< num;
	cout << "班级号:" <<classnum<<endl;
}
void Graduate::display()
{
	cout << "姓名:"<< name;
	cout << "学号:"<< num;
	cout << "导师姓名:"<<Tutor;
}
template <typename T>
class SList;

template <typename T>
class Node
{
	friend class SList<T>;
public:
	Node(T *data) :data(data), next(NULL){}
private:
	T *data;
	Node<T> *next;
};
template < typename T>
class SList
{
public:
	SList():head(NULL), tail(NULL){}
	void Insert(T *newNode)
	{	
		Node<T> *t = new Node<T>(newNode);	
		if (!head)	
		{		
			head = tail = t;		
			length++;	
		}	
		else	
		{	
			tail->next = t;		
			tail = t;		
			length++;		
		}
	}
	void Delete()
	{	
		Node<T> *t = head;	
		head = head->next;	
		delete t;
	}
	void Print()
	{	
		if (!head)	
		{		
			cout << "链表空..." << endl;		
			return;	
		}
		Node<T> *t;	
		for (t = head; t; t = t->next)	
		{		
			t->data->display();	
		}
	}
private:
	int length;
	Node<T> *head;
	Node<T> *tail;
};

int main()
{
	char c; UnderGraduate U; Graduate G;
	SList<Student> List;
	for (;;)
	{
		cout << "创建学生:类型(U)本科生,(G)研究生,(E)结束:";
		cin >> c;
		if (c == 'E'){ cout << "销毁链表."<<endl; break; }
		else if (c == 'U' || c == 'G')
			switch (c)
			{
			case 'U':U.get(); List.Insert(&U); break;
			case 'G':G.get(); List.Insert(&G); break;
			default: break;
			}		
		else cout << "输入无效请重新输入:" << endl;
	}
	List.Print();
	List.Delete();
	List.Delete();
	return 0;
}
<img src="https://img-blog.youkuaiyun.com/20150527090633384?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaTA5MDgwN2xpbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />

内容概要:本文档定义了一个名为 `xxx_SCustSuplier_info` 的视图,用于整合和展示客户(Customer)和供应商(Supplier)的相关信息。视图通过连接多个表来获取组织单位、客户账户、站点使用、位置、财务代码组合等数据。对于客户部分,视图选择了与账单相关的记录,并提取了账单客户ID、账单站点ID、客户名称、账户名称、站点代码、状态、付款条款等信息;对于供应商部分,视图选择了有效的供应商及其站点信息,包括供应商ID、供应商名称、供应商编号、状态、付款条款、财务代码组合等。视图还通过外连接确保即使某些字段为空也能显示相关信息。 适合人群:熟悉Oracle ERP系统,尤其是应付账款(AP)和应收账款(AR)模块的数据库管理员或开发人员;需要查询和管理客户及供应商信息的业务分析师。 使用场景及目标:① 数据库管理员可以通过此视图快速查询客户和供应商的基本信息,包括账单信息、财务代码组合等;② 开发人员可以利用此视图进行报表开发或数据迁移;③ 业务分析师可以使用此视图进行数据分析,如信用评估、付款周期分析等。 阅读建议:由于该视图涉及多个表的复杂连接,建议读者先熟悉各个表的结构和关系,特别是 `hz_parties`、`hz_cust_accounts`、`ap_suppliers` 等核心表。此外,注意视图中使用的外连接(如 `gl_code_combinations_kfv` 表的连接),这可能会影响查询结果的完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值