苹果系统如何设置联系人排序

苹果系统如何设置联系人排序,第1张

第一步:打开你那排序得惨不忍睹的联系人应用程序

第二步:选中要排序的联系人,轻点其右上角的“编辑”按钮进入联系人卡片编辑界面

重点来了!

第三步:手指向上滑动,找到“add field”(加一块说明就好)

iOS分享|如何解决iOS英文系统下通讯录的中文姓名排序问题

第四步:然后选择加上模块的内容,这里有姓氏、名字的音标、缩写等。由于要按照中文姓氏拼音排序,所以这里我们选择“Phonetic Last Name”

iOS分享|如何解决iOS英文系统下通讯录的中文姓名排序问题

第五步:填上拼音吧。如果你和我一样“懒”,就输入姓氏的第一个字母吧(此处可以换成英文输入法,自动大写),然后点击右上角的“完成”保存。

iOS分享|如何解决iOS英文系统下通讯录的中文姓名排序问题

接下来你在联系人姓名界面看到的应该是这个样子:

iOS分享|如何解决iOS英文系统下通讯录的中文姓名排序问题

接着回到通讯录主界面,哈哈哈哈,下图中你发现什么了?

iOS分享|如何解决iOS英文系统下通讯录的中文姓名排序问题

PS 如果你的通讯录里面有好几百甚至上千个记录,这一项工作也可谓是费时费力的。

但是有牛人给出了一劳永逸的方法:

通讯录中文姓名的排序:

进入/System/Library/Frameworks/AddressBookframework

将zh_CNlproj目录下的 ABContactSectionsplist 文件替换到Englishlproj目录下

同理,对于iPod中的中文歌曲的排序(笔者从来不听中文歌,故未测试):

进入/System/Library/PrivateFrameworks/MusicLibraryframework

将zh_CNlproj目录下的MLSectionsplist、SortingDetailsplist文件替换到Englishlproj目录下

欢呼吧。

#include<iostream>

using namespace std;

class student

{

public:

double id;

char name[20];

char sex;

int age;

void set()

{

double a;

char b[20];

char c;

int d;

cin>>a>>b>>c>>d;

id=a;

strcpy(name,b);

sex=c;

age=d;

}

void print()

{

cout<<id<<" "<<name<<" "<<sex<<" "<<age<<endl;

}

};

void main()

{

student stu[5];

cout<<"请输入五名学生的学号、姓名、性别、年龄:"<<endl;

for(int i=0;i<5;i++)

{

stu[i]set();

}

student a;

for(int i=1;i<5;i++)

for(int j=0;j<5-i;j++)

if(stu[j]age<stu[j+1]age)

{

a=stu[j+1];

stu[j+1]=stu[j];

stu[j]=a;

}

cout<<"五名学生从大到小的顺序是:"<<endl;

for(int i=0;i<5;i++)

{

stu[i]print();

}

}

主函数没问题。主要是sort()中排序出错了。

看你两两比较数据,似乎是想用冒泡排序法。

将sort()稍作修改即可:

void sort(char (p)[10],int q)

{

int i,j,m;

char t[10];

for(i=0;i<9;i++)

{

for(j=0;j<9-i;j++)

if((q+j)>(q+j+1))

{

m=(q+j);(q+j)=(q+j+1);(q+j+1)=m;

strcpy(t,(p+j));

strcpy((p+j),(p+j+1));

strcpy((p+j+1),t);

}

}

for(i=0;i<10;i++)

printf("%s %d\n",(p+i),(q+i));

}

我把形参的类型改了,不然会有警告的。

当然,你也可以用顺序排序或插入排序等等方法。C语言书上都有例子的。

#include<iostream>

#include<string>

#include<vector>

#include<algorithm>

using namespace std;

void add(string a,vector<string>&);

bool Delete(string a,vector<string>&);

void look(vector<string>&);

int main()

{

vector<string>name;

cout<<"1添加"<<endl<<"2删除"<<endl<<"3排序"<<endl<<"4查看"<<endl;

int n;

while(cin>>n)

{

if(n==1)

{

cout<<"输入名字:";

string a;cin>>a;

add(a,name);

}

else if(n==2)

{

cout<<"输入名字:";

string a;cin>>a;

if(Delete(a,name))

{

cout<<"删除成功!"<<endl;

}

else

cout<<"没有此名字,删除失败"<<endl;

}

else if(n==3)

{

sort(namebegin (),nameend());

look(name);

}

else if(n==4)

{

look(name);

}

}

return 0;

}

void add(string a,vector<string>&n)

{

npush_back (a);

}

bool Delete(string a,vector<string>&n)

