📄 communicate_sys.c
字号:
/*-----------------------------------------*/
/*-----------------------------------------*/
/*学生通讯管理系统
*作者:尚方喆
*时间:2004年
*/
/*-----------------------------------------*/
/*-----------------------------------------*/
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define pr printf
#define sa scanf
#define LEN sizeof(struct stu)
#define NULL 0
int code; /*全局变量*/
int i;
FILE *fp;
int SIZE=10;
void enter();
void face();
void start();
void save();
void input();
void del();
void search();
void search_tel();
void search_name();
void add();
void display();
void modify();
struct stu /*结构体*/
{int sec;
char name[20];
char sex[2];
int age;
long int tel;
char addr[40];
}st[5];
main() /*主函数*/
{enter();
}
void enter()
{
pr("\n");
pr("\n");
pr("\n");
pr("\t\t 高 戍 由 汉 长 明\n");
pr("\t\t 楼 客 来 下 风 月\n");
pr("\t\t 当 望 征 白 几 出\n");
pr("\t\t 此 边 战 登 万 天\n");
pr("\t\t 夜 色 地 道 里 山\n");
pr("\n");
pr("\t\t 叹 思 不 胡 吹 苍\n");
pr("\t\t 息 归 见 窥 度 茫\n");
pr("\t\t 未 多 有 青 玉 云\n");
pr("\t\t 应 苦 人 海 门 海\n");
pr("\t\t 闲 颜 还 湾 关 间\n");sleep(1);
pr("\n\n\n\n");
pr("\t\t **************************************\n");
pr("\t\t 请按任意键进入...");
pr("\n\n\t\t 作者:科技0301 15号 尚方喆");
getch();
clrscr();
pr("\n\n\n\n\n\n\n 警告:请严格按照提示语操作,否则可能造成数据丢失或系统关闭等严重问题!");sleep(1);
pr("\n\n\n\n\n\t\t **************************************\n");
pr("\t\t 请按任意键进入...");
getch();
clrscr();
face();
}
void face() /*主菜单*/
{pr("\t\t ※欢迎使用本通讯管理系统※ \n");
pr("\t\t **********************************\n");
pr("\n");
pr("\t\t 1.输入原始信息\n");
pr("\t\t 2.查询学生信息\n");
pr("\t\t 3.添加学生信息\n");
pr("\t\t 4.显示全部信息\n");
pr("\t\t 5.修改学生信息\n");
pr("\t\t 6.删除学生信息\n");
pr("\t\t 0.退出管理系统\n");
pr("\n");
pr("\n");
pr("\t\t **********************************\n");
pr("\t\t ☆江山如此多娇☆\n");
pr("\n");
pr("\n");
pr("请选择代码:");
sa("%d",&code);
if(code==1||code==2||code==3||code==4||code==5||code==6||code==0)
{switch(code)
{case 1:clrscr();input();break;
case 2:clrscr();search();break;
case 3:clrscr();add();break;
case 4:clrscr();display();break;
case 5:clrscr();modify();break;
case 6:clrscr();del();break;
case 0:clrscr();
pr("\n\n\n\n");
pr("\t\t 唯 孤 烟 故\n");
pr("\t\t 见 帆 花 人\n");
pr("\t\t 长 远 三 西\n");
pr("\t\t 江 影 月 辞\n");
pr("\t\t 天 碧 下 黄\n");
pr("\t\t 际 空 扬 鹤\n");
pr("\t\t 流 尽 州 楼\n");sleep(1);
pr("\n");
pr("\t\t**************************************\n");
pr("\t\t ※你已退出系统,欢迎再次使用※");break;
}
}
else
{clrscr();
start();
}
}
void start()
{face();
}
void input() /*输入模块*/
{int y,k;
pr("\t\t ※你现在进行的是输入原始数据操作※\n");
pr("\t\t ***************************************\n");
pr("\t\t ☆煮酒论英雄☆\n");
pr("\n警告:继续操作将删除一切原有数据!并且数据需要重新输入!\n");
pr("按1键继续,按2键返回:");
sa("%d",&k);
if(k==2) {clrscr();face();}
else if(k==1)
{clrscr();
fp=fopen("st_list","wb");
for(i=1;i<=SIZE;i++)
{pr("现在输入第%d个学生的信息\n",i);
st[i].sec=8461;
pr("姓名:");sa("%s",st[i].name);
pr("性别:");sa("%s",st[i].sex);
pr("年龄:");sa("%d",&st[i].age);
pr("电话:");sa("%ld",&st[i].tel);
pr("地址:");sa("%s",st[i].addr);
fwrite(&st[i],LEN,1,fp);
pr("\n");
pr("\n\t\t **********************************\n");
pr("\t\t 按1键继续添加,按2键返回:");
sa("%d",&y);
switch(y)
{case 1:fclose(fp);clrscr();continue;
case 2:clrscr();face();break;
}
}
fclose(fp);
}
}
void search() /*查找模块*/
{int code2;
clrscr();
pr("\t\t ※欢迎使用通讯录管理系统※ \n");
pr("\t\t***********************************\n");
pr("\n");
pr("\t\t 请选择查询方式\n");
pr("\t\t 1.按姓名查询\n");
pr("\t\t 2.按电话查询\n");
pr("\t\t 0.返回上一页\n");
pr("\n");
pr("\n");
pr("\t\t***********************************\n");
pr("\t\t ☆师夷长技以自强☆");
pr("\n\n");
pr("请选择代码:");
sa("%d",&code2);
if(code2==1||code2==2||code2==0)
{switch(code2)
{case 1:clrscr();search_name();break;
case 2:clrscr();search_tel();break;
case 0:clrscr();start();break;
}
}
else
{clrscr();
search();
}
}
void search_name() /*姓名查找*/
{char x[20];
int y;
fp=fopen("st_list","rb");
pr("\t\t ※你现在进行的是姓名查询※\n");
pr("\t\t***********************************\n");
pr("\t\t ☆天涯何处无芳草☆\n");
pr("\n");
pr("请输入姓名:");
sa("%s",x);
for(i=1;i<=SIZE;i++)
fread(&st[i],LEN,1,fp);
fclose(fp);
pr("\n 姓名 性别 年龄 电话 地址\n");
pr(" ———————‖——‖——‖——————‖——————————\n");
for(i=1;i<=SIZE;i++)
{if(strcmp(x,st[i].name)==0)
if(st[i].sec==8461)
pr("%15s%5s%6d%13ld %-20s\n",st[i].name,st[i].sex,st[i].age,st[i].tel,st[i].addr);
}
pr("\n");
pr("\n\t\t **********************************\n");
pr("\t\t 按1键继续查询,按2键返回:");
sa("%d",&y);
switch(y)
{case 1:clrscr();search_name();break;
case 2:clrscr();search();break;
}
}
void search_tel() /*电话查找*/
{int y,j;
long x;
fp=fopen("st_list","rb");
pr("\t\t ※你现在进行的是电话查询※\n");
pr("\t\t***********************************\n");
pr("\t\t ☆众里寻她千百度☆\n");
pr("\n");
pr("请输入电话:");
sa("%ld",&x);
for(i=1;i<=SIZE;i++)
fread(&st[i],LEN,1,fp);
pr("\n 姓名 性别 年龄 电话 地址\n");
pr(" ———————‖——‖——‖——————‖——————————\n");
for(i=1;i<=SIZE;i++)
if(x==st[i].tel)
if(st[i].sec==8461)
pr("%15s%5s%6d%13ld %-20s\n",st[i].name,st[i].sex,st[i].age,st[i].tel,st[i].addr);
fclose(fp);
pr("\n");
pr("\n\t\t **********************************\n");
pr("\t\t 按1键继续查询,按2键返回:");
sa("%d",&y);
switch(y)
{case 1:clrscr();search_tel();break;
case 2:clrscr();search();break;
}
}
void display() /*显示模块*/
{int m,f;
int num=0;
pr("\t\t ※以下是通讯录全部信息※\n");
pr("\t\t *******************************\n");
pr("\t\t ☆千古风流人物☆\n");
fp=fopen("st_list","rb");
for(i=1;i<=SIZE;i++)
fread(&st[i],LEN,1,fp);
pr("\n序号 姓名 性别 年龄 电话 地址\n");
pr("——‖———————‖——‖——‖——————‖——————————\n");
for(i=1;i<=SIZE;i++)
if(st[i].sec==8461)
{pr("%3d%16s%5s%6d%13ld %-20s\n",++num,st[i].name,st[i].sex,st[i].age,st[i].tel,st[i].addr);}
pr("——‖———————‖——‖——‖——————‖——————————\n");
fclose(fp);
pr("\n\n\t\t ******************************\n");
pr("\t\t 按任意键返回上一页...");
getch();
clrscr();
face();
}
void add() /*添加模块*/
{int x,k;
pr("\t\t ※你现在进行的是添加操作※\n");
pr("\t\t *********************************\n");
pr("\t\t ☆有朋自远方来,不亦乐乎☆\n");
pr("\n");
pr("你确定要添加吗?按1键确定,按2键返回:");
sa("%d",&k);
if(k==2) {clrscr();face();}
else if(k==1)
{clrscr();
pr("请输入新的学生信息\n");
fp=fopen("st_list","a+");
st[i].sec=8461;
pr("姓名:");sa("%s",st[i].name);getchar();
pr("性别:");sa("%s",st[i].sex);getchar();
pr("年龄:");sa("%d",&st[i].age);getchar();
pr("电话:");sa("%ld",&st[i].tel);getchar();
pr("地址:");sa("%s",st[i].addr);getchar();
pr("%16s%5s%6d%13ld %-20s\n",st[i].name,st[i].sex,st[i].age,st[i].tel,st[i].addr);
fwrite(&st[i],LEN,1,fp);
fclose(fp);
pr("—————\n");
pr("添加成功!\n");
pr("\n\t\t **********************************\n");
pr("\t\t 按1键继续添加,按2键返回:");
sa("%d",&x);
if(x==1) {clrscr();add();}
else {clrscr();face();}
}
}
void del() /*删除模块*/
{int y,j,k;
char d[20];
fp=fopen("st_list","rb");
for(i=1;i<=SIZE;i++)
fread(&st[i],LEN,1,fp);
fclose(fp);
pr("\t\t ※你现在进行的是删除操作※\n");
pr("\t\t *********************************\n");
pr("\t\t ☆一江春水向东流☆\n");
pr("\n");
pr("请输入被删除的学生姓名:");
sa("%s",d);
for(i=1;i<=SIZE;i++)
{if(strcmp(d,st[i].name)==0&&st[i].sec==8461)
{pr("\n此学生信息如下\n\n");
pr(" 姓名 性别 年龄 电话 地址\n");
pr(" ———————‖——‖——‖——————‖——————————\n");
pr("%15s%5s%6d%13ld %-20s\n",st[i].name,st[i].sex,st[i].age,st[i].tel,st[i].addr);
pr("\n你确定要删除吗?按1键确定,按2键返回上一页:");
sa("%d",&k);
if(k==2) {clrscr();face();}
else if(k==1)
{st[i].sec=1;pr("—————\n已成功删除!\n");}
}
}
fp=fopen("st_list","wb");
for(i=1;i<=SIZE;i++)
fwrite(&st[i],LEN,1,fp);
fclose(fp);
pr("\n\t\t **********************************\n");
pr("\t\t 按1键继续删除,按2键返回:");
sa("%d",&y);
if(y==1) {clrscr();del();}
else {clrscr();face();}
}
void modify() /*修改模块*/
{char x[20];
int y,k;
int st_age;
long st_tel;
char st_addr[40];
fp=fopen("st_list","rb");
for(i=1;i<=SIZE;i++)
fread(&st[i],LEN,1,fp);
fclose(fp);
pr("\t\t ※你现在进行的是修改操作※\n");
pr("\t\t ******************************\n");
pr("\t\t ☆浪子回头金不换☆\n");
pr("\n");
pr("请输入被修改信息的学生姓名:");
sa("%s",x);
for(i=1;i<=SIZE;i++)
if(strcmp(x,st[i].name)==0)
{pr("原信息如下:\n\n");
pr(" 姓名 性别 年龄 电话 地址\n");
pr(" ———————‖——‖——‖——————‖——————————\n");
pr("%15s%5s%6d%13ld %-20s\n",st[i].name,st[i].sex,st[i].age,st[i].tel,st[i].addr);
}
pr("\n你确定要修改吗?按1键修改,按2键返回:");
sa("%d",&k);
if(k==2) {clrscr();face();}
else if(k==1)
{pr("\n");
pr("请输入新的信息:\n");
pr("年龄:");sa("%d",&st_age);
pr("电话:");sa("%ld",&st_tel);
pr("地址:");sa("%s",st_addr);
for(i=1;i<=SIZE;i++)
if(strcmp(x,st[i].name)==0)
{st[i].age=st_age;
st[i].tel=st_tel;
strcpy(st[i].addr,st_addr);
pr("—————\n已成功修改!新信息如下:\n\n");
pr(" 姓名 性别 年龄 电话 地址\n");
pr(" ———————‖——‖——‖——————‖——————————\n");
pr("%15s%5s%6d%13ld %-20s\n",st[i].name,st[i].sex,st[i].age,st[i].tel,st[i].addr);
}
fp=fopen("st_list","r+");
for(i=1;i<=SIZE;i++)
fwrite(&st[i],LEN,1,fp);
fclose(fp);
pr("\n\t\t *********************************\n");
pr("\t\t 按1键继续修改,按2键返回:");
sa("%d",&y);
if(y==1) {clrscr();modify();}
else {clrscr();face();}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -