1、从一端开始从头到尾查找和自己输入的相等的值,有则查找成功,没有则失败。冒泡排序:通过交换排序中的冒泡排序法,运用拷贝函数完成排序。四、流程图 五、测试结果六、调试情况分析1.操作界面相对简洁2.功能要求基本实现七、心得体会1.本学期十分特殊,因为疫情原因,平时的线下学习变成了线上学习。因此我们在家度过了这个特殊的学期。本学期在家中学习,比在学校的学习效率低了很多。但经过了一个学期的学习,对数据结构有了一定的了解,也对c/c+编程设计有了进一步的认识。在线上的学习过程中,我一开始很难把数据结构所学内容和自己所学的c+结合在一起,因此在做课程设计的任务当中遇到了很多困难。不过因为在线上学习,所以在
2、不懂的时候还可以通过看课堂视频的回放,查补自己的一些缺漏。2.本次课程设计,因为自己对指针方面掌握薄弱,所以在本次课程设计中,没有用到指针,怕掌握不好导致很多错误。这次课程设计,大部分使用的是结构体定义,针对指针,假期有空也会重新复习,争取能在以后有任务的时候用得上。3.本次课程设计我们采用的是合作的方式,一人负责一块,因此对于有些地方的掌握可能还不太熟练。未来争取能够和小伙伴一起学习,完完全全掌握通讯录代码的整体思路构造和细节方面的函数构造。在c+语言的运用方面i按还不是很熟练,希望在小伙伴们的帮助下变得越来越熟练。4.本次课程设计遇到了很多难题,我们通常会卡在某个点,比如说平时常见的格式错
3、误,一时间找不出来的话会耽搁很久,而本次代码也有一些缺陷:比如说代码中的排序操作中对于通讯录人数的限定。虽然可以通过删除,改写代码数组的长度来实现对通讯录的扩充、增加,但还是很麻烦,没有运用到所学知识去弄一个自定义的数组。还有就是通讯录的读取和录入,会出现用零代替、从下往上读取的方式。相信在后面好好学习之后,我们可以掌握更多知识,去对这个通讯录进行完善。一步步加深对知识的理解与运用,提高自身的能力。5.本次课程设计中遇到了许多难题。但大部分我们能够解决,因此代码中的缺陷也不算太多,但还是有,和小伙伴商量完之后大概就定下了这个通讯录设计的理念和模式。本次设计比较可惜的是很少用到数据结构的知识。但
4、也是因为自己不够努力,不能学以致用。希望下次能好好努力,争取用好自己所学的知识,真正意义上的做到学以致用。通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。基本完成完成课程设计的目的,分析和解决问题的实际工作能力,学到这些对我以后的帮助会很大。希望下学期回到学校,能好好学习,把上学期学的不好的东西给掌握,自己在私下也要好好学习,做一个懂得查缺补漏的人。本次课程设计也让我明白了团队的重要性,只有努力做好自己的部分,分工合作,我们才能越来越好,整个通讯录的功能才能越来越完善。在这之中,小伙伴之间的沟通和交流也极其重要,碰到不懂的也可以找小伙伴交流讨论。需要用到数据结构知识的,我们
5、也会尽力去把他弄好。但本次课程设计运动到的知识比较少,希望在以后能够更多的融入数据结构的知识。紧接着就是和以后的结合。现在我们做的编程还是比较简单,到以后可能需要做更多复杂的编程,所以在现在的教学中我们更要打好基础,以便后来能够在打好基础的情况下学到更多。源代码:#pragma warning(disable:4996)#includefstreamcstringiomanipwindows.husing namespace std;struct student/结构体定义 char num12; char name30; char tel12;class inter/类的定义private:
6、 student st10;public: void addition(char num12, char name30, char tel12); void del(char name30); void find1(char num12); void list1(); int correct(char name30); void write(); void format(); void read(); void print(int i); int back();void inter:addition(char num12, char name30, char tel12)/添加联系人 int
7、x = 1;/定义一个整形变量用于判断 for (int i = 0; i 10; i+) if (!strcmp(sti.num, 0) strcpy(sti.num, num); strcpy(sti.name, name); strcpy(sti.tel, tel); x = 0; if (x = 0) break; del(char name30)/删除联系人 bool temp = 0;/定义一个布尔变量用于判断strcmp(sti.name, name)/如果姓名相同 temp = 1; strcpy(sti.num, ); strcpy(sti.name, strcpy(sti.
8、tel, cout *删除成功!* endl; if (!temp) cout select; switch (select)/多分支语句 case1 cout name1; strcpy(stx.name, name1); * 修改成功! * return back(); break;2 * 输入要修改的学号:/选择2开始修改学号 char num112; num1; strcpy(stx.num, num1);3 *输入要修改电话号码 */选择3开始修改电话号码 char tel112; tel1; strcpy(stx.tel, tel1); return 0;find1(char nu
9、m12)/按学号查找strcmp(sti.num, num)/字符串比较如果学号相同 print(i); /调用print()成员函数输出基本信息 * 输入的学号查找不到!* list1()/按姓名排序 9; i+)/冒泡排序法 for (int j = 0; j 0)/比较两个字符串的大小 char num12; char name30; char tel12; strcpy(num, stj.num);/将学号信息交换 strcpy(stj.num, stj + 1.num); strcpy(stj + 1.num, num); strcpy(name, stj.name);/将姓名信息交
10、换 strcpy(stj.name, stj + 1.name); strcpy(stj + 1.name, name); strcpy(tel, stj.tel);/将号码信息交换 strcpy(stj.tel, stj + 1.tel); strcpy(stj + 1.tel, tel); for (int k = 0; k k+) if (strcmp(stk.name, print(k);write()/导入文件 int i; ofstream outfile(txl.txt, ios:out);outfile)/打开文件open txl.txt error! exit(1); for
11、 (i = 0; outfile setiosflags(ios:left) setw(4) sti.num setw(6) sti.name setw(12) sti.tel outfile.close();/关闭文件 cout sti.num; sti.name; sti.tel; print(i);format()/格式化 35; strcpy(sti.num, strcpy(sti.name, strcpy(sti.tel, print(int i)/输出联系人back()/返回 * 退出请按T,回到主菜单请按F(不分大小写): char back; cin back; if (bac
12、k = F | back = f) return 1; else return 0;void display()/输出菜单 *欢迎进入学生通讯录管理界面!* *功能选择* * *(1)编辑学生通讯信息* *(2)查找学生通讯信息* *(3)排列学生通讯信息* *(4)录入学生通讯信息* *(5)读取学生通讯信息* *(6) 格式化 * *(7) 退出 * *请选择* void main()/主函数 inter a; a.format();top:display(); char select1; select1; switch (select1) case (1)编辑学生通讯信息 * * (1)
13、添加学生通讯信息 * * (2)删除学生通讯信息 * * (3)修改学生通讯信息 * *请选择* char select2; cin select2; switch (select2) case *请输入要添加的学生通讯信息* char num12; char name30; char tel12; * 输入学号: num; * 输入姓名: name; * 输入电话号码: tel; a.addition(num, name, tel); * 添加成功! char back_addition; back_addition; if (back_addition = | back_addition
14、= system(cls goto top; else goto bottom; *请输入要删除的学生姓名信息* char name230; name2; a.del(name2); char back_del; back_del; if (back_del = | back_del = * 输入的信息存在错误! *请输入要修改的学生姓名信息* char name330; name3; if (a.correct(name3) goto top; break; *查找* * (1)根据学号查找 * char num415; num4; a.find1(num4); char back_f2; back_f2; if (back_f2 = | back_f2 = system( goto top; else goto bottom; *排序* * (1)根据姓名排序 * a.list1(); char back; if (back =