ImageVerifierCode 换一换
格式:DOCX , 页数:48 ,大小:88.32KB ,
资源ID:10859191      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10859191.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件实习报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件实习报告.docx

1、软件实习报告计算机科学与技术专业软件实习1课程名:课程号:学号: 姓名: 三、内容1、集合的并、交和差运算(一)设计题目【问题描述】编制一个能演示执行集合的并、交和差运算的程序。【基本要求】 (1) 集合的元素限定为小写字母字符 a.z 。(2) 演示程序以用户和计算机的对话方式执行。【实现提示】以链表表示集合。【选作内容】(1) 集合的元素判定和子集判定运算。(2) 求集合的补集。(3) 集合的混合运算表达式求值。(4) 集合的元素类型推广到其他类型 , 甚至任意类型。(二)需求分析 set() /建立只有头结点的空链表 set(char a,int m); /建立有m个元素的单链表 set

2、(const set&s); int is_notin(char c); /确定位置 void sort(); /排序 void insert(char c); /插入结点 void print(); /遍历 set(); /析构函数(3)概要设计输入的只能是小写字母交运算:查找B集合中与A集合中相同的元素,插入到C集合中。并运算:先将A集合中的元素插入到C集合中,然后查找B集合中与A集合中不相同的元素,插入到C集合中。差运算:比较A集合与B集合中的元素,找出在A集合中且不在B集合中的元素,插入到C集合中。(4)详细设计#include#includeusing namespace std;s

3、truct Node /定义结点 char data; Node*next;class setpublic: set()/建立只有头结点的空链表 first=new Node; first-next=NULL; set(char a,int m);/建立有m个元素的单链表 set(const set&s); int is_notin(char c); void sort();/排序 void insert(char c);/插入结点 void print();/遍历 set(); Node*first;set:set(char a,int m) m=strlen(a);first=new No