{

vector<string>::iterator iter=nbegin ();

for(;iter!=nend ();iter++)

{

if(iter==a){iter=nerase(iter);return true;

}

}

return false;

}

void look (vector<string>&n)

{

vector<string>::iterator iter=nbegin ();

for(;iter!=nend ();iter++)

{

cout<<iter<<endl;

}

}

//我随便写写的,写的可能不太清晰。

//给你参考下吧。排序的函数,在<algorthim>有,sort();

main()

{

char st[20],cs[5][20];

int i,j,p;

printf("input name:\n");

for(i=0;i<5;i++)

gets(cs[i]);

printf("\n");

for(i=0;i<5;i++)

{ p=i;strcpy(st,cs[i]);

for(j=i+1;j<5;j++)

if(strcmp(cs[j],st)<0) {p=j;strcpy(st,cs[j]);}

if(p!=i)

{

strcpy(st,cs[i]);

strcpy(cs[i],cs[p]);

strcpy(cs[p],st);

}

puts(cs[i]);}printf("\n");

}

本程序的第一个for语句中,用gets函数输入五个名字符串。上面说过C语言允许把一个二维数组按多个一维数组处理,本程序说明cs[5][20]为二维字符数组,可分为五个一维数组cs[0],cs[1],cs[2],cs[3],cs[4]。因此在gets函数中使用cs[i]是合法的。 在第二个for语句中又嵌套了一个for语句组成双重循环。这个双重循环完成按字母顺序排序的工作。在外层循环中把字符数组cs[i]中的姓名字符串拷贝到数组st中,并把下标i赋予P。进入内层循环后,把st与cs[i]以后的各字符串作比较,若有比st小者则把该字符串拷贝到st中,并把其下标赋予p。内循环完成后如p不等于i说明有比cs[i]更小的字符串出现,因此交换cs[i]和st的内容。至此已确定了数组cs的第i号元素的排序值。然后输出该字符串。在外循环全部完成之后即完成全部排序和输出。

这个还是自己写写吧,只是简单的链表 *** 作,只是有些繁琐罢了。练习是很重要的。如果实在写不出来的话,我在帮你写一个

采用了有头结点和尾节点的方式来构造链表,偷了点小懒,没有写入文件。此外写了一部分注释,如果还有疑问可以直接发消息给我。

#include<stdioh>

#include<stdlibh>

#include<stringh>

typedef struct Note

{

int id;//查询号

char name[20];

int num;

struct Note next;

}note,no;

typedef struct

{

no head;//头指针

no tail;//尾指针

no current;

no p,q;

int tot;

}LinkNote;

void CreatLink(LinkNote &l)//构造空链表

{

lhead=ltail=(note)malloc(sizeof(note));

lhead=ltail=NULL;

ltot=0;

}

void AddInformation(LinkNote &l)

{

ltot++;//提供ID号

lcurrent=(note)malloc(sizeof(note));

printf("请输入姓名:");

scanf("%s",lcurrent->name);

printf("请输入电话号码:");

scanf("%d",&lcurrent->num );

lcurrent->id=ltot;

if(lhead==NULL)

{

lhead=ltail=lcurrent;

lhead->next=ltail;

ltail->next=NULL;

}

else

{

ltail->next=lcurrent;

lcurrent->next=NULL;

ltail=lcurrent;

}

printf("信息添加成功!!!\n");

}

void InsertInformation(LinkNote &l)

{

int location;

int count=1;

lcurrent=(note)malloc(sizeof(note));

lp=(note)malloc(sizeof(note));

printf("输入要插入的位置号:");

scanf("%d",&location);

if(location>ltot||location<1)

printf("错误\n");

else

{

if(location==ltot )

{

lcurrent=lhead;

while(count++<ltot-1)

lcurrent=lcurrent->next;

lp->next=ltail;

lcurrent->next=lp;

lcurrent=lp;

lcurrent->id=location;

ltail->id+=1;//更新ID

printf("插入成功\n");

}

else if(location==1)

{

lcurrent->next=lhead;

lp=lcurrent->next;

lhead=lcurrent;

while(lp!=NULL)

{

lp->id+=1;

lp=lp->next;

}

lcurrent ->id=location;//更新ID

printf("插入成功\n");

}

else if(location>1&&location<ltot)

{

lcurrent=lhead;

while(count++<=location-2)

lcurrent=lcurrent->next;

lp->next=lcurrent->next;

lq=lp->next;

lcurrent->next=lp;

lcurrent=lp;

while(lq!=NULL)

{

lq->id+=1;

lq=lq->next;

}

lcurrent ->id=location;//更新ID

printf("插入成功\n");

}

printf("输入下列信息:");

printf("姓名:");

scanf("%s",lcurrent->name);

printf("电话号码:");

scanf("%d",&lcurrent->num );

ltot++;

}

}

