C语言的课程设计,做的是全班同学通讯录,然而我并不懂程序是怎样调用的
发布网友
发布时间:2022-05-08 16:18
我来回答
共4个回答
热心网友
时间:2024-01-25 21:02
#include<stdio.h>
#include<string.h>
typedef struct Friends
{
char sName[30];
char cSex;
int tel;
int sMovtel;
char sCompany[30];
int QQ;
char Emaile[30];
char assort[30];
}Friends;
int c;
void jianli ();
void search ();
void amend ();
void change ();
void input (Friends *p);
void output (Friends *p);
void sdele ();
void fugai ();
int main()
{
int a,b=1;
char s;
while(b==1)
{
printf("\t\t通讯录\n");
printf("\t1、新建\n");
printf("\t2、查找\n");
printf("\t3、修改\n");
printf("\t4、删除\n");
printf("请选择.......\n");
scanf("%d",&a);
switch(a)
{
case 1:jianli ();break;
case 2:search ();break;
case 3:amend ();break;
case 4:sdele();break;
}
printf("是否返回主菜单('Y'or'N')\n");
fflush(stdin);
scanf("%c",&s);
if(s=='y'|| s=='Y')
b=1;
else
break;
}
return 0;
}
/*新建*/
void jianli ()
{
int b=1;
char d;
Friends x;
FILE *fp;
fp=fopen("e:\\通讯录.txt","ab");
while (b==1)
{
input(&x);
fwrite(&x,sizeof(x),1,fp);
printf("是否继续新建('Y'or'N')?\n");
fflush(stdin);
scanf("%c",&d);
if(d=='y'||d=='Y')
{
b=1;
}
else
break;
}
fclose(fp);
}
/*查找*/
void search ()
{
int h , j = 1 , n=0 , num ;
char k[20];
FILE *fp;
Friends y;
printf("\t1、按号码查找\n");
printf("\t2、按姓名查找\n");
printf("请选择...........\n");
scanf("%d",&h);
if(h==1)
{
printf("\t请输入你查找的号码!\n");
while(j==1)
{
scanf("%d",&num);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(num==y.sMovtel)
{
output(&y);
break;
}
}
if(num!=y.sMovtel)
{
printf("你输入的号码有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
if(h==2)
{
printf("\t请输入你查找的姓名!\n");
while(j==1)
{
scanf("%s",k);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(strcmp(k,y.sName)==0)
{
output(&y);
break;
}
}
if(strcmp(k,y.sName)!=0)
{
printf("你输入的姓名有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
}
/*修改*/
void amend ()
{
int h , j = 1 , n=0 , num ;
char k[20];
FILE *fp;
Friends y;
printf("\t1、按号码查找你所需要修改的原始资料\n");
printf("\t2、按姓名查找你所需要修改的原始资料\n");
printf("请选择...........\n");
scanf("%d",&h);
if(h==1)
{
printf("\t请输入查找你的号码!\n");
while(j==1)
{
scanf("%d",&num);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
c++;
fread(&y,sizeof(y),1,fp);
if(num==y.sMovtel)
{
change ();
break;
}
}
if(num!=y.sMovtel)
{
printf("你输入的号码有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
if(h==2)
{
printf("\t请输入你查找的姓名!\n");
while(j==1)
{
c++;
scanf("%s",k);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(strcmp(k,y.sName)==0)
{
change ();
break;
}
}
if(strcmp(k,y.sName)!=0)
{
printf("你输入的姓名有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
}
/*删除*/
void sdele()
{
int h , j = 1 , n=0 , num ;
char k[20];
FILE *fp;
Friends y;
printf("\t1、按号码查找你所需要修改的原始资料\n");
printf("\t2、按姓名查找你所需要修改的原始资料\n");
printf("请选择...........\n");
scanf("%d",&h);
if(h==1)
{
printf("\t请输入查找你的号码!\n");
while(j==1)
{
scanf("%d",&num);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(num==y.sMovtel)
{
fugai ();
break;
}
}
if(num!=y.sMovtel)
{
printf("你输入的号码有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
if(h==2)
{
printf("\t请输入你查找的姓名!\n");
while(j==1)
{
scanf("%s",k);
fp=fopen("e:\\通讯录.txt","rb");
while(!feof(fp))
{
fread(&y,sizeof(y),1,fp);
if(strcmp(k,y.sName)==0)
{
fugai ();
break;
}
}
if(strcmp(k,y.sName)!=0)
{
printf("你输入的姓名有误!!!\n请重新输入\n");
j=1;
}
fclose(fp);
}
}
}
void change ()/*用于修改*/
{
int f,j;
FILE *fp;
Friends z ;
j=c*133;
printf("你要修改的内容:\n");
printf("\t1、姓名\n\t2、性别\n\t3、手机号\n\t4、固定电话号码\n");
printf("\t5、公司名称\n\t6、QQ号码\n\t7、电子信箱\n\t8、分类\n");
printf("请选择...........\n");
scanf("%d",&f);
printf("输入你的新信息!\n");
switch(f)
{
case 1:fp=fopen("e:\\通讯录.txt","wb");
fread(&z,sizeof(z),1,fp);
fseek(fp,j,SEEK_SET);
scanf("%s",z.sName);
fwrite(&z.sName,sizeof(z.sName),1,fp);
fclose(fp);
output (&z);
break;
fclose(fp);
case 2: fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+30),SEEK_SET);
scanf("%c",&z.cSex);
fwrite(&z.cSex,sizeof(z.cSex),1,fp);
fclose(fp);
break;
case 3:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+31),SEEK_SET);
scanf("%d",&z.sMovtel);
fwrite(&z.sMovtel,sizeof(z.sMovtel),1,fp);
fclose(fp);
break;
case 4:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+35),SEEK_SET);
scanf("%d",&z.tel);
fwrite(&z.tel,sizeof(z.tel),1,fp);
fclose(fp);
case 5:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+39),SEEK_SET);
scanf("%s",z.sCompany);
fwrite(&z.sCompany,sizeof(z.sCompany),1,fp);
fclose(fp);
break;
case 6:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+69),SEEK_SET);
scanf("%d",&z.QQ);
fwrite(&z.QQ,sizeof(z.QQ),1,fp);
fclose(fp);
break;
case 7:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+73),SEEK_SET);
scanf("%s",z.Emaile);
fwrite(&z.Emaile,sizeof(z.Emaile),1,fp);
fclose(fp);
break;
case 8:fp=fopen("e:\\通讯录.txt","rb");
fread(&z,sizeof(z),1,fp);
fseek(fp,(j+103),SEEK_SET);
scanf("%d",&z.assort);
fwrite(&z.assort,sizeof(z.assort),1,fp);
fclose(fp);
break;
}
}
void input (Friends *p)/*输入*/
{
printf("请输入姓名:\n");
scanf("%s",p->sName);
printf("请输入性别('m'or'g'):\n");
fflush(stdin);
scanf("%c",&p->cSex);
printf("请输入手机号码:\n");
scanf("%d",&p->sMovtel);
printf("请输入固定电话号码:\n");
scanf("%d",&p->tel);
printf("请输入公司名称:\n");
scanf("%s",p->sCompany);
printf("请输入QQ号码: \n");
scanf("%d",&p->QQ);
printf("请输入电子信箱:\n");
scanf("%s",p->Emaile);
printf("请分类:\n");
scanf("%s",p->assort);
}
void output (Friends *p)/*输出*/
{
printf("**********************\n");
printf("%s\n",p->sName);
printf("%c\n",p->cSex);
printf("%d\n",p->sMovtel);
printf("%d\n",p->tel);
printf("%s\n",p->sCompany);
printf("%d\n",p->QQ);
printf("%s\n",p->Emaile);
printf("%s\n",p->assort);
}
void fugai ()/*用于删除 */
{
Friends d;
FILE *fp;
fp=fopen("e:\\通讯录.txt","rb");
fread(&d,sizeof(d),1,fp);
}
//合意吗
追问雾草大神你太厉害了我只是想要下思路的_(:з」∠)_既然这样辛苦你,谢谢谢谢谢
追答这是以前的代码
热心网友
时间:2024-01-25 21:02
里面包括文件的调用,各种查找,筛选的函
热心网友
时间:2024-01-25 21:03
我自己也写过虽然没写完= =
热心网友
时间:2024-01-25 21:03
qq258347442
用C语言. 编写一个“通讯录管理系统”程序
用C语言.编写一个“通讯录管理系统”程序,通讯录信息包括姓名、工作单位、电话号码、QQ号码、等信息。通讯录信息用磁盘文件保存,要求程序包括如下功能。1.可以输入追加联系人记录。... 用C语言.编写一个“通讯录管理系统”程序,通讯录信息包括姓名、工作单位、电话号码、QQ号码、等信息。通讯录信息用磁盘文件保存,要...
诚求一课程设计(记住一定要是C语言的哦),题目名《通讯录管理系统...
(1) 输入功能:建立通讯录信息记录,可以一次完成无数条记录的输入。(2) 显示功能:完成全部记录的显示。(3) 查找功能:按姓名、单位、分类等多种方式查找通讯信息,并显示。(4) 修改功能:按姓名等方式修改记录,并保存。(5) 删除功能:按姓名等方式删除记录,并保存。要求删除前进行确认。(6) ...
设计一个学生通讯录程序(主要是结构体类型),学生信息(如:姓名、家庭地 ...
{printf("\n\n\n\t\t\t 通讯录管理系统\n\n");printf("\t\t\t 版本号:1.0\n\n");printf("\n\n\n\n\n\t\t\t 2011年4月29日\n\n");printf("\t\t\t 程序设计第三组\n");system("pause");} int menu_select(){ char c;logon();do{ system("cls...
c语言课程设计 物流传送分拣仿真软件 不知道 具体流程 具体要干什么...
2. C是结构式语言结构式语言的显著特点是代码及数据的分隔化, 即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C 语言是以函数形式提供给用户的, 这些函数可方便的调用, 并具有多种循环、条件语句控制程序流向, 从而使程序完全结构化。3. C...
C语言程序设计——课程设计——通讯录管理系统
C语言程序设计 课程设计任务书一、设计题目、内容及要求题目:通讯录程序设计设计一个实用的小型通讯录程序,具有查询和删除功能,并且能够打开或修改指定文件及将多个文件组成一个文件。它完全使用类来实现,充分体现面向对象的程序设计特点。试设计通讯录程序设计,使之能提供下列服务:建立文件,文件的存取和显示,删除记录,...
C语言程序设计:通讯录程序设计
printf("\n\t性别-Sex:%c",friends[j].sex);printf("\n\t联系电话-Telephone:%-13s",friends[j].telephone);printf("\n\t出生日期-Birthday:%4d-%2d-%3d",friends[j].birthday.year,friends[j].birthday.month,friends[j].birthday.day);printf("\n\t邮编-Postnum:%-10s",friends[j]...
用C语言做通讯录
如果你50个同学是用结构体来定义的话就比较容易实现。用二维数组的话,就比较麻烦。查找名字可以用strcmp(输入的名字,编好的名字)==0如果相等,就等于查找到你输入的名字了。记录它的下标,再输出它的联系方式。下面是一个比较完整的通讯录代码,你参考一下啦。(看到专家两个字,我真没资格去回答你了,汗)/*10.3....
C语言程序设计 通讯录系统管理
我的 C语言程序设计 通讯录系统管理 一、需求分析1、问题根据需求,该系统所应包含的信息有以下一些:通讯录的基本信息:姓名、地址、电话根据需求,该系统所应实现的功能有以下一些:各种基本数据的录入。如:通讯录基本... 一、需求分析1、问题 根据需求,该系统所应包含的信息有以下一些: 通讯录的基本信息: 姓名、...
数据结构C语言课程设计 用双链表实现通讯录管理
printf("\n\t\t通讯录文件已保存"); printf("\n\t\t按任意键退出程序\n\t\t"); exit(0); } void deleteone()//删除单个 { char choic; printf("\n\t\t1-按学号删除 2-按姓名删除"); printf("\n\t\t请选择:"); choic=getch(); switch (choic) { case '1':deletebyid();break; ...
c语言课程设计通讯录 怎样实现好友分组
void print() //定义一个自己界面的函数 { printf("");printf("");} while(1) //main函数里面实现菜单 { system("cls"); //清屏 printf(); // 主菜单展示 switch(getchar()){ case 'A':函数1;break;//比如这个是A分组,自己定义函数1,调用清屏、print、和这个分组的prin...