4、de; /头插法first-next=NULL;for(int i=0;idata=ai;p-next=first-next;first-next=p;set:set()/析构函数 while(first!=NULL) Node*p=first; first=first-next; delete p; void set:sort() for(Node*p=first-next;p-next!=NULL;p=p-next) for(Node*q=p-next;q!=NULL;q=q-next) if(q-datadata) char t=q-data; q-data=p-data; p-data

5、=t; void set:insert(char c) Node*p=new Node; p-data=c; p-next=first-next; first-next=p;set:set(const set&s) first=new Node; first-next=NULL; Node*p=s.first-next; while(p!=NULL) Node*q=new Node; q-data=p-data; q-next=first-next; first-next=q; p=p-next; int set:is_notin(char c)Node*p=first-next;while(

6、p)if(p-data=c)return 0;p=p-next;return 1;void set:print() Node*p=first-next; while(p!=NULL) coutdatanext; coutnext; Node*q=b.first-next; while(p!=NULL&q!=NULL) if(p-datadata) p=p-next; else if(q-datadata) q=q-next; else t.insert(p-data); p=p-next; q=q-next; return t;set bingji(set a,set b) a.sort();

7、 b.sort();set t;Node*p=a.first-next;Node*q=b.first-next;while(p!=NULL&q!=NULL) if(p-datadata) t.insert(p-data);p=p-next; else if(q-datadata) t.insert(q-data);q=q-next; else t.insert(p-data); p=p-next; q=q-next; if(p!=NULL) while(p!=NULL) t.insert(p-data); p=p-next; if(q!=NULL) while(q!=NULL) t.inser

8、t(q-data); q=q-next; return t;set chaji(set a,set b)set t;Node*p=a.first-next;while(p!=NULL) if(b.is_notin(p-data) t.insert(p-data); p=p-next;return t;int main() int n; char s1100; cout请正确输入集合s1:endl; cin.getline(s1,100); char s2100; cout请正确输入集合s2:endl; cin.getline(s2,100); set S1(s1,n),S2(s2,n); co

9、ut输入的第一个集合为:endl; S1.print(); cout输入的第二个集合为:endl; S2.print(); cout两个集合的交集为:endl; couts1s2=; jiaoji(S1,S2).print(); cout两个集合的并集为:endl; couts1S2=; bingji(S1,S2).print(); cout两个集合的差集为:endl; couts1-s2=; chaji(S1,S2).print(); return 0;2、病人就医管理(一)设计题目【问题描述】病人到医院看病,排队看医生的情况,在病人排队过程中,主要发生两件事:(1) 病人到达诊室,将病历本

10、交给护士,排到等待队列中候诊。(2) 护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。试为医院编制按上述要求进行管理的模拟程序。【基本要求】程序采用菜单方式,其选项及功能说明如下:(1) 排队-输入病人的病历号,加入到病人排队队列中(2) 就诊-病人排队队列中最前面的病人就诊,并将其从队列中删除。(3) 查看排队-从队首到队尾列出所有的排队病人的病历号。(4)下班-退出运行。(2)需求分析 char *number; patient(); /无参构造函数 patient(char *num); /带参构造函数 patient(const patient &per); /拷贝构造函数 p

11、atient(); /折构函数 void display(); /显示病人病历 void input(); /输入病人病历(3)概要设计 采用队列的数据结构,先进先出,排队时入队,就诊时出队。队空时,k=count+1,此时可以下班。(四)详细设计#include#includeusing namespace std;class patient /定义病人这一个类 /病历号public: char *number; patient(); /无参构造函数 patient(char *num); /带参构造函数 patient(const patient &per); /拷贝构造函数 patien

12、t(); /折构函数 void display(); /显示病人病历 void input(); /输入病人病历;patient:patient() number=NULL;patient:patient(char *num) if(num) number=new charstrlen(num)+1; /避免浅拷贝,将病历号拷贝 strcpy(number,num); patient:patient(const patient &per) /拷贝构造函数 if(per.number) number=new charstrlen(per.number)+1; strcpy(number,per.

13、number); patient:patient() /折构函数 if(number) delete number;void patient:display() /输出病人病历号 cout病历号: numberendl;void patient:input() /输入病人病历号 char num10; coutnum ; if(number) delete number; number=new charstrlen(num)+1;/数组/0 strcpy(number,num);/const int N=10;void Output(patient *a);void Input(patient

14、 *a);int jiuzhen(patient *a);int chakanpaidui(patient *a);void end(patient *a);int count=0,k=1,z=10;void Input(patient *a)/俩个 acount.input(); count+; z-; cout还有(z)名排队等待名额endl;int jiuzhen(patient *a) if(k=count) cout请ak-1.number号病人现在就诊。endl; k+; z+;/有人就诊,增加一排队名额 cout还有(z)排队等待名额endl; else cout现在没有病人救诊

15、!endl;return 0;int chakanpaidui(patient *a) if(k=count+1) cout现在没有病人排队!endl; else cout正在排队中的病人:endl; for(int i=k-1;icount;i+) ai.display(); return 0;int end() if(k=count+1) cout可以下班了!endl; return 0; else cout还有病人,不可以下班!endl; return 1; int main() patient aN; /定义病人数组 int choice; /读入选项 cout病人就医管理endl;

16、cout你好,欢迎登陆病人管理系统!endl; cout 1.排队 - 输入病人的病历号,加入到病人的排队队列中。endl; cout 2.就诊 - 病人排队队列中最前面的病人就诊,并将其从队列中删除。endl; cout 3.参看排队 - 从队首到队尾列出所有的排队病人的病历号。endl; cout 4.下班?endl; cout 5.结束调试。endl; coutendl; cout医院排队区仅限10人endl; do coutchoice; if(choice0&choice=5) switch(choice) case 1:Input(a); break; case 2:jiuzhen

17、(a); break; case 3:chakanpaidui(a);break; case 4:end(); break; else cout输入错误,请重新输入!endl; coutendlendl; while(choice!=5);return 0;3、校园导游咨询(一)设计题目【问题描述】设计一个校园导游程序,为来访的客人提供各种信息查询服务。【基本要求】(1)设计学校的校园平面图,所含景点不少于10个,以图中顶点表示校内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。(2)为来访客人提供图中任意景点相关信息的查询。(3)为来访客人提供景点的问路查询,即

18、已知一个景点,查询到某景点之间的一条最短路径及长度。(二)需求分析Grahp(int evertexNumvertexNum,int vvertexNum);/初始化图的邻接矩阵int shortest_way(int s,int d);/求最短路径int BFS(int s,int d);/广度优先算法(三)概要设计伪代码:1.初始化数组dist,path和s;2.While(s中的元素个数n) 2.1 在distn中求最小值,其编号为K; 2.2 输出distk和pathk; 2.3 修改数组dist和path; 2.4 将顶点k添加到数组s中;(四)详细设计#includeusing n

19、amespace std;const int maxsize=10;const int MAX=10000;int default_emaxsizemaxsize=0,100,150, MAX,100,400,MAX,MAX,MAX,MAX, 100,0,MAX,MAX,MAX,MAX,MAX,MAX,MAX,400, 150,MAX,0,100,MAX,MAX,50,MAX,MAX,MAX, MAX,MAX,100,0,MAX,MAX,MAX,200,100,200, 100,MAX,MAX,MAX,0,250,MAX,MAX,MAX,MAX, 400,MAX,MAX,MAX,250,0,1

20、00,300,MAX,MAX, MAX,MAX,50,MAX,MAX,100,0,MAX,MAX,MAX, MAX,MAX,MAX,200,MAX,300,MAX,0,150,MAX, MAX,MAX,MAX,100,MAX,MAX,MAX,150,0,150, MAX,400,MAX,200,MAX,MAX,MAX,MAX,150,0;int default_vmaxsize=0,1,2,3,4, 5,6,7,8,9;struct view_spot_nodechar namemaxsize;int codename;view_spot_node operator=(view_spot_no

21、de&v)codename=v.codename;for(int i=0;imaxsize;i+)namei=v.namei;return v;view_spot_node default_vsnmaxsize=景点A,1, 景点B,2, 景点C,3, 景点D,4, 景点E,5, 景点F,6, 景点G,7, 景点H,8, 景点I,9, 景点J,10;class Grahppublic: Grahp(int emaxsizemaxsize,int vmaxsize=default_v); int shortest_way(int s,int d); int store_vmaxsize; int

22、 distancemaxsize;private: int BFS(int s,int d); void store(int d); int edgemaxsizemaxsize; int vertexmaxsize; int qmaxsize; int statemaxsizemaxsize; int previousmaxsize; ;Grahp:Grahp(int emaxsizemaxsize,int vmaxsize) for(int i=0;imaxsize;i+) vertexi=vi; for(int j=0;jmaxsize;j+) edgeij=eij; int Grahp

23、:shortest_way(int s,int d) for(int i=0;imaxsize;i+) qi=0; distancei=MAX; previousi=i; store_vi=0; for(int j=0;jmaxsize;j+) if(edgeij!=MAX&edgeij!=0) stateij=1; else stateij=0; distances=0; BFS(s,d); store(d); return distanced;int Grahp:BFS(int s,int d)if(s=d) return 0;int k;int left=maxsize;while(le

24、ft-)int min=MAX;for(int i=0;imaxsize;i+) if(qi=0&distanceimin) min=distancei; k=i; qk=1;if(k=d) return 0;for(int j=0;jdis) distancej=dis; previousj=k; return 0;void Grahp:store(int d) static int num=0; if(d=previousd) /coutd+1; store_vnum+=d+1; return ; store(previousd); store_vnum+=d+1; /coutd+1;class campus_guide:public Grahppublic: campus_guide(int emaxsizemaxsize=default_e,view_spot_node vmaxsize=default_vsn); void guide(int s,int d); private: view_spot_node view_spotmaxsize;campus_guide:campus_guide(int emaxsizemaxsize,view_spot_node vmaxsize) :Grahp(e)

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

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