用户登录
用户注册

分享至

sconc通讯软件下载 C语言简易通信录管理系统

  • 作者: Smile32973511
  • 来源: 51数据库
  • 2020-04-20

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

#include<conio.h>

struct contacks

{ char name[10];

char mobile[10];

char fixtelephone[10];

char Email[20];

char street[20];

}con[50];

int k=0;

void enter();

void display();

void lookandchange();

void del();

void save();

void main()

{

int a;

do

{

printf("\n\n ******************************************************************\n");

printf(" *"); printf("\t\twelcome enter the contacks system"); printf("\t\t*");

printf("\n ******************************************************************\n");

printf(" *"); printf("\t 1.Access information"); printf("\t\t\t\t\t*\n");

printf(" *"); printf("\t 2.display information"); printf("\t\t\t\t*\n");

printf(" *"); printf("\t 3.lookandchange information"); printf("\t\t\t\t*\n");

printf(" *"); printf("\t 4.Delete information"); printf("\t\t\t\t\t*\n");

printf(" *"); printf("\t 5.Save the information"); printf("\t\t\t\t*\n");

printf(" *"); printf("\t 6. exit "); printf("\t\t\t\t\t*\n");

printf(" ******************************************************************\n");

printf(" Enter you choice : ");

scanf("%d",&a);

switch(a)

{

case 1:printf("\n");enter();break;

case 2:printf("\n");display();break;

case 3:printf("\n");lookandchange();break;

case 4:printf("\n");del();break;

case 5:printf("\n");save();break;

case 6:printf("\n");exit(0);break;

default:printf("\nThe choice is between 1 to 6.\n");

}

}while(a!=0);

}

void enter()

{

char ch[20];

printf("\nenter student information:\n");

do

{ printf("\nname: ");

scanf("%s",con[k].name);

printf("mobile: ");

scanf("%s",con[k].mobile);

printf("\nfixtelephone: ");

scanf("%s",con[k].fixtelephone);

printf("\nEmail: ");

scanf("%s",con[k].Email);

printf("\nstreet: ");

scanf("%s",con[k].street);

k++;

printf("\nif want continue input student information(y/n): ");

scanf("%s",ch);

}while(strcmp(ch,"y")==0||strcmp(ch,"Y")==0);

display();

}

void display()

{ int i;

printf(" the information is:\n");

for(i=0;i<k;i++)

{ printf("%10s %20s %10s %10s %10s ",con[i].name,con[i].mobile,con[i].fixtelephone,con[i].Email,con[i].street);

printf("\n"); }

}

void lookandchange()

{

int i;

char a[20],ch[10];

printf("\nenter you want look name:");

scanf("%s",a);

for(i=0;i<k;i++)

if(strcmp(con[i].name,a)==0) printf("%10s %20s %10s %10s %10s ",con[i].name,con[i].mobile,con[i].fixtelephone,con[i].Email,con[i].street);

printf("\nyou sure want change student y/n): ");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0)

{ printf("\nenter you want change name:");

scanf("%s",a);

for(i=0;i<k;i++)

{

if(strcmp(con[i].name,a)==0)

{ printf("\nyou sure want change student name(y/n): ");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nname:"); scanf("%s",con[i].name);}

printf("\nyou sure want change mobile(y/n): ");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nmobile"); scanf("%s",con[i].mobile);}

printf("\nyou sure want change fixtelephone(y/n): ");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nfixtelephone"); scanf("%s",con[i].fixtelephone);}

printf("\nyou sure want change Email(y/n): ");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nEmail"); scanf("%s",con[i].Email);}

printf("\nyou sure want changestreet(y/n): ");

scanf("%s",ch);

if(strcmp(ch,"y")==0||strcmp(ch,"Y")==0) { printf("\nstreet"); scanf("%s",con[i].street);}

}

} }

display();

}

void del()

{

int i,j;

char c[20];

printf("\nenter you want delete name :\n");

printf("name:");

scanf("%s",&c);

for(i=0;i<k;i++)

if(strcmp(c,con[i].name)==0) break;

for(j=i;j<=2;j++)

con[j]=con[j+1];

printf("\t\t\tyou had delete %s\n",c);

k--;

display();

}

void save()

{ FILE *fp; int i;

if((fp=fopen("xinxi.txt","w"))==NULL)

{ printf("cannot write the file.\n");

exit(0);}

for(i=0;strlen(con[i].name)!=0;i++)

fprintf(fp,"%s %s %s %s %s\n",con[i].name,con[i].mobile,con[i].fixtelephone,con[i].Email,con[i].street);

fclose(fp);

}

调试通过 有问题再说

C语言程序设计,通讯录管理系统

