C语言课设之电话查询系统。
#include<string.h> /* 包含字符串处理函数头文件 */
#include<stdlib.h> /* 包含动态储存与释放函数头文件 */
#include<conio.h> /*包含绘制图形函数等头文件(包括getch()函数)*/
struct pho_book
{
long int num; /*电话号码*/
char name[20];
char work[10]; /*工作单位*/
char company[20]; /*公司名称*/
char addr[50]; /*公司地址*/
};
void input(); /*录入模块*/
void pnodeadd(); /*个人信息节点添加*/
void cnodeadd(); /*公司信息节点添加 */
void modify(); /*修改模块*/
void pnodemodify(); /*个人信息节点修改*/
void cnodemodify(); /*公司信息节点修改*/
void del(); /*删除模块*/
void pnodedel(); /*个人信息节点删除*/
void cnodedel(); /*公司信息节点删除*/
void pnodesearch(); /*个人信息节点查找*/
void cnodesearch(); /*公司信息节点查找*/
void admin(); /*管理员登录函数*/
void guest(); /*客人登录函数*/
void main()
{
char message[]={" ★ 电话查询系统使用说明 ★ /n"
" 本系统是一个电话号码簿,供客人查询电话号码。 /n"
" 管理员可以录入、修改、删除电话号码信息;客人只能进行查询。 /n"
" 欢迎你来使用电话查询系统! /n" };
char menu[]={" *1. admin entry /n"
" *2. guest entry /n"
" *0. quit entry /n"};
int sel;
printf("%s ",message);
printf("按任意键进入主菜单:");
getch();
do
{ system("color 46");
system("cls");
printf("%s",menu);
printf("请在1-2之间选择登录方式,选择0退出系统:/n");
scanf("%d",&sel);
switch(sel)
{
case 1: admin();
break;
case 2: guest( );
break;
case 0:
printf(" ★ See You ! ★ /n");
break;
}
}while(sel!=0);
}
void admin()
{
int m,password;
password='258';
printf("请输入密码:/n");
scanf("%d",&m);
while(m!=258)
{
printf("密码错误!请重新输入:/n");
scanf("%d",&m);
}
printf("成功登录!/n");
printf("按任意键进入菜单:/n");
getch();
char menu1[]={" *1.input information /n"
" *2.modify information /n"
" *3.delete information /n"
" *0.quit /n"
};
int sel1;
do
{ system("cls");
system("color 2");
printf("%s",menu1);
printf("请在1-3之间选择所要的操作的类型,选择0退出系统:");
scanf("%d",&sel1);
switch(sel1)
{
case 1: input();
break;
case 2: modify();
break;
case 3: del();
break;
case 0:
printf(" ★See You Next Time! ★ /n");
break;
}
}while(sel1!=0);
}
void guest()
{
printf(" ★欢迎您查询电话号码!★ /n");
printf("*************请选择所查号码类型!");
printf("按任意键进入选择菜单!*************/n");
getch();
char menu2[]={" *1.单位号码 /n"
" *2.私人号码 /n"
" *0.返回上一菜单 /n"
};
int sel2;
do
{
system("cls");
system("color 14");
printf("%s",menu2);
scanf("%d",&sel2);
switch(sel2)
{
case 1: cnodesearch();
break;
case 2: pnodesearch();
break;
case 0:
printf("Back to the previous menu!/n");
break;
}
}while(sel2!=0);
}
void input()
{
char menu3[]={" *1. 公司电话信息添加 /n"
" *2. 个人电话信息添加 /n"
" *0. 返回上一菜单 /n"
};
int sel3;
do
{ printf("%s",menu3);
printf("请在1-2之间选择,选择0返回上一菜单:/n");
scanf("%d",&sel3);
switch(sel3)
{
case 1: cnodeadd();
break;
case 2: pnodeadd();
break;
case 0:
printf("Back to the previous menu!/n");
break;
}
}while(sel3!=0);
}
void modify()
{
char menu4[]={" *1. 公司电话信息修改 /n"
" *2. 个人电话信息修改 /n"
" *0. 返回上一菜单 /n"
};
int sel4;
printf("按任意键确定:");
getch();
do
{ printf("%s",menu4);
printf("请在1-2之间选择,选择0返回上一菜单:/n");
scanf("%d",&sel4);
switch(sel4)
{
case 1: cnodemodify();
break;
case 2: pnodemodify();
break;
case 0:
printf("Back to the previous menu!/n");
break;
}
}while(sel4!=0);
}
void del()
{
char menu5[]={" *1. 公司电话信息删除 /n"
" *2. 个人电话信息删除 /n"
" *0. 返回上一菜单 /n"
};
int sel5;
printf("按任意键确定:");
getch();
do
{ printf("%s",menu5);
printf("请在1-2之间选择,选择0返回上一菜单:/n");
scanf("%d",&sel5);
switch(sel5)
{
case 1: cnodedel();
break;
case 2: pnodedel();
break;
case 0:
printf("Back to the previous menu!/n");
break;
}
}while(sel5!=0);
}
void cnodeadd()
{
FILE *fp;
pho_book bk[700];
int i=0,c;
if((fp=fopen("c://companyhaoma.txt","a"))==NULL)
{
printf("/nerror on opening company file");
return;
}
printf("/n要添加几条记录(填整数)?");
scanf("%d",&c);
for(i=0;i<c;i++)
{
printf("/n输入公司名称:");
scanf("%s",&bk[i].company);
printf("/n输入公司地址:");
scanf("%s",&bk[i].addr);
printf("/n输入电话号码:");
scanf("%ld",&bk[i].num);
fprintf(fp,"%s/n",bk[i].company);
fprintf(fp,"%s/n",bk[i].addr);
fprintf(fp,"%ld /n",bk[i].num);
}
fclose(fp);
}
void pnodeadd()
{
FILE *fp;
pho_book bk[700];
int i=0,c;
if((fp=fopen("c://privatehaoma.txt","a"))==NULL)
{
printf("/nerror on opening guest file");
return;
}
printf("/n要添加几条记录(填整数)?");
scanf("%d",&c);
for(i=0;i<c;i++)
{
printf("/n输入姓名:");
scanf("%s",&bk[i].name);
printf("/n输入工作单位:");
scanf("%s",&bk[i].work);
printf("/n输入电话号码:");
scanf("%ld",&bk[i].num);
fprintf(fp,"%s/n",bk[i].name);
fprintf(fp,"%s/n",bk[i].work);
fprintf(fp,"%ld/n",bk[i].num);
}
fclose(fp);
}
void cnodemodify()
{ FILE *fp;
struct pho_book bk[500];
struct pho_book bkt;
int i,sf,s,ii=0,it;
char sear[100];
char temp[100];
if((fp=fopen("c://companyhaoma.txt","r+"))==NULL)
{
printf("/n error on opening company file");
exit(1);
}
while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
{
strcpy(bk[ii].company,bkt.company);
strcpy(bk[ii].addr,bkt.addr);
ii++;
}
fclose(fp);
it=ii;
cc:
printf("/n1公司名称/n2公司地址/n3电话号码 你要修改什么?");
scanf("%d",&s);
if(s==1)
{
printf("/n请输入要查的公司名称:");
scanf("%s",&sear);
}else if(s==2){
printf("/n请输入要查的公司地址:");
scanf("%s",&sear);
}else if(s==3){
printf("/n请输入要查的电话号码");
scanf("%ld",&sear);
printf("/n公司名称:/t公司地址:/t电话号码");
i=0;
ii=0;
for(;ii<it;ii++)
{
if(s==1)
{
if(!strcmp(bk[ii].company,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n请输入修改后的公司名称:");
scanf("%s",&temp);
strcpy(bk[ii].company,temp);
}
}
if(s==2)
{
if(!strcmp(bk[ii].addr,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n请输入修改后的公司地址:");
scanf("%s",&temp);
strcpy(bk[ii].addr,temp);
}
}
}
if(i==0)
{
printf("/n对不起!没有你要找的数据");
}else
{ if((fp=fopen("c://companyhaoma.txt","wb"))==NULL)
printf("/nerro on opening company file");
exit(0);
for(ii=0;ii<it;ii++)
fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
printf("/n修改完成!.");
fclose(fp);
}
printf("继续修改(1/0)?");
scanf("%d",&sf);
if(sf==1)
goto cc;
}
}
void pnodemodify()
{
FILE *fp;
struct pho_book bk[500];
struct pho_book bkt;
int i,sf,s,ii=0,it;
char sear[100];
char temp[100];
if((fp=fopen("c://privatehaoma.txt","r+"))==NULL)
{
printf("/n erro on opening private file");
exit(0);
}
while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
{
strcpy(bk[ii].company,bkt.company);
strcpy(bk[ii].addr,bkt.addr);
ii++;
}
fclose(fp);
it=ii;
cc:
printf("/n1姓名/n2工作单位/n3电话号码 你要修改什么?");
scanf("%d",&s);
if(s==1)
{
printf("/n请输入要查的姓名:");
scanf("%s",&sear);
}else if(s==2){
printf("/n请输入要查的工作单位:");
scanf("%s",&sear);
}else if(s==3){
printf("/n请输入要查的电话号码");
scanf("%ld",&sear);
printf("/n姓名:/t工作单位:/t电话号码");
i=0;
ii=0;
for(;ii<it;ii++)
{
if(s==1)
{
if(!strcmp(bk[ii].company,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n请输入修改后的姓名:");
scanf("%s",&temp);
strcpy(bk[ii].company,temp);
}
}
if(s==2)
{
if(!strcmp(bk[ii].addr,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n请输入修改后的工作单位:");
scanf("%s",&temp);
strcpy(bk[ii].addr,temp);
}
}
}
if(i==0)
{
printf("/n对不起!没有你要找的数据");
}else
{ if((fp=fopen("c://haoma.txt","wb"))==NULL)
printf("/nerro on opening target file");
exit(0);
for(ii=0;ii<it;ii++)
fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
printf("/n修改完成!.");
fclose(fp);
}
printf("继续修改(1/0)?");
scanf("%d",&sf);
if(sf==1)
goto cc;
}
}
void cnodedel()
{
FILE *fp;
struct pho_book bk[700];
struct pho_book bkt;
int i,sf,s,ii=0,it,cv;
char sear[100];
if((fp=fopen("c://haoma.txt","rb"))==NULL){
printf("/nERROR oening customet file");
exit(0);
}
while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
{
strcpy(bk[ii].company,bkt.company);
strcpy(bk[ii].addr,bkt.addr);
ii++;
}
fclose(fp);
it=ii;
cc:
printf("/n1公司名称/n2公司地址/n你要查找那一条记录来删除?");
scanf("%d",&s);
if(s==1)
{
printf("/n请输入要查的公司名称:");
scanf("%s",&sear);
}else if(s==2){
printf("/n请输入要查的公司地址:");
scanf("%s",&sear);
}
printf("/n公司名称:/t公司地址:");
i=0;
ii=0;
for(;ii<it;ii++)
{
if(s==1)
{
if(!strcmp(bk[ii].name,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("确定要删除吗(1/0)?");
scanf("%d",&cv);
for(;ii<it;ii++)
{
if(ii==it-1)
break;
strcpy(bk[ii].company,bk[ii+1].company);
strcpy(bk[ii].addr,bk[ii+1].addr);
}
}
}
if(s==2)
{
if(!strcmp(bk[ii].company,sear))
{
printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
i++;
printf("/n确定要删除吗(1/0)?");
scanf("%d",&cv);
if(cv==1)
for(;ii<it;ii++)
{
if(ii==it-1)
break;
strcpy(bk[ii].company,bk[ii+1].company);
strcpy(bk[ii].addr,bk[ii+1].addr);
}
}
}
}
if(i==0){
printf("/n对不起!没有你要找的数据");
}else
{ if((fp=fopen("c://haoma.txt","wb"))==NULL)
{
printf("/nERROR oening customet file");
exit(0);
}
for(ii=0;ii<it-1;ii++)
fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
printf("/n该记录已被删除!.");
fclose(fp);
}
printf("继续删除(1/0)?");
scanf("%d",&sf);
if(sf==1)
goto cc;
}
void pnodedel()
{
}
void pnodesearch()
{
FILE *fp;
char c;
if((fp=fopen("c://privatehaoma.txt","r+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getchar();
exit(1);
}
c=fgetc(fp);
while(c!=EOF)
{
putchar(c);
c=fgetc(fp);
}
system("pause");
fclose(fp);
}
void cnodesearch()
{
FILE *fp;
char c;
if((fp=fopen("c://companyhaoma.txt","r+"))==NULL)
{
printf("Cannot open file strike any key exit!");
getchar();
exit(1);
}
c=fgetc(fp);
while(c!=EOF)
{
putchar(c);
c=fgetc(fp);
}
system("pause");
fclose(fp);
}
C语言课设之电话查询系统。相关推荐
- c语言课设报告仓库管理系统,c语言课设仓库管理系统.doc
c语言课设仓库管理系统.doc 高级语言程序设计课程设计小型仓库管理系统题 目班 级学生学号学生姓名 同组成员 指导老师 提交时间 成 绩华南农业大学 信息学院一. 需求分析1 系统概述本系统用于小型 ...
- 数据结构课设城市公交查询系统(C语言)
公交线路图 一. 设计要求: 1.需要用到多个文件,例如文本文件,文件名stations.txt,保存站点信息,格式可以自行设计,例如:编号 站名.等等 2.设计公交线路所需的存储结构,将文件中的数据 ...
- 东北大学20级计算机C语言课设-航空订票系统
航空订票系统 开发人员:东北大学20级计算机系学生 开发团队:三人小组 开发语言:C语言 开发工具:vs2015 有疑问欢迎进行讨论 总代码数量大概在三千五百行左右 耗时近一个月的时间完成了该次课设, ...
- C语言课设——学生体测系统
刚刚考完试我十分的兴奋,再一想到就要过年回家了,就感觉我应该造福人类啊,所以就把我搞了接近两个星期的课设贴出来了,我是不是很好!(虽然极其的辣鸡,一个小小的课设就搞了700多行,各位小伙伴千万不要学我 ...
- 【C++期末大作业】数据结构课设 | 智能公交车查询系统
补发一下老东西(未优化) 目录 设计具体内容: 功能模块图: 各模块流程图: 运行效果图: 源码: 设计具体内容: 应用相关数据结构及算法,设计并实现一个具有查询功能的城市公交查询系统.设计其信息数据 ...
- C语言课设——机房机位预定系统
文章目录 一.系统简介 二.系统功能模块图 三.设计思路 四.源代码 一.系统简介 查询: 根据输入时间,输出机位信息 机位预定: 根据输入的日期和时间段查询是否有空机位,若有,则预约:若无,则提供最 ...
- C语言课设 航空订票系统
大一写的时候没有写注释,后来也懒得加了.在这里说一下读写文件的思路吧. 就是利用二进制将一整个结构体中的数据存入文件,然后读取文件时再用二进制的形式将结构体中的数据读取出来,边读取边创建链表,将结构体 ...
- C语言课设选择题标准化考试系统(大作业)
一.任务概述(文章仅供参考) 1.用文件保存试题库.(每个试题包括题干.4个备选答案.标准答案) 2.试题录入:可随时增加试题到试题库中 3.试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入) ...
- python课设题目日历查询系统_Python实例课程17——生成日历
代码实现 #======================================================#功能:生成日历#作者:python小哥#时间:2020-4-8#微信公众号:D ...
最新文章
- GPU的发展历程、未来趋势及研制实践
- 数学之路(3)-机器学习(3)-机器学习算法-神经网络[17]
- 营销网站SEO优化:前方优化难点出没!
- 天堂向左,六级考场向右
- 栈和队列的算法题总结
- controller中执行main方法报错NoClassDefFoundError: javax/servlet/http/HttpServletResponse
- linux下调用python脚本,Linux下QT调用Python脚本的解决方案,Qt,python,一种,解决办法
- 力扣1175.质数排列
- AI学习笔记(五)坐标变换与视觉测量
- 这个爬虫是你五一假期所需要的!
- SQL Server 2016如何创建数据库
- jqueryui引用出错(base is not a constructor,widget no found)
- 如何 DIY 一台属于你自己的电脑?
- 【超全】一文详解机器学习特征工程(附代码)
- ZigBee中的技术问题以及解决方案
- hdu 4417 Super Mario
- 达梦数据库的备份与恢复
- 13-TCP 协议(FIN_WAIT2)
- JLink的RTT调试
- 哪些城市有PMP考试考点?PMP考试考场都在哪?
热门文章
- ajax聊天室_Ajax聊天
- 小学计算机兴趣组活动记录,小学信息技术兴趣小组活动记录.doc
- linux打开csv命令,在Linux命令行中将xlsx转换为csv
- linux电视软件如何安装程序,在ubuntu 7.04中安装影视制作软件jahshaka
- 系统架构设计笔记(8)——数据库设计
- 建筑物提取 Building Extraction 算法论文
- 手把手教你制作一个文件加密工具
- 2016.11.1小鹿三单视频听译
- python路线寻优_使用模型预测控制和PID实现自动驾驶的车道保持
- 请描述计算机硬件故障检测工具的使用,电脑硬件故障检测工具(SyvirPC) v3.00免费版...