2022年手机源代码收集

上传人:新** 文档编号:567401531 上传时间:2024-07-20 格式:PDF 页数:6 大小:76.45KB
返回 下载 相关 举报
2022年手机源代码收集_第1页
第1页 / 共6页
2022年手机源代码收集_第2页
第2页 / 共6页
2022年手机源代码收集_第3页
第3页 / 共6页
2022年手机源代码收集_第4页
第4页 / 共6页
2022年手机源代码收集_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《2022年手机源代码收集》由会员分享,可在线阅读,更多相关《2022年手机源代码收集(6页珍藏版)》请在金锄头文库上搜索。

1、用 C 简单编写通讯录源代码/*10.3.2 源程序 */ /* 头文件( .h)*/ #include stdio.h /*I/O函数 */ #include stdlib.h /*标准库函数 */ #include string.h/*字符串函数 */ #include ctype.h /*字符操作函数*/ #define M 50 /*定义常数表示记录数*/ typedef struct /*定义数据结构*/ char name20; /*姓名 */ char units30; /*单位 */ char tele10; /*电话 */ ADDRESS; /* 以下是函数原型*/ int

2、enter(ADDRESS t); /*输入记录 */ void list(ADDRESS t,int n); /*显示记录 */ void search(ADDRESS t,int n); /*按姓名查找显示记录*/ int delete(ADDRESS t,int n); /*删除记录 */ int add(ADDRESS t,int n); /*插入记录 */ void save(ADDRESS t,int n); /*记录保存为文件*/ int load(ADDRESS t); /*从文件中读记录*/ void display(ADDRESS t); /*按序号查找显示记录*/ voi

3、d sort(ADDRESS t,int n); /*按姓名排序 */ void qseek(ADDRESS t,int n); /*快速查找记录*/ void copy(); /* 文件复制 */ void print(ADDRESS temp); /*显示单条记录 */ int find(ADDRESS t,int n,char *s) ; /*查找函数 */ int menu_select(); /*主菜单函数 */ /* 主函数开始 */ main() int i; ADDRESS adrM; /*定义结构体数组*/ int length; /* 保存记录长度 */ clrscr();

