第二次博客园作业
1 目前自己学习中存在的薄弱的知识点具体有哪些?每个薄弱的知识点都是如何获知的,每个薄弱的知识点需要列举具体的例子说明。
薄弱知识点有:字符串处理函数(函数strcmp、strcat)、结构体的赋值与使用、指针作为函数的参数、用指针表示二维数组
薄弱知识的获知: ACM新手赛第一题写不出,后来知道用到了书上的字符串处理函数;
写在有关结构体的编程题时定义完结构体但是后面不知道怎么赋值和引用它;
课堂实验写指针作为形参题目时不会使用指针来表示主函数中的值;
看不懂书上的用指针表示二维数组的描述与例子如 (int(*p)[4])
2 从第五章函数到第七章数组的函数题和编程题(主要是在PTA)中选出至少一道你觉得比较有挑战的题(已解决且不是奇奇的题)。写出解题报告包括:(1)题目大意;(2)解题思路;(3)代码思路,比如画出流程图;(4)核心技术总结;(5)解题过程中存在的问题,以及如何得到解决的。
(1)题目大意:通讯录中的一条记录依次包含下述基本信息:朋友的姓名、出生日期、性别、固定电话号码、移动电话号码。 本题要求编写程序,录入n(n<=10)条记录带有编号,然后输入一个编号进行查询,最后在一行中按照姓名 固话 手机 性别 生日
的格式输出该查询记录。若要查询的记录不存在,则输出Not Found
。
(2)解题思路:1.定义包含基本信息的结构体数组 2定义结构体变量来装基本信息 3.将n个成员信息输入结构体变量并排好序 3.输入查询编号,若查询信息在n个成员之内输出相应编号的人员信息,若不在信息范围之内输出 Not found
(3)代码如下:
#include <iostream>
#include <cstring>
using namespace std;
struct infor
{
string name;
string birth,gender,tel,phone;
};
int main()
{int b,n,m,i=0,j=0;
infor a[11];
cin>>b;
for(i=0;i<b;i++)
{cin>>a[i].name>>a[i].birth>>a[i].gender>>a[i].tel>>a[i].phone;}
cin>>n;
for(j=0;j<n;j++)
{cin>>m;
if(m<b&&m>=0) {cout<<a[m].name<<" "<<a[m].tel<<" "<<a[m].phone<<" "<<a[m].gender<<" "<<a[m].birth<<endl;continue;}
else cout<<"Not Found"<<endl;}
return 0;
}
(4)核心技术:要定义结构体变量a[11]和 <结构体变量名>.<成员名>来引用成员,才可以将信息输入和输出。
(5)解题过程中存在的问题:定义完结构体后不会定义结构体变量和不会用<结构体变量名>.<成员名>引用成导致不会将信息输入和输出。如何解决:问舍友怎么将信息输入和看课本上的说明。