/*【用C语言编写具有数据插入、修改、删除、显示和查询功能的电话薄管理程序】

1、数据包括:人名、工作单位、电话号码和E-mail地址。

2、可对记录中的姓名和电话号码进行修改。

3、可增加或删除记录。

4、可显示所有保存的记录。

5、可按人名或电话号码进行查询。

另:采用结构体数组和文件系统实现。结构体包括人名、工作单位、电话号码和E-mail

绝对原创,2010年7月12日晚刚写完测试通过的,纯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] = {BFULL, BNAME, BUNIT, BTELE, BMAIL};

void input(CON * s, int mask)

{

if(mask & BNAME) { printf("请输入学生姓名:"); scanf("%s", s->name); }

if(mask & BUNIT) { printf("请输入工作单位:"); scanf("%s", s->unit); }

if(mask & BTELE) { printf("请输入联系电话:"); scanf("%s", s->tele); }

if(mask & BMAIL) { printf("请输入电子邮件:"); scanf("%s", s->mail); }

}/*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(r<1)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(p<0) 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(p<0) 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语言)串行通信的printf的用法和SCON中TI的问题

问题一:printf语句在向串口发送字符之前,有一汇编语句判断 TI 是否为 1 (TI 为是表明一个字符发送完毕),若为 0 则等待,语句如下:

C:0x040C 3099FD JNB TI(0x98.1),C:040C

其目的是等待前一字符发送完毕,才发下一字符。所以初始化串口时必须加一句:TI = 1,否则,程序就在上一个汇编语句上死循环。

问题二:要用printf必须先初始化串行口!

RegEx分析 (str, @"^\s*$|^c:\\con\\con$|[%,\*" + "\"" + @"\s\t\<\>\&]|游客|^Guest");

@"^\s*$|^c:\\con\\con$|[%,\*" + "\"" + @"\s\t\<\>\&]|游客|^Guest"

首先每个"|"是一个“或”,这样就能它分解成五个简单的正则表达式

^\s*$ 这个匹配空字符、0个或多个空白字符

^c:\\con\\con$ 这个是全字匹配,只能匹配"c:\\con\\con“

[%,\*" + "\"" + @"\s\t\<\>\&] 这个是说只要字符串中哈有该列表中其中的一个字符就行

游客 这个只要含有“游客”二字的都匹配

^Guest 这个匹配以Guest开头的字符串更多

这个正则表达式前面的@是什么意思呢,为什么还要加个@,我在VS中把这个@删掉还会报错

^c:\\con\\con$ [%,\*" + "\"" + @"\s\t\<\>\&] 这两行不是很明白

@这个是转义的

^c:\\con\\con$

^ 这表示以其后面的字符开头

$ 这表示以其前面面的字符结尾

[%,\*" + "\"" + @"\s\t\<\>\&]

这个里面列举了一些字符

类似与 [a-z] ,比如说 [a-z] 表示a到z之间的字符

你这个这个正则表达式是由三个字符串,拼成的啊,看错了

@"^\s*$|^c:\\con\\con$|[%,\*" + "\"" + @"\s\t\<\>\&]|游客|^Guest"

最终加起来后:

@"^\s*$|^c:\\con\\con$|[%,\*\"\s\t\<\>\&]|游客|^Guest"

分解后:

^\s*$ 这个匹配空字符、0个或多个空白字符

^c:\\con\\con$ 这个是全字匹配,只能匹配"c:\\con\\con“

[%,\*\"\s\t\<\>\&] 这个是说可以匹配:百分号(%),逗号(,),星号(\*),双引号(\"),任何空白字符(\s),制表符(\t),小于号(\<),大于号(\>)和连接符号(\&)中的任意一个

游客 这个只要含有“游客”二字的都匹配

^Guest 这个匹配以Guest开头的字符串

不好意思啊 小弟新手,还有最后两个问题;

1.^c:\\con\\con$ 这里的\\为什么不是 匹配 \ 呢

2.%,\*" + "\"" + @"\s\t\<\>\& 到 [%,\*\"\s\t\<\>\&] 是怎么转变的啊

1、\\是匹配 \ 的,"c:\\con\\con“ <=> @"c:\con\con“

2、整个正则表达式是由三个字符串拼成的,这个

@"^\s*$|^c:\\con\\con$|[%,\*"

+

"\""

+

@"\s\t\<\>\&]|游客|^Guest"

我的手机是s3030c的,请问如何网络授权?我下载的QQ软件登不上去,为什么!谢谢了!

呵呵 不懂什么叫网络授权。但是这个手机的手机QQ是真的登不上的。你可以用J218的,S3030C机子虽然非常可爱,但是适用软件比较少,J218的可以用,我就用的这个,如果只挂的话就用网页版的吧,省流量,到时候刷新就好了,如果要聊天网页版就不好用了,建议聊天用手机QQ,挂着升级就用3GQQ哦!

用cmd rmdir /s c: con.apl.cache 删了C盘里多文件? 坏了高手进,菜鸟bu要进!

直接删的C盘文件,命令格式都不正确,用sfc /scannow命令可以找回

单片机双机通信c程序

//发送部分

void Init()

{

SCON=0x51;

TMOD=0x20;TH1=0xf3;TL1=0xf3;

ET1=1;

TR1=1;

EA=1;

ES=1;

}

void send()

{

TI=0;

SBUF=0xfe;

while(!TI);

TI=0;

}

void main()

{

Init();

while(1)

{

send();

}

}

//接收部分

uchar a;

void Init()

{

SCON=0x51;

TMOD=0x20;TH1=0xf3;TL1=0xf3;

ET1=1;

TR1=1;

EA=1;

ES=1;

}

void receive()

{

RI=0;

a=SBUF;

while(!RI);

RI=0;

}

void display()

{

P#=a;

}

void main()

{

Init();

while(1)

{

receive();

display();

}

}

应该可以实现你说的那个功能,我没试验。你可以试试

转载请注明出处51数据库 » sconc通讯软件下载 C语言简易通信录管理系统

软件
前端设计
程序设计
Java相关