版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、得分: 北 京 林 业 大 学2013学年2014学年第1学期数据结构A实验报告书专 业: 数字媒体艺术 , 班 级: 姓 名: 学 号: 实验地点: 学研大厦机房 任课教师: 杨 猛 实验题目: 基于线性表的学生信息管理 实验环境: 已学习完毕数据结构A第一、二章内容 实验目的:基于线性表的学生信息管理实验内容:编写程序制作学生信息管理系统实现方法、实验结果及结论分析等:(一)实现方法1. 所用数据结构的定义及其相关说明typedef struct char no15; char name50;char gender10;char nationality20;char biogenic20;
2、int age; Student; /学生信息结构定义typedef struct LNodeStudent data; /数据域struct LNode *next; /指针域LNode,*LinkList; static int num = 0;/记录学生个数2. 自定义函数的名称及其功能说明void Output(LinkList L) /逐个显示表中的信息void Input(LinkList &L) /从StudentsInfo.txt中读取信息,前插法创建学生链表void Count_Len(LinkList L) /统计表中学生个数;void SearchName(LinkLis
3、t L) /按姓名查找;void SearchPlace(LinkList L) /按位置查找学生信息;void insert(LinkList L) /插入void delinfor(LinkList L) /删除;void turn(LinkList L) /实现逆序储存; void Average(LinkList L) /求平均年龄;主要功能算法的时间复杂度void Output(LinkList L) O(n);void Input(LinkList &L) O(n);void Count_Len(LinkList L) O(1);void SearchName(LinkList L
4、) O(n);void SearchPlace(LinkList L) O(n); void insert(LinkList L) O(n2);void delinfor(LinkList L) O(n);void turn(LinkList L) O(n); void Average(LinkList L) O(n);实验任务书中要求画的流程图 (1) 链表根据姓名进行查找的算法的流程图。实验结果(1)当输入字符串或越界数字时都会有提示,如果最初没有打开文件就选择其他服务,会提示当前没有学生信息。读出信息统计表中学生个数根据学生姓名进行查找根据指定位置进行查找插入新生信息到指定位置(三)结论
5、分析1. 问题与解决方法2. 收获和体会 (1)最大的收获是通过写实验报告,一次次运行程序,就发现了很多原来写的不够严谨的地方,让我在以后编程中考虑的会更多一些,来增强程序的健壮性。尚存在的问题 有时候解决一个问题在最开始就考虑很多情况时,就会出现很多问题,调试也比较困难程序见下:#include #include #include #include using namespace std;typedef struct char no15; char name50;char gender10;char nationality20;char biogenic20;int age; Student
6、; /学生信息结构定义typedef struct LNodeStudent data; /数据域struct LNode *next; /指针域LNode,*LinkList; static int num = 0;/记录学生个数void Input(LinkList &L)/从StudentsInfo.txt中读取信息,前插法创建学生链表/int num;char ST_head110, / 学号ST_head210, / 姓名ST_head310, / 性别ST_head410, / 民族ST_head510, / 生源ST_head610; / 年龄LinkList p;L=new L
7、Node;L-next=NULL;/初始化单链表ifstream inFile(StudentsInfo.txt);if(!inFile)cerrCannot open this file!ST_head1ST_head2ST_head3ST_head4ST_head5ST_head6;/读取文件中的标题num = 0;while(!inFile.eof() /逐行依次读取所有学生数据p = new LNode;/生成新结点inFilep-data.nationalityp-data.biogenicp-data.age;p-next=L-next; L-next=p;/插入到表头num+;/
8、记录学生个数inFile.close();cout文件读取完毕endl;inFile.close();coutn读取StudentsInfo.txt 信息完毕,可以通过选项(2)查看学生信息nnext;/for(int i=0;inum;i+)/ coutdata.nationalitytdata.biogenictdata.agenext;/coutleftsetw(15)学号 tleftsetw(10)姓名tleftsetw(6)性别leftsetw(10)民族 tleftsetw(10)生源tleftsetw(5)年龄endl;while(p)coutsetw(15)data.notse
9、tw(10)tsetw(10)data.nationalitytsetw(10)data.biogenictsetw(5)data.agenext;coutn信息显示完毕nendl;void Count_Len(LinkList L) /按姓名查找;cout当前学生总数为:numendlnext;char xingming50;coutxingming;while(p)if(strcmp(,xingming)=0)n+;coutleftsetw(15)data.notleftsetw(10)tleftsetw(10)data.natio
10、nalitytleftsetw(10)data.biogenictleftsetw(5)data.age;p=p-next;if(n=0)cout您所查找的学生不存在!endl;cout信息显示完毕endlnext;int wz;coutwz;if(p&wz0&wz=num) /判断输入位置是否合法;for(int i=0; inext;coutleftsetw(15)data.notleftsetw(10)tleftsetw(10)data.nationalitytleftsetw(10)data.biogenictleftsetw(5)data.ageendl;elsec
11、out您所输入的地址有误!endl;cout信息显示完毕endlnext; /p指向头结点;r=new LNode; /r指向新生成的节点;int wz;char xuehao15;char xingming50;char xingbie10;char minzu20;char shengyuan10; int nianling;coutwz;while(wznum)cout您所插入的地址有误请重新输入!endl; coutwz;cout* * 请重新输入新生信息* *endl;cout* 学号* * 姓名* * 性别* * 民族* * 生源* 年龄 *xuehaoxingmingxingbi
12、eminzushengyuannianling;strcpy_s(r-data.no,xuehao); /赋值操作strcpy_s(,xingming); /赋值操作strcpy_s(r-data.gender,xingbie); /赋值操作strcpy_s(r-data.nationality,minzu); /赋值操作strcpy_s(r-data.biogenic,shengyuan); /赋值操作r-data.age=nianling; /赋值操作ifstream inFile(StudentsInfo.txt);ofstream fout(StudentsInf
13、o.txt);if(wz=1) /如果插入位置是第一个;r-next=L-next;L-next=r;elsefor(int j=0;jnext;r-next=p-next;p-next=r;num+=1; /表长加一;foutnext;int wz;coutwz;while(wznum) /判断位置输入是否合法;cout您所删除的地址有误请重新输入!endl; coutwz;ifstream inFile(StudentsInfo.txt);ofstream fout(StudentsInfo.txt);if(wz=1) /用户删除位置为一与其他位置情况不同;r=L-next;L-next=
14、L-next-next;delete r;elsefor(int i=0;inext;r=p-next;p=p-next-next;delete r;num-=1; /表长减一;foutnext=NULL; /初始化链表;p=TL;q=L-next;ifstream inFile(StudentsInfo.txt);ofstream fout(StudentsInfo.txt);while (q)L-next=L-next-next;q-next=TL-next;TL-next=q;q=L-next;foutnext;coutdata.age;p=p-next;cout所有学生的平均年龄为su
15、m/numendl; cout信息显示完毕!endlendl;void main()char no;LinkList L;while(1)cout* 欢学使用学生信息管理系统!*n;/菜单选项cout* * 学号: 姓名:李斯奇 班级:数媒-2班 * *n;/补全你自己的个人信息cout*n;cout(1)输入学生信息n;cout(2)逐个显示学生信息n;cout(3)统计表中学生个数n;cout(4)根据学生姓名进行查找n;cout(5)根据指定位置进行查找n;cout(6)插入新生信息到指定位置n;cout(7)删除指定位置的学生记录n;cout(8)实现逆序储存n;cout(9)计算并输出所有学生平均年龄n;cout(0)退出系统n;coutn;coutno;switch(no)case 1:Input(L);break;case 2:Output(L);break;c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 某电子厂设备操作手册
- 钢铁厂安全管理制度
- 暑期学生外出实践心理健康突发危机处置预案
- 老年抑郁症的临床评估与综合干预护理策略
- 某塑料厂客户服务制度
- 安全供应链管理讲解
- 某汽修厂技术安全制度
- 某建材厂环保验收制度
- 2026第四针疫苗面试题及答案
- 2026盾安员工面试题目及答案
- 2026广东惠州市博罗县人民检察院招聘劳动合同制工作人员17人笔试参考题库及答案详解
- 2026年四川南充市中考数学试题(附答案)
- 五升六数学《暑假作业》每日一练 2026
- 宏观经济学二十五讲中国视角
- DB62-T 5212-2026 土遗址夯筑支顶加固及质量评价技术规范
- 2026年高考化学真题陕晋青宁卷含答案
- 成都铁路试题
- 从‘五方面人员’中选拔乡镇领导班子成员考试(基本素质和能力)试题及答案(南宁2026年)
- 汽车寄存保管协议书
- 软包装复合工艺工程师考试试卷及答案
- 拆除施工质量保证措施、安全保障措
评论
0/150
提交评论