南京网站开发南京乐识优平面图制作用什么软件
news/
2025/9/29 22:55:40/
文章来源:
南京网站开发南京乐识优,平面图制作用什么软件,网站开发的软件环境有哪些,网站 如何添加备案号按照惯例#xff0c;一波课程设计走起~
这次写的是通讯录管理系统#xff0c;经过几番大修和N1次小修之后BUG已经很少了~先来看看期间遇到的哪些问题吧#xff1a;
Qusetion
1#xff1a;针对手机号的排序问题#xff08;即交换结构体#xff09;
2#xff1a;文件写入和…按照惯例一波课程设计走起~
这次写的是通讯录管理系统经过几番大修和N1次小修之后BUG已经很少了~先来看看期间遇到的哪些问题吧
Qusetion
1针对手机号的排序问题即交换结构体
2文件写入和调用时乱码的问题
3界面美化问题和用户体验感优化
一针对手机号的排序问题即交换结构体
void swap(person *p){ //交换结构体
person *temp;
temp p-next-next; //tempp3
p-next-next p-next-next-next; //p3p4
temp-next p-next; //p4p2
p-next temp; //p2p3
}
emmm你可以试着想想四个杯子在一起放着p1-p4然后再拿出一个空的(temp)把第三个杯子的水倒入空杯子中然后第四个杯子倒入第三个第二个倒入第四个第三个倒入第二个即完成结构体的交换 好了自己理解理解~
然后应用
while (p2-next-next ! NULL){
if (atoi(p2-next-phone)atoi(p2-next-next-phone)){ //防止输入非int型数据
swap(p2); k;
}
p2 p2-next;
}
即可完成~
二文件写入和调用时乱码的问题
void save(person *head){ //**保存文件信息**
FILE *fp;
if ((fp fopen(1.txt, w)) NULL){
cout The file 1.txt can not be opened. endl;
return;
}
person *p head-next;
while (p ! NULL){
fprintf(fp, %s %s %s %s \n, p-name, p-city, p-phone,p-num);
p p-next;
}
fclose(fp);
}
如果运行可以发现这里是不会报错的。 而运行程序后输入数据程序就会出错而关闭此时输入的数据并未存储下来进而也就无法读取。
想办法处理发现定义的数据类型不尽相同
struct person {
char name[20];
char city[20];
char phone[20];
int num;
struct person *next;
};
手机号num定义的是int整型变量所以先将上面的%s换为%d,再运行试试。结果继续报错也未成功存储数据。
再来看看读取文件的错误
void duqu(person *head){ //**读取文件信息**
FILE *fp;
if ((fp fopen(1.txt, r)) NULL){
return;
}
while (!feof(fp)){
person *p head;
person *p2 new person;
fscanf(fp, %s %s %s %d, p2-name, p2-city, p2-phone,p2-num);
while (p-next ! NULL){
p p-next;
}
p-next p2;
p2-next NULL;
}
fclose(fp);
}
细心地同学会发现已经把%s改了过来但是读取数据时候程序仍然会出错停止运行然而更扯淡的是改来改去Dev都不会报错 此时发现这款编译器的辣鸡之处了
忽然想起某大佬刘性大佬曾说过scanf使用格式发现没有加取地址符改正之运行仍然报错。后来搜寻无果只得重头看起代码来~发现person *p head ;定义在while里从头到尾都是打渣子的并未起到应该起的作用只是p2指向的缓存区不停地读值释放肯定会报错。将它定义在while前即在FILE *fp;后就完美解决了问题~输入也运行并保存成功了
三界面美化问题和用户体验感优化
读取文件时如果1.txt不存在将会创建该txt文本文档 并出现一行美美的提示语~
void duqu(person *head){ //**读取文件信息**
FILE *fp;
person *p head;
if ((fp fopen(1.txt, r)) NULL){
cout\n\n\n\n\n\n\n 初次启动 系统加载中;
Sleep(500);cout ●;Sleep(500);cout ●;Sleep(500);cout ●;
Sleep(500);cout ●;Sleep(500);cout ●;Sleep(500);cout ●;
return;
}
else{
while (!(feof(fp))){
person *p2 new person;
fscanf(fp, %s %s %s %d\n, p2-name, p2-city, p2-phone, p2-num);
p-next p2;
p p-next;
p-next NULL;
}
}
fclose(fp);
}
效果如图就问你美不美.png
在显示功能中加入cout 显示完成\n endl;system(pause);cout 返回主菜单;
在输入联系人功能中排除相同姓名用户理论是可以重名的但是强迫症
while (p-next ! NULL){
if (strcmp(p-next-name, p2-name) 0){
cout 此联系人已经存在\n即将返回主窗口 endl;
Sleep(1000);
return;
}
p p-next;
}
在修改联系人功能中加入和添加相同的功能
while (p3-next ! NULL){
if (strcmp(p3-next-name, p2-name) 0){
cout 与其他联系人姓名重复 即将返回主菜单;
Sleep(1000);
return;
}
p3 p3-next;
}
界面美化图片.png
添加大量Sleep()getch()system()等函数提升用户体验感和友好度。
因为某兔子说过一款程序写的再好如果用户体验感极差它也是要GG的~
感谢某兔学姐某李性大佬某浪学长给予的大力支持与鼓励
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922319.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!