void SearchInformation(LinkNote &l)

{

if(ltot>0)

{

char findname[20];

int count=0;

int flag;

lp=lhead;

printf("输入姓名:");

scanf("%s",findname);

while(count++<ltot)

{

flag=0;

if(strcmp(findname,lp->name)==0)//字符串的比较

{

flag=1;

break;

}

else

lp=lp->next;

}

if(flag==1)

{

printf("信息找到!\n");

printf("ID 姓名 号码\n");

printf("%d%8s%8d\n",lp->id,lp->name,lp->num );

}

else

printf("无输入的信息\n");

}

else

printf("没有任何信息\n");

}

void DisplayInformation(LinkNote &l)

{

if(ltot>0)

{

int count=0;

lp=lhead;

printf("ID 姓名 电话号码\n");

while(count++<ltot)

{

printf("%d%8s%8d\n",lp->id,lp->name,lp->num );

lp=lp->next;

}

}

else

printf("没有任何信息\n");

}

void DeleteInformation(LinkNote &l)

{

int findid, count=0;

int flag;

int selection;

lp=lhead;

lq=lp;//记录删除节点的前一个节点

if(ltot>0)

{

printf("输入要删除的ID:");

scanf("%d",&findid);

while(count++<ltot)

{

flag=0;

if(findid==lp->id)

{

flag=1;

break;

}

else

{

lq=lp;//记录删除节点的前一个节点

lp=lp->next;

}

}

if(flag==1)

{

printf("信息找到!\n");

printf("ID 姓名 分数\n");

printf("%d%8s%8d\n",lp->id,lp->name,lp->num );

printf("确认删除吗?1删除,2退出\n");

scanf("%d",&selection);

if(selection==1)

{

if(lp==ltail )

{

lq->next=NULL;

ltail=lq;

free(lp);

}

else if(lp==lhead)

{

lq=lp;

lp=lp->next;

lhead=lp;

while(lp!=NULL)

{

lp->id-=1;

lp=lp->next;

}

free(lq);

}

else

{

lq->next=lp->next;

lcurrent=lq->next;

while(lcurrent !=NULL)

{

lcurrent->id-=1;

lcurrent=lcurrent->next;

}

free(lp);

}

ltot--;

}

else

printf("自动退出\n");

}

else

printf("无输入信息\n");

}

else

printf("没有任何信息\n");

}

void ShowInformation()

{

printf("通信录管理系统\n");

printf("选择项目\n1)新增信息\n2)插入新信息\n3)删除信息\n4)显示信息\n5)查询信息\n6)退出\n");

}

void main()

{

int selection;

LinkNote l;

CreatLink(l);

ShowInformation();

while(scanf("%d",&selection)&&selection!=6)

{

switch(selection)

{

case 1:AddInformation(l);break;

case 2:InsertInformation(l);break;

case 3:DeleteInformation(l);break;

case 4:DisplayInformation(l);break;

case 5:SearchInformation(l);break;

}

ShowInformation();

}

}

尽管国标的汉字库本身在设计时,就已经按拼音对常用字进行排序了。但是真要严格地按拼音排序,我个人认为还是需要一个汉字对应拼音的Hash链表作为排序的基础,这样才能精确地排序。你所需要的,也是这样的一个数据结构。

对名字进行排序 不知道你具体的意思是什么

下面的就只是实现了就年龄最打的

class person{

String name;

char sex;

int age;

public person(String n,char s,int a){

name=n;sex=s;age=a;

}

}

public class student extends person{

public student(String n,char s,int a){

super(n,s,a);

}

public static void main(String adfaf[]){

student s[10];

for(int i=0;i<10;i++){

s[i]=new student("stu"+i,'女'+i+18);

}

int min=0;

for(int i=1;i<10;i++){

if((s[i]sex=='女'&&s[min]age>s[i]age)||(s[min]sex=='男'&&s[i]sex=='女')){

min=i;

}

}

Systemoutprintln("年龄最大的女生是"+s[min]name+"他的年龄是"+s[min]age);

}

}

以上就是关于苹果系统如何设置联系人排序全部的内容,包括:苹果系统如何设置联系人排序、用类结构的形式编写一个程序,使其可实现输入5个学生姓名、性别和年龄,并按年龄从大到小进行排序输出。、一个c语言程序,想要实现名字随着序号重新排列等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10169141.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存