数据结构实验学生信息管理程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一,实验题目
实验十二其他综合实验
学生信息管理程序:用计算机来管理一个学校的各个班级成员的各种信息,实现学生信息管理。
基本要求: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 name[20]; char id[11]; i nt age; char address[20]; char tel[15];
}students;
2,班级信息结构类型定义:
typedef struct cla {
char classid[11]; int count; students st[MAX]; struct cla *next;
}CLASS;
3,存储学生信息函数伪代码:
void save(CLASS *a){
if((fp=fopen("","w"))==NULL){printf("cannot open file\n");}
while(a!=NULL){
if(fwrite(a,sizeof(CLASS),1,fp)!=1) printf("file write error\n");a=a->next;}
fclose(fp);}
4,输出学校班级信息函数伪代码:
void display(CLASS *a) {
CLASS *b; b=a; int i=1;
if(b==NULL) cout<<"无信息"< while(b!=NULL{ cout<classid<<" 班级人数"< b=b->next; i++;} } 五,源代码 #include "" #include "" #include "" #include "" #define MAX 50 typedef struct { d>>b->st[i].name>>b->st[i].age>>b->st[i].address>>b->st[i].tel;} b->next=a; save(b); return b;} CLASS* del1(CLASS *a) { 班级号"< b=b->next; i++;} } void del2(CLASS *a) { d)==0){ for(i;i a->st[i]=a->st[i+1]; a->count--; cout<<"删除学生成功"< } } } CLASS* cx(CLASS *a) { "; cout< cout< cout< cout< cout< flag=0;} a=a->next;} if(flag) cout<<"未找到"< break;} } CLASS* del(CLASS *a) { d>>b->st[i].name>>b->st[i].age>>b->st[i].address>>b->st[i].tel;} break; case 2: cout<<"学号姓名年龄宿舍电话"< cin>>b->st[b->count].id>>b->st[b->count].name>>b->st[b->count].age>>b->st[b->count].ad dress>>b->st[b->count].tel; b->count++; break;} } void main(){ //主函数 int ch; CLASS *m=NULL,*b; m=read(); do{ cout<<"1,插入班级信息和改班级学生信息"< cout<<"2,查询学校班级或某班学生信息"< cout<<"3,删除班级信息或某班学生信息"< cout<<"4,修改班级信息"< cout<<"5,退出"< cin>>ch; switch(ch){ case 1: m=inclass(m); break; case 2: chaxun(m); break; case 3: m=del(m); break; case 4: edit(m); break;} save(m); }while(ch!=5); } 六,调试分析 改程序所用到的函数较多,在调试的过程中每个函数都会出现相应的错误,但经过细心的调试分析,最后终于实现了该程序的功能。 七,使用手册 该程序是一个简单的学生信息管理系统,操作时根据界面菜单提示,进行插入班级信息和学生信息操作,查询学校的班级或某班学生信息,删除班级信息或某班学生信息,修改班级信息和退出着五个操作。 八,测试结果