1、1) 程序设计要求:采用交互工作方式,设计功能菜单;建立数据文件,数据包含学生的自然信息和成绩信息(设计几门课以及总成绩);对如下关键字:姓名、学号、各科成绩进行排序(冒泡、选择、插入排序等任选一种)。2) 用二分查找实现如下查询:按姓名查询 按学号查询 3) 用堆排序找出总成绩排名的前5名学生4) 输出任一查询结果(可以连续操作)4设计过程1.算法思想分析根据设计要求,首先定义三个数组,分别存放学号、姓名、成绩.typedef struct stud 统测试1.菜单 用户运行程序后,显示如下所示菜单,用户根据菜单提示进行操作(如图)。图 2.批量添加用户选择批量添加学生信息功能进行批量添加,
2、可连续添加,按 0 结束添加操作(如图 )。3.按学号查找学生 将学生信息录入之后,若想查找某个学生,用户可选择按学号查找学生信息(图)。4.按姓名查找学生将学生信息录入之后,若想查找某个学生,用户可选择按姓名查找学生信息(图)。5.添加信息用户可以在批量添加后在单个添加学生信息(图)。6.按学号删除学生信息用户可根据情况对已添加的学生信息进行删除,通过学号删除(图)。7.排序输出程序可以将已添加的学生按照成绩的降序排列输出(图).8.退出 操作结束后按 0 退出程序(图)。5设计总结通过一周的课程设计,我从中受益匪浅,使得我对数据结构这门课有了更深一步的认识。在设计过程中,我们发现问题,解决
3、问题,一同探讨问题,在老师的帮助下把问题一一解决。在解决问题的过程中得到了成长,在与同学的合作过程中,我获益良多,提高了自己的团队合作能力和实际动手能力,在亲自动手的同时提升自己,锻炼自己。通过这次设计,我深深的感受到了做系统是一件十分复杂周密的事情,不能有半点的疏忽,需要一个人有周密的思考能力,分析问题、处理问题的能力,还要有足够的耐心。参考文献数据结构程序设计题典 李春葆等编 清华大学出版社数据结构(C语言版) 黄国瑜 叶乃菁编 清华大学出版社数据结构课程设计 苏仕华 等编 机械工业出版社附录:源代码#include typedef struct stud ;getchar();break
4、;case 3: ;4560 批 量 添 加 学 生 信 息 );printf( 2. 按 学 号 查 找 学 生 信 息 *n* 3. 按 姓 名 查 学 生 信 息 4. 按 学 号 删 除 学 生 信 息 *n* 5. 录 入 新 的 学 生 信 息 6. 按 分 数 降 序 排 序 输 出 *n -0. 返 回-n * n void read(void) long a;请输入学号:scanf(%ld,&a);while(a0) inser(a);void inser(long b) Node *last,*current,*p;current=head;while(current!=N
5、ULL&bcurrent-last=current;current=current-next;if(current=NULL|b=b;%s%f,p-;next=NULL;if(current=head) next=head;head=p;else next=current;last-next=p;else if(b=current-error input a different number:void print() Node *p=head;n学号 姓名 成绩:nwhile(p!=NULL) %ld %s %fnp=p-void find(long b) b!=p-if(!p) printf
6、(No foundnelse n学号 姓名 成绩nvoid searchname(char *s) int flag=0;=NULL) if(strcmp(p-,s)=0) flag=1;continue;else p=p-flag) printf(没有找到相关信息Node * del(long n) Node *p=head,*last;while(p-!=n) last=p;if(p=NULL) return p;else if(p=head) head=p-else last-next=p-return head;void sort(int flag) Node *p1,*p2,*k;float t1;long t2;char s20;for(p1=head;p1-p1=p1-next) k=p1;for(p2=p1-p2;p2=p2-if(flag=1&k-|!flag&k=p2;if(k!=p1) t1=p1-=k-=t1;t2=p1-=t2;strcpy(s,p1-strcpy(p1-,k-strcpy(k-,s);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1