【C++课程设计】新生基本信息统计软件

1. 课题来源

课题名称:新生基本信息统计软件
课题来源:《C++面向对象程序设计》课程设计任务书
体现面向对象的特性:类与对象的特性,封装机制,数据成员等特性。

2.任务描述

有新生来报到,要逐个录入其信息,如:学生姓名,性别,专业,出生日期,家庭地址,英语入学成绩。要求设计链表类来实现,并统计学生人数。

文本界面为:
 1. 新增学生信息 
 2.  删除学生信息
 3. 导入学生信息(已经保存于的文件信息)
 4. 学生信息搜索(按姓名)
 5. 学生信息统计(按专业或性别或年龄---年龄要自动计算)
 6. 按英语成绩排序
 7. 学生信息保存
 8. 退出

2.1.课题的总体结构

2.2.核心功能模块与类设计

(1)找出类 ;
(2)采用表格的形式,按照类在课题中的作用,列出核心类的功能定义和主要函数接口;

3.程序(系统)详细设计

#include<iostream>
#include<stdlib.h>
#include<conio.h>
#include<time.h>
#include<string>
#include<fstream>
#include<windows.h>
using namespace std;

class Student {
	public:
		void Set_name(string name) {	        //姓名
			this->name=name;
		}
		void Set_sex(string sex) {         	//性别
			this->sex=sex;
		}
		void Set_major(string major) {          //专业
			this->major=major;
		}
		void Set_num(int num) {          		//学号
			this->num=num;
		}
		void Set_age(int age) {                 	//年龄
			this->age=age;
		}
		void Set_date(string date) {           	//出生日期
			this->date=date;
		}
		void Set_address(string address) {      	//家庭住址
			this->address=address;
		}
		void Set_score(int score) {               //英语入学成绩
			this->score=score;
		}
		void Set_next(Student *next) {          	//next指针
			this->next=next;
		}
		string get_name() {
			return name;
		}
		string get_sex() {
			return sex;
		}
		string get_major() {
			return major;
		}
		int get_num() {
			return num;
		}
		int get_age() {
			return age;
		}
		string get_date() {
			return date;
		}
		string get_address() {
			return address;
		}
		int get_score() {
			return score;
		}
		Student *get_next() {
			return next;
		}
	private:
		string name,sex,date,address,major;
		int num,score,age;
		Student *next;
};

class List {
	public:
		List();
		void insert_list();				 	//添加新生的信息
		void delete_list();			    	//删除新生的信息
		void update_list();					//修改新生的信息
		void charu();						//插入新生的信息
		void look_name();					//按姓名查询新生信息
		void paixu_list();					//按英语入学成绩排序
		void count();						//按性别统计新生个数
		void print_all();					//查看全部新生的信息
		void save();						//保存新生的信息
		void read();						//读取新生的信息
	private:
		Student *head;
};

List::List() {		                         //建立头结点
	head=new Student();
	if(head==NULL) {
		cout<<"链表创建失败"<<endl;
		exit(0);
	}
	head->Set_next(NULL);
}

void List::insert_list() {		  		//添加新生的信息
	string name,sex,date,address,major;
	int  num,score,age;
	int x=1;
	Student *p1,*r;
	r=head;
	while(r->get_next()!=NULL) {	//使结点循环到最后
		r=r->get_next();
	}
	while(x) {
		p1=head;
		int y=1;
		Student *p=new Student;
		if(p==NULL) {
			cout<<"链表创建失败"<<endl;
			exit(0);
		}
		cout<<"请输入你要添加的学生学号:";
		cin>>num;
		while(p1->get_next()) {
			if(p1->get_next()->get_num()==num) {
				y=2;
				cout<<"已经有此学生的信息,请重新输入\n\n";
				break;
			}
			p1=p1->get_next();
		}
		if(y==2) {
			continue;
		} else {
			p->Set_num(num);
			cout<<"请输入你要添加的学生姓名:";
			cin>>name;
			p->Set_name(name);
			cout<<"请输入你要添加的学生性别:";
			cin>>sex;
			p->Set_sex(sex);
			cout<<"请输入你要添加的学生年龄:";
			cin>>age;
			p->Set_age(age);
			cout<<"请输入你要添加的学生的出生日期:";
			cin>>date;
			p->Set_date(date);
			cout<<"请输入你要添加的学生的家庭住址:";
			cin>>address;
			p->Set_a
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值