数据结构课程设计(含代码)

合集下载

表达式求值源代码(数据结构课程设计)

表达式求值源代码(数据结构课程设计)

表达式求值源代码(数据结构课程设计)表达式求值源代码(数据结构课程设计) 数据结构课程设计源代码:表达式求值0900340131 张宁2011.6.26 #include #include /*函数功能:将数字字符串转变成相应的数*/ /*函数参数:char类型数组f,指向int类型变量的指针i*/ /*函数返回值:int类型。

返回数字字符串对应的数*/ int readnumber(char f[],int *i) { int x=0; while(f[*i]>= 0 } opst[top]=e[i]; top++; /*当前元素进栈*/ } i++; /*处理下一个元素*/ } while(top) /*栈中还有的全部运算符赋值到数组f中,包括# */ { f[j++]=opst[--top]; } } main() { int i=0,result,flog=0,flog2=0; char a[100],b[100],x,w; /*数组a用来保存中缀表达式,数组b用来表达后缀表达式,*/printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~\n“); printf(“ 0代表退出系统\n“); printf(“ 1代表输入算术表达式\n“); printf(“ 2代表判断输入的算术表达式的正确性\n“); printf(“ 3代表查看算术表达式的中缀表达式\n“); printf(“ 4代表查看算术表达式的后缀表达式\n“); printf(“ 5代表给出输入的算术表达式的最终结果\n“); printf(“ 规定:第一步必须先输入算术表达式,然后才能进行其他的操作\n“);printf(“~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~\n“); printf(“版权所有,盗版必究张宁2010/6/24 \n\n\n“); do { printf(“请输入您要操作所对应的数字:“); fflush(stdin); scanf(“%c“, if(48(以#号结尾!) “); i=0; do { scanf(“%c“, }while(a[i++]!= # ); flog=1;printf(“\n\n\n“); break; } else { printf(“请输入正确的选项!\n“); } }while(w!= n } else { printf(“请输入算术表达式:(以#号结尾!) “); do { scanf(“%c“, }while(a[i++]!= # ); flog=1; printf(“\n\n\n“); } break; case 2 : if(flog==0) { printf(“您还没有输入过表达式!\n请您按照规定先输入后判断!\n\n\n“); } else { flog2=1; if(judge(a)) { printf(“表达式符合要求!\n您可以继续下面的操作!\n“); } else { printf(“表达式不符合要求!\n请重新输入!\n“); break; } } break; case 3 : if(flog==0) { printf(“您还没有输入过表达式!\n请您按照规定先输入后算术表达式的中缀表达式\n\n\n“); break; } else if(flog2==0) { printf(“您还没有判断表达式的正确性!\n请您按照规定先判断表达式的正确性后查看算术表达式的中缀表达式\n\n\n“); break; } else { printf(“中缀表达式为:“); i=0; do { printf(“%c“,a[i]); }while(a[i++]!= # ); /*i++;*/printf(“\n\n\n“); } break; case 4 : if(flog==0) { printf(“您还没有输入过表达式!\n请您按照规定先输入后算术表达式的中缀表达式\n\n\n“); break; } else if(flog2==0) { printf(“您还没有判断表达式的正确性!\n请您按照规定先判断表达式的正确性后查看算术表达式的中缀表达式\n\n\n“); break; } else { postfix(a,b); printf(“后缀表达式为:\n“); i=0; do { printf(“%c“,b[i]); }while(b[i++]!= # ); /*i++;*/ printf(“\n\n\n“); } break; case 5 : fflush(stdin); if(f log==0) { printf(“您还没有输入过表达式!\n请您按照规定先输入表达式\n\n\n“); break; } else if(flog2==0) { printf(“您还没有判断表达式的正确性!\n请您按照规定先判断表达式的正确性后查看算术表达式的中缀表达式\n\n\n“); break; } else { /*postfix(a,b);*/ result=evalpost(b); printf(“运算结果为:“); for(i=0;a[i]!= # ;i++) { printf(“%c“,a[i]); } printf(“=%d\n\n\n“,result); } break; } } else { printf(“没有此项操作,请重新输入!\n\n\n“); } }while(x!= 0 ); printf(“\n您已退出系统!\n欢迎下次使用\n“); }。

数据结构课设报告规范 数据结构课设 Python课程设计 源代码 实验报告 源码 世界杯查询系统

数据结构课设报告规范  数据结构课设 Python课程设计 源代码 实验报告 源码 世界杯查询系统
top=NULL;
Ssize=0;
}
~lnkStack(){
clear();
}
void clear(){
while(top!=NULL){
Link<T> *tmp=top;
top=top->next;
delete tmp;
}
Ssize=0;
}
bool SisEmpty(){
if(Ssize==0)
return true;
世界杯查询系统
一.【需求分析】
1.输入
1.1.1输入来自3个文本文件.
1.1.2c.txt用于输出比赛的详细信息,如两队的队名,比分,进球球员姓名,进球时间等。
1.1.3file.txt用于输出对阵时间表。
1.1.4射手榜存档.txt用于存放进球球员的信息(姓名,国籍,进球数初始均设为1)。
2.输出
{
// TODO: Add your control notification handler code here
int point1;//比赛国家1比分
int point2;//比赛国家2比分
lnkList<xinxi> jinqiu;//比赛详细比分存入队列名为jinjiu,类定义为xinxi的队列中
};
2.1.2信息类
class xinxi{
public:
string time;
string country;
按下“某场比赛”则会在下方编辑框显示该场比赛的详细信息。
按下“射手榜”则会在下方编辑框显示该届世界杯结束后的射手榜。
按下“退出系统”则会清空编辑框以便下次输入。
二【数据结构设计】

c++数据结构课程设计代码

c++数据结构课程设计代码

c++数据结构课程设计代码以下是一个简单的C++数据结构课程设计示例,它实现了一个基本的链表数据结构:cpp.#include <iostream>。

// 定义链表节点结构。

struct Node {。

int data;Node next;};// 链表类。

class LinkedList {。

private:Node head; // 头节点指针。

public:// 构造函数。

LinkedList() {。

head = nullptr;}。

// 插入节点到链表头部。

void insert(int value) {。

Node newNode = new Node;newNode->data = value;newNode->next = head;head = newNode;}。

// 删除节点。

void remove(int value) {。

Node currNode = head;Node prevNode = nullptr;while (currNode != nullptr && currNode->data != value) {。

prevNode = currNode;currNode = currNode->next;}。

if (currNode == nullptr) {。

std::cout << "节点不存在" << std::endl; return;}。

if (prevNode == nullptr) {。

head = currNode->next;} else {。

prevNode->next = currNode->next;}。

delete currNode;}。

// 打印链表。

void print() {。

Node currNode = head;while (currNode != nullptr) {。

数据结构课程设计报告含代码完整版

数据结构课程设计报告含代码完整版

数据结构课程设计报告含代码HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】西安邮电学院数据结构课程设计报告题目:校园导航系统院系名称:计算机学院专业名称:计算机科学与技术班级:学生姓名:学号(8位):指导教师:设计起止时间:2011年12月11日~2011年12月15日一. 设计目的1.通过本次课程设计巩固《数据结构》中所学的内容;2.提高自己上机编程以及调试能力。

二. 设计内容1.设计所在学校的校园平面图,所含景点不少于10个。

以图中顶点表示校园内各景点,存放景点名称、代号、简介等信息;以边表示路径,存放路径长度等相关信息。

2.为来访客人提供图中任意景点相关信息的查询。

3.为来访客人提供图中任意景点的问路查询,即查询任意两个景点之间的一条最短的简单路径。

三.概要设计1.功能模块图;2.各个模块详细的功能描述。

1. 可以手动创建一个校园图。

2. 可以直接从文件读取校园各个景点的信息。

3. 可选择从任意个景点作为起点进行遍历。

4. 输入景点序号查询该景点相关信息。

5. 输入两个景点查询两个景点的最短,最佳及其所有的路径。

6. 将校园图信息保存入文件。

四.详细设计1.功能函数的调用关系图2.各功能函数的数据流程图1. Adjmatrix *g即结构体对象在main()中被创建在其他子函数中进行参数传递。

2. 全局变量visited数组中用。

3. 全局变量shorest[][],path[][]在floyd()中被赋值来分别记录v[i]-v[j]最短路径和 v[i]-v[j]所经过景点。

3.重点设计及编码两景点最短距离弗洛伊德算法void floyd(adjmatrix *g){int i,j,k;for(i=0;i<g->vexnum;i++)for(j=0;j<g->vexnum;j++)shortest[i][j]=0;for(i=0;i<g->vexnum;i++)for(j=0;j<g->vexnum;j++){shortest[i][j]=g->arcs[i][j].adj;path[i][j]=0;}for(i=0;i<g->vexnum;i++)for(j=0;j<g->vexnum;j++)for(k=0;k<g->vexnum;k++)if(shortest[i][j]>(shortest[i][k]+shortest[k][j])){shortest[i][j]=shortest[i][k]+shortest[k][j];path[i][j]=k;path[j][i]=k;}}五.测试数据及运行结果1.正常测试数据和运行结果要求提供3组正常测试数据和运行结果2(遍历功能)1(起始景点序号)1 校门呈长方形,校训:爱国、求实、奋进2 喷泉呈鸽子形状,喷射出水花3 教学楼传授知识和学习知识4 实验楼供学生进行课程实验和教师办公5 洗浴中心供学生洗澡,内设单人间和双人间6 美食广场仅一层,快餐味道不错7 图书馆共七层,存储大量书籍供学生查阅和学习8 旭日苑共三层,主要的就餐场所9 体育馆内设篮球场,羽毛球场和观看席10 宿舍休息的场所5(查询景点信息)2(景点序号)2 喷泉呈鸽子形状,喷射出水花6(查询两景点最短路径)1 9(两景点序号)1->2->7->91->9 最短距离:570米2.异常测试数据及运行结果要求提供2组异常测试数据和运行结果9无此功能模块请重新输入5(功能模块)11(景点序号)无此景点请重新输入六.调试情况,设计技巧及体会1.改进方案1. 可将景点文件,边文件及账户密码合并为一个文件。

数据结构课程设计-航班查询与检索(含代码、流程图、输出结果)

数据结构课程设计-航班查询与检索(含代码、流程图、输出结果)

算法与数据结构实验报告航班查询与检索题目:航班查询与检索指导老师:组长:成员:一:航班信息的查询与检索按时间查询:按站点查询:二分法查询:二:算法分析:程序主要采用结构体链表顺序表队列主要算法:/*航班信息的查询与检索*/三:/*航班信息的查询与检索*/#include<>#include<>#include<>#define N 6 =NULL; queue[i].e=NULL; ==NULL) queue[k].f=p; ->next=p; =p; p=p->next;}i=0;while(queue[i].f==NULL) i++; ; head=queue[i].f; !=NULL){ p->next=queue[i].f; p=queue[i].e; } light_number;cout<<" "<<F[i].start_time;cout<<" "<<F[i].arrived_time;cout<<" "<<F[i].start_address;cout<<" "<<F[i].arrived_address;cout<<" "<<F[i].work_date;cout<<" "<<F[i].FlightType;cout<<" "<<F[i].fare<<"元"<<endl;}light_number,p->;strcpy(F[i].start_time,p->;strcpy(F[i].arrived_time,p->;strcpy(F[i].start_address,p->;strcpy(F[i].arrived_address,p->;strcpy(F[i].work_date,p->;strcpy(F[i].FlightType,p->;F[i].fare=p->;p=p->next;}}show the mainmenu (显示主菜单)\n"<<endl;cout<<" 1. Find by flight number(按航班号查询)\n"<<endl;cout<<" 2. Find by start time(按起飞时间查询)\n"<<endl;cout<<" 3. Find by arrived time(按到达时间查询)\n"<<endl;cout<<" 4. Find by start address(按起飞地点查询)\n"<<endl;cout<<" 5. Find by arrived address(按目的地点查询)\n"<<endl;cout<<" 6. Find by the fare(按票价范围查询)\n"<<endl;cout<<" ----其他键退出"<<endl;cout<<" ===========================================================\n"<<endl;while(1){cout<<"请输入服务命令:";cin>>y;switch(y){case 0: mainmenu();break;case 1:F_By_FN(Flight);break;case 2:F_By_Time(Flight,1);break;case 3:F_By_Time(Flight,2);break;case 4:F_By_Address(Flight,1);break;case 5:F_By_Address(Flight,2);break;case 6:F_By_fare(Flight);break;default :cout<<" 谢谢惠顾!"<<endl;break;}cout<<"是否退出(Y/N):";cin>>ch;if(ch=='Y'||ch=='y') break;}}light_number)==0) {Cout_info2_2(F,mid);break;}else if(strcmp(Num,F[mid].flight_number)<0) high=mid-1;else low=mid+1;}cout<<" *************对不起,没有您要查找的航班号********** "<<endl; }tart_time)==0) Cout_info2_2(F,i);}if(Time==2) rrived_time)==0) Cout_info2_2(F,i);}}cout<<" *******对不起,该时间没有航班******* "<<endl;}tart_address)==0) Cout_info2_2(F,i);}if(AD==2) rrived_address)==0) Cout_info2_2(F,i);}}cout<<" ********对不起,该站点不存在******** "<<endl;}are && T2>=F[i].fare) Cout_info2_2(F,i);}cout<<" *******对不起,没有适合您的航班,请修改您的票价范围********" <<endl;}ext=&element[i+1];element[10].next=NULL;radixSort(&p, D, R);我们对链表、队列、结构体的应用更娴熟,为我们更好的了解课本内容,改进不足提供了件。

数据结构课程设计报告模板(内附C代码)

数据结构课程设计报告模板(内附C代码)

数据结构课程设计报告学院专业:软件工程班级:学号:学生姓名:指导老师:彭伟民日期: 2016.01.01目录1猴子吃桃子问题 (3)1.1 需求分析 (3)1.2 程序设计思想 (3)1.3 程序源代码 (3)1.4 程序运行结果 (5)2进制数转化问题 (5)2.1 需求分析 (5)2.2 程序设计思想 (6)2.3 程序源代码 (6)2.4 程序运行结果 (7)3长整数运算 (8)3.1 需求分析 (8)3.2 程序设计思想 (8)3.3 程序源代码 (8)3.4 程序运行结果 (12)4学生成绩管理系统 (13)4.1 需求分析 (13)4.2 程序设计思想 (13)4.3 程序源代码 (14)4.4 程序运行结果 (20)5哈夫曼编码应用 (22)5.1 需求分析 (22)5.2 程序设计思想 (22)5.3 程序源代码 (23)5.4 程序运行结果 (24)6学校超市选址问题 (26)6.1 需求分析 (26)6.2 程序设计思想 (26)6.3 程序源代码 (26)6.4 程序运行结果 (30)7学生成绩管理系统 (30)7.1 需求分析 (30)7.2 程序设计思想 (30)7.3 程序源代码 (30)7.4 程序运行结果 (36)8排序综合 (37)8.1 需求分析 (37)8.2 程序设计思想 (38)8.3 程序源代码 (38)8.4 程序运行结果 (46)9课程设计总结 (47)1猴子吃桃子问题1.1需求分析有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。

用多种方法实现求出原来这群猴子共摘了多少个桃子。

1.2程序设计思想已知第十天只余下1个桃子,第一天开始每天都吃当前桃子一半再多一个,那么就只需要从第十天开始倒推即可,用链表、数组、递推、常规方法都可以采用这种思路实现计算第一天桃子数量。

1.3程序源代码#include<iostream>using namespace std;//有一群猴子摘了一堆桃子,他们每天都吃当前桃子的一半且再多吃一个,到了第10天就只余下一个桃子。

数据结构课程设计代码

数据结构课程设计代码

数据结构课程设计代码根据提供的输入输出需求,下面是一个示例的数据结构课程设计代码。

```pythonclass Node:def __init__(self, data):self.data = dataself.next = Noneclass LinkedList:def __init__(self):self.head = Nonedef add(self, data):new_node = Node(data)if self.head is None:self.head = new_nodeelse:current = self.headwhile current.next is not None:current = current.nextcurrent.next = new_nodedef remove(self, data):current = self.headprev = Nonewhile current is not None:if current.data == data:if prev is None:self.head = current.next else:prev.next = current.next returnprev = currentcurrent = current.nextdef display(self):current = self.headwhile current is not None:print(current.data, end=" ")current = current.nextprint()if __name__ == "__main__":linked_list = LinkedList()while True:print("1. Add element")print("2. Remove element")print("3. Display elements")print("4. Quit")choice = input("Enter your choice: ")if choice == "1":data = input("Enter element to add: ")linked_list.add(data)elif choice == "2":data = input("Enter element to remove: ")linked_list.remove(data)elif choice == "3":linked_list.display()elif choice == "4":breakelse:print("Invalid choice")```这个代码示例实现了一个简单的链表数据结构,在命令行中提供了添加元素、删除元素和显示元素的选项。

数据结构课程设计python

数据结构课程设计python

数据结构课程设计python一、课程目标知识目标:1. 理解数据结构的基本概念,掌握常用数据结构如列表、元组、字典和集合的特点及应用场景。

2. 学习并掌握栈和队列的操作原理及其在Python中的实现方法。

3. 掌握树和图的基本概念,了解二叉树、遍历算法及图的表示方法。

技能目标:1. 能够运用Python语言实现基本数据结构,并对其进行增、删、改、查等操作。

2. 能够利用栈和队列解决实际问题,如递归、函数调用栈、任务调度等。

3. 能够运用树和图解决实际问题,如查找算法、路径规划等。

情感态度价值观目标:1. 培养学生严谨的逻辑思维,提高分析问题和解决问题的能力。

2. 激发学生对数据结构和算法的兴趣,培养良好的编程习惯。

3. 引导学生认识到数据结构在实际应用中的重要性,增强学习热情和责任感。

课程性质:本课程为高年级数据结构课程,旨在使学生掌握Python语言实现数据结构的方法,提高编程能力和解决问题的能力。

学生特点:学生具备一定的Python编程基础,具有较强的逻辑思维能力,对数据结构有一定的了解。

教学要求:结合实际案例,采用任务驱动法,引导学生通过实践掌握数据结构的基本原理和应用方法。

注重培养学生的动手能力和团队协作精神,提高学生的综合素质。

通过本课程的学习,使学生能够具备独立设计和实现小型项目的能力。

二、教学内容1. 数据结构基本概念:介绍数据结构的概念、作用和分类,结合Python语言特点,分析各类数据结构在实际应用中的优势。

- 列表、元组、字典和集合的原理与应用- 栈与队列的操作原理及实现2. 线性表:讲解线性表的概念,重点掌握顺序表和链表的操作方法。

- 顺序表和链表的实现及操作- 线性表的查找和排序算法3. 树与二叉树:介绍树的基本概念,重点讲解二叉树的结构及其遍历算法。

- 树的基本概念和表示方法- 二叉树的性质、存储结构、遍历方法4. 图:讲解图的基本概念,掌握图的存储结构及遍历方法。

- 图的基本概念和表示方法- 图的遍历算法(深度优先搜索、广度优先搜索)- 最短路径和最小生成树算法5. 算法分析与设计:结合实例,分析算法性能,掌握基本的算法设计方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)。
三、系统设计流程图
1、设计的总体框图
2、主函数流程图
实现对一级菜单:学生成绩录入、学生成绩排序、删除学生成绩、增加学生成绩、学生成绩查询、学生成绩统计、学生成绩修改、学生成绩显示、退出功能的控制,分别调用各个子函数;完成整个学生成绩管理系统。程序流程图如下图所示:
case 4:
case 5:head=sort_1(head,choose);break;
case 0:return head;
default: printf("\n\n您的输入有误!请重新输入:\n\n");break;
}
}
}
//按各科成绩排序
Student *sort_1(Student *head,int choose)
虽然该程序还是存在着一些不足的地方,但基本达到了我预想的效果。
五、参考文献
[1]唐国民,王国钧.数据结构(C语言版)[M].北京:清华大学出版社
[2]顾治华,陈天煌.C语言程序设计[M].北京:机械工业出版社
[3]谭浩强.C程序设计教程[M].北京:清华大学出版社
附录
1、程序代码:
#include <stdio.h>
printfLeabharlann "\n\n");return head;
}
//学生成绩排序
Student *sort_all(Student *head)
{
int choose;
for(;;)
{
printf("\n\t\t# # # # #学生成绩统计排序# # # #\n");
printf("\t\t#\t1.按学生学号排序\t #\n");
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#define LEN sizeof(Student)
typedef struct student
{
int num;
char name[20];
int yuwen;
int shuxue;
{
Student *p1,*p2=head->next,*pm,*px;
Student mid;
if (!p2) return head;
for(p1=p2;p1->next!=NULL;p1=p1->next)
{
pm=p1;
for(p2=p1->next;p2!=NULL;p2=p2->next)
10、统计学生成绩信息流程图
完成此项操作,首先通过键盘输入选择要统计的内容,若输入的不是程序提供的选项则输出“做出了错误的选择”,作为放弃执行统计学生成绩的程序操作;若输入的是程序提供的选项,则进行查找筛选后,输出筛选结果,然后统计学生程序的操作执行结束。流程图如下图所示:
11、显示学生成绩信息流程图
数据结构课程设计说明书
题目:学生成绩管理系统
学生姓名
系别
班级
指导老师
成绩
指导教师(签字)
广西大学数信学院
2012年01月03日
一、
随着现代科技的发展,计算机技术得到广泛的推广,伴随的人们生活水平的提高,计算机已经走入了寻常百姓家。计算机的发展得益于C语言等计算机语言的发展,运用计算机语言,我们可以实现各种各样的功能。就我们现在所学的知识而言,我们也可以运用C语言实现一些简单的管理系统,如:学生成绩管理系统、图书管理系统、通讯录等。
Student *print_all(Student *head);
Student *sort_all(Student *head);
void find(Student *head);
Student *add_new(Student *head);
Student *del(Student *head);
Student *xiugai(Student *head);
Student *tongji(Student *head);
//输入学生信息
Student *cin()
{
int flag;
Student *head,*p1,*p2;
n=0;
head=(Student *)malloc(LEN);
p2=head;
完成此项操作,首先通过键盘输入选择要显示的方式,输入1则输出学生成绩一览表,可直观地看到学生的具体成绩情况,然后返回可供选择的显示方式;输入2则输出各科的最高分、最低分及平均分,可深入地了解各科的考试情况,然后返回可供选择的显示方式;输入其他字符,返回可供选择的显示方式;输入0表示结束执行显示学生成绩程序的操作。流程图如下图所示:
四、总结
本程序主要是运用链表、及指针数组的综合应用来实现的,能够实现对学生成绩的键盘输入、排序、删除、增加、查询、统计、修改、显示、退出等功能。
经过一段时间的课程设计,通过对程序的不断调整、修改,发现了平时很多没有注意到的问题,巩固了数据结构的知识,提高了运用课本所学知识的运用能力,培养了独立思考,解决问题的能力。在编写和修改程序的过程中,遇到了很多困难,由于本程序很长,修改起来很困难,我运用了老师教的各个函数分开运行,及时发现该函数运行时存在的问题,通过问老师、同学、查阅有关资料,最终成功地完成了此次课程设计。通过这次的课程设计,我也总结出了一点小经验,如:1、做课程设计,首先得对整个系统的功能要求做出分析,得出各个功能应运用的方法是什么;2、针对各个功能,独立地分解出各个模块,然后逐个解决;3、在设计各个功能模块之前,可构想出总界面的显示情况,再针对自己列出的界面进行程序的编写。
….. .... …
请编写一个系统,实现学生信息管理。
2、基本要求
功能要求:
(1)信息维护:
要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息
(2)信息查询:
要求:查询时可实现按姓名查询、按学号查询
(3)成绩统计:
要求:输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。
8、查找学生成绩信息流程图
完成此项操作,首先通过键盘输入选择要查询的方式,如输入1表示按学号查询,输入2表示按姓名查询,输入0或其他字符表示结束此项操作。流程图如下图所示:
9、插入学生成绩信息流程图
为完善成绩表的功能,在不改变已存的成绩表内容的前提下,程序从内存中另外开辟空间进行对成绩表的补充,实现增加功能,最后输出添加后的成绩表;该插入程序执行结束。函数流程图如下图所示:
int yingyu;
int sum;
struct student *next;
}Student;
int n;
Student *cin(void);
Student *sort_1(Student *head,int);
void print_1(Student *head);
void print_2(Student *head);
相比较顺序结构,链表比较方便插入和删除操作。
线性表的链式存储表示的特点是用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。因此,为了表示每个数据元素与其直接后继数据元素之间的逻辑关系,对数据元素来说,除了存储其本身的信息之外,还需存储一个指示其直接后继的信息(即直接后继的存储位置)。由这两部分信息组成一个"结点",表示线性表中一个数据元素。其中保存结点中的数据信息的域称作数据域(设域名为data),保存地址信息的域称为指针域(设域名为next)。指针域中存储的信息又称作指针或链。[1]
printf("\n请输入第%d名学生的学号,学号为0表示结束输入:",n+1);
scanf("%d",&flag);
while(getchar()!='\n');
for(;flag;)
{
n++;
p1=(Student *)malloc(LEN);
p1->num=flag;
printf("请输入第%d名学生的姓名:",n);
在实现成绩管理的功能上使用的是线性表的方式,使得程序易懂,条理比较清晰,模块化显著。
二、问题描述及基本要求
1、问题描述
现有学生成绩信息,内容如下
姓名学号语文数学英语
张明明01 67 78 82
李成友02 78 91 88
张辉灿03 68 82 56
王露04 56 45 77
陈东明05 67 38 47
此次课程设计,是运用数据结构说学的知识制作一个成绩管理系统,主要包括信息的维护,信息的查找以及成绩统计,实现创建成绩表、显示成绩表、修改成绩表、添加、查找、删除、排序、增加等功能。主要实现方式用的是链表[1],下面对链表进行一下简单的介绍:
链表是一种动态的进行存储分配的数据结构,它既不需要事先确定最大长度,在插入或者删除一个元素时也不会引起数据的大量移动。链表有一个“头”,一个“尾”。中间有若干元素,每个元素称为一个结点。每个结点包括两部分:一部分是用户关心的实际数据,称为数据域;另一部分是下一个结点的地址,称为指针域。一般用head作为头指针,它指向链表的第一个结点;最后一个结点称为“表尾”,该结点的指针域值为0,指向内存中编号为0的地址(常用符号常量NULL表示,称为空地址),表尾不再有后继结点,链表到此结束。[1]
6、排序学生成绩信息流程图
相关文档
最新文档