⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 david.cpp

📁 学 生 成 绩 管 理 系 统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	strcat(a, "\n");
	strcpy(p->sc.computer, a);

	cout<<"请输入数学成绩: "<<endl;
	cin>>a;
	strcat(a, "\n");
	strcpy(p->sc.maths, a);

	cout<<"请输入物理成绩: "<<endl;
	cin>>a;
	strcat(a, "\n");
	strcpy(p->sc.physics, a);

	cout<<"编辑学科成绩完成!"<<endl;

	dispscore(p);
}

void List::editroom(LinkList* p)                     //编辑学生宿舍信息
{
	char c[20];
	cout<<"请输入宿舍地址: "<<endl;
	cin>>c;
	strcat(c, "\n");
	strcpy(p->ro.room_addr, c);

	cout<<"请输入宿舍号码: "<<endl;
	cin>>c;
	strcat(c, "\n");
	strcpy(p->ro.room_num, c);

	cout<<"请输入宿舍电话: "<<endl;
	cin>>c;
	strcat(c, "\n");
	strcpy(p->ro.room_tel, c);

	cout<<"编辑宿舍信息完成!"<<endl;
	disproom(p);
}

void List::dispdata(LinkList* p)                        //显示学生档案
{
	cout<<"姓名:		"<<p->name;
	cout<<"学号:		"<<p->number;
	cout<<"出生日期:	"<<p->da.birthday;
	cout<<"性别:		"<<p->da.sex;
	cout<<"家庭电话:	"<<p->da.JD;
	cout<<"手机号码:	"<<p->da.SJ;
	cout<<"家庭住址:	"<<p->da.address;
	cout<<"学历:		"<<p->da.XL;
}

void List::dispscore(LinkList* p)                       //显示学生成绩
{
	cout<<"英语成绩:	"<<p->sc.english;
	cout<<"计算机成绩:	"<<p->sc.computer;
	cout<<"数学成绩:	"<<p->sc.maths;
	cout<<"物理成绩:	"<<p->sc.physics;
	cout<<" 总 分:      "<<atof(p->sc.english)+atof(p->sc.computer)+atof(p->sc.maths)+atof(p->sc.physics)<<endl;
	cout<<" 平均分:     "<<(atof(p->sc.english)+atof(p->sc.computer)+atof(p->sc.maths)+atof(p->sc.physics))/4<<endl;
}

void List::disproom(LinkList* p)                        //显示学生宿舍信息
{
	cout<<"宿舍地址是:	"<<p->ro.room_addr;
	cout<<"宿舍号码是:	"<<p->ro.room_num;
	cout<<"宿舍电话是:	"<<p->ro.room_tel;
}

void List::menu()                                       
{
	cout<<endl<<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<<"*********************************************************"<<endl;
}

List::~List()
{
	LinkList *pa=head, *pb;
	if(pa!=NULL)
	{
		pb=pa->next;
		if(pb==NULL)
			free(pa);
		else
		{
			while(pb!=NULL)
			{
				free(pa);
				pa=pb;
				pb=pb->next;
			}
			free(pa);
		}
	}
}

class Odararor                              //定义一个操作类
{
	List L1;
public:				
	void Loop();							//主循环			
	void display();							//显示菜单	
};



void Odararor::display()
{
	cout<<endl<<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<<"                    0:  退出系统"<<endl;
	cout<<"********************************************************************"<<endl;
}

