永发信息网

跪求注释C语言通讯录代码 谢谢 QAQ代码太长 急需 详细一点 感谢

答案:2  悬赏:80  手机版
解决时间 2021-01-07 05:49
跪求注释C语言通讯录代码 谢谢 QAQ代码太长 急需 详细一点 感谢
最佳答案
发我帮你注释下追问怎么发给你呢QWQ追答私信联系。
全部回答
#include //通讯录
#include
#include
#include
#define N 100
int M=5;
struct student
{ char num[10];char name[10];char tel[10];};
void myprint()
{
system("cls");
printf(" |-----------------------------------------------|\n");
printf(" | :-)请输入选项编号(0-7): |\n");
printf(" |-----------------------------------------------|\n");
printf(" |--------------1--创建通讯录--------------------|\n");
printf(" |--------------2--显示通讯录--------------------|\n");
printf(" |--------------3--查询通讯录--------------------|\n");
printf(" |--------------4--修改通讯录--------------------|\n");
printf(" |--------------5--添加通讯录--------------------|\n");
printf(" |--------------6--删除通讯录--------------------|\n");
printf(" |--------------7--排序通讯录--------------------|\n");
printf(" |--------------0--退出--------------------------|\n");
printf(" |-----------------------------------------------|\n");
}
void mycreat(struct student *p,int n)
{
struct student *q=p;
FILE *fp=NULL;
fp=fopen("d:\\jilu.dat","w");
if(fp==NULL){printf("error"); return;}
for(p=q;p-q{
printf("\n");
printf("第%d条记录:\n",p-q+1);
printf("学号:");
do
{gets(p->num);}
while(strcmp(p->num,"")==0);
printf("姓名:");
gets(p->name);
printf("电话:");
gets(p->tel);
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
}
}
void mydisplay(struct student *p,int n)
{
FILE *fp=NULL;
fp=fopen("d:\\jilu.dat","r");
if(fp==NULL){printf("error"); return;}
system("cls");
printf(" 学号 姓名 电话\n");
while(n>0)
{
fscanf(fp,"%23s%15s%15s",p->num,p->name,p->tel);
printf("%23s%15s%15s\n",p->num,p->name,p->tel);
p++;n--;
}
}
void mysearch(struct student *p,int n)
{
struct student *q=p;
int flag=0;
char c='\0',nm[10]="",nam[10]="";
printf("\n按照学号查询(h)或姓名查询(m):\n");
c=getche();
if(c=='h'||c=='H')
{
printf("请输入要查询记录的学号:");gets(nm);
for(p=q;p-qif(strcmp(nm,p->num)==0)
{
printf(" 学号 姓名 电话\n");
printf("%23s%15s%15s\n",p->num,p->name,p->tel);
flag=1;
}
if(flag==0) printf("wrong...\n");
}
else if(c=='m'||c=='M')
{
printf("请输入要查询记录的姓名:");gets(nam);
for(p=q;p-qif(strcmp(nam,p->name)==0)
{
printf(" 学号 姓名 电话\n");
printf("%23s%15s%15s\n",p->num,p->name,p->tel);
flag=1;
}
if(flag==0) printf("wrong...\n");
}
else printf("wrong...\n");
}
void mymodify(struct student *p,int n)
{
struct student *q=p;
FILE *fp=NULL;
char nam[10]="";
mydisplay(p,n);
printf("请输入您想要修改记录的姓名:\n");gets(nam);
for(p=q;p-qif(strcmp(nam,p->name)==0) break;
if(p-q==n)
printf("wrong...");
else
{
printf("请输入正确的学号:");
do
gets(p->num);
while(strcmp(p->num,"")==0);
printf("请输入正确的姓名:");
gets(p->name);
printf("请输入正确的电话:");
gets(p->tel);
}
fp=fopen("d:\\jilu.dat","w");
if(fp==NULL){printf("error"); exit(0);}
for(p=q;p-qfprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
fclose(fp);
}
void myadd(struct student *p,int n)
{
FILE *fp=NULL;
struct student *q=p;
char c='\n',tempnum[10]="",tempname[10]="",temptel[10]="";
printf("\n");
while(strcmp(p->num,"")!=0)
{
printf("%23s%15s%15s\n",p->num,p->name,p->tel);
p++;
}
n=p-q;
do
{
printf("请输入新纪录的学号:");
do
gets(tempnum);
while(strcmp(tempnum,"")==0);
printf("请输入新纪录的姓名:");
gets(tempname);
printf("请输入新纪录的电话:");
gets(temptel);
for(p=q;p-qif(strcmp(tempnum,p->num)==0||strcmp(temptel,p->tel)==0)
{
printf("学号或电话号码需要重新输入吗(Y/N)?");
c=getche();
putchar('\n');
break;
}
if(p-q==n)
{
strcpy(p->num,tempnum);
strcpy(p->name,tempname);
strcpy(p->tel,temptel);
break;
}
}while(c=='y'||c=='Y');
fp=fopen("d:\\jilu.dat","w");
if(fp==NULL){printf("error"); return;}
for(p=q;p-q<=n;p++)
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
fclose(fp);
M++;
}
void mydelete(struct student *p,int n)
{
FILE *fp=NULL;
struct student *q=p;
char c[10]="",tempnum[10]="",tempname[10]="",temptel[10]="",choose='\0';
mydisplay(p,n);
printf("选择删除记录的方式:学号(h)姓名(m)");
choose=getche();
printf("\n");
if(choose=='m'||choose=='M')
{
printf("删除的记录:");
gets(c);
for(;p-qif(strcmp(c,p->name)==0) break;
if(p-qfor(;p-q{
strcpy(p->num,(p+1)->num);
strcpy(p->name,(p+1)->name);
strcpy(p->tel,(p+1)->tel);
}
else printf("no\n");
}
else if(choose=='h'||choose=='H')
{
printf("删除的记录:");
gets(c);
for(;p-qif(strcmp(c,p->num)==0) break;
if(p-qfor(;p-q{
strcpy(p->num,(p+1)->num);
strcpy(p->name,(p+1)->name);
strcpy(p->tel,(p+1)->tel);
}
else printf("no");
}
else printf("wrong\n");
fp=fopen("d:\\jilu.dat","w");
if(fp==NULL){printf("error"); return;}
for(p=q;p-qfprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
fclose(fp);
M--;
}
void mysort(struct student *p,int n)
{
FILE *fp=NULL;
struct student *q=p,*w=p,*a=p;
char temp[10]="",c1='\0',c2='\0';
mydisplay(p,n);
printf("选择按照学号(h)或姓名(m)排序:\n");
c1=getche();
if(c1=='h'||c1=='H')
{
printf("升序(s)或者降序(j)排列:");
c2=getche();
if(c2=='s'||c2=='S')
for(;p-a{
w=p;
for(q=p+1;q-aif(strcmp(w->num,q->num)>0) w=q;
strcpy(temp,w->num);
strcpy(w->num,p->num);
strcpy(p->num,temp);
strcpy(temp,w->name);
strcpy(w->name,p->name);
strcpy(p->name,temp);
strcpy(temp,w->tel);
strcpy(w->tel,p->tel);
strcpy(p->tel,temp);
}
else if(c2=='j'||c2=='J')
for(;p-a{
w=p;
for(q=p+1;q-aif(strcmp(w->num,q->num)<0) w=q;
strcpy(temp,w->num);
strcpy(w->num,p->num);
strcpy(p->num,temp);
strcpy(temp,w->name);
strcpy(w->name,p->name);
strcpy(p->name,temp);
strcpy(temp,w->tel);
strcpy(w->tel,p->tel);
strcpy(p->tel,temp);
}
else printf("555wrong...\n");
}
else if(c1=='m'||c1=='M')
{
printf("升序(s)或者降序(j)排列:");
c2=getche();
if(c2=='s'||c2=='S')
for(;p-a{
w=p;
for(q=p+1;q-aif(strcmp(w->name,q->name)>0) w=q;
strcpy(temp,w->num);
strcpy(w->num,p->num);
strcpy(p->num,temp);
strcpy(temp,w->name);
strcpy(w->name,p->name);
strcpy(p->name,temp);
strcpy(temp,w->tel);
strcpy(w->tel,p->tel);
strcpy(p->tel,temp);
}
else if(c2=='j'||c2=='J')
for(;p-a{
w=p;
for(q=p+1;q-aif(strcmp(w->name,q->name)<0) w=q;
strcpy(temp,w->num);
strcpy(w->num,p->num);
strcpy(p->num,temp);
strcpy(temp,w->name);
strcpy(w->name,p->name);
strcpy(p->name,temp);
strcpy(temp,w->tel);
strcpy(w->tel,p->tel);
strcpy(p->tel,temp);
}
else printf("555wrong...\n");
}
else printf("555wrong...\n");
fp=fopen("d:\\jilu.dat","w");
if(fp==NULL){printf("error"); return;}
for(p=a;p-a<=n;p++)
fprintf(fp,"%23s%15s%15s\n",p->num,p->name,p->tel);
fclose(fp);
}
main()
{
char choose='\0',yes_no='\0';
struct student record[N]={0};
do
{
myprint();
printf(" :-)请选择(0-7):");
choose=getche();
switch(choose)
{
case '1':mycreat(record,M);break;
case '2':mydisplay(record,M);break;
case '3':mysearch(record,M);break;
case '4':mymodify(record,M);break;
case '5':myadd(record,M);break;
case '6':mydelete(record,M);break;
case '7':mysort(record,M);break;
case '0':exit(0);
default :printf("\nerror...\n");
}
printf("\n :-)继续选择吗(y/n)?\n");
do
{yes_no=getch();}
while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');
}while(yes_no=='Y'||yes_no=='y');
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
洗浴软件哪款最好用啊?要功能强大一些的哦
马季的祖父是谁
寒假五篇二百至三百字周记
判断题圆越大,圆的周长和直径的比值越大.
x-o.82x=2.7的解
户口分户户主不去能分吗
85除1000=0.085厘米是这么算的
王大伯承包了一块长方形的鱼塘长是100米,宽
为什么写嘉靖的历史架空一个个都太监了
平年一年有多少天
描写机器人的句子
关于56个民族和谐的名言
哈夫曼编码与译码 java
iso9000不符合项如何纠正
y=-3.5x05+7.5x的最大值
推荐资讯
神奇宝贝 探测器 使用方法
复旦南区是哪一片(50)
还有十几天就要生了,有时候感觉下体胀胀的,要
白纸黑字……黑白分明打一动物
英雄联盟6.9羊刀的鬼索之怒有什么用
南岗区哈尔滨市滨鑫公寓在哪里啊,我有事要去
英语八年级选词用适当的形式填空
大家认为是武大女神黄灿灿漂亮还是武大萝莉吴
一个工件最大直径是50mm长度5mm度数30度请问
want for是什么意思中文
求我什么都没干百度云
今天健身上私教课,无意间弯腰时看见私教老师
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?