数据结构实验:学生信息管理程序.doc_第1页
数据结构实验:学生信息管理程序.doc_第2页
数据结构实验:学生信息管理程序.doc_第3页
数据结构实验:学生信息管理程序.doc_第4页
数据结构实验:学生信息管理程序.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

一, 实验题目实验十二 其他综合实验学生信息管理程序:用计算机来管理一个学校的各个班级成员的各种信息,实现学生信息管理。基本要求:1,用文件存储学生的各种信息; 2,设计数据结构; 3,实现文件的读写操作、个人信息的录入、显示、查询、修改等功能。二, 问题分析本程序要求设计一个学生信息管理程序,即用计算机来管理一个学校的各个班级成员的各种信息,实现学生信息管理。(1) 数据的输入形式和输入值得范围:首先输入的是菜单的序号,选择你想要进行的操作,其次根据提示输入相关的班级或学生信息。(2) 结果的输出形式:输出的是班级信息或学生信息。三, 概要设计本程序包含11个函数:1) 主函数main();2) 查询函数: chaxun(); 3) 根据班级编号返回班级信息函数cx(); 4) 删除信息函数:del(); 5) 删除班级信息函数:del1();6) 按学号删除学生信息函数:del2(); 7) 输出学校班级信息函数: display();8) 修改某班级信息函数: edit();9) 插入学生信息函数: inclass(); 10) 读信息函数:read();11) 存储学生信息函数: save(); 四, 详细设计1,学生信息结构类型定义:typedef struct char name20; char id11; int age; char address20; char tel15;students;2,班级信息结构类型定义:typedef struct cla char classid11; int count; students stMAX; struct cla *next; CLASS;3,存储学生信息函数伪代码:void save(CLASS *a)if(fp=fopen(class_list.txt,w)=NULL)printf(cannot open filen);while(a!=NULL)if(fwrite(a,sizeof(CLASS),1,fp)!=1) printf(file write errorn);a=a-next;fclose(fp);4,输出学校班级信息函数伪代码:void display(CLASS *a) CLASS *b; b=a; int i=1;if(b=NULL) cout无信息endl;while(b!=NULLcouti. 班级号classid 班级人数countnext; i+;五, 源代码 #include stdio.h#include malloc.h#include iostream.h#include string.h#define MAX 50typedef struct /学生信息结构类型定义char name20; /姓名char id11; /学号int age; /年龄char address20;/住宿char tel15;/电话students;typedef struct cla /班级信息结构类型定义char classid11; /班级编号int count; /班级总人数students stMAX; /班级成员信息struct cla *next; /定义一个指向下一个班级的指针变量nextCLASS;FILE *fp;FILE *fq; int i=0;void save(CLASS *a) /存储学生信息函数if(fp=fopen(class_list.txt,w)=NULL)printf(cannot open filen);while(a!=NULL)if(fwrite(a,sizeof(CLASS),1,fp)!=1)printf(file write errorn);a=a-next;fclose(fp);CLASS *read() /读信息函数int flag=1;if(fp=fopen(class_list.txt,r)=NULL)printf(未读n);flag=0;CLASS *p,*head=NULL;while(flag)p=NULL;p=(CLASS*)malloc(sizeof(CLASS);if(fread(p,sizeof(CLASS),1,fp)!=1)printf(已读n);flag=0;if(flag=1)p-next=head;head=p;return head;CLASS *inclass(CLASS *a) /插入学生信息函数CLASS *b;b=(CLASS*)malloc(sizeof(CLASS);cout班级编号和班级人数b-classidb-count;for(i=0;icount;i+)cout学号 姓名 年龄 宿舍 电话 b-sti.ageb-sti.addressb-sti.tel;b-next=a;save(b);return b;CLASS* del1(CLASS *a) /删除班级信息函数CLASS *p,*q;int flag=1;p=a;q=p-next;char id11;coutid;while(q!=NULL)if(strcmp(id,q-classid)=0)p-next=q-next;free(q);q=p-next;cout删除该班级成功next;q=p-next;if(strcmp(id,a-classid)=0)p=a;a=p-next;free(p);cout删除该班级成功endl;flag=0;save(a);if(flag)cout该班级不存在,删除失败endl;return a;void display(CLASS *a) /输出学校班级信息函数CLASS *b;b=a;int i=1;if(b=NULL)cout无信息endl;while(b!=NULL)couti. 班级号classid 班级人数countnext;i+;void del2(CLASS *a) /按学号删除学生信息函数char id11;int i;if(a=NULL) cout班级不存在endl;elsecout学号id;for(i=0;icount;i+)if(strcmp(id,a-sti.id)=0)for(i;icount;i+)a-sti=a-sti+1;a-count-;cout删除学生成功endl;CLASS* cx(CLASS *a) /根据班级编号返回班级信息函数CLASS *b=NULL;char id11;coutt请输入班级编号id;while(a!=NULL)if(strcmp(id,a-classid)=0)b=a;break;a=a-next;return b;void chaxun(CLASS *a) /查询函数int ch;char id11;int i,flag=1;cout1,查询学校班级信息endl;cout2,查询某班级学生信息ch;switch(ch)case 1:display(a);break;case 2:coutt输入班级编号id;while(a!=NULL)if(strcmp(id,a-classid)=0)cout序号,学号,姓名,年龄,宿舍,电话endl;for(i=0;icount;i+)couti+1. ;coutsti.id ; ;coutsti.age ;coutsti.address ;coutsti.telnext;if(flag)cout未找到endl;break;CLASS* del(CLASS *a) /删除信息函数int ch;CLASS *b;coutt1-删除班级endl;coutt2-删除某班级学生ch;switch(ch)case 1:a=del1(a);break;case 2:b=cx(a);del2(b);break;return a;void edit(CLASS *a) /修改某班级信息函数CLASS *b;b=cx(a);int ch;cout1,全部修改endl;cout2,增加一位学生ch;switch(ch)case 1:cout班级编号、班级人数b-classidb-count;for(i=0;icount;i+)cout学号 姓名 年龄 宿舍 电话 b-sti.ageb-sti.addressb-sti.tel;break;case 2:cout学号 姓名 年龄 宿舍 电话 b-stb-count.ageb-stb-count.addressb-stb-count.tel;b-count+;break;void main() /主函数int ch;CLASS *m=NULL,*b;m=read();docout1,插入班级信息和改班级学生信息endl;cout2,查询学校班级或某班学生信息endl;cout3,删除班级信息或某班学生信息endl;cout4,修改班级信息endl;cout5,退出ch;switch(ch)case 1:m=inclass(m);break;case 2:chaxun(m);break;case 3:m=del(m);break;case 4

温馨提示

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

评论

0/150

提交评论