首页 > 代码库 > 期末测试:程序设计(10’)

期末测试:程序设计(10’)

期末测试:用某种语言设计一个简易的班级通讯录管理显示各位同学的学号、姓名、练习电话和性别。 (分值10‘)

方法一:(使用vector)代码如下:

// Test.cpp : Defines the entry point for the console application.

 

#include "stdafx.h"        //头文件stdafx.h引入了项目中需要的一些通用的头文件

#include "iostream"        //包含cout、endl、cin等标识符,需在文档头声明

using namespace std;    //使用空白的名字空间    

#include "vector"        //标准库Vector类型,Vector 是一个类模板,不是一种数据类型

                    /*Vector对象最重要的几种操作

                        1. v.push_back(t) 在数组的最后添加一个值为t的数据

                        2. v.size() 当前使用数据的大小

                        3. v.empty() 判断vector是否为空*/

struct Student        

    /*定义结构体Student,打包封装,把一些有共同特征(

    比如同属于某一类事物的属性,往往是某种业务相关属性的聚合)的变量封装在内部,

    通过一定方法访问修改内部变量。*/

{

    char id[20];

    char name[10];

    char tel[15];

    char sex[4];

};

 

class StuList

{

//默认为private

    vector<Student> data;     // vector<int> A; 创建一个空的的容器

 

public:

    StuList()        //构造函数

    {

     }

    ~StuList()    //析构函数 ~vector()销毁容器对象并回收了所有分配的内存

    {

     }

    void InsertStudent(Student x)    //定义没有返回值的InsertStudent()方法,传入的参数类型为Student类型

    {

        data.push_back(x); //在容器的最后一个位置插入元素x,如果size值大于capacity值,则将重新分配空间

    }

    void ShowAll()        //定义没有返回值ShowAll()方法

    {

        if(data.size() == 0)        // vector::size() 返回容器中元素个数

            cout<<"没有您所要查询的信息\n";

        

        for(int ii = 0; ii < data.size(); ii ++)

        {

            cout<<"学号:"<<data[ii].id<<"\n"<<"姓名:"<<data[ii].name<<"\n"<<"电话:"<<data[ii].tel<<"\n"<<"性别:"<<data[ii].sex<<endl;

        }

    }

};

 

int _tmain(int argc, _TCHAR* argv[]) //_tmain主函数入口

{

    printf("学生信息管理系统\n");

    StuList GisStu2014; // 调用构造函数StuList(),声明GisStu2014对象,该对象可访问Student类型的属性

 

    int x = 1 ;

    while(x != 0)

    {

        printf("请输入以下选项:\n");

        printf("1:信息浏览\n");

        printf("2:插入信息\n");

        printf("0:退出程序\n");

 

        cin >> x ;        //输入数字

 

        switch(x)        //使用switch语句做输出显示

        {

        case 1:

            {

                GisStu2014.ShowAll();    //信息浏览

            }

            break;

        case 2:

            {    

                Student newStudent;    //声明一个Student对象:newStudent

 

                cout<<"ID:"<<endl;    //提示输入学号

                cin>>newStudent.id;    //输入学号

 

                cout<<"Name:"<<endl;    //提示输入姓名

                cin>>newStudent.name;    //输入姓名

            

                cout<<"TEL:"<<endl;        //提示输入电话

                cin>>newStudent.tel;    //输入电话

                    

                cout<<"SEX:"<<endl;        //提示输入性别

                cin>>newStudent.sex;    // 输入性别

 

                GisStu2014.InsertStudent(newStudent);

                //调用GisStu2014对象的InsertStudent()方法,将newStudent对象的指插入GisStu2014

 

            }

            break;

        case 0:

            {

            }

            break;

        default:

            {

                printf("您所输入值无效\n");

            }

            break;

        }

    }

    return 0;

 

}

 

方法二,不使用vector,代码如下:

#include "stdafx.h"

#include <iostream>

#include <vector>

using namespace std;

 

struct Student

{

    char id[20];

    char name[10];

    char tel[15];

    char sex[4];

};

class StuList

{

    Student data[100];

    int iCurrent;

public:

    StuList()

    {

        iCurrent = 0;

    }

    ~StuList()

    {

    }

    void InsertStudent(Student x)

    {

        data[iCurrent] = x;

        iCurrent ++;

        }

    void ShowAll()

    {

        if(iCurrent == 0)             c

out<<"没有您所要查询的信息\n";

        for(int ii = 0 ; ii < iCurrent; ii ++)

        {

            cout<<"学号:"<< data[ii].id<<"\n"<<"姓名:"<<data[ii].name<<"\n"<<"电话:"<<data[ii].tel<<"\n"<<"性别:"<<data[ii].sex<<endl;

        }

 

        

    }

 

};

int _tmain(int argc, _TCHAR* argv[])

{

    printf("学生信息管理系统\n");

    StuList GisStu2014;

 

    int x = 1;

    while(x != 0)

    {

        printf("请输入以下选项:\n");

        printf("1:信息浏览\n");

        printf("2:插入信息\n");

        printf("0:退出程序\n");

        

        cin >> x;

 

        switch(x)

        {

        case 1:

            {

                GisStu2014.ShowAll();

            }

            break;

        case 2:

            {

                Student newSudent;

 

                cout<<"ID:"<<endl;

                cin>>newSudent.id;

 

                cout<<"Name:"<<endl;

                cin>>newSudent.name;

 

                cout<<"TEL:"<<endl;

                cin>>newSudent.tel;

 

                cout<<"SEX:"<<endl;

                cin>>newSudent.sex;

 

                GisStu2014.InsertStudent(newSudent);

            }

            break;

        case 0:

            {

            }

            break;

        default:

            {

                printf("您所输入值无效\n");

            }

            break;

        }

 

    }

    return 0;

}

期末测试:程序设计(10’)