4、 /* 清屏 */ for(;)/* 无限循环 */ switch(menu_select() /*调用主菜单函数,返回值整数作开关语句的条件*/ case 0:length=enter(adr);break;/*输入记录 */ case 1:list(adr,length);break; /*显示全部记录*/ case 2:search(adr,length);break; /*查找记录 */ case 3:length=delete(adr,length);break; /*删除记录 */ case 4:length=add(adr,length); break; /*插入记录 */ ca

5、se 5:save(adr,length);break; /*保存文件 */ case 6:length=load(adr); break; /*读文件 */ case 7:display(adr);break; /*按序号显示记录*/ case 8:sort(adr,length);break; /*按姓名排序 */ case 9:qseek(adr,length);break; /*快速查找记录 */ case 10:copy();break; /*复制文件 */ case 11:exit(0); /*如返回值为11 则程序结束 */ /*菜单函数,函数返回值为整数,代表所选的菜单项*/

6、menu_select() char s80; int c; gotoxy(1,25);/*将光标定为在第25 行,第 1 列*/ printf(press any key enter menu.n);/*提示压任意键继续*/ getch(); /* 读入任意字符 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - clrscr(); /* 清屏 */ gotoxy(1,1); printf(*MENU*nn); printf

7、( 0. Enter recordn); printf( 1. List the filen); printf( 2. Search record on namen); printf( 3. Delete a recordn); printf( 4. add record n); printf( 5. Save the filen); printf( 6. Load the filen); printf( 7. display record on ordern); printf( 8. sort to make new filen); printf( 9. Quick seek recordn

8、); printf( 10. copy the file to new filen); printf( 11. Quitn); printf(*n); do printf(n Enter you choice(011):); /*提示输入选项 */ scanf(%s,s); /*输入选择项 */ c=atoi(s); /* 将输入的字符串转化为整型数*/ while(c11); /*选择项不在011 之间重输 */ return c; /* 返回选择项,主程序根据该数调用相应的函数*/ /*输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/ int enter(ADDRESS t

9、) int i,n; char *s; clrscr(); /* 清屏 */ printf(nplease input num n); /*提示信息 */ scanf(%d,&n); /*输入记录数 */ printf(please input record n); /*提示输入记录*/ printf(name unit telephonen); printf(-n); for(i=0;in;i+) scanf(%s%s%s,ti.name,ti.units,ti.tele); /*输入记录 */ printf(-n); return n; /* 返回记录条数*/ /*显示记录,参数为记录数组

10、和记录条数*/ void list(ADDRESS t,int n) int i; clrscr(); printf(nn*ADDRESS*n); printf(name unit telephonen); printf(-n); for(i=0;in-1) /* 如果整数 i 值大于 n-1 ,说明没找到 */ printf(not foundn); else print(ti); /* 找到,调用显示函数显示记录*/ /*显示指定的一条记录*/ void print(ADDRESS temp) clrscr(); printf(nn*n); printf(name unit telepho

11、nen); printf(-n); printf(%-20s%-30s%-10sn,temp.name,temp.units,temp.tele); printf(*end*n); /*查找函数,参数为记录数组和记录条数以及姓名s */ int find(ADDRESS t,int n,char *s) int i; for(i=0;in-1) /* 如果 in-1 超过了数组的长度*/ printf(no found not deletedn); /*显示没找到要删除的记录*/ else print(ti); /* 调用输出函数显示该条记录信息*/ printf(Are you sure d

12、elete it(1/0)n); /*确认是否要删除*/ scanf(%d,&ch); /*输入一个整数0 或 1*/ if(ch=1) /* 如果确认删除整数为1*/ for(j=i+1;j=i;j-) /*从最后一个结点开始向后移动一条*/ strcpy(tj+1.name,tj.name); /*当前记录的姓名拷贝到后一条*/ strcpy(tj+1.units,tj.units); /*当前记录的单位拷贝到后一条*/ strcpy(tj+1.tele,tj.tele); /*当前记录的电话拷贝到后一条*/ strcpy(ti.name,temp.name); /*将新插入记录的姓名拷贝

13、到第i 个位置 */ strcpy(ti.units,temp.units); /*将新插入记录的单位拷贝到第i 个位置 */ strcpy(ti.tele,temp.tele); /*将新插入记录的电话拷贝到第i 个位置 */ n+; /* 记录数加 1*/ return n; /* 返回记录数 */ /*保存函数,参数为结构体数组和记录数*/ void save(ADDRESS t,int n) int i; FILE *fp; /* 指向文件的指针*/ if(fp=fopen(record.txt,wb)=NULL) /*打开文件,并判断打开是否正常*/ printf(can not o

14、pen filen);/*没打开 */ exit(1); /* 退出 */ printf(nSaving filen); /*输出提示信息 */ fprintf(fp,%d,n); /*将记录数写入文件*/ fprintf(fp,rn); /*将换行符号写入文件*/ for(i=0;in;i+) fprintf(fp,%-20s%-30s%-10s,ti.name,ti.units,ti.tele);/*格式写入记录 */ fprintf(fp,rn); /*将换行符号写入文件*/ fclose(fp);/* 关闭文件 */ printf(*save success*n); /*显示保存成功*

15、/ /*读入函数,参数为结构体数组*/ int load(ADDRESS t) int i,n; FILE *fp; /* 指向文件的指针*/ if(fp=fopen(record.txt,rb)=NULL)/*打开文件 */ printf(can not open filen); /*不能打开 */ exit(1); /* 退出 */ fscanf(fp,%d,&n); /*读入记录数 */ for(i=0;i=0&idn) /*判断序号是否在记录范围内*/ fseek(fp,(id-1)*sizeof(ADDRESS),1); /*移动文件指针到该记录位置*/ print(tid); /*

16、 调用输出函数显示该记录*/ printf(rn); else printf(no %d number record!n ,id); /*如果序号不合理显示信息*/ fclose(fp); /* 关闭文件 */ /*排序函数,参数为结构体数组和记录数*/ void sort(ADDRESS t,int n) int i,j,flag; ADDRESS temp; /*临时变量做交换数据用*/ for(i=0;in;i+) flag=0; /* 设标志判断是否发生过交换*/ for(j=0;j0) /*比较大小 */ flag=1; strcpy(temp.name,tj.name); /*交换

17、记录 */ strcpy(temp.units,tj.units); strcpy(temp.tele,tj.tele); strcpy(tj.name,tj+1.name); strcpy(tj.units,tj+1.units); strcpy(tj.tele,tj+1.tele); strcpy(tj+1.name,temp.name); strcpy(tj+1.units,temp.units); strcpy(tj+1.tele,temp.tele); if(flag=0)break; /*如果标志为0,说明没有发生过交换循环结束*/ printf(sort sucess!n); /

18、*显示排序成功 */ /*快速查找,参数为结构体数组和记录数*/ void qseek(ADDRESS t,int n) char s20; int l,r,m; printf(nPlease sort before qseek!n); /*提示确认在查找之前,记录是否已排序*/ printf(please enter name for qseekn); /*提示输入 */ scanf(%s,s); /*输入待查找的姓名*/ l=0;r=n-1; /* 设置左边界与右边界的初值*/ while(l=r) /* 当左边界 =右边界时 */ m=(l+r)/2; /* 计算中间位置 */ if(s

19、trcmp(tm.name,s)=0) /*与中间结点姓名字段做比较判是否相等*/ print(tm); /* 如果相等,则调用print 函数显示记录信息*/ return ; /* 返回 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 6 页 - - - - - - - - - if(strcmp(tm.name,s)r) /* 如果左边界大于右边界时*/ printf(not foundn); /*显示没找到 */ /*复制文件 */ void copy()

20、char outfile20; /*目标文件名 */ int i,n; ADDRESS tempM; /*定义临时变量*/ FILE *sfp,*tfp; /*定义指向文件的指针*/ clrscr();/* 清屏 */ if(sfp=fopen(record.txt,rb)=NULL) /*打开记录文件 */ printf(can not open filen); /*显示不能打开文件信息*/ exit(1); /* 退出 */ printf(Enter outfile name,for example c:f1te.txt:n); /*提示信息 */ scanf(%s,outfile); /

21、*输入目标文件名*/ if(tfp=fopen(outfile,wb)=NULL) /*打开目标文件*/ printf(can not open filen); /*显示不能打开文件信息*/ exit(1); /* 退出 */ fscanf(sfp,%d,&n); /*读出文件记录数*/ fprintf(tfp,%d,n);/*写入目标文件数*/ fprintf(tfp,rn); /*写入换行符 */ for(i=0;in;i+) fscanf(sfp,%20s%30s%10sn,tempi.name,tempi.units, tempi.tele); /*读入记录 */ fprintf(tf

22、p,%-20s%-30s%-10sn,tempi.name, tempi.units,tempi.tele); /*写入记录 */ fprintf(tfp,rn); /*写入换行符 */ fclose(sfp); /* 关闭源文件 */ fclose(tfp); /* 关闭目标文件 */ printf(you have success copy file!n); /*显示复制成功*/ 参考资料: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 6 页 - - - - - - - - -

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号