第八章作业

  • 实验作业

    1.调试分析课本每一个例题,有可能的话更改成2-3个方法的新程序;

    2.编程实现课本每一个编程习题。

    3. 建立一个链表,每一个学号包括学号、姓名、性别、成绩,输入一个成绩,如果在链表中节点成绩等入输入的成绩,则将其删除。

    4.有两个链表,结点数据信息相同。将其合并成一个链表,节点数据不能重复。

    课本习题:

    例1:

    #include <iostream>
    using namespace std;
    struct date
    {
    
    	int month;
    	int day;
    	int year;
    
    };
    struct student
    {
    
    	int num;
    	char name[20];
    	struct date birthday;
    	char addr[30];
    }


    例2:

    #include <iostream>
    using namespace std;
    int main()
    {
    
    	struct 
    	{
    	
    		int num;
    		int age;
    	}stu1,stu2;
    	stu1.num=100;
    	stu1.age=29;
    	stu2=stu1;
    	cout<<"num"<<"  "<<"age"<<"  "<<endl;
    	cout<<stu2.num<<"  "<<stu2.age<<"  "<<endl;
    	return 0;
    }
    


    例3:

  • #include <iostream>
    using namespace std;
    struct student
    {
    	long num;
    	float score;
    	student *next;
    };
    int main()
    {
    
    	student *head,*p1,*p2;
    	int n;
    	head=NULL;
    	p1=new(student);
    	p2=p1;
    	cout<<"请输入学生学号和分数,当学号为零的时候停止输入:"<<endl;
    	cin>>p1->num>>p1->score;
    	while(p1->num!=0)
    	{
    	
    		n++;
    		if(n==1)
    			head=p1;
    		else
    		{
    		
    			p2->next=p1;
    			p2=p1;
    		}
    		p1=new(student);
    		cin>>p1->num>>p1->score;
    
    	}
    	delete p1;
    	p2->next=NULL;
    	return 0;
    
    }


     

     

    课后习题

    1:

    #include <iostream>
    using namespace std;
    struct student
    	{
    	
    		int num;
    		char name[20];
    	float score;
    	}stu;
    void print (student *ps)
    {
    
    	cout<<"num"<<'\t'<<"name"<<'\t'<<"score"<<endl;
    	cout<<(*ps).num<<'\t'<<(*ps).name<<'\t'<<(*ps).score<<endl;
    }
    
    	
    
    int main()
    {
    
    
    	 student stu={1000,"chenxin",90};
    		print(&stu);
    		return 0;
    }

    2:

    #include <iostream>
    using namespace std;
    struct student
    	{
    	
    		int num;
    		char name[20];
    	float score;
    	}stu;
    void print ()
    {
    
    	cout<<"num"<<'\t'<<"name"<<'\t'<<"score"<<endl;
    	cout<<stu.num<<'\t'<<stu.name<<'\t'<<stu.score<<endl;
    }
    
    	
    
    int main()
    {
    
    
    	 student stu={1000,"chenxin",90};
    		print();
    		return 0;
    }


    例3:

    #include <iostream>
    using namespace std;
    struct student
    {
    
    	int num;
    	char name[20];
    	float jbgz;
    	float jwgz;
    }stu[4];
    
    int main()
    {
    
    	student stu[4]={{1000,"liming",1000,1005},{1001,"liuhua",1005,1025},{1003,"yuanxiao",1008,1056},{1004,"maozhedong",1025,10}};
    	student temp;
    	for(int i=0;i<3;i++)
    		for(int j=0;j<3-i;j++)
    			if(stu[j].jbgz+stu[j].jwgz>stu[j+1].jbgz+stu[j+1].jwgz)
    			{
    			
    				temp=stu[j];
    				stu[j]=stu[j+1];
    				stu[j+1]=temp;
    			}
    			cout<<"num"<<"  "<<"name"<<"  "<<"jbgz"<<"  "<<"jwgz"<<endl;
    			cout<<stu[0].num<<"  "<<stu[0].name<<"  "<<stu[0].jbgz<<"  "<<stu[0].jwgz<<endl;
    			return 0;
    }



     

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值