本文目录一览:
用C语言编写一个手机电话本程序
#include stdio.h #include stdlib.h #include string.h #define szSTR 64 #define fileDB "c:\\contact.txt" struct CONTACT { char name[szSTR];/*姓名*/ char unit[szSTR];/*工作单位*/ char tele[szSTR];/*电话*/ char mail[szSTR];/*mail*/ }; typedef struct CONTACT CON; #define BNAME 1 #define BUNIT 2 #define BTELE 4 #define BMAIL 8 #define BFULL 0xFF int OPER[5] = ; void input(CON * s, int mask) { if(mask BNAME) if(mask BUNIT) if(mask BTELE) if(mask BMAIL) }/*end input*/ void show (int id, CON * s) { if(!s) return ; if(id) printf("%d\t%s\t%s\t%s\t%s\n", id, s-name , s-unit , s-tele , s-mail ); else printf("%s%s%s%s\n", s-name , s-unit , s-tele , s-mail ); /*end if*/ }/*end show*/ void regist(void) { CON s; FILE * f = 0; input(s, BFULL); f = fopen(fileDB, "ab"); fwrite(s,sizeof(s),1,f); fclose(f); printf("资料已保存!\n"); }/*end regist*/ int browse(char * key, fpos_t * p, CON * s) { FILE * f =0; int i = 0, r = 0; CON t; char * a = 0, * b = 0; fpos_t q; if(!s) return 0; f = fopen(fileDB, "rb"); if(!f) { printf("数据库暂无记录\n"); return 0; }/*end if*/ printf("编号\t姓名\t单位\t电话\t电邮\n"); printf("------------------------------------------------\n"); while(!feof(f)) { fgetpos(f, q); r = fread(t, sizeof(t), 1, f); if(r1)break; if(t.name[0]==0) continue; if(key) { a = strstr(t.name , key); b = strstr(t.tele , key); if(a == 0 b == 0) continue; }/*end if*/ if(p) *p = q; if(s) memcpy(s, t, sizeof(t)); i++; show(i, t); }/*end while*/ fclose(f); printf("------------------------------------------------\n"); return i; }/*end browse*/ fpos_t query(CON * s) { char key[szSTR]=""; fpos_t p = 0; int r = 0; printf("请输入姓名或者电话号码:"); scanf("%s", key); r = browse(key, p, s); return r?p:-1; }/*end query*/ void clear(void) { FILE * f = 0; CON s; fpos_t p = query(s); if(p0) return; f = fopen(fileDB, "rb+"); fsetpos(f, p); memset(s, 0, sizeof(s)); fwrite(s, sizeof(s),1, f); fclose(f); printf("记录已删除!\n"); }/*end clear*/ void modify(void) { FILE * f = 0; CON s; int cmd = 0; fpos_t p = query(s); if(p0) return; f = fopen(fileDB, "rb+"); fsetpos(f, p); for(;;) { show(0, s); printf("请选择:1-姓名;2-工作单位;3-电话;4-电邮;5-保存并退出;6-放弃修改并退出\n"); scanf("%d", cmd); switch(cmd) { case 1: case 2: case 3: case 4: input(s, OPER[cmd]); break; case 5: fsetpos(f, p); fwrite(s, sizeof(s), 1, f); case 6: fclose(f); return; default: printf("错误的操作,请重新输入。\n"); }/*end case*/ }/*mext*/ }/*end clear*/ int main(void) { int cmd = 0; CON s; for(;;) { printf("欢迎使用通信簿!请选择:1-添加;2-查询;3-删除;4-修改;5-全部输出;0-退出\n"); scanf("%d", cmd); switch(cmd) { case 0: return 0; case 1: regist(); break; case 2: query(s); break; case 3: clear(); break; case 4: modify(); break; case 5: browse(0, 0, s); break; }//end case } return 0; }
记得采纳啊
C语言中“电话”应该定义为什么类型?
这个问题只要和汇编一比较就可以知道了,C中定义数据类型是为了容易编程,定义了数据类型之后又定义了数据类型之间的各种运算,这样对编程人来说就会方便很多,如果不定义数据类型,那么数据之间的差别只有位不同而已,这样如果要定义一个字符变量,你首先要去申请一个8位的内存,再去按ASCII码对其进行赋值,这样对编程人员来说是很恐怖的。
c语言通讯录
关于这道题的基本思路,我可以告诉你:
通讯录一般由如下几个信息组成:姓名、性别、通讯地址、电话号码、邮编等组成。
如果想编写一个20个人的通讯录程序,那么就可以定义一个大小为 20 的结构数组。C 语言详细代码如下:
#include stdio.h
#define ADDRESS_LEN 100 /* 通讯地址长度宏定义,可以根据需要进行修改 */
#define PHONENUM_LEN 20 /* 电话号码长度宏定义,可以自行修改 */
#define NUMBER 20 /* 20 个人的通讯录,可以自行修改 */
struct address /* 定义一个通讯录的结构数组 */
{
char name[20] ; /* 姓名 */
char sex[5] ; /* 性别 */
char address[ADDRESS_LEN] ; /* 通讯地址 */
char telepone_num[PHONENUM_LEN] ; /* 电话号码 */
char zip[10 ] ; /* 邮政编码 */
} ;
void main( )
{
int i = 0 ;
struct address my_address[NUMBER] ;
for( i = 0 ; i NUMBER ; i ++ )
{
gets(my_address[i].name) ;
gets(my_address[i].sex) ;
gets(my_address[i].address);
gets(my_address[i].telephone_num);
gets(my_address[i].zip);
}
for( i = 0 ; i NUMBER ; i ++ )
printf("%s\t%s\t%s\t%s\t%s\n", my_address[i].name,my_address[i].sex,my_address[i].address,my_address[i].telephone_num,my_address[i].zip);
}
你可以将该程序输入到电脑中,上机编译、链接、并运行试一试。
C语言电话簿程序
#include#include#include#defineM500structMan//定义结构体{charName[8];//名字charDepart[20];//工作单位charQQ[10];//QQ号码charEmail[30];//邮箱};voidtext();//相当于主函数voidtext1();//菜单输出chartext2();//开始的版权信息输出intDelete(ManMan[],intSize);//删除信息voidDisplay(Manman[]);//显示所有记录voidgetch();intInsert(ManMan[],intSize);//插入模块voidModify(ManMan[],intSize);//修改模块intS_asname(ManMan[],intSize,intn);//查找信息voidS_asqq(ManMan[],intSize);//按QQ查找模块intSave(ManMan[],intSize);//把数据写入文件intScan(ManMan[]);//从文本中读取数据voidmain()//主函数{text();//(这边纯属蛋疼,最多加长系统运行时间)}voidtext()//相当于主函数{Manman[M];//500人的结构体数组charcontrol=0;//菜单选择控制变量intsize=0;//保存当前已有的记录if(text2())//这边可不要if,直接调用text2,显示版权信息。{size=Scan(man);//判断文件是否存在while(1)//菜单生成{text1();//菜单显示scanf(