📄 person.cpp
字号:
#include <stdio.h>
#include <string.h>
#include "person.h"
#include "talk.h"
////////////////////////////////////////////////////////////////////////////////
// 人个信息处理函数
////////////////////////////////////////////////////////////////////////////////
static int serialNumber; // 自动编号
// 设置自动编号
void SetPersonSn(int sn) {
serialNumber = sn;
}
// 读取自动编号
int GetPersonSn() {
return serialNumber;
}
// 输入个人信息
// 若栏目号cn为0, 则输入全部信息, 否则只输入指定栏目
void PersonInput(PERSON *p, int cn) {
switch (cn) {
case 0: // 全部栏目
p->sn = ++ serialNumber; // 自动生成编号
printf("\n编号: %d\n", p->sn);
printf("姓名: ");
fflush(stdin);
gets(p->name);
p->sex = Menu("性别: (1-男 2-女): ", "12") == '1';
DateInput("出生日期: ", &p->birth);
fflush(stdin);
printf("电子邮件: ");
gets(p->email);
printf("QQ号: ");
gets(p->qq);
printf("固定电话: ");
gets(p->tel);
printf("移动电话: ");
gets(p->mobile);
break;
case 1: // 编号
printf("编号: ");
scanf("%d", &p->sn);
break;
case 2: // 姓名
printf("姓名: ");
fflush(stdin);
gets(p->name);
break;
case 3: // 性别
p->sex = Menu("性别: (1-男 2-女): ", "12") == '1';
break;
case 4: // 出生日期
DateInput("出生日期: ", &p->birth);
break;
case 5: // 电子邮件
printf("电子邮件: ");
fflush(stdin);
gets(p->email);
break;
case 6: // QQ号
printf("QQ号: ");
fflush(stdin);
gets(p->qq);
break;
case 7: // 电话
printf("固定电话: ");
fflush(stdin);
gets(p->tel);
break;
case 8: // 移动电话
printf("移动电话: ");
fflush(stdin);
gets(p->mobile);
break;
default:
printf("栏目参数错!\a\n");
}
}
// 输出个人信息
void PersonOutput(const PERSON *p, bool title) {
if (title) {
printf("\n编号 姓名-- 性别 出生日期-- 电子邮件-------- QQ号------ 固定电话- 移动电话----\n");
}
if (p) {
printf("%4d %-6.6s %-4.4s ", p->sn, p->name, p->sex ? "男" : "女");
DateOutput(&p->birth);
printf(" %-16.16s %-10.10s %-9.9s %-12.12s\n", p->email, p->qq, p->tel, p->mobile);
}
}
// 个人信息按cn栏目比较
// 若*p1 > *p2, 则返回正数
// 若*p1 < *p2, 则返回负数
// 若*p1 = *p2, 则返回零值
int PersonCmp(const PERSON *p1, const PERSON *p2, int cn) {
int r = 0;
switch (cn) {
case 1: // 编号
r = p1->sn - p2->sn;
break;
case 2: // 姓名
r = strcmp(p1->name, p2->name);
break;
case 3: // 性别
r = (int) p1->sex - (int) p2->sex;
break;
case 4: // 出生日期
r = DateCmp(&p1->birth, &p2->birth);
break;
case 5: // 电子邮件
r = strcmp(p1->email, p2->email);
break;
case 6: // QQ号
r = strcmp(p1->qq, p2->qq);
break;
case 7: // 固定电话
r = strcmp(p1->tel, p2->tel);
break;
case 8: // 移动电话
r = strcmp(p1->mobile, p2->mobile);
break;
default:
printf("栏目参数错误!\a\n");
}
return r;
}
// 个人信息交换
void PersonSwap(PERSON *p1, PERSON *p2) {
PERSON t;
t = *p1; *p1 = *p2; *p2 = t;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -