LinkList p = new Node; cout << "\n\t\t\t请输入第" << i + 1 << "个学生的姓名;学号;数据结构成绩;java成绩;linux成绩:" << endl; cout << "\t\t\t"; cin >> p->data.name >> p->data.id >> p->data.g[0] >> p->data.g[1] >> p->data.g[2]; p->next = L->next; L->next = p; cout<<"\n\t\t\t添加成功!";
时间: 2023-12-12 11:02:41 浏览: 36
这段代码是在使用C++语言实现链表的插入操作,具体来说:
- 首先,定义了一个指向Node类型的指针p,并使用new关键字为其分配内存空间,即创建了一个新的节点。
- 然后,使用cin语句从控制台输入该节点的数据,包括姓名、学号、数据结构成绩、Java成绩和Linux成绩。
- 接着,将该节点插入到链表L的头部,即将该节点的next指针指向L的第一个节点,再将L的头指针指向该节点。
- 最后,输出添加成功的提示信息。
这段代码的作用是将新的节点插入到链表的头部,即实现了头插法。
相关问题
void Insert() { cout << "\n\n\t\t\t请输入你需要添加的学生个数:"; int n; cin >> n; if (n > 0) { for (int i = 0; i < n; i++) { LinkList p = new Node; cout << "\n\t\t\t请输入第" << i + 1 << "个学生的姓名;学号;高等数学成绩;程序设计基础成绩;线性代数成绩:" << endl; cout << "\t\t\t"; cin >> p->data.name >> p->data.id >> p->data.g[0] >> p->data.g[1] >> p->data.g[2]; p->next = L->next; L->next = p; cout << "\n\t\t\t添加成功!"; } } else { cout << "error" << endl; } system("pause"); system("cls"); }帮我分析以上代码
以上代码是一个向链表中插入学生信息的函数,具体分析如下:
1. 首先,函数要求用户输入需要添加的学生个数,如果输入的数字大于零,则继续执行下一步操作,否则输出错误信息。
2. 循环插入学生信息,每次循环都要创建一个新的节点,并要求用户输入该学生的姓名、学号以及三门课程的成绩。
3. 将新创建的节点插入到链表的头部,使其成为链表的第一个节点。
4. 每次成功插入一条记录后,输出添加成功的提示信息。
5. 循环结束后,程序暂停等待用户操作,并使用系统命令清空屏幕。
需要注意的是,该代码片段并没有完整的函数定义,可能缺少一些必要的变量定义和头文件包含等操作。
//添加功能 void Create_LinkList(LinkList& L) { system("cls"); cout << "\t\t\t添加联系人功能" << endl; Node* t = L; int i = 1, flag = 1; while(t->next) { i++; t = t->next; } while (flag) { Node* p = new Node; cout<< "\t\t\t输入姓名:"; cin>> p->data.name; cout<< "\t\t\t输入性别:"; cin>> p->data.sex; cout<< "\t\t\t输入年龄:"; cin>>p->data.age; cout<< "\t\t\t输入电话:"; int m=1; while(m) { cin>>p->data.telephone; int n=p->data.telephone.length(); if(n!=11) { cout<< "\t\t\t输入格式错误,请重新输入:"; m=1; } else { for(int j=0;j<n;j++) { if(!(p->data.telephone[j]>='0' && p->data.telephone[j]<='9')) { cout<< "\t\t\t输入格式错误,请重新输入:"; m=1; break; } } m=0; } } cout << "\t\t\t输入地址:"; cin >> p->data.address; cout << "\t\t\t输入分组:"; cin >> p->data.relation; p->data.num = i++; p->next = NULL; t->next = p; t = t->next; Save(L); cout << "\t\t\t成功添加一次,选择是否继续本功能(1 是 0 否)" << endl; cout << "\t\t\t请选择【0-1】:"; cin >> flag; } }修改一下
void Create_LinkList(LinkList& L) {
system("cls");
cout << "\t\t\t添加联系人功能" << endl;
Node* t = L;
int i = 1, flag = 1;
while (t->next) {
i++;
t = t->next;
}
while (flag) {
Node* p = new Node;
cout << "\t\t\t输入姓名:";
cin >> p->data.name;
cout << "\t\t\t输入性别:";
cin >> p->data.sex;
cout << "\t\t\t输入年龄:";
cin >> p->data.age;
cout << "\t\t\t输入电话:";
int m = 1;
while (m) {
cin >> p->data.telephone;
int n = p->data.telephone.length();
if (n != 11) {
cout << "\t\t\t输入格式错误,请重新输入:";
m = 1;
}
else {
for (int j = 0; j < n; j++) {
if (!(p->data.telephone[j] >= '0' && p->data.telephone[j] <= '9')) {
cout << "\t\t\t输入格式错误,请重新输入:";
m = 1;
break;
}
}
m = 0;
}
}
cout << "\t\t\t输入地址:";
cin >> p->data.address;
cout << "\t\t\t输入分组:";
cin >> p->data.relation;
p->data.num = i++;
p->next = NULL;
t->next = p;
t = t->next;
Save(L);
cout << "\t\t\t成功添加一次,选择是否继续本功能(1 是 0 否)" << endl;
while (1) {
cout << "\t\t\t请选择【0-1】:";
cin >> flag;
if (flag == 0 || flag == 1) break;
else cout << "\t\t\t输入错误,请重新输入!" << endl;
}
}
}
修改后的代码加入了一个循环,可以防止用户输入非0和1的值。同时,将flag的赋值放到循环内部,可以保证每次循环结束时flag都被赋值为0或1,避免出现不确定的情况。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)