又要到期末了,想起来大一还写过这个东西 有缘搜到的先给大家拜个早年 有一首歌超级好听,最近一直单曲循环 还有卷卷 http://music.163.com/song?id=1888864266&userid=2051640029
还有一个歌手 气质太好了 Isaac Gracie
莫文蔚和郭一凡合唱的一首歌 http://music.163.com/song?id=1492319441&userid=2051640029
还有还有许嵩 乌鸦
http://music.163.com/song?id=1885118980&userid=2051640029听到陈红鲤的声音总会想到高三英语老师(;へ:) 清哥唱歌真的好听啊
咳咳 说正事
报告链接
代码
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
void add(struct node *head);
void show(struct node *head);
void del(struct node *head);
void find(struct node *head);
void change(struct node *head);
void save(struct node *head);
void clear();
void notice();
struct node
{
char name[20],tel[20],home[30];
struct node *next;
};
struct node *creat()
{
struct node *p;
p=(struct node *)malloc(sizeof(struct node));
p->next=NULL;
return p;
}
int main()
{
struct node *head=creat();
int i;
while(1)
{
printf("\t\t 欢迎使用通讯录管理系统\n");
printf("\t****************************************\n");
printf("\t1.使用前注意事项");
printf("\t2.添加新联系人\n");
printf("\t3.删除联系人 ");
printf("\t4.查找联系人\n");
printf("\t5.更改联系人信息");
printf("\t6.展示所有联系人名单\n");
printf("\t7.保存到文件");
printf("\t\t0.退出 \n");
printf("\t****************************************\n");
printf("请输入你需要的操作数:");
scanf("%d",&i);
if(i==0){
break;
}
switch(i)
{
case 1:notice() ;break;
case 2:add(head);break;
case 3:del(head);break;
case 4:find(head);break;
case 5:change(head);break;
case 6:show(head);break;
case 7:save(head);break;
default:printf("输入错误,请重新输入\n");break;
}
clear();
}
return 0;
}
void notice(){
printf("___________________________________________________________________________\n");
printf("\t 文件名 通讯录.txt 保存在c盘\t\n");
printf("\t 每条信息之间请用空格隔开 例如:张三 12345678 xx小区 \n");
printf("\t 第二次打开程序输入信息后 前一次生成文件的内容会被覆盖 \n");
printf("___________________________________________________________________________\n");
}
void add(struct node *head)
{
int n;
struct node *p,*q,*temp=head;
while(temp->next!=NULL)
temp=temp->next;
q=temp;
n=1;
while(n!=0)
{
printf("姓名 电话 住址\n");
p=(struct node *)malloc(sizeof(struct node));
scanf("%s%s%s",p->name,p->tel,p->home);
q->next=p;
q=p;
p->next=NULL;
printf("输入0退出添加 否则按任意键继续: ");
scanf("%d",&n);
}
}
void del(struct node *head)
{
char i[20];
printf("请输入要删除联系人的姓名/电话号/住址:\n");
scanf("%s",i);
node *p,*q;
p=head->next;
q=head;
while (p!=NULL){
if(strcmp(p->name,i)==0||strcmp(p->tel,i)==0||strcmp(p->home,i)==0){
q->next=p->next;
free (p);
printf("删除成功\n");
return;
}
q=p;
p=p->next;
}
printf("无此人的信息\n");
}
void find(struct node *head)
{
struct node *p;
p=head;
char i[20];
printf("请输入你要查找联系人的姓名/住址/电话: ");
scanf("%s",i);
while(p!=NULL){
if(strcmp(p->name,i)==0||strcmp(p->tel,i)==0||strcmp(p->home,i)==0)
{
printf("姓名 电话 住址\n");
printf("%s %s %s\n",p->name,p->tel,p->home);
return;
}
p=p->next;
}
printf("没有该联系人信息\n");
}
void change(struct node *head){
struct node *p=head;char i[20];
printf("输入要修改的人的信息 姓名/电话/住址任选一\n");
scanf("%s",i);
while(p!=NULL){
if(strcmp(p->name,i)==0||strcmp(p->tel,i)==0||strcmp(p->home,i)==0)
{
printf("输入要修改的信息 \n姓名 电话 住址\n");
scanf("%s%s%s",p->name,p->tel,p->home);
printf("修改成功\n") ;
return ;
}
p=p->next;
}
printf("没有该联系人信息\n");
}
void show(struct node *head)
{
int i=0;
struct node *p;
p=head->next;
printf("姓名 电话 地址\n");
while(p!=NULL)
{
i++;
printf("%s %s %s\n",p->name,p->tel,p->home);
p=p->next;
if(i%10==0){
printf("每10行换一次屏 按任意键换屏");
getch();
system("cls");
}
}
printf("已经全部显示完毕\n");
}
void save(struct node *head)
{
FILE *fp;
fp=fopen("C:/通讯录.txt","wb");
head=head->next;
while(head!=NULL)
{
fprintf(fp, " %s %s %s\r\n", head->name ,head->tel,head->home);
head=head->next;
}
printf("保存成功\n") ;
fclose(fp);
}
void clear()
{
printf("\n按任意键返回菜单");
getch();
system("cls");
}
|