⑴ 谁有用c语言编写一个能有保存功能的通讯录
额。。。。我之前是给我同学他们写的管理系统带保存功能。。。就是每次保存都是写到一个文件里面而已。。。每次程序运行在读那个文件读出来而已……
⑵ 用c语言对以下通讯录用顺序表来实现储存
#include<stdio.h>
typedefstruct
{
intxh;
charxm[10];
chartel[12];
}STU;
typedefSTUElemType;
typedefstruct
{
ElemTypedata[10];
intlength;
}SqList;
intmain()
{
SqListl={{{178101,"杨文","13788041567"},{178102,"张江","13478920019"},{178103,"李华","15077402345"},{178104,"黄丽","15867748903"},{178105,"刘宁","18977410656"}},5};
inti;
printf("学号 姓名 手机号码 ");
for(i=0;i<l.length;i++)
{
printf("%d %s %s ",l.data[i].xh,l.data[i].xm,l.data[i].tel);
}
return0;
}
⑶ 我用C语言编的通讯录程序,怎样才能实现保存输入的数据的功能
亲,(fp=fopen("f:\\1.txt","r")),r 只允许进行“读”操作。改成“wb+”试试
⑷ 用c语言编写一个通讯录程序,数组保存
1、 用结构体数组编程实现一个通讯录程序,本通讯录最多容纳5人;通讯录文件为AddressBook.dat;
2、 本通讯录程序实现以下功能:
a) 增加记录:本功能模块是将一个人的信息输入到通讯录中;当通讯录中信息达到5人时提示“此通信录中已有5人的信息,无法再添加!”;增加记录时输入人名和此人的电话后,要先判断通信录中是否有此人,如有提示“此通信录中已经有此人的信息,无法再添加!”,否则,添加后提示“目前通讯录中查无此人,增加记录成功!”。
b) 显示记录:本功能模块是将通讯录中每个人的信息都显示到电脑屏幕上;如果通讯录为空,提示“目前通讯录为空,没有任何人的信息可显示!”。
c) 删除记录:本功能模块是将某个人的信息从通讯录中删除;请根据输入的人名来删除记录;如果通讯录在删除前已经为空,则提示“目前通讯录为空,没有任何人的信息可删除!”;如果通讯录虽然不为空,但没有此人,则提示“通讯录中没有此人,无法删除!”;如果通讯录不为空且有此人信息,删除成功后提示“通讯录中此人的信息已成功删除!”
d) 保存记录:本功能模块是将所有变更的信息写入通讯录文件中;首先判断以写方式打开文件AddressBook.dat是否成功,如果不成功则提示“打开文件失败”,如果打开成功,但没有任何信息需要保存到通信录中(即通信录为空),则提示“目前通讯录为空,没有任何人的信息需存储!”,如果文件打开成功,且有数据需要保存,则在保存文件成功后提示“保存文件成功!”,保存文件失败时提示“保存文件失败!”;
e) 查询记录:本功能模块是在通讯录中查询是否有某个人的信息;请根据输入的人名来查询记录;如果有此人,则显示此人的信息;否则提示“目前通讯录中查无此人!”;
f) 修改记录:本功能模块是在通讯录中修改某个人的信息;请根据输入的人名来修改记录;如果通信录为空,则提示“目前通讯录为空,没有任何人的信息可修改!”;如果通讯录中查无此人,则提示“通讯录中找不到此人,无法修改!”,否则提示“请输入此人最新的信息”后开始输入此人的新的姓名和电话号码,再次提示“现修改为的信息如下:Name:XXXX----Tel:XXXX”,并替换此人以前的信息,最后提示“修改成功”;
g) 退出系统:本功能模块是用来退出本程序的;退出之前需要根据操作提示是否“存盘”;当执行了“增加记录”、“删除记录”,“修改记录”功能后但没有执行“保存记录”功能时需要提示“通信录中信息有修改,是否存盘?(Y/N)”。存盘后退出前显示通信录中的所有信息,再提示“欢迎使用,谢谢!再见!”;
3、 通讯录中每个人的信息包含姓名、电话号码两部分组成,可用以下结构体类型定义:
struct address_info
{ char name[20];
char tel[20];
};
4、 程序开始执行时,要首先确认磁盘上是否有此文件。如果有,首先要将文件中的内容读出,放到结构体数组中,并对结构体数组没有使用的元素初始化,如果通讯录中已有5人,则提示“通讯录已满”。如果没有,则需结构体数组全部初始化;并要在执行“保存记录”功能时创建此文件
5、 提示:定义一个全局数组struct address_info addrinfo[5];来存储最多5个人的信息。定义一个全局整型变量Maxindex保存上面数组目前使用的最大下标;定义一个全局整型变量ischange来跟踪记录通讯录中内容是否变化过,以便存盘提示。
⑸ 设计一个通讯录C语言程序中,怎样设计将新建的联系人保存起来
通讯录直接写入文件就好 ,这是练习程序吧,直接调用 fopen、fread、fwrite之类的函数,对文件操作就行了!
⑹ 求用c语言编译的 通讯录 (命令行界面数组保存 )
我来了 帮你完成
⑺ c语言中通讯录编程中如何保存输入值
用文件做就可以。
例如:
struct address a;
//此处加几条代码,给a赋值
fp=fopen("file.txt","w");//以写方式打开文件
fwrite(&a,sizeof(struct address),1,fp);//把变量a中的值存储到文件file中去
fclose(fp);
这只是举个例子,比较粗糙,你自己完善。
⑻ C语言通讯录怎么保存文件并且再次打开时能显示储存的数据
// 显示文件的数据:
// mon 1001: $1.20 0
// tue 1002: $2.30 0
// wed 1003: $3.40 0
// thu 1004: $4.50 0
// fri 1005: $5.60 0
// 请输入查询卡号: 1003
// 测试---开始
// wed 1003: $3.40 1
// 测试---结果
//
// 显示文件的数据:
// mon 1001: $1.20 0
// tue 1002: $2.30 0
// wed 1003: $3.40 1
// thu 1004: $4.50 0
// fri 1005: $5.60 0
#include
#include
#include
struct arm
{
char name[11];
char num_car[11];
float value;
int state;
};
struct arm num[100]; //暂时没有用到
void loss_card(void)
{
struct arm oneItem;
char infor[11];
//原代码int a;
int ret; //函数fread()的返回值
int size = sizeof(struct arm);
FILE *pcard;
//原代码if ((pcard = fopen("book.dat", "a+b")) == NULL)
// rb+ 读写打开一个二进制文件,允许读写数据(可以任意修改),文件必须存在.
if ((pcard = fopen("book.dat", "rb+")) == NULL)
{
fputs("无法打开book.dat文件\n", stderr);
exit(1);
}
//原代码while (getchar() != '\n');
//原代码printf("请输入查询卡号:\n");
//原代码s_gets(infor, 11);
printf("请输入查询卡号:");
fflush(stdin); //清空输入缓存,吸收掉回车符(有的编译器不适用)
gets(infor);
printf("测试---开始\n");
//原代码for (a = 0; fread(&num[a], size, 1, pcard); a++)
while(!feof(pcard)) //没有到达文件的结尾
{
ret=fread(&oneItem, size, 1, pcard);
if(ret==1)
{
if (strncmp(infor, oneItem.num_car, 10) == 0)
{
if(oneItem.state == 0)
{
oneItem.state = 1;
printf("%s %s: $%.2f %d\n", oneItem.name, oneItem.num_car,
oneItem.value, oneItem.state);
}
else
{
printf("该账户已挂失。");
}
//把文件指针移动到离文件当前位置的-size的地方,也就是退回1个size
//常数SEEK_CUR表示当前位置
fseek(pcard,-size,SEEK_CUR);
fwrite(&oneItem, size, 1, pcard); //写入新数据
//只需找到一个,写入新数据后就退出,如果继续循环,会异常
break;
}
}
}
//原代码fwrite(&num[a], size, 1, pcard);
printf("测试---结束\n");
fclose(pcard);
}
void testWrite() //测试:写入文件
{
struct arm test[5]={{"mon","1001",1.2,0},{"tue","1002",2.3,0},
{"wed","1003",3.4,0},{"thu","1004",4.5,0},
{"fri","1005",5.6,0}};
FILE *pcard;
int size = sizeof(struct arm);
int a;
// wb 只写打开或建立一个二进制文件,只允许写数据
pcard = fopen("book.dat", "wb");
if (pcard == NULL)
{
fputs("无法打开book.dat文件\n", stderr);
exit(1);
}
for(a=0;a<5;a++)
{
fwrite(&test[a], size, 1, pcard);
}
fclose(pcard);
}
void testRead() //测试:读取文件
{
struct arm oneItem;
FILE *pcard;
int size = sizeof(struct arm);
int ret;
// rb 只读打开一个二进制文件,只允许读数据
pcard = fopen("book.dat", "rb");
if (pcard == NULL)
{
fputs("无法打开book.dat文件\n", stderr);
exit(1);
}
printf("\n显示文件的数据:\n");
while(!feof(pcard)) //没有到达文件的结尾
{
ret=fread(&oneItem, size, 1, pcard);
if(ret==1)
{
printf("%s %s: $%.2f %d\n", oneItem.name, oneItem.num_car,
oneItem.value, oneItem.state);
}
}
fclose(pcard);
}
int main()
{
testWrite(); //测试:写入文件
testRead(); //测试:读取文件
loss_card();
testRead(); //测试:读取文件
return 0;
}
⑼ c语言通讯录编写
靠山山倒,靠树树倒,靠自己最好!
自己写吧,一个
结构体{
姓名;
性别;
年龄;
手机;
}
如果不会用链表,那你就用数组!
录入:就是往数组里写入数据
删除:就清为0就可以了呗
查询:就是从数组的第一项到保存数查找一遍喽。
大哥
,你是在做课程设计吧?计科的?
伤不起!!!!!!
⑽ 用C语言编程通讯录如何将信息储存
定义一个文件指针啊!给你说个例子
#include
"stdio.h"
void
main()
{
FILE
*fq;
if(fq=fopen("c:\\123.bat","w“))//bat文件的完全路径,并自动创建文件!w
是写入的意思
{
printf
(fq,"输出并保存”);}
//加fq,是指明要写入
else
printf
("没有开打文件");
}
}