综合性应用程序设计_实习报告模板.doc_第1页
综合性应用程序设计_实习报告模板.doc_第2页
综合性应用程序设计_实习报告模板.doc_第3页
综合性应用程序设计_实习报告模板.doc_第4页
综合性应用程序设计_实习报告模板.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

综合性应用程序设计班级: 学号: 姓名一 实验目的l 掌握分治法、递归法等模块化程序设计方法;l 通过程序设计实例掌握函数和递归函数及其应用;二 实验环境l 所需硬件环境为微机;l 所需软件环境为Microsoft Visual C+ 6.0或Code:Blocks ;三 系统分析与设计说明通讯录:设计说明:通讯录的主要功能有1。删除名单 2。增加名单 3。查找名单查找名单功能又分为1。按名字查找 2。按电话号码查找用的主要知识1,链表 2。类 3。少量的windows基础(在我的程序中主要用到的是句柄,颜色函数,窗口位置函数,清屏函数) 4。结构体 5。函数调用四 实验源代码/Text。H #ifndef TEXT_H#define TEXT_Hclass Textpublic:Text();Text();void CreatText(int a);void Color(int a);void Where(int x,int y);private:int change_num;#endif/Text.cpp#include #include #include Text.hText:Text()change_num=1;Text:Text()void Text:Where(int x,int y)COORD pos;pos.X=2*x;pos.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);void Text:Color(int a)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);void Text:CreatText(int a)/生成文字Color(12);Where(27,2);cout通endl;Where(32,2);cout讯endl;Where(37,2);cout录endl;Color(13);Where(8,4);cout功 能endl;Color(14);Where(24,4);cout姓 名endl;Color(15);Where(46,4);cout电 话endl; Color(13);Where(8,6);cout 删除联系人endl;/Where(8,8);cout 添加联系人endl;Where(8,10);cout 查询号码endl;Where(8,12);cout 退出程序endl;Where(5,14);Color(12);cout功 能 选 择 :endl;/生成边框框int num=66; if(a=6)a=22;elsea=20+2*(a-6);for(int i=1;ia;i+)for(int j=1;jnum;j+)if(i%2=1) Color(10); Where(j,i); coutendl;if(change_num=15)change_num=10;Color(change_num);if(j%22=0)Where(j,i);coutendl;coutendl;change_num+;Color(10);/Address_Book。H#ifndef ADDRESS_BOOK_H#define ADDRESS_BOOK_Hclass Address_Bookpublic:Address_Book();Address_Book(char *,char*);Address_Book();void OutputList();void Add(char 20,char 13,int);void Delete(char 20);void Show1();void Show2();int Compare(char 20,int);int Compare2(char 12,int);int get_num();private:char name20;char number12;int num;#endif/Address_Book.cpp#include #include Address_Book.h#include Address_Book:Address_Book()Address_Book:Address_Book(char *a,char *b)strcpy(name,a);strcpy(number,b);Address_Book:Address_Book()void Address_Book:Add(char a20,char b13,int c)int i=0;for( i=0;i20;i+)namei=ai;for(i=0;i13;i+)numberi=bi;num=c;void Address_Book:Delete(char a20)if(strcmp(name,a)=0)num=0;void Address_Book:Show1()coutnameendl;void Address_Book:Show2()coutnumberendl;int Address_Book:Compare(char a20,int b)if(strncmp(name,a,b)=0)return 1;if(strncmp(name,a,b)0)return 2;return 3;int Address_Book:Compare2(char a12,int b)int j=0;for(int i=0;ib;i+) if(numberi=ai)j+;if(j=b) return 1;return 0;int Address_Book:get_num()return num;/main()#include #include #include #include Address_Book.h#include Text.h#include #include struct nodeAddress_Book A;node *next;void Where(int,int);node *CreatList(int &);void outputList(node *,int);int main() char num_choose;int num_read=-1;/用于记录链表中元素的个数node *ListHead=NULL,*temp=NULL;ListHead=CreatList(num_read);outputList(ListHead,num_read);Text text;text.CreatText(num_read);Where(12,14);num_choose=getche();do /删除一个名单if(num_choose=1)int i,j;temp=ListHead;char num220; Where(2,16); cout输入所要删除人的名字,按#返回菜单;endl; Where(2,18); cout按删除前一个字母,按!键结束输入endl;for(i=0;i100;i+) Where(2+i,20); num2i=getche(); num2i+1=0; Where(2+i,20); cout endl; if(num2i=#) goto end2; if(num2i=!) num2i=0; Where(2+i,20); cout endl; break; if(num2i=) num2i-1=0; i=i-2; Where(2+i,20); cout endl; for(j=0;j20;j+) if(num2j!=0) Where(2+j,20); coutnum2jA.Delete(num2);temp=temp-next;ofstream outFile(Address_List.dat,ios:out|ios:binary);while(ListHead)if(ListHead-A.get_num()!=0) outFile.write(char *)&(ListHead-A),sizeof(ListHead-A);ListHead=ListHead-next;outFile.close();/增加一个名单if(num_choose=2)int i,j,k=0; temp=NULL; char num320,num413; int num5=0; Where(2,16); cout输入所要添加人的名字,按#返回菜单;endl; Where(2,18); cout按删除前一个字母,按!键结束输入endl; for(i=0;i100;i+) Where(2+i,20); num3i=getche(); num3i+1=0; Where(2+i,20); cout endl; if(num3i=#) num3i=0; num3i+1=0; goto end1; if(num3i=!) num3i=0; Where(2+i,20); cout endl; break; if(num3i=) num3i-1=0; i=i-2; Where(2+i,20); cout endl; for(j=0;j20;j+) if(num3j!=0) Where(2+j,20); coutnum3jendl; if(num3j=0) num3j+1=0; break; Where(2,22); cout输入所要添加人的号码,按#返回菜单;endl; Where(2,24); cout按删除前一个字母,按!键结束输入endl; for(i=0;i100;i+) Where(2+i,26); num4i=getche(); num4i+1=0; if(num4i=#) goto end1; if(num4i=!) num4i=0; Where(2+i,26); cout endl; break; if(num4i=) num4i-1=0; Where(2+i,26); cout endl; i=i-2; for(j=0;j11;j+) if(num4j!=0) Where(2+j,26); coutnum4jendl; if(num4j=0) num4j+1=0; break; for( i=0;i=A)&(num3iA.Add(num3,num4,num5); B1-next=NULL; temp=ListHead; node *tith; while(temp) k+; tith=temp-next; if(temp-A.Compare(num3,num5)=0)&(tith-A.Compare(num3,num5)=2)&(tith!=NULL) temp-next=B1; B1-next=tith; goto end1; if(temp-A.Compare(num3,num5)=1)&k=1) B1-next=temp; ListHead=B1; goto end1; if(tith-A.Compare(num3,num5)=1)&(k!=1) temp-next=B1; B1-next=tith; goto end1; if(temp-A.Compare(num3,num5)=0)&(tith=NULL) tith-next=B1; goto end1; /*if(temp-A.Compare(num3,num5)=2)&(tith!=NULL) B1-next=temp; ListHead=B1; goto end1; */ temp=temp-next; end1: coutA.get_num() outFile.write(char *)&(ListHead-A),sizeof(ListHead-A);ListHead=ListHead-next;outFile.close();if(num_choose=4)goto end3;/查找名单if(num_choose=3)Where(2,16);cout按名字查找,按号码查找endl; Where(2,18); num_choose=getche();Where(2,18);cout endl;if(num_choose=1) char num620,num8; int num9=6; num8=; int num7=0; for(int i=0;i=A)&(num8=z) num6num7=num8; num7+; Where(2,16); cout输入索要查找到名字,按#键结束返回菜单endl; Where(7,18); cout按键删除endl; for(int j=0;jnum7;j+) Where(j+1,20); coutnum6jA.Compare(num6,num7)=1) Where(24,num9); temp-A.Show1(); Where(46,num9); temp-A.Show2(); temp=temp-next; num9=num9+2; Where(2+num7,20); num8=getche(); num9=6; system(cls); text.CreatText(num_read); if(num_choose=2) char num612,num8; int num9=6; num8=; int num7=0; for(int i=0;i=0)&(num8=9) num6num7=num8; num7+; Where(2,16); cout输入索要查找的号码,按#键结束返回菜单endl; Where(7,18); cout按键删除endl; for(int j=0;jnum7;j+) Where(j+1,20); coutnum6jA.Compare2(num6,num7)=1) Where(24,num9); temp-A.Show1(); Where(46,num9); temp-A.Show2(); temp=temp-next; num9=num9+2; Where(2+num7,20); num8=getche(); num9=6; system(cls); text.CreatText(num_read); end2:system(cls);num_read=-1;ListHead=CreatList(num_read);outputList(ListHead,num_read); text.CreatText(num_read);Where(12,14);num_choose=getche();while(num_choose=1)&(num_choose=4);end3:Where(2,16);return 0;/从文件中读取链表node *CreatList(int &num_read)node *temp=NULL,*tail=NULL,*head=NULL;ifstream inFile(Address_List.dat,ios:in|ios:binary);if(!inFile)cout读取数据失败endl;elsehead=new node;if(head=NULL)cout内存分配错误A),sizeof(head-A);head-next=NULL;tail=head;num_read+;while(!inFile.eof()temp=new node;if(temp=NULL)cout内存分配错误A),sizeof(temp-A);tem

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论