void Odararor::Loop()                               
{
	List L1;                                        //List 对象
	char ch[20];
	LinkList *p, *head;   
	int i;		                                    //存放节点序号
	p=L1.load();	                                //初始化:从外部读入数据创建链表
	head=p;
	display();
	while(1)
	{
		cout<<endl<<endl;
		cout<<"请输入选择(主菜单--> 7 ): "<<endl;
		cin>>ch;

		system("cls");
		if(L1.check(ch, "1"))
		{
			p=L1.insnode(0);
			head=p;

			system("cls");
			cout<<endl;
			cout<<"************** 添加一个学生信息 ******************"<<endl;
			cout<<"下面输入个人档案: "<<endl;
			L1.editdata(p);
			cout<<"下面输入学科成绩: "<<endl;
			L1.editscore(p);
			cout<<"下面输入宿舍信息: "<<endl;
			L1.editroom(p);
		}

		if(L1.check(ch, "2"))
		{
			system("cls");
			cout<<endl;
			cout<<"************** 删除一个学生信息 ******************"<<endl;
			L1.dispname();
			cout<<"请输入学生姓名: "<<endl;
			cin>>ch;
			i=L1.find2(ch);
			L1.delnode(i);
			cout<<endl<<ch<<"  已经被删除!";
		}

		if(L1.check(ch, "3"))
		{
			system("cls");
			cout<<endl;
			cout<<"************** 显示所有学生姓名 ******************"<<endl;
			cout<<"文件中有"<<L1.listlen()<<"条记录!"<<endl;
			L1.dispname();
		}

		if(L1.check(ch, "4"))
		{
			system("cls");
			cout<<endl;
			cout<<"*************** 按学生姓名查找 ******************"<<endl;
			cout<<"请输入要查找学生的姓名:";
			cin>>ch;
			p=L1.find(ch);
            L1.dispnode(p);
		}

		if(L1.check(ch, "5"))
		{
			system("cls");
			cout<<endl;
			cout<<"************** 按学生学号查找 ******************"<<endl;
			cout<<"请输入要查找学生的学号: "<<endl;
			cin>>ch;
			p=L1.find3(ch);
			L1.dispnode(p);
		}

		if(L1.check(ch, "6"))
		{
			char c[10];
			system("cls");
			cout<<endl;
			cout<<"************** 按姓名对单个学生进行编辑 ******************"<<endl;
			L1.dispname();
			cout<<"请输入学生姓名: "<<endl;
			cin>>c;
			p=L1.find(c);

			system("cls");
			cout<<endl<<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<<"*********************************************************"<<endl;

			while(1)
			{
				cout<<endl<<endl;
				cout<<"请输入选择(主菜单--> 8 ): "<<endl;
				cin>>c;
				system("cls");

				if(L1.check(c, "1"))
				{
					system("cls");
					cout<<endl;
					cout<<"************** 编辑个人档案 ******************"<<endl;
					L1.editdata(p);
				}
			
				else if(L1.check(c, "2"))
				{
					system("cls");
					cout<<endl;
					cout<<"************** 编辑学科成绩 ******************"<<endl;
					L1.editscore(p);
				}
			
				else if(L1.check(c, "3"))
				{
					system("cls");
					cout<<endl;
					cout<<"************** 编辑宿舍信息 ******************"<<endl;
					L1.editroom(p);
				}
			
				else if(L1.check(c, "4"))
				{
					system("cls");
					cout<<endl;
					cout<<"************** 显示个人档案 ******************"<<endl;
					L1.dispdata(p);
				}

				else if(L1.check(c, "5"))
				{
					system("cls");
					cout<<endl;
					cout<<"************** 显示学科成绩 ******************"<<endl;
					L1.dispscore(p);
				}

				else if(L1.check(c, "6"))
				{
					system("cls");
					cout<<endl;
					cout<<"************** 显示宿舍信息 ******************"<<endl;
					L1.disproom(p);
				}

				else if(L1.check(c, "7"))
				{
					system("cls");
					L1.dispnode(p);
				}

				else if(L1.check(c, "8"))
				{
					system("cls");
					L1.menu();
				}

				else if(L1.check(c, "9"))
				{
					display();
					break;	//用 break 跳出本循环,不要用 return ,return 是退出程序
				}
			}
		}

		if(L1.check(ch, "7"))
		{
			display();
		}

		if(L1.check(ch, "8"))		//保存数据
		{
			FILE *fp;
			if((fp=fopen("student.txt", "w"))==NULL)
			{
				cout<<"打开文件失败"<<endl;
				return;
			}

			int i;
			char t[255];	
			sprintf(t, "The Length Of Link: %d\n", L1.listlen());	//将 L1.listlen() 赋予字符串中的数字
			fputs(t, fp);
			strcpy(t, "\n");
			fputs(t, fp);

			p=L1.findnode(1);			     	//将链表头指针赋予 p

			for(i=0; i<L1.listlen(); i++)
			{
				fputs(p->name, fp);		        //输出姓名
				fputs(p->number, fp);		    //输出学号
				
				fputs(p->da.birthday, fp);		//输出生日
				fputs(p->da.sex, fp);	    	//输出性别
				fputs(p->da.JD, fp);		    //输出家庭电话
				fputs(p->da.SJ, fp);		    //输出手机号码
				fputs(p->da.address, fp);		//输出地址				
				fputs(p->da.XL, fp);		    //输出学历

				fputs(p->sc.computer, fp);	    //输出计算机成绩
				fputs(p->sc.english, fp);	    //输出英语成绩
				fputs(p->sc.maths, fp);		    //输出数学成绩
				fputs(p->sc.physics, fp);    	//输出物理成绩

				fputs(p->ro.room_addr, fp);		//输出宿舍地址
				fputs(p->ro.room_num, fp);		//输出宿舍号码
				fputs(p->ro.room_tel, fp);		//输出宿舍电话
				fputs(t, fp);

				p=p->next;
			}
			p=head;
			fclose(fp);
		}

		else if(L1.check(ch, "0"))
			return;
	}

	return;
}

void main()
{
	Odararor O1;
	O1.Loop();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -