程序设计语言课程设计.docx

上传人:b****5 文档编号:29818929 上传时间:2023-07-27 格式:DOCX 页数:22 大小:50.18KB
下载 相关 举报
程序设计语言课程设计.docx_第1页
第1页 / 共22页
程序设计语言课程设计.docx_第2页
第2页 / 共22页
程序设计语言课程设计.docx_第3页
第3页 / 共22页
程序设计语言课程设计.docx_第4页
第4页 / 共22页
程序设计语言课程设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

程序设计语言课程设计.docx

《程序设计语言课程设计.docx》由会员分享,可在线阅读,更多相关《程序设计语言课程设计.docx(22页珍藏版)》请在冰豆网上搜索。

程序设计语言课程设计.docx

程序设计语言课程设计

本题:

学生通讯系统

要求:

如下:

学生通信录信息包括:

姓名、学号、年龄、性别、家庭住址、联系电话、寝室号等信息。

现要求编写程序来完成如下功能:

1)学生通信录信息的输入;

2)学生的通信录信息删除和修改;

3)学生的通信录信息查询和统计功能;

4)学生的通信录信息输出显示。

(答案如下:

学生通讯系统

*、程序的算法流程图;

*、程序中所用的数据结构说明;

*、程序代码;

#include

#include/*与malloc.h差不多*/

#include

#include

usingnamespacestd;

#definemaxlen15

structpersons

{intnum;/*定义结构体数组用于缓存数据*/

charname[20];

chare_addr[20];

chartel_no[15];

charage;

chararch;

charsex

charxuehao;

}persons[maxlen];

typedefstructlnode

{/*通讯录结构中结点的定义*/

intnum;

charname[20];

chare_addr[20];

chartel_no[15];

charage;

chararch;

charsex;

charxuehao;

structlnode*next;

}listnode,*linklist;

linklisthead=NULL,r=NULL;/*定义头指针和尾指针*/

listnode*s,*p0,*p1,*p2,*p3,*p4,*p5,*p6,*p7,*p8,*p9;

inti;

charname1[10],ch;

chartel_no1[15];

chararch1;

charage;

chare_addr1[20];

chars1[20]

charsex[4];

charxuehao[30];

FILE*fp;/*定义文件指针*/

voidcreat()/*将文件的信息读入结构体数组在转存入链表中*/

{intj;

longk;

fp=fopen("数据文件.txt","rt");/*打开文件*/

if(fp!

=NULL)

{for(i=0;i<=maxlen;i++)

{j=fgetc(fp);

if(j==EOF)

return;

k=i;

fseek(fp,k*sizeof(structpersons),0);/*读取一个人的信息*/

fread(&persons[i],sizeof(structpersons),1,fp);

s=(linklist)malloc(sizeof(listnode));/*装存入链表中*/

s->num=persons[i].num;

strcpy(s->name,persons[i].name);

strcpy(s->e_addr,persons[i].e_addr);

strcpy(s->tel_no,persons[i].tel_no);

s->sim_no=persons[i].sim_no;

s->arch=persons[i].arch;

if(head==NULL)/*用尾插法将其插入链表中*/

{head=s;r=head;head->next=NULL;}

else

{r->next=s;

r=s;r->next=NULL;

}

}fclose(fp);

}

else

{fp=fopen("数据文件.txt","w");/*不能打开另开辟一个文件*/

i=1;

}

}

voidShow()

{printf("成功调用该函数\n");}

voidDelete()

{printf("成功调用该函数\n");}

voidInput()/*向.通讯录中输入一个人的信息*/

{s=(linklist)malloc(sizeof(listnode));

printf("\n\n\t请输入该用户的信息:

");

printf("姓名:

");

scanf("%s",&s->name);

printf("学号:

");

scanf("%s",&s->xuehao);

printf("电话号码:

");

scanf("%s",&s->tel_no);

printf("年龄:

");

scanf("%s",&s->age);

printf("性别:

");

scanf("%s",&s->sex);

printf("地址:

");

scanf("%s",&s->e_addr);

printf("寝室号:

");

scanf("%s",&s->arch);

if(head==NULL)printf("\n\n");

else

{p8=head;

while(p8!

=NULL&&strcmp(s->name,p8->name)!

=0&&strcmp(s->tel_no,p8->tel_no)!

=0)

p8=p8->next;

if(p8!

=NULL)

{printf("您添加的用户已存在!

");

free(s);}}

if(head==NULL)

{

s->next=0;

head=s;

r=s;

}

else

{

s->next=0;

r->next=s;

r=s;

}

}

voidAlter()

{printf("success!

\n");}

intmain()

{

system("colora");

creat();

do

{

printf("\n\n\t\t请选择操作:

");

printf("\n\t\t1.显示通讯录");

printf("\n\t\t2.删除通讯录");

printf("\n\t\t3.添加通讯录");

printf("\n\t\t4.编辑通讯录");

printf("\n\n\n");

printf("\t请选择:

");

cin>>ch;

switch(ch)

{case'1':

Show();/*用单条件多选择语句实现调用与循环*/

break;

case'2':

Delete();

break;

case'3':

Input();

break;

case'4':

Alter();

break;

fclose(fp);

exit(0);

break;

default:

printf("\n\tThenumshould1-6!

!

!

\n");

break;

}

}

while

(1);

inti,m,a;

i=0;

CARDcontact[100],*cp;

cp=contact;

if((fp=fopen("contact_list.bin","a+"))==NULL)

{

printf("erroronopenfile\n");

getch();

exit

(1);

}

while(!

feof(fp))

{

if(fread(cp+n,sizeof(CARD),1,fp)==1)

n++;

}

fclose(fp);

printf("\t\topenfilesuccess");

printf("\n\n\n\t\tNow%dcontactsonfile",n);

printf("\n\t\tpessanykeytocontinue");

getch();

while

(1)

{

menu();

printf("\t%dcontactsonfile",n);

printf("\n\t\tchoosethenumber:

");

scanf("%d",&m);

switch((int)m)

{

case1:

system("cls");

printf("%dcontacts",n);

list(cp,n);

printf("\n\n\t\tpressanykeytocontinue");

getch();

break;

case2:

cp=contact;

for(i=n;i<100;i++)

{

input(cp+i);

state2:

printf("\n\n\t1.continue\n\t2.done\n");

fflush(stdin);

scanf("%d",&a);

switch((int)a)

{

case1:

break;

case2:

n=i;

gotostate1;

default:

printf("error:

wrongkeypressed\n");

gotostate2;

}

}

state1:

n=n+1;

break;

case3:

system("cls");

search(contact,n);

getch();

break;

case4:

system("cls");

cp=contact;

n=del(cp,n);

break;

case5:

sort(cp,n);

break;

case6:

save(cp,n);

break;

case7:

reload(cp,fp);

break;

case8:

gotostate;

}

}

state:

system("cls");

printf("\n\n\n\t\t\t\tBye\n");

getch();

}

voidinput(CARD*cp)

{

intx;

system("age");

printf("name:

");

fflush(stdin);

gets(cp->name);

printf("\nphonenumber:

");

gets(cp->phonenumber);

printf("\naddress:

");

gets(cp->address);

printf("\ne-sex:

");

gets(cp->sex);

printf("\ngroup:

chooseanumber\n1.family\n2.colleague\n3.friend\n");

scanf("%d",&x);

switch((int)x)}

intsearch(CARD*cp,intn)

{

ints,i;

charnamefor[20],phonenumberfor[20];

printf("\n\nsearchon:

\n1.name2.phonenumber\n");

fflush(stdin);

scanf("%d",&s);

if(s==1)

{

printf("pleaseenterthename:

\n");

fflush(stdin);

gets(namefor);

for(i=0;i<=n;i++)

{

if(strcmp((cp+i)->name,namefor)==0)

{

printf("\n\n\nSearchresult:

\n\n");

printf("%s\t",(cp+i)->age);

printf("%s\t",(cp+i)->name);

printf("%s\t",(cp+i)->phonenumber);

printf("%s\t",(cp+i)->address);

printf("%s\t",(cp+i)->sex);

printf("%s\t",(cp+i)->xuehao);

return(i);

}

}

}

elseif(s==2)

{

printf("pleaseenterthephonenumber:

\n");

gets(phonenumberfor);

for(i=0;i<=n;i++)

{

if(strcmp((cp+i)->phonenumber,phonenumberfor)==0)

{

printf("\n\n\nSearchresult:

\n\n");

printf("%s\t",(cp+i)->age);

printf("%s\t",(cp+i)->name);

printf("%s\t",(cp+i)->phonenumber);

printf("%s\t",(cp+i)->address);

printf("%s\t",(cp+i)->sex);

printf("%s\t",(cp+i)->xuehao);

return(i);

}

}

}

printf("\nNosuchfileexist,pressanykeytocontinue\n\t");

getch();

return-1;

}

 

voidmenu()

{

system("cls");

printf("\n\nWelcometothecontactsystem\n");

printf("\n\n-----------copyright-----DongChao---------------------\n\n\n\n");

printf("\n\nPleasechoosethenumber\n\n\n\n");

printf("\t1.list2.input3.search4.delete\n\t5.sort6.save7.reload\n\n");

printf("\t8.exit\n\n\n\n\t");

}

 

intdel(CARD*cp,intn)

{

intd,i,a;

printf("\n\n\tDeletecontact:

");

d=search(cp,n);

if(d!

=-1)

{

printf("\n\nAreyousuretodeletethiscontact?

\n\t1.Yes2.No\n");

scanf("%d",&a);

if(a==1)

{

for(i=d;i<=n;i++)

{

strcpy((cp+i)->name,(cp+i+1)->age);

strcpy((cp+i)->name,(cp+i+1)->name);

strcpy((cp+i)->phonenumber,(cp+i+1)->phonenumber);

strcpy((cp+i)->address,(cp+i+1)->address);

strcpy((cp+i)->mail,(cp+i+1)->sex);

strcpy((cp+i)->group,(cp+i+1)->xuehao);

}

n=n-1;

return(n);

}

elseif(a==2)

{

printf("\n\tpressanykeytocontinue");

getch();

}

}

if(d==-1)

{

printf("Nosuchfileexist,pressanykeytocontinue\n\t");

getch();

}

}

voidlist(CARD*cp,intn)

{

inti;

printf("\nnamephonenumber\taddress\t\te-mail\tgroup\n");

i=0;

while(i

{

printf("%s\t",(cp+i)->age);

printf("%s\t",(cp+i)->name);

printf("%s\t",(cp+i)->phonenumber);

printf("%s\t",(cp+i)->address);

printf("%s\t",(cp+i)->sex);

printf("%s\t",(cp+i)->xuehao);

i++;

}

}

voidsave(CARD*cp,intn)

{

FILE*fp;

inti=0;

if((fp=fopen("contact_list.bin","w"))==NULL)

{

printf("erroronopenfile\n");

getch();

exit

(1);

}

for(i=0;i

{

if(fwrite(cp+i,sizeof(CARD),1,fp)==1)

{

continue;

}

else

{

break;

}

}

if(i>0)

{

system("cls");

printf("\n\tSavecomplete,pressanykeytocontinue");

getch();

}

else

{

system("cls");

printf("\n\tnocontactissaved");

getch();

}

fclose(fp);

}

 

voidsort(CARD*cp,intn)

{

inti,j;

CARDcontactsort[100],*sp;

sp=contactsort;

j=0;

system("cls");

printf("\n\n\tsortthecontactsof\n\n\t\t1.family2.colleague3.friend\n\t\t");

states:

printf("pleasechoose:

");

scanf("%d",&i);

switch((int)i)

{

case1:

for(i=0;i

{

if(strcmp((cp+i)->group,"family")==0)

{

strcpy((cp+i)->name,(cp+i+1)->age);

strcpy((cp+i)->name,(cp+i+1)->name);

strcpy((cp+i)->phonenumber,(cp+i+1)->phonenumber);

strcpy((cp+i)->address,(cp+i+1)->address);

strcpy((cp+i)->mail,(cp+i+1)->sex);

strcpy((cp+i)->group,(cp+i+1)->xuehao);

j++;

}

}

list(sp,j);

if(j==0)

{

printf("\t\tNofileoffamily");

}

printf(",pressanykeytocontinue");

getch();

break;

case2:

for(i=0;i

{

if(strcmp((cp+i)->group,"colleague")==0)

{

strcpy((cp+i)->name,(cp+i+1)->age);

strcpy((cp+i)->name,(cp+i+1)->name);

strcpy((cp+i)->phonenumber,(cp+i+1)->phonenumber);

strcpy((cp+i)->address,(cp+i+1)->address);

strcpy((cp+i)->mail,(cp+i+1)->sex);

strcpy((cp+i)->group,(cp+i+1)->xuehao);

j++;

}

}

list(sp,j);

if(j==0)

{

printf("\t\tNofileofcolleague");

}

printf(",pressanykeytocontinue");

getch();

break;

case3:

for(i=0;i

{

if(strcmp((cp+i)->group,"friend")==0)

{

strcpy((cp+i)->name,(cp+i+1)->age);

strcpy((cp+i)->name,(cp+i+1)->name);

strcpy((cp+i)->phonenumber,(cp+i+1)->phonenumber);

strcpy((cp+i)->address,(cp+i+1)->address);

strcpy((cp+i)->mail,(cp+i+1)->sex);

strcpy((cp+i)->group,(cp+i+1)->xuehao);

j++;

}

}

list(sp,j);

if(j==0)

{

printf("\n\n\t\tNofileoffriend");

}

printf(",pressanykeytocontinue");

getch();

break;

default:

printf("\nerror:

wrongkeypressed,pressanykeytocontinue");

getch();

gotostates;

}

}

voidreload(CARD*cp,FILE*fp)

{

inti=0;

system("cls");

fp=fopen("contact_list.bin","r");

while(!

feof(fp))

{

if(fread(cp+i,sizeof(CARD),1,fp)==1);

i++;

}

printf("\n\n\n\t\t\t%dcontactsonfile,pressanykeytocontinue\n\t\t",i-1);

getch();

fclose(fp);

}

*、心得体会。

1,开始

 第一次真正的感觉到自己是学计算机专业的,第一次真正自己完成一个大型的程序,

刚开始拿到汇编程序设计题的时

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

当前位置:首页 > 人文社科 > 广告传媒

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

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