20200708 千锤百炼软工人第三天

Posted huangmouren233

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20200708 千锤百炼软工人第三天相关的知识,希望对你有一定的参考价值。

今天是第三天

今天的任务完成不理想

今天的任务是完成一个通讯录程序

其储存方式就是需要应用链表来实现

其主要功能有

创建,显示,修改,插入,删除,文件的导入,文件的导出。

其中前五个功能基本完成,后两个功能还没实现。

但是前五个功能的程序设计基本完成但是具体实现阶段不理想

花费了很长时间来改错,但是最终虽然没有了错误但是实现起来还是有所偏差

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
const int MAX_N = 100;
typedef struct user{
            unsigned m_id;
            string m_name;
            unsigned m_age;
            string m_sex;
            long m_Hphone;
            long m_phone;
}user;
typedef class User
{
    public:
         unsigned m_id;
            string m_name;
            unsigned m_age;
            string m_sex;
            long m_Hphone;
            long m_phone;
            class User *next;
}ListNode;
class List
{
    public:
        List(struct user *a, int n)
        {
            ListNode *p, *s;
            int i;
            L = (ListNode *)malloc(sizeof(ListNode));
            p = L;
            for (i = 0; i < n; i++)
                {
                    s = (ListNode *)malloc(sizeof(ListNode));
                    s->m_id = a[i].m_id;
                    s->m_name = a[i].m_name;
                    s->m_age = a[i].m_age;
                    s->m_sex = a[i].m_sex;
                    s->m_Hphone = a[i].m_Hphone;
                    s->m_phone = a[i].m_phone;
                    p->next = s;
                    p = s;
                    cout<<"建立完成!"<<endl;
                }
            p->next = NULL;
            cout<<"建立完成!3"<<endl;
        }
        ~List(){
                ListNode *pre = L, *p = L->next;
                while (p->next != NULL)
                {
                free(pre);
                pre = p;
                p = pre->next;
                }
                free(pre);
                }
        bool isEmpty()
        {
            return (L->next == NULL);
        }
        int getLength()
        {
            ListNode *p = L;
            int i = 0;
            while (p->next != NULL)
            {
                i++;
            p = p->next;
            }
            return i;
        }
        void DisplayList(){
        ListNode *p = L->next;
        while (p != NULL){
                cout << p->m_id<<" "<<p->m_name<<" "<<p->m_age<<" "<<p->m_sex<<" "<<p->m_Hphone<<" "<<p->m_phone<<endl;
        p = p->next;
                        }
         cout << endl;
            }
        bool getElem(string &N, unsigned &id,unsigned &age,string &name,string &sex,long &Hphone,long &phone){
              ListNode *p = L;
                    while (N.compare(p->m_name)&&p->next != NULL){
                    p = p->next;  }
                    if (N.compare(p->m_name)&&p->next == NULL){
                            return false;
                    }
                    else{
                                    id = p->m_id;
                                    age=p->m_age;
                                    name=p->m_name;
                                    sex=p->m_sex;
                                    Hphone=p->m_Hphone;
                                    phone=p->m_phone;
                                    return true;
                    }
                    }
        int LocateElem(long &elem){
                ListNode *p = L;
                int i = 0;
                while (elem == p->m_phone&&p->next != NULL){
                        i++;
                      p = p->next;
                        }
                if (elem==p->m_phone&&p->next == NULL){
                    return 0;
                    }
                else{
                    return i;
                    }
                    }
        private:
            ListNode *L;
    };
    int main()
    {
        ListNode *m_node;
        int n,i;
        user a[MAX_N];
        string name,sex,N;
        long Hphone,phone,elem;
        string q;
        unsigned age,id;
        cout << "Input the length:" <<endl;
        cin >> n;
        for (i = 0; i < n; i++)
            {
                cin >> a[i].m_id;
                cin >> a[i].m_name;
                cin >> a[i].m_age;
                cin >> a[i].m_sex;
                cin >> a[i].m_Hphone;
                cin >> a[i].m_phone;
                cout<<"下一位用户信息:"<<endl;
            }
        List m_list(a, n);
        m_list.DisplayList();
        if (!m_list.isEmpty())
            {
                cout << "it is not empty." << endl;
                cout << "The length:" << m_list.getLength() << endl;
            }
        else{
                cout << "It is empty." << endl;
            }
        cout << "Input number:" << ends;
        cin >> q;
        if (m_list.getElem(q,id,age,name,sex,Hphone,phone))
        {
        cout << "NO. " << id <<" ,the name is"<<name<<" ,the age is"<<age<<" ,the sex is"<<sex<<" ,the Hphone is"<<Hphone<<" ,the phone is"<<phone<<endl;
        }
        else
        {
        cout << "error number or not contained." << endl;
        }
        cout << "Input the data:" << ends;
        cin >> elem;
        if (m_list.LocateElem(elem) == 0)
            {
                cout << "Not contained." << endl;
        }
        else
        {
            cout << "The location is No. " << m_list.LocateElem(elem) << endl;
        }
        }
具体的代码在此奉上
希望有位大佬可以稍微指点一二
今天的java学习稍微落后一点
学习的比较少
所以也就没办法在此详细记录
明天继续完成小学期任务,并赶上Java学习的进度
 

以上是关于20200708 千锤百炼软工人第三天的主要内容,如果未能解决你的问题,请参考以下文章

20200731 千锤百炼软工人第二十六天

20200716 千锤百炼软工人第十一天

软工课设第三天 6.29

千锤百炼软工第十一天

寒假每日一题蛇形矩阵(个人练习)详细题解+推导证明(第三天)

[CATARC_2017] 第七周