版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
〈数据构造〉课程设计〈数据构造〉课程设计〈数据构造〉课程设计班级:计科
〈数据构造〉课程设计——通信录的制作指导老师:姓名:学号:20XX24一,设计题目:通信录的制作二,设计目的:运用〈〈数据构造〉〉中的算法思想作数据构造,联合C语言根本知识,编写一个通信录管理系统。以把所学数据构造知识应用到实质软件开发中去。b5E2RGbCAP经过完本钱课题,进一步熟习C语言的根本知识,并掌握数据构造的一些根本算法思想,掌握C语言的文件操作〔包含从磁盘读入和向磁盘写入内容〕,进一步熟习指针的用法,数组的成立运用和函数的调用等。p1EanqFDPw三,设计内容:本系统应达成一下几方面的功能:①输入信息〔Enter()〕:调用此函数用以输入数据到内存中,此过程包含成立相应的链表或相应的数组,便于读取DXDiTa9E3d②显示信息〔Display()〕:用以显示输入的数据,包含从内存中读出和从磁盘中读出③查找〔Search()〕:以姓名作为重点字查找要找的信息④删除信息〔Delete()〕:用以删除选定的输入信息〔姓名作为重点字〕⑤存盘〔Save()〕:调用此函数将内存中的数据保留至磁盘中⑥装入〔Load()〕:调用此函数用以将以前保留在磁盘的内容读入到内存中或显示到屏幕上注:本课题中输入的数据应包含以下几项信息:姓名〔NAME〕学校〔SCHOOL〕城市〔CITY〕〔EIP〕国家〔STATE〕四,程序流程图:①,Display();/*显示*/②,Enter();/*输入信息*/RTCrpUDGiT③Insert();/*插入信息*/inti=05PCzVD7HxAinti=0,Search();/*查找*/④Delete();/*删除*/jLBHrnAILgintxHAQX74J0X,flag=0getch()=’2’i++i<countinti=0⑥,Save();/*保留*/LDAYtRyKfEgetch=’2’i++,count++inti=0,flag=0,⑦,Load();/*装入*/i++count=iinti=0i<count,flag0⑧,Main();/*主函数*/inti=0count=tDisplay()Display()i<j$$flag=0fopen()五,程序源代码:c=classintinput;/*=====================================================*/fopen()Zzz6ZB2Ltkifc=name#include<stdlib.h>flag++i<count#include<stdio.h>input!8i<count2#include<string.h>flag++i++#defineT5i++,fwrite输出界面structTongxuni++,fread{charcity[10];i<countfclosecharstate[10];fclose()1/i++,class=next7charname[10];charschool[20];longeip;structTongxun*next;};structTongxunclass[40];intcount,count2;/*----------Display------------*/display(){inti=0;while(i<count){printf("\n-->%s%s%s%s%ld\n",class[i].name,class[i].school,class[i].city,class[i].state,class[i].eip);i++;}}/*----------Enter------------*/enter(){inti=0;printf("\nInputiformationas:-->Name,School,City,State,Eip\n");do{
dvzfvkwMI1rqyn14ZNXIscanf("%s%s%s%s%ld",&class[i].name,&class[i].school,&class[i].city,&class[i].state,&class[i].eip);i++;}while(getchar()!='2');count=i;printf("\nNowtherecordsas:");display();}/*----------Insert------------*/insert(){inti=count;/*j;*/printf("\nInputinformationas:-->Name,School,City,State,Eip\n");while(getchar()!='2'){
EmxvxOtOcoSixE2yXPq5scanf("%s%s%s%s%ld",&class[i].name,&class[i].school,6ewMyirQFL&class[i].city,&class[i].state,&class[i].eip);i++;count++;}printf("\nNowtherecordsas:");display();}2/7/*----------Delete------------*/delete(){charc[10];intflag=0,i=0,j=count;printf("\nPleaseinputthename:");scanf("%s",c);while(i<j&&flag==0){if(strcmp(&class[i].name,c)==0){flag++;while(i<count){class[i]=class[i+1];i++;}count--;}i++;}clrscr();printf("\nNowthistimetherecordslikethis:\n");kavU42VRUsdisplay();}/*----------Search------------*/search(){charc[10];intflag=0,i=0;printf("\nPleaseinputthename:");scanf("%s",c);while(i<count&&flag==0){if(strcmp(c,&class[i].name)==0){printf("\nFindtherecodsas:");printf("%s%s%s%s%ld\n",class[i].name,class[i].school,y6v3ALoS89class[i].city,class[i].state,class[i].eip);flag++;}i++;}}/*----------Save------------*/save(){FILE*pt;inti=0;pt=fopen("file1","w+");while(i<count){fwrite(&class[i],sizeof(structTongxun),1,pt);i++;}3/7fclose(pt);count2=count;}/*----------Load------------*/load(){FILE*pt;inti=0;count=T;pt=fopen("file1","r+");while(i<count2){fread(&class[i],sizeof(structTongxun),1,pt);i++;}fclose(pt);}/*----------Main------------*/main(){intinput;while(input!=8){printf("\n---------OprationMenu----------\n");printf("1.Type'1'toenterrecords\n");printf("2.type'2'toloadrecords\n");printf("3.type'3'tosearchtherecord\n");printf("4.type'4'todeletetherecord\n");printf("5.type'5'toinserttherecords\n");printf("6.type'6'todisplaytherecords\n");printf("7.type'7'tosaverecords\n");printf("8.type'8'toexit\n");printf("--------------------------------\n");scanf("%d",&input);if(input==1)enter();if(input==2)load();if(input==3)search();if(input==4)delete();if(input==5)insert();if(input==6)display();if(input==7)save();if(input==8)exit(0);}}/*=====================================================*/M2ub6vSTnP六,程序调试:---------OprationMenu----------1.Type'1'toenterrecords4/72.type'2'toloadrecords3.type'3'tosearchtherecord4.type'4'todeletetherecord5.type'5'toinserttherecords6.type'6'todisplaytherecords7.type'7'tosaverecords8.type'8'toexit--------------------------------1/*输入*/Inputiformationas:-->Name,School,City,State,EipZhangA1B1CHN1000000LiA2B2JAPN20XX000WangA3B3US3000000/*将内存中数据导入磁盘*/Nowtherecordsas:-->ZhangA1B1CHN1000000-->LiA2B2JAPN20XX000-->WangA3B3US3000000---------OprationMenu----------1.Type'1'toenterrecords2.type'2'toloadrecords3.type'3'tosearchtherecord4.type'4'todeletetherecord5.type'5'toinserttherecords6.type'6'todisplaytherecords7.type'7'tosaverecords8.type'8'toexit--------------------------------/*搜寻*/Pleaseinputthename:LiFindtherecodsas:LiA2B2JAPN20XX000---------OprationMenu----------1.Type'1'toenterrecords2.type'2'toloadrecords3.type'3'tosearchtherecord4.type'4'todeletetherecord5.type'5'toinserttherecords6.type'6'todisplaytherecords7.type'7'tosaverecords8.type'8'toexit--------------------------------4/*Delete()删除*/5/7Pleaseinputthename:WangNowthistimetherecordsas:-->ZhangA1B1CHN1000000-->LiA2B2JAPN20XX0005/*Insert()插入〔追加〕*/Inputiformationas:-->Name,School,City,State,EipZHAOQ0W0UK4000000/*追加的数据导入磁盘*/NOWTHERECORDSas:-->ZhangA1B1CHN1000000-->LiA2B2JAPN20XX000-->ZHAOQ0W0UK4000000/*Save()保留至磁盘*//*Display()显示*/NOWTHERECORDSas:-->ZhangA1B1CHN1000000-->LiA2B2JAPN20XX000-->ZHAOQ0W0UK40000008/*Exit*/七,错误会析与总结:本程序在初始阶段主函数的循环体用的是Switch语句,经过频频调试,该循环体没法正常运转,有时进入死循环,系统报错〔CPU指令无效〕,原由到现在不明。0YujCfmUCw程序中Load()和Save()函数波及到C语言的文件操作〔磁盘操作〕,对FwriteFread,Fscanf,Fprintf等操作不甚娴熟,致使LOAD〔〕语句和SAVE〔〕语句似有错位之嫌;当进入ENTER〔〕函数输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论