C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx

上传人:b****5 文档编号:21773651 上传时间:2023-02-01 格式:DOCX 页数:13 大小:16.98KB
下载 相关 举报
C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx_第1页
第1页 / 共13页
C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx_第2页
第2页 / 共13页
C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx_第3页
第3页 / 共13页
C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx_第4页
第4页 / 共13页
C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx

《C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx(13页珍藏版)》请在冰豆网上搜索。

C语言课程设计参考模型一《电子通讯管理系统》Word格式.docx

qingxuanzhexuhao:

"

);

choose=getch();

/*函数getch()的功能是从键盘上读入一个单独的字符,字符不回显在屏幕上*/

switch(choose)

{case'

1'

:

mycreate();

break;

case'

2'

mydisplay();

3'

mysearch();

4'

mymodify();

5'

myadd();

6'

mydelete();

7'

mysort();

0'

default:

printf("

\n%c为非法选项!

\n"

choose);

}

if(choose=='

)break;

\n要继续选择吗(Y/N)?

{yes_no=getche();

}while(yes_no!

='

Y'

&

&

yes_no!

='

y'

N'

n'

}while(yes_no=='

||yes_no=='

}

voidmyprint()/*显示菜单界面*/

{clrscr();

\n\n\n\n\n\n"

------------------------------------------------------------\n"

|请输入选项编号(0~7):

|\n"

|-------------------------------------------------------------|\n"

|1---创建通讯录|\n"

|2---显示通讯录|\n"

|3---查询通讯录|\n"

|4---修改通讯录|\n"

|5---添加通讯录|\n"

|6---删除通讯录|\n"

|7---排序通讯录|\n"

|0---退出|\n"

/*定义创建通讯录的函数*/

voidmycreate()

{inti=1;

structstudenttemp;

FILE*fp;

/*定义fp为文件指针*/

fp=fopen("

D:

\\lyc\\jilu.dat"

"

w"

if(fp==NULL){printf("

\n打开文件失败!

return;

\n请输入第1个记录:

学号(用#结束输入):

"

do

{gets(temp.num);

}while(strcmp(temp.num,"

)==0);

姓名(用#结束输入):

gets(temp.name);

电话号码(用#结束输入):

gets(temp.tel);

while(temp.num[0]!

#'

temp.name[0]!

temp.tel[0]!

{fprintf(fp,"

%23s%15s%15s\n"

temp.num,temp.name,temp.tel);

/*向以fp为指针的文件中写数据*/

i++;

\n请输入第%d个记录:

i);

学号(用#结束输入):

{gets(temp.num);

姓名(用#结束输入):

电话号码(用#结束输入):

fclose(fp);

/*定义显示通讯录的函数*/

voidmydisplay()

{intn=0;

r"

if(fp==NULL)

{printf("

clrscr();

学号姓名电话号码\n"

while(feof(fp)==0)

{fscanf(fp,"

/*从以fp为指针的文件中读数据*/

%23s%15s%15s\n"

n++;

if(n==0)

\n文件中无记录!

else

\n文件中共有%d个记录!

n);

/*定义查询通讯录的函数*/

voidmysearch()

{charc;

\n按学号查询(h),还是按姓名查询(m)?

c=getche();

if(c=='

h'

||c=='

H'

)sch_num(fp);

/*按学号查询*/

elseif(c=='

m'

M'

)sch_name(fp);

/*按姓名查询*/

elseprintf("

\n非法字符!

/*定义按学号查询通讯录的函数*/

voidsch_num(FILE*fp)

{intflag=0,n=0;

chartempnum[10];

\n请输入要查询记录的学号:

gets(tempnum);

&

temp.num,&

temp.name,&

temp.tel);

if(strcmp(tempnum,temp.num)==0)

{if(flag==0)

flag=1;

if(n==0)printf("

elseif(flag==0)printf("

\n文件中无此人!

/*定义按姓名查询通讯录的函数*/

voidsch_name(FILE*fp)

{

intflag=0,n=0;

chartempname[10];

\n请输入要查询记录的姓名:

gets(tempname);

if(strcmp(tempname,temp.name)==0)

{if(flag==0)printf("

学号姓名电话号码\n"

/*定义修改通讯录的函数*/

voidmymodify()

intn=0;

structstudent*find,temp,record[100],*p;

/*最多100个记录*/

if(fp==NULL){printf("

p=record;

p->

num,p->

name,p->

tel);

p++;

n++;

fclose(fp);

if(n==0){printf("

\n请输入要修改记录的学号:

gets(temp.num);

for(p=record;

p<

record+n;

p++)

if(strcmp(temp.num,p->

num)==0)

{find=p;

}/*find记住修改记录的位置*/

if(p==record+n)

\n无此人!

\n请输入正确的学号:

请输入正确的姓名:

请输入正确电话号码:

if((strcmp(temp.num,p->

num)==0)&

(p!

=find))

\n学号重复,要重新输入吗(Y/N)?

{c=getche();

}while(c!

c!

putchar('

\n'

break;

{*find=temp;

/*find指向需修改记录的位置*/

}while(c=='

fp=fopen("

if(fp==NULL){printf("

fprintf(fp,"

/*定义添加通讯录的函数*/

voidmyadd()

intn=0;

structstudenttemp,record[N],*p;

\n请输入新记录的学号:

请输入新记录的姓名:

请输入新记录的电话号码:

c!

putchar('

if(p==record+n){*p=temp;

if(fp==NULL)

record+n+1;

/*定义删除通信录的函数*/

voidmydelete()

\n按学号删除(h),还是按姓名删除(m)?

)del_num(fp);

/*按学号删除*/

)del_name(fp);

/*按姓名删除*/

/*定义按学号删除通信录的函数*/

voiddel_num(FILE*fp)

{chartempnum[10];

structstudentrecord[N],*p,*k;

\n请输入要删除记录的学号:

for(k=record;

k<

k++)

if(strcmp(tempnum,k->

num)==0)break;

/*找到要删除记录结束循环*/

if(k<

record+n)/*提前结束循环,说明找到次人*/

for(p=k;

k+n-1;

p++)/*向左移一位,相当于删除记录*/

*p=*(p+1);

for(p=record;

record+n-1;

/*定义按姓名删除通讯录的函数*/

voiddel_name(FILE*fp)

{chartempname[10];

\n请输入要删除记录的姓名:

k++)

if(strcmp(tempname,k->

name)==0)break;

if(k<

record+n)

p++)/*删除记录*/

elseprintf("

/*定义排序通讯录的函数*/

voidmysort()

\n按学号排序(h),还是按姓名排序(m)?

)sort_num();

/*按学号排序*/

)sort_name();

/*按姓名排序*/

/*定义按学号排序通讯录的函数*/

voidsort_num()

{inti,j,k,n=0;

charc;

structstudentrecord[N],*p,temp;

\n按升序(s),还是按降序(j)?

s'

S'

)/*按学号的升序排列*/

for(i=0;

i<

n-1;

i++)/*选择法排序*/

{k=i;

for(j=i+1;

j<

n;

j++)

if(strcmp((p+k)->

num,(p+j)->

num)>

0)k=j;

temp=*(p+k);

*(p+k)=*(p+i);

*(p+i)=temp;

elseif(c=='

j'

J'

)/*按学号的降序排列*/

num)<

else{printf("

{fprintf(fp,"

/*定义按姓名排序通讯录的函数*/

voidsort_name()

inti,j,k,n=0;

\n按生序(s)还是按降序(j)?

c=getche();

)/*按姓名的升序排列*/

name,(p+j)->

name)>

)/*按姓名的降序排列*/

name)<

0)k=j;

\\lyc\\j

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1