东北大学秦皇岛分校《手机名片管理系统》课程设计报告 - 16 -
3.2 程序设计中的数据设计
软件中使用的结构体和结构体数组,如: typedef struct { char score; /*编号*/
char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; char age[8];
/*邮箱*/ /*年龄*/
/*住址*/
char adds[20];
}Person; Person pe[80];
对用户的信息进行保存,他们都以二进制的形式读写。 其中:
Char score; char name[10]; char num[15]; char email[20]; char age[8]; char adds[20]
分别对编号、姓名、电话号码、邮编、年龄、住址进行储存 在子函数中还使用了结构体数组: struct Person pe[300];
还使用了exit()、 fclose()等库函数。 还运用了头文件: #include\#include
其中还使用啦大量的子函数,例如: int Input(Person per[],int n) void Display(Person per[],int n) int Delete_a_record(Person per[],int n) void Query_a_record(Person per[],int n) void Change(Person per[],int n)
void WritetoText(Person per[],int n) 部分子函数的详细代码:
int Delete_a_record(Person per[],int n) {
char s[20]; int i=0,j;
printf(\请输入想删除记录中的名字:\scanf(\
while(strcmp(per[i].name,s)!=0&&i 16 { 东北大学秦皇岛分校《手机名片管理系统》课程设计报告 - 17 - printf(\通讯录中没有此人!\\n\ return(n); } for(j=i;j { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf(\已经成功删除!\\n\ return(n-1); } 通过对这些资源的合理利用使系统初步实现了通讯录管理系统的基本功能。 3.3 设计清单及注释: #include #include typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; Person pe[300]; int menu_select() { char c; do{ system(\ printf(\欢迎使用通讯录********************\\t \\n\ printf(\制作:自动化 5090616 里来了***********\\t\\n\ printf(\菜单*************************\\t\\n\ printf(\添加记录***********************\ printf(\显示记录*********************\ 17 东北大学秦皇岛分校《手机名片管理系统》课程设计报告 printf(\删除记录*********************\ printf(\printf(\printf(\printf(\ 查询记录*********************\ 修改记录*********************\ 保存记录*********************\退出程序*********************\ - 18 - printf(\通讯录**********************\\t\\n\ printf(\请输入您选择的操作(0-6):\ c=getchar(); }while(c<'0'||c>'6'); return(c-'0'); } int Input(Person per[],int n) //添加记录函数 { int i=0; char sign,x[10]; while(sign!='n'&&sign!='N') { printf(\编号:\ scanf(\ printf(\姓名:\ scanf(\ printf(\年龄:\ scanf(\printf(\电话号码:\ scanf(\ printf(\通讯住址:\ scanf(\printf(\电子邮箱:\scanf(\gets(x); printf(\是否继续添加?(Y/N)\ scanf(\ i++; } return(n+i); } void Display(Person per[],int n) //显示记录函数 { int i; printf(\ /*格式*/ 18 东北大学秦皇岛分校《手机名片管理系统》课程设计报告 printf(\编号 姓名 年龄 电话号码 通讯地址 电子邮箱\\n\ - 19 - printf(\ for(i=1;i printf(\ if(i>1&&i==0) { printf(\ printf(\ system(\ ].num,per[i-1].adds,per[i-1].email); printf(\ } } printf(\ system(\ } int Delete_a_record(Person per[],int n) //删除记录函数 { char s[20]; int i=0,j; printf(\请输入想删除记录中的名字:\ scanf(\ while(strcmp(per[i].name,s)!=0&&i return(n); } for(j=i;j { strcpy(per[j].num,per[j+1].num); strcpy(per[j].name,per[j+1].name); strcpy(per[j].age,per[j+1].age); strcpy(per[j].adds,per[j+1].adds); strcpy(per[j].email,per[j+1].email); per[j].score=per[j+1].score; } printf(\已经成功删除!\\n\ return(n-1); 19 } 东北大学秦皇岛分校《手机名片管理系统》课程设计报告 - 20 - void Query_a_record(Person per[],int n) //查找记录函数 { int m; printf(\请选择查询方式:\\n\ printf(\┌──────┐\\n\ printf(\│1------姓名 │\\n\ printf(\│2------电话 │\\n\ printf(\│3------地址 │\\n\ printf(\│4------返回 │\\n\ printf(\└──────┘\\n\ printf(\请选择:\ scanf(\ while(m!=1&&m!=2&&m!=3&&m!=4) { printf(\输入错误,请重新选择:\ } scanf(\ if(m==1) { char s[20]; int i=0; printf(\请输入想查询的姓名:\ scanf(\ while(strcmp(per[i].name,s)!=0&&i return; } printf(\此人编号: %d\\n\printf(\此人年龄: %s\\n\ printf(\电话号码: %s\\n\ printf(\通讯地址: %s\\n\ printf(\电子邮箱: %s\\n\} ; if(m==2) { char s[20]; int i=0; 20