课程设计说明书
三. 程序清单
#include
#include
#include
struct address
{ char a[40]; .............../*email地址*/ };
struct ffriend
{ int num; ............................./*序号*/ char name[20];.................../*姓名*/ char kind[20]; ................../*种类*/
long telephone;............./*电话号*/ struct address address;....../*邮箱*/ };
friends[50];
void Load() { int j; long k;
fp=fopen(\打开文件friend.txt*/ if(fp!=NULL) {
for(i=1;i<50;i++)
j=fgetc(fp);
if(j==EOF)...................................................../*判断是否到了文件尾*/ return; k=i-1;
fseek(fp,k*sizeof(struct ffriend),SEEK_SET);
fread(&friends[i],sizeof(struct ffriend),1,fp);........./*从文件中读取一
3
课程设计说明书
条记录*/ }
} else {
fp=fopen(\ i=1;
}
void Find(int j) ....................................... /*查询函数*/ {
system(\
printf(\编号-Nnumber: =\ printf(\姓名-Name:%-20s\ printf(\性别-kind:%s\
printf(\联系电话-Telephone:%-13ld\ printf(\}
void Append(int j) ............................................../*输入联系人函数*/ {
system(\
friends[j].num=j;
printf(\序号-Number : %d\
printf(\姓名-Name : \读入姓名*/ scanf(\
printf(\类别-kind : \读入类别*/ scanf(\
printf(\联系电话-telephone : \读入联系电话*/ scanf(\
while(friends[j].telephone<0||friends[j].telephone>16000000000) /*判断电话合法*/ {
printf(\电话号码不合法!请重新输入 : \ scanf(\ }
printf(\ scanf(\ getchar(); }
void Delete() ................................................................................/*删除信息函数*/
4
课程设计说明书
{ int k;int j; system(\
printf(\序号-Number : \输入要删除的人物序号*/ scanf(\
if(k<=i).............................................................................../*判断序号是否存在*/
{
for(j=k;j
strcpy(friends[j].name,friends[j+1].name);................/*开始交换元素内容*/ strcpy(friends[j].kind,friends[j+1].kind); friends[j].telephone=friends[j+1].telephone;
strcpy(friends[j].address.a,friends[j+1].address.a); }
i--; } else {
printf(\输入的序号太大!\ } }
void Modify(int j)............................................................................../*修改信息函数*/ {
system(\
Append(j);................................................................../*调用建立联系人函数*/ }
void Save()......................................................................................../*保存信息函数*/ {
int i,j; system(\
printf(\请耐心等待,信息正在保存!\\n\ printf(\ for(i=0;i<20;i++) {
Sleep(300); printf(\
5
课程设计说明书
} printf(\信息已经保存成功!\\n\ fp=fopen(\ for(j=1;j<=i;j++) {
fwrite(&friends[j],sizeof(struct ffriend),1,fp); }
fclose(fp); }
void main()....................................................................../*主函数*/ {
int j;char a;char x; char grade;
char searchkind[20]; char searchname[20]; i--;
system(\ do {
printf(\ printf(\手机通讯录 \\n\
printf(\功能选择 \\n\输出主界面*/ printf(\ printf(\ A.查看 *\\n\ printf(\ B.增添 *\\n\ printf(\ C.删除 *\\n\ printf(\ D.查询 *\\n\ printf(\ E.修改 *\\n\ printf(\ F.保存 *\\n\
printf(\ printf(\请选择(Choice)\\n\\n\\t\\t注:输入a~h或A~H的字母:\ scanf(\
switch(grade) ........................./*用switch case判断使用者要选择的功能*/ { case 'a':
case 'A': j=0;
while(getchar()!=0x1b&&j<=i) ............../*判断查询文件是否存在*/
{
Find(j++);......................................................./*调用查询函数*/
printf(\请按回车键继续!\ }
while(getchar()==0x1b||j>i)......................................./*判断查询文件是否存在*/
6
课程设计说明书
{
printf(\空文档,无任何记录-Empty Note\\n\ printf(\请按回车键继续!\ getchar(); break; }
printf(\此次操作结束\
printf(\ break; case 'b':
case 'B':
while(i<=50) {
i++;
Append(i);....................................../*调用建立联系人的函数*/
printf(\是否继续增加?(y/n)\ a=getchar(); if(a=='n')
break; }
if(i==51)........................................................./*判断是否存满记录*/ printf(\文档已满,无法增加记录-note full\ printf(\此次操作结束\
printf(\ getchar(); break; case 'c':
case 'C':
Delete();........................................../*调用删除联系人的函数*/
if(i<1)......................................./*判断查询联系人是否存在*/ printf(\没有记录-No records\\n\ printf(\请按回车键继续!\ getchar(); getchar();
printf(\此次操作结束\
printf(\ break; case 'd':
case 'D': system(\
printf(\请输入要查询记录的相关类别: p.个人类 b.商务类 w.
7