文档库 最新最全的文档下载
当前位置:文档库 › 数据结构之学生成绩管理系统

数据结构之学生成绩管理系统

数据结构之学生成绩管理系统
数据结构之学生成绩管理系统

学生成绩管理系统

一、实验目的

1. 通过此次课程设计中学生成绩管理系统的题目,掌握链表等数据结构的基本操作方面的知识,并能灵活的解决一些基本的问题,加深对其性质及各项操作的理解;

2. 将所学数据结构方面的知识与一门具体的语言——C语言来进行实现,感受数据结构的强大作用,加深理解。

二、试验要求

管理系统中有五个要求:输入查找修改插入删除存储(1)输入要求:能够通过键盘输入和文件输入两种

(2)查找要求:能够根据学生号查找单个学生的信息,也可以遍历所有学生信息(3)修改要求:能够根据学生号修改单个学生所有信息

(4)插入要求:能够实现头插和尾插

(5)删除要求:能够根据学生号删除单个学生信息

(6)存储要求:通过链表存储所有信息

三、算法的思想与算法实现步骤

1. 基本思想

通过链表数据类型进行基本操作,主要有三个模块:分别是主函数模块、主要操作函数及基本操作函数。

其中,主函数负责其他子函数的调用实现以及基本界面的操作

主要函数包括:

void StuInput(Student *); //学生成绩管理系统的输入函数,由主函数调用

void StuSelect(Student *); //学生成绩管理系统的查找函数,由主函数调用

void StuAlter(Student *); //学生成绩管理系统的修改函数,由主函数调用

void StuInsert(Student *); //学生成绩管理系统的插入函数,由主函数调用

void StuDelect(Student *); //学生成绩管理系统的删除函数,由主函数调用

void StuSave(Student *); //学生成绩管理系统的存储函数,由主函数调用

基本操作函数:

void StuOutput(Student *p); //输出函数

int StuImport(Student *head,Student *p); //输入函数

void StuInputHand(Student *head); //学生成绩管理系统的手动输入函数,由输入函数调用

void StuInputFile(Student *head); //学生成绩管理系统的文件输入函数,由输入函数调用

void StuSelectErg(Student *head); //学生成绩管理系统的遍历函数,由查找函数调用

void StuSelectNumFind(Student *head); //学生成绩管理系统的按学号查找函数,由查找函数调用

void StuSelectSubFind(Student *head); //学生成绩管理系统的按科目查找函数,由查找函数调用

2. 实现步骤

首先,分析题目要求划分实现模块,定义基本数据类型,诸如结构体、链表等;

其次,针对上述的基本操作实现具体需要进行的操作,具体实现每个环节需要进行的基本操作,即具体编写每个小函数实现功能;

最后,编写主函数对每个实现进行按需调用,实现操作。

3.流程图

四.代码:

#include

#include

#include

struct Student

{

char name[10];

char subject[10];

int num;

int grade;

Student *next;

};

void StuMain(); //学生成绩管理系统的主函数,由main函数调用

void StuInput(Student *); //学生成绩管理系统的输入函数,由主函数调用void StuSelect(Student *); //学生成绩管理系统的查找函数,由主函数调用void StuAlter(Student *); //学生成绩管理系统的修改函数,由主函数调用void StuInsert(Student *); //学生成绩管理系统的插入函数,由主函数调用void StuDelect(Student *); //学生成绩管理系统的删除函数,由主函数调用void StuSave(Student *); //学生成绩管理系统的存储函数,由主函数调用

void StuOutput(Student *p); //输出函数

int StuImport(Student *head,Student *p); //输入函数

void StuOutput(Student *p) //打印函数,将链表的该节点信息输出

{

printf("学生姓名:");

printf("%s ",p->name);

printf("学生号:");

printf("%d ",p->num);

printf("科目:");

printf("%s ",p->subject);

printf("学生成绩:");

printf("%d \n",p->grade);

}

int StuImport(Student *head,Student *p)

{

Student *Opinion=(Student *)malloc(sizeof(Student)); //用来判断输入节点中学生号是否有重复

Opinion=head->next;

printf("学生姓名:\n");

scanf("%s",p->name);

printf("学生号:\n");

scanf("%d",&p->num);

printf("科目:\n");

scanf("%s",p->subject);

if(Opinion!=NULL)

{

if(Opinion->num==p->num&&!strcmp(Opinion->subject,p->subject))

{

printf("该学生这门科目已有成绩,请重新输入\n");

return 1;

}

Opinion=Opinion->next;

}

printf("学生成绩:\n");

scanf("%d",&p->grade);

return 0;

}

void main()

{

StuMain();

}

void StuMain()

{

char decide='y'; //定义while变量,函数是否继续进行

int num=1; //定义switch变量,函数跳转到哪个

子函数

Student *head; //定义链表的头指针

head=(Student *)malloc(sizeof(Student)); //给头指针开辟空间

head->next=NULL; //初始化头指针

while(decide!='n')

{

printf(" ***************************************************\n");

printf(" ********** 1 输入 2 查找 3 修改 4 插入********\n");

printf(" ********** 5 删除 6 存储7 退出********\n");

printf(" ***************************************************\n");

scanf("%d",&num);

switch(num)

{

case 1:

StuInput(head);

break;

case 2:

StuSelect(head);

break;

case 3:

StuAlter(head);

break;

case 4:

StuInsert(head);

break;

case 5:

StuDelect(head);

break;

case 6:

StuSave(head);

break;

default:

decide='n';

break;

}

};

}

void StuInputHand(Student *head); //学生成绩管理系统的手动输入函数,由输入函数调用void StuInputFile(Student *head); //学生成绩管理系统的文件输入函数,由输入函数调用

void StuInput(Student *head) //学生成绩管理系统的输入函数,由主函数调用

{

char decide='y'; //定义while变量,函数是否继续进行

int num; //定义switch变量,函数跳转到哪个子函数

while(decide!='n')

{

printf(" ***************************************************\n");

printf(" ** 1 手动输入 2 文件输入 3 退出**\n");

printf(" ***************************************************\n");

scanf("%d",&num);

switch(num)

{

case 1:

StuInputHand(head);

break;

case 2:

StuInputFile(head);

default:

decide='n';

break;

}

}

}

void StuInputHand(Student *head) //学生成绩管理系统的手动输入函数,由输入函数调用{

if(head->next==NULL)

{

Student *point=(Student *)malloc(sizeof(Student)); //链表中最后一个节点,只在该函数中存在

point->next=NULL;

int decide=1;

while(decide!=0)

{

Student *p=(Student *)malloc(sizeof(Student));

p->next=NULL;

StuImport(head,p);

if(head->next==NULL)

{

head->next=p;

point=p;

}

else

{

point->next=p;

point=p;

}

printf("是否继续:1/0\n");

scanf("%d",&decide);

}

}

else

printf("管理系统中已存在信息,若想输入学生信息,请转插入子系统");

}

void StuInputFile(Student *head) //学生成绩管理系统的文件输入函数,由输入函数调用{

if(head->next!=NULL)

{

printf("学生管理系统中已有信息,请跳转到插入选项\n");

return ;

}

FILE *fp;

printf("请输入文件名(包括物理地址)\n");

char filename[10];

scanf("%s",filename);

if((fp=fopen(filename,"r"))==NULL)

{

printf("can not open file\n");

return;

}

Student *point=(Student *)malloc(sizeof(Student));

Student *Opinion=(Student *)malloc(sizeof(Student)); //用来判断输入节点中学生号是否有重复

while(!feof(fp)) {

Opinion=head->next;

Student *p=(Student *)malloc(sizeof(Student));

p->next=NULL;

fread(p,sizeof(Student),1,fp);

if(Opinion!=NULL)

{

if(Opinion->num==p->num&&!strcmp(Opinion->subject,p->subject))

{

printf("该文件中有重复学生信息,请验明再传输\n");

head->next=NULL;

return ;

}

Opinion=Opinion->next;

}

if(head->next==NULL)

{

head->next=p;

point=p;

}

else

{

point->next=p;

point=p;

}

};

Opinion=head->next;

while(Opinion->next!=NULL)

{

Opinion=Opinion->next;

if(Opinion->next->next==NULL)

Opinion->next=NULL;

};

fclose(fp);

printf("传输成功\n");

}

void StuSelectErg(Student *head); //学生成绩管理系统的遍历函数,由查找函数调用void StuSelectNumFind(Student *head); //学生成绩管理系统的按学号查找函数,由查找函数调用

void StuSelectSubFind(Student *head); //学生成绩管理系统的按科目查找函数,由查找函数调用

void StuSelect(Student *head) //学生成绩管理系统的查找函数,由主函数调用

{

char decide='y'; //定义while变量,函数是否继续进行

int num; //定义switch变量,函数跳转到哪个子函数

while(decide!='n')

{

printf(" ***************************************************\n");

printf(" **** 1 遍历 2 学号查找 3 科目查找 4 退出****\n");

printf(" ***************************************************\n");

scanf("%d",&num);

switch(num)

{

case 1:

StuSelectErg(head);

break;

case 2:

StuSelectNumFind(head);

break;

case 3:

StuSelectSubFind(head);

break;

default:

decide='n';

break;

}

}

}

void StuSelectErg(Student *head) //学生成绩管理系统的遍历函数,由查找函数调用

{

Student *p=(Student *)malloc(sizeof(Student));

p=head->next;

int i=1;

while(p!=NULL)

{

printf("第%d位学生信息:\n",i);

StuOutput(p);

p=p->next;

i++;

}

}

void StuSelectNumFind(Student *head) //学生成绩管理系统的查找子系统,有查找函数调用{

int num;

printf("输入想要查找学生的学生号:\n");

scanf("%d",&num);

Student *p=(Student *)malloc(sizeof(Student));

p=head->next;

int i=1;

while(p!=NULL)

{

if(num==p->num)

{

StuOutput(p);

i++;

}

p=p->next;

}

if(i==1)

printf("没有该学生信息");

}

void StuSelectSubFind(Student *head) //学生成绩管理系统的按科目查找函数,由查找函数调用

{

char Sub[10];

printf("输入想要查找科目:\n");

scanf("%s",Sub);

Student *p=(Student *)malloc(sizeof(Student));

p=head->next;

int i=1;

while(p!=NULL)

{

if(!strcmp(Sub,p->subject))

{

StuOutput(p);

i++;

}

p=p->next;

}

if(i==1)

printf("没有该学生信息");

}

void StuAlter(Student *head) //学生成绩管理系统的修改函数,由主函数调用

{

int num;

printf("输入想要查找学生的学生号:\n");

scanf("%d",&num);

char Sub[10];

printf("输入想要查找科目:\n");

scanf("%s",Sub);

Student *p=(Student *)malloc(sizeof(Student));

p=head->next;

int i=1;

while(p!=NULL)

{

if(num==p->num&&!strcmp(Sub,p->subject))

{

printf("输入修改成绩:\n");

scanf("%d",&p->grade);

printf("修改成功\n");

i++;

}

p=p->next;

if(i==1)

printf("没有该学生信息");

}

}

void StuInsert(Student *head) //学生成绩管理系统的插入函数,由主函数调用

{

Student *point=(Student *)malloc(sizeof(Student));

point=head->next;

while(point->next!=NULL)

point=point->next; //找到尾结点

char decide='y'; //定义while变量,函数是否继续进行

int num; //定义switch变量,函数跳转到哪个子函数

while(decide!='n')

{

printf(" ***************************************************\n");

printf(" **** 1 头插 2 尾插 3 退出****\n");

printf(" ***************************************************\n");

scanf("%d",&num);

Student *p=(Student *)malloc(sizeof(Student));

switch(num)

{

case 1:

StuImport(head,p);

p->next=head->next;

head->next=p;

printf("插入成功\n");

break;

case 2:

StuImport(head,p);

point->next=p;

p->next=NULL;

printf("插入成功\n");

break;

default:

decide='n';

break;

}

}

}

void StuDelect(Student *head) //学生成绩管理系统的删除函数,由主函数调用

{

int num;

printf("输入想要删除学生的学生号:\n");

scanf("%d",&num);

char Sub[10];

printf("输入想要删除科目:\n");

scanf("%s",Sub);

Student *p=(Student *)malloc(sizeof(Student));

p->next=head->next;

int i=1;

while(p->next!=NULL)

{

if(num==p->next->num&&!strcmp(Sub,p->next->subject))

{

StuOutput(p->next);

printf("是否删除:1/0\n");

scanf("%d",&i);

if(num==head->next->num&&!strcmp(Sub,head->next->subject))

{

head->next=head->next->next;

}

else

{

p->next=p->next->next;

}

i=2;

printf("删除成功\n");

break;

}

p=p->next;

}

if(i==1)

printf("没有该学生信息\n");

}

void StuSave(Student *head) //学生成绩管理系统的存储函数,由主函数调用{

FILE *fp;

char filename[10];

printf("请输入存储文件名(包括物理地址)\n");

scanf("%s",filename);

Student *p=(Student *)malloc(sizeof(Student));

p=head->next;

if((fp=fopen(filename,"w"))==NULL)

{

printf("cannot open file");

return;

}

printf("input data:/n");

while(p!=NULL)

{

fwrite(p,sizeof(Student),1,fp); /* 成块写入文件*/

p=p->next;

}

fclose(fp);

}

员工信息管理系统(数据结构)

员工信息管理系统课程设计报告 系别:计算机与信息工程系 班级: B080501 姓名:李海鹏 学号: B08050128 指导教师:张红霞 课设时间:2010-6-21到2010-6-25

摘要 员工信息管理系统属于信息管理系统。员工信息管理是每个公司不可缺少的。系统用C程序开发,主要在于建立好一个合适的数据结构,并要求程序简洁实用。 本系统利用C语言简洁、灵活,数据结构丰富等特点,编写适合公司使用的系统。整个系统使用起来也比较方便,入手简单,操作方便。论文主要介绍了程序设计过程、设计方案以及测试过程,重点讲解了设计过程中的思想,技术解决方案等等。 关键字:员工信息管理,C程序,数据结构

前言 (3) 第1章课设题目 (4) 第2章开发运行环境及相关知识 (4) 第3章程序总体设计 (5) 3.1 主要功能模块 (5) 3.2 数据结构 (6) 第4章程序详细设计及实现 (7) 4.1 输入函数 (7) 4.2 排序函数 (7) 4.3 显示函数 (7) 4.4 查找函数 (7) 4.5更改函数 (8) 4.6 删除函数 (8) 4.7 主函数 (8) 4.8 其他函数 (9) 第5章系统功能测试 (9) 5.1 系统主界面 (9) 5.2 输入数据 (9) 5.3 显示数据 (10) 5.4 信息排序 (10) 5.5 更改信息 (11) 5.6 删除信息 (11) 第6章课设总结 (12) 第7章程序清单 (13) 参考文献 (22)

前言 本课程设计旨在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机编程解决实际问题的基本方法,熟悉C程序开发的全过程,掌握数据结构的使用方法,熟练应用各种数据结构。 本次任务是根据给定的数据和程序,应用单向链表处理一系列公司员工的信息。通过整个程序开发的过程,提高综合应用C语言的能力、编程和调试能力,为进一步学习相关专业课程创建较扎实的理论基础和实践基础。 报告将分6个章节来详细讲述本次课设题目的开发过程。 第1章主要描述课设的题目及要求; 第2章来介绍程序开发运行环境; 第3章介绍程序主体设计,网络程序概要; 第4章是对程序进行详细分析,对各个函数进行详细描述,并阐述程序实现技术等信息; 第5章为测试过程,主要用测试过程中的图片来表述最终信息; 第6章也是最后一章,为本次实践活动的心得体会。

数据结构家谱管理系统范本

数据结构家谱管理 系统

宁波大红鹰学院 信息工程学院 课 程 设 计 报 告 项目名 家谱查询系统 称: 白钰琦 项目组 长: 徐程凯、徐海域、项鸿伟 项目成 员: 10计科1班 班级名 称: 计算机科学与技术 专业名 称: 完成时间: 12月1日 信息工程学院制 目录 一、案例描述 ............................................................ 错误!未定义书签。 1、总体描述 ....................................................... 错误!未定义书签。 2、模块描述 ....................................................... 错误!未定义书签。

二、设计思路 ............................................................ 错误!未定义书签。 三、程序设计 ............................................................ 错误!未定义书签。 1、数据结构描述................................................ 错误!未定义书签。 2、主函数及其流程图........................................ 错误!未定义书签。 3、源程序 ........................................................... 错误!未定义书签。 四、调试与分析 ........................................................ 错误!未定义书签。 1、主菜单 ........................................................... 错误!未定义书签。 2、显示家谱信息................................................ 错误!未定义书签。 3、显示家谱中第n代人所有信息 .................... 错误!未定义书签。 4、按姓名查找某人并相应输出 ........................ 错误!未定义书签。 5、按出生日期查找家谱成员信息 .................... 错误!未定义书签。 6、为家谱中成员添加孩子信息 ........................ 错误!未定义书签。 7、为家谱中成员添加妻子信息 ........................ 错误!未定义书签。 8、删除家谱中成员及其后代信息 .................... 错误!未定义书签。 9、修改家谱中成员信息.................................... 错误!未定义书签。 10、确定家谱中两个成员关系 .......................... 错误!未定义书签。 11、按出生年月排序家谱 .................................. 错误!未定义书签。 五、设计总结 ............................................................ 错误!未定义书签。 1、完成情况 ....................................................... 错误!未定义书签。 2、心得体会 ....................................................... 错误!未定义书签。

数据结构课程设计学生成绩管理系统

2020/3/27 淮阴工学院 数据结构课程设计报告 选题名称: 学生成绩管理系统 系(院): 数理学院 专业:信息与计算科学 班级: 计科1102班 姓名: 徐连喜学号: 33 指导教师: 周海岩 学年学期: 2011 ~ 2012 学年第 1 学期 2012 年 06 月 06 日 1 2020/3/27 【摘要】 21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速发展和广泛应用,对社会的政治,经济,军事,文化等领域产生越来越深刻。学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对

于学校的决策者和管理者来说都至关重要。本论文叙述到的学生成绩管理系统是用IIS+ASP网页编程+ACCESS数据库+DREAMWEAVER MX 2004+SQL查询语言实现的。重点介绍了学生成绩管理系统的实现过程:包括系统分析,系统调查,功能设计,数据库设计,系统实现,系统测试和调试等。本系统主要功能有查询学生成绩、单个添加学生成绩、批量添加学生成绩、删除学生成绩、管理页面和修改管理员密码等内容。 【关键词】 成绩管理;成绩查询; C++ 2 2020/3/27 目录 中文摘要。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 1。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。1绪论。。。。。。。。。。。 4。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 5选题背景。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 6需求分析2总体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 7。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 8程序设计组成框图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。9模块功能说明。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10程序流程图。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 11主要函数之间相互调用3 在设计过程中的感受。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 致谢。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 13参考文献 14。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。附录:源程序清单。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 15

数据结构课程设计-学生成绩管理系统

任务书

摘要 管理信息系统正在向着网络化、智能化和集成化等趋势发展。学生成绩管理系统是为了更好的管理学生考试成绩而开发的数据管理软件。它对于一个学校是不可缺少的重要部分,它的内容对于学校的决策者和管理者来说都至关重要。学生成绩管理管理系统为用户提供充足的信息和快捷的查询手段,实现学生基本信息、成绩的录入,删除,查询,维护以及成绩的统计分析等几方面的功能,是现实问题的迫切要求。 本系统开发的总体任务是实现学生成绩管理的系统化、规范化、自动化。达到提高学生成绩管理效率的目的。与传统管理方法相比有明显的优点:查找方便,可靠性高,保密性好,成本低。彻底改变了以前繁杂的管理模式,实现全面的、相对集中的、职能化的信息综合管理。 计算机被用到信息管理系统的环境正是适应了当今时代飞速发展的信息时代。人们深刻的认识到了计算机功能的强大,对于复杂的信息管理,计算机充分发挥着它的优越性。检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低,这些优点极大地减轻了学院教学人员的工作量,缩小开支,提高了学生档案管理的效率和准确性,能够合理的安排时间,学生能够尽快的知道自己的考试成绩。同时,学生管理系统的应用也为今天的教育在未来市场的竞争力有所提高。

目录 1.引言 数据结构在界至今没有标准的定义。个人根据各自的理解的不同而有不同的表述方法: 在他的《数据结构、算法与应用》一书中称:“数据结构是,以及存在于该对象的和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的来给出。”他将数据对象()定义为“一个数据对象是实例或值的集合”。在《》一书中的定义是:“数据结构是()的物理实现。” 在《数据结构与程序设计》一书中,将一个数据结构的设计过程分成抽象层、数据结构层和实现层。其中,抽象层是指抽象数据类型层,它讨论数据的及其运算,数据结构层和实现层讨论一个数据结构的表示和在计算机内的存储细节以及运算的实现。数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。 1.1. 重要意义 一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数

数据结构课程设计-员工信息管理系统

12信计2013-2014(一) 数据结构课程设计 设计题目员工信息管理系统 设计时间2014.1.6~2014.1.10 学生姓名葛考 学生学号20120402127 所在班级12精算 指导教师刘风华

徐州工程学院数学与物理科学学院 题目员工信息管理系统 一、需求分析 员工信息管理系统设计,具体功能如下: 1、系统以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处 理,并且在此过程中能够尽可能的兼容用户使用过程中的输入异常情况。 2、员工信息录入系统(员工信息用文件保存),注意员工按员工编号进行区分,即每个 员工的员工编号都是唯一的,不允许出现两个员工或员工编号相同的情况。 3、可对员工信息进行查询,具体分为:按姓名查询、按员工号查询、按生日查询; 4、可对员工信息进行删除; 5、可对员工信息进行修改,但应注意员工号不能修改,修改应逐个进行,一个员工记录 的更改不应影响其他的员工记录; 6、可对全部的员工信息进行显示v(员工信息浏览),注意员工信息的显示规范; 员工信息应包括姓名、员工编号、性别、年龄、生日、学历、职务、联系电话、住址。 二、概要设计 2.1、抽象数据类型 ADT List{ 数据对象:D={ai|ai∈Elem Set,i=1,2,······,n,n>=0} 数据关系:R1={|ai-1,ai∈D,i=1,2,······,n} 基本操作: Init List(&L); 操作结果:构造一个空的线性表L。 DestroyList(&L); 初始条件:线性表L存在。 操作结果:销毁线性表L。 LocateElem(L,I,&e); 初始条件:线性表L存在,1

数据结构家谱管理系统

//////////////////////////////////////////////////////////// /////////////////// //题目:家谱资料管理 //要求:家谱用于记录某家族历代家族成员的情况与关系。现编制一个家谱资料管理软件, //实现对一个家族所有的资料进行收集整理。支持对家谱的增加,删除,更新,统计等。 //////////////////////////////////////////////////////////// /////////////////// #include #include #include int MATEFLAG=0; typedef struct TreeNode

int Num; //记录这个人拥有几个儿女 char Name[20]; //记录这个人的姓名 char Kind; //标示节点的种类有女G男B struct TreeNode * NextNode[20]; //记录这个人的儿女struct TreeNode * Parent; //记录这个节点的父节点 }TreeNode; void CreatTree(TreeNode *Tree); void OutPutAll(TreeNode *Tree); TreeNode * SearchTree(TreeNode *Tree,char name[],int length); void MainMenue(TreeNode *Tree); void SubMenue1(TreeNode * Tree); void SubMenue2(TreeNode *Tree); void Change(TreeNode * Tree); void AddNew(TreeNode * Tree);

数据结构物流信息管理系统

2014-2015学年第一学期学号 《数据结构》 课程设计报告 题目:物流信息管理系统 专业:计算机科学与技术 班级: 姓名: 学号: 指导教师: 成绩: 目录 摘要 (1) 1设计内容及要求 (1) 1.1内容描述 (1) 1.2基本要求 (1) 2详细设计 (1) 2.1概要设计 (1) 2.2功能模块详细设计 (1) 2.3程序流程图 (4) 3源代码 (5)

4程序结果 (9) 5总结 (12) 6参考文献 (12)

摘要 物流信息管理系统是利用单链表实现信息管理,进而掌握C语言中的结构体,链表,指针,函数(系统函数,自定义函数)等C语言知识。 本文通过利用模块化程序设计思想,使用单链表和结构体等编写出的创建,删除,查询等功能的物流信息管理系统。通过完成这个程序设计让我们熟悉并掌握c语言中使用结构体,单链表,指针,函数,和模块化设计思想。 关键词结构体,链表,指针,函数 1设计内容及要求 1.1内容描述 对客户的基本信息进行存储,利用取货号来查询顾客信息,核对信息后方可取货。 1.2基本要求 1.采用一定的存储结构进行客户信息的存储; 2.对客户的信息可以进行修改、删除、查询; 2详细设计 2.1概要设计 本系统用到的主要数据结构为数组和文件。一个数组对应一个客户,里面用3个字符串分别存储着用户的客户号、姓名和电话号码。然后将数组写入文件,查询时读取文件,提取相应信息。 2.2功能模块详细设计 本程序运用链表对客户信息进行存储,首先对结点进行定义,结点中的数据域分别定义了取货人的取货号、身份证、姓名、电话号码,其中身份证用了字符型数组进行定义,然后定义了客户取货链表,每添加一个取货人,先分配内存,再添加取货人的信息,之后将链表中最后一个指针指向该新的取货人,删除时,需先找到该取货人前面的取货人,直接将其指针指向删除取货人的下一个取货人,修改信息时,先找到该去人,选择修改的内容,再进行修改。 void create(Linklist &h){ Linklist s,t; int j=1; char x; h=(Listnode *)malloc(sizeof(Listnode)); h->next=NULL;t=h; while(j){ s=(Listnode*)malloc(sizeof(Listnode)); printf("顾客取货号为%d\n",i); s->customer.m=i; printf("请输入身份证号码:"); scanf("%c",&x);

职工信息管理系统

《数据结构》课程设计报告 设计题目职工信息管理系统 专业 班级 姓名 学号 完成日期

目录 1. 问题描述 (3) 2. 系统设计 (3) 3. 数据结构与算法描述 (5) 4. 测试结果与分析 (15) 5. 总结 (20) 6. 参考文献 (20) 附录程序源代码 (20)

职工信息管理系统 1. 问题描述 试设计一个职工信息管理系统。要求可对职工信息进行插入、删除、查找、排序、输出等功能,职工对象包括编号、姓名、性别、出生年月、学历、工作年月、基本工资、电话、家庭住址等等。 2. 系统设计 2.1 设计目标 随着计算机产业的不断发展和信息时代的到来,各个企业和部门对员工的信息管理也已经走上了数字化的阶段,尤其是利用微机对工资的管理已经在各个企业单位起着越来越多的作用。以前的财会人员完全是靠手写来完成员工的各种记录,每天都忙碌于各种繁多的票据之间,这种工作繁重复杂,容易出错,不易修改,所以使用一个好的管理系统对减轻管理人员的工作量是很有帮助的,也是一个企业发展不可缺少的基础,它的开发应用简单而不失一般性,操作方便,功能强大,系统化,规范化,自动化,而且经济使用的职工管理系统已经成为了各个企业和部门离不开的电脑软件。 本系统实现的操作和功能如下: 1)职工信息表的建立:根据职工提供的信息,按单链表的方法建立职工信息表; 2)职工信息的添加:根据公司的需要,增加新的职工,必须把职工的基本信息写入职工信息表,方便公司管理; 3)职工信息的查询:根据公司需要,查找某一个职工的信息,可以按姓名或编号查找,将都显示职工的全部信息。 4)职工信息的修改:根据公司或职工需要,如果信息需要修改,可对职工的人一个信息进行更改。 5)职工信息的排序:根据公司需要,可对职工进行排序; 6)职工信息的删除:根据公司需要,若职工不在公司工作,可对其信息删除,以及时更新职工信息表;

家谱管理系统(含源代码)

家谱管理系统——C语言(数据结构) 目的和要求:树形结构是一种非常重要的非线性结构,它用于描述数据元素之间的层次关系,人类家谱是树形结构的典型体现,通过此项训练让学生掌握树形结构的知识;使学生重点掌握树与二叉树的转换,二叉树的存储和遍历,和二叉树相关的一些运算;要求完成家谱信息的录入和保存,任意成员的查找及某一成员祖先、子孙、兄弟、堂兄弟的查找。 排答疑和辅导。 完整代码: #include #include #include int MATEFLAG=0; //是否入赘或嫁入这家的,1表示为是,0表示否 typedef struct TreeNode//树节点定义 { int Num; //保存此人儿女个数 char Name[20]; //保存此人姓名 char Kind; //保存此人性别,男M,女F struct TreeNode * NextNode[20]; //保存此人的儿女,NextNode[0]里存放配偶的地址struct TreeNode * Parent; //保存此节点的父节点 }TreeNode; void CreatTree(TreeNode *Tree);//创建树 void OutPutAll(TreeNode *Tree);//输出树 TreeNode * SearchTree(TreeNode *Tree,char name[],int length); void MainMenu(TreeNode *Tree); void SubMenue1(TreeNode * Tree); void SubMenue2(TreeNode *Tree); void Change(TreeNode * Tree); void AddNew(TreeNode * Tree); void OutPutMessage(TreeNode * Tree,char name[],int length); //主函数 void main() { TreeNode *Tree;//产生根节点 Tree=(TreeNode *)malloc(sizeof(TreeNode)); Tree->Parent =NULL; strcpy(Tree->Name,"0"); MainMenu(Tree);//显示主菜单 } //添加新的成员 void AddNew(TreeNode * Tree) { SubMenue2(Tree);//添加新成员界面 } //显示添加家庭信息的界面

数据结构物流信息管理系统设计

数据结构物流信息管 理系统设计 Revised on November 25, 2020

目 录 摘要...................................................1 1设计内容及要求...........................................................................1 内容描述..............................................................................1 基本要求..............................................................................1 2详细设计....................................................................................1 概要设计..............................................................................1 功能模块详细设计..................................................................1 程序流程图...........................................................................4 3源代码 .....................................................................................5 4程序结果....................................................................................9 5总结...........................................................................................12 6参考文献 (12) 数据结构物流信息管理系统设计 【最新资料,WORD 文档,可编辑修改】

数据结构,学生成绩管理系统

海南大学信息科学技术 学院 数据结构课程设计报告 设计题目:______________________ 专业班级:________________________ 姓名:___________________________ 学号:___________________________

指导教师:_________________________ 目录 一、需求分析 2 二、设计要求 3 三、概要设计 4 四、详细设计 6 五、运行结果 16 六、心得体会 21 七、参考文献 21

摘要: 据结构”是计算机程序设计的重要理论技术基础,它是计算机学科的核心课程。用数据结构中的知识、算法、思想解决一些实际问题可使的一些问题变得一目了然,易懂。 本论文设计一个简单程序,来实现学生管理系统的设计。首先在设计的时候就想了一下,应该运用到那些知识点,不管是C语言还是数据结构的。首先我们想到的是应该运用到线性链表表的相关知识,运用到单链表(数据域+指针域)的存取结构,方便存储和查找,以及简单的排序。综合数据结构和c++语言相关知识,锻炼自己的编程能力和考察一下所学的数据结构只是,是自己在实践中发现自己的不足,找不自己的不足之处,在实践中提高。理论中的数据结构知识只有运用到实践中,再能转变为使用价值,本课程我将用源代码和流程图来说明和设计我的论文。 关键字:单链表、条件、循环、排序。

一、需求分析 本文是运用数据结构和C++语言知识实现一个简单的学生成绩管理系统,方便教师对学生成绩的录入、查询、删除、排序等操作。学生给您记录所用的存储结构是数据结构这门课中所学到的单链表只是。单链表要有数据域和指针域。课程设计中药涉及到单链表的初始化、创建、查询、插入、删除、排序等一些基本操作。程序中要大量用用到指针操作数据,指针是c语言中的精髓,熟悉指针的操作可以极大提高编程能力和减少大量代码。 录入给出多名学生的3门考试的成绩表,每个学生的信息由学号、姓名、以及各科成绩,名次组成。对学生的考试成绩进行有关统计:按总数高低次序,打印出名次表,分数相同的为同一名次;按名次打印出每个学生的学号、姓名、总分以及各科成绩,并打印统计表。 系统存储的各种数据均保存在数据结构单链表内,各种操作都是对链表结构的操作。

数据结构工资管理系统课程设计

学年第学期 《数据结构》 课程设计报告 题目:人事工资管理系统 专业:数字媒体技术 班级: 姓名: 指导教师: 成绩: 计算机与信息工程系 年月日

1、设计目的 (2) 2、设计内容与要求 (2) 1.1设计内容 (2) 2.2设计要求 (2) 3、总流程图设计 (3) 4、程序详细功能设计 (4) 5、程序调试 (7) 6、设计小结 (7) 7、参考文献 (8) 附录 (9) 1

1、设计目的 在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。 进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。 《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。 2、设计内容与要求 2.1设计内容 主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。 2.2设计要求 在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。 3、总体流程图设计 2

3

大数据结构(二叉树)家谱管理系统

数学与计算机学院 课程设计说明书 课程名称: 数据结构与算法课程设计 课程代码: 题目: 二叉树生成家谱 年级/专业/班: 学生姓名: 学号: 开始时间:2015 年12 月09 日 完成时间:2015 年12 月29 日课程设计成绩:

指导教师签名:年月日 目录(小三黑体,居中) 1 需求分析 (8) 1.1任务与分析 (8) 1.2测试数据 (9) 2 概要设计 (9) 2.1 ADT描述 (9) 2.2程序模块结构 (10) 2.3各功能模块 (12) 3 详细设计 (14) 3.1结构体定义 (14) 3.2 初始化 (15) 3.3 插入操作 (18) 3.4 查询操作 (22) 4 调试分析 (25) 5 用户使用说明 (26)

6 测试结果 (26) 结论 (30) 附录 (32) 参考文献 (33)

摘要 随着计算机科学技术、计算机产业的迅速发展,计算机的应用普及也在以惊人的速度发展,计算机应用已经深入到人类社会的各个领域。计算机的应用早已不限于科学计算,而更多地应用在信息处理方面。计算机可以存储的数据对象不再是纯粹的数值,而扩展到了字符、声音、图像、表格等各种各样的信息。对于信息的处理也不再是单纯的计算,而是一些如信息存储、信息检索等非数值的计算。那么,现实世界的各种数据信息怎样才能够存储到计算机的存之中,对存入计算机的数据信息怎样进行科学处理,这涉及计算机科学的信息表示和算法设计问题。为解决现实世界中某个复杂问题,总是希望设计一个高效适用的程序。这就需要解决怎样合理地组织数据、建立合适的数据结构,怎样设计适用的算法,以提高程序执行的时间效率和空间效率。“数据结构”就是在此背景下逐步形成、发展起来的。 在各种高级语言程序设计的基本训练中,解决某一实际问题的步骤一般是:分析实际问题;确定数学模型;编写程序;反复调试程序直至得到正确结果。所谓数学模型一般指具体的数学公式、方程式等,如牛顿迭代法解方程,各种级数的计算等。这属于数值计算的一类问题。而现实生活中,更多的是非数值计算问题,如手机中的通讯录,人们对它的操作主要是查找、增加、删除或者修改记录。再如,人们经常在互联网上查阅各种新闻,或查阅电子地图,人们可以在某城区地图上查找自己所需的街道或店铺,其操作主要是搜索和查询。下面

数据结构之学生成绩管理系统

数据结构之学生成绩管 理系统

学生成绩管理系统 一、实验目的 1. 通过此次课程设计中学生成绩管理系统的题目,掌握链表等数据结构的基本操作方面的知识,并能灵活的解决一些基本的问题,加深对其性质及各项操作的理解; 2. 将所学数据结构方面的知识与一门具体的语言——C语言来进行实现,感受数据结构的强大作用,加深理解。 二、试验要求 管理系统中有五个要求:输入查找修改插入删除存储 (1)输入要求:能够通过键盘输入和文件输入两种 (2)查找要求:能够根据学生号查找单个学生的信息,也可以遍历所有学生信息 (3)修改要求:能够根据学生号修改单个学生所有信息 (4)插入要求:能够实现头插和尾插 (5)删除要求:能够根据学生号删除单个学生信息 (6)存储要求:通过链表存储所有信息 三、算法的思想与算法实现步骤 1. 基本思想 通过链表数据类型进行基本操作,主要有三个模块:分别是主函数模块、 主要操作函数及基本操作函数。 其中,主函数负责其他子函数的调用实现以及基本界面的操作

主要函数包括: void StuInput(Student *); //学生成绩管理系统的输入函数,由主函数调用 void StuSelect(Student *); //学生成绩管理系统的查找函数,由主函数调用 void StuAlter(Student *); //学生成绩管理系统的修改函数,由主函数调用 void StuInsert(Student *); //学生成绩管理系统的插入函数,由主函数调用 void StuDelect(Student *); //学生成绩管理系统的删除函数,由主函数调用 void StuSave(Student *); //学生成绩管理系统的存储函数,由主函数调用 基本操作函数: void StuOutput(Student *p); //输出函数 int StuImport(Student *head,Student *p); //输入函数 void StuInputHand(Student *head); //学生成绩管理系统的手动输入函数,由输入函数调用 void StuInputFile(Student *head); //学生成绩管理系统的文件输入函数,由输入函数调用 void StuSelectErg(Student *head); //学生成绩管理系统的遍历函数,由查找函数调用 void StuSelectNumFind(Student *head); //学生成绩管理系统的按学号查找函数,由查找函数调用 void StuSelectSubFind(Student *head); //学生成绩管理系统的按科目查找函数,由查找函数调用

数据结构家谱管理系统报告书

数据结构大作业说明文档 一、题目的选择 这次数据结构的大作业,我的选题是家谱管理系统的设计与实现。由于平时疏于编程——针对我得个人实际——我把主要的目标定位在完成家谱管理系统得基本要求。(基本要求大纲中有,就不浪费版面了) 二、设计的思路 接到这个题目,我的总体设计思路是先为程序搭建好一个结构框架,再跟据时间的宽裕程度和其它的要求逐步增强程序的性能。 关于IO的设计: 考虑到题目要求家谱信息以树形的形式一次读入内存,而个人的各种资料现在虽然条目不多,但随着程序的升级,以后可能变得越来越大。我把树形结构和个人信息记录的文档分为两个文件保存在外存中,一个文件串行化地记录家谱树的结构信息,保存少量个人信息作为识别标志;另一个文件保存完整的个人信息,所有的个人信息以线性记录的方式记录在其中。当程序运行要读入家谱结构时,只读入保存少量记录的文件并建立起树形结构。索引时,以树形中的少量信息为依据在另一个文件中找到全部的各人信息资料。 这样的好处主要有两点: 1. 由于树形结构是串行化记录于外存,一个节点记录多次,信息大量冗余,如果树形节点中保留全部信息,必将造成大量的空间浪费;只保存作为索引的少量信息在树形结构中,节约了空间。 2. 由于结构的精简,在家谱初始化时读入内存需要的时间相应减少,节约了装载时间。 这样做存在的问题: 每次执行修改,添加,删除,查询时都要直接访问外存来取得或写入数据。内外存访问上的巨大时间差的存在,使得进行这些操作相对来说并不显得很高效。 关于树形的结构: 在树形结构的选择上,根据实际中多子女的现象选择一般树,考虑到家谱中成员可能存在的不定成员数问题,抛弃了以数组为基础的一般树方案,决定用链表来实现。 树形结构的外存保存。为了提高效率,树形结构在程序初始化时由外存文件一次读入内存,此后不管插入还是修改,删除都不再对外存的树结构保存文件进行操作,只在内存中处理,程序退出时对外存树结构文件进行一次更新。也就是说,不管在程序运行中中对家谱结构进行多少种,多少次的操作,外存的树结构文件始终只会被程序访问两次。

数据结构简单的职工管理系统完整版

湖南涉外经济学院数据结构课程设计报告 题目:简单的职工管理系统 院系名称:计算机学院 专业名称:计算机科学与技术 班级:计科201001班 学生姓名:刘兴斌 学号:30 指导教师:张建明 设计起止时间:2011年11月20日~2011年12月30日

完成于2011年12月29日星期四 目录 第一章序 (1) 第二章系统总体功能的设计和分析 (3) 1、问题描述 (3) 2、详细要求 (3) 3、功能分析 (4) 1、具体要求.............................................................. 错误!未定义书签。 2、系统流程分析 (4) 3、系统功能结构 (5) 4、模块函数构造 (6) 第三章详细设计分析 (7) 1、抽象数据类型定义 (7) 2、主函数设计 (8)

3、查找算法设计 (9) 4、排序算法设计 (8) 第四章源程序代码 (11) 第五章系统实现 (29) 第六章课程设计总结 (31)

第一章序 电子信息时代由如洪水一样的凶猛,能在现实社会应用软件给我们的生活和工作带来方便和实用性就是软件存在的最大的价值。数据结构所能解决的就是这些复杂的问题简单化。 《数据结构》是计算机专业学生学习的一门基础课程,但十分的重要。本课程系统地介绍了软件设计中常用的数据结构以及相应的存储结构和实现算法,介绍了常用的多种查找和排序技术。本课程将为整个专业的学习以及软件设计水平的提高打下良好的基础。为了学好《数据结构》,必须掌握编写一些在特定数据结构上的算法,并通过上机调试,更好地掌握各种数据结构及其特点。 经过本次课程设计,我们对于数据结构基本理论和存储结构及算法设计将有更加深入的理解,并提高我们在实际设计操作中系统分析、结构确定、算法选择、数学建模和信息加工的能力,提高我们的C/C++语言程序设计能力,以及培养学我们编写程序设计文档的能力,为将来在实战工作中打下良好的基础。 在经济发达的今天对于职工简单的管理都是有很大程度上的要求,一个工司能否较好较快的运行,与职工管理的好坏分不开关系,通过该系统,将一系列的问题系统化,能够更好的管理职工。简化管理,使管理更方便,准确性、直观性和实用性更强。本着以锻炼自己的能力为目的,通过设计与制作进一步学习和掌握简单的职工管理系统的原理和使用方法。虽然在一定程度上较为简单,但也能体现在出在人员管理上的方便快捷,也体现一个领导的管理水平是不是充满艺术。

数据结构课程设计学生信息管理系统完整版

数据结构课程设计学生 信息管理系统 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

题目2.学生信息管理系统 一、课程设计目的 1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。 3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 学生信息管理系统: (1)熟练掌握链表存储结构及其建立过程和常用操作; (3)学会自己调试程序的方法并掌握一定的技巧 二、课程设计内容 建立学生信息管理系统,通过链表实现对学生信息的输入,查找,删除,插入和排序等操作。 三、需求分析 1.每位学生的信息有:学号,姓名,性别,出生日期,E-mile,电话,c成绩,数学成绩等,用链表对学生的信息进行存储。 2.全部数据可以只放在内存中; 3.系统能实现的操作和功能如下: a) 输入学生信息: 对不同学生分别输出下列信息:学号,姓名,性别,出生日期,E-mile,电话,c成绩,数学成绩等。 b) 查找学生信息: 根据学生的学号或姓名对学生的信息进行查找。 c) 删除学生信息: 删除某个学生的所有信息。 d) 插入学生信息: 将某个学生的信息插入到已经输入的信息中。 e) 显示学生信息: 将所有学生的信息显示出来。 f) 排序: 将所有学生按某个学科的成绩依次排序。 四、概要设计 1.系统结构图(功能模块图)

家谱管理系统数据结构大作业

家谱管理系统 任务:实现具有下列功能的家谱管理系统功能要求: 1). 输入文件以存放最初家谱中各成员的信息,成员的信息中均应包含以下内容:姓名、出生日期、婚否、地址、健在否、死亡日期(若其已死亡),也可附加其它信息、但不是必需的2). 实现数据的存盘和读盘。 3). 以图形方式显示家谱。 4). 显示第n 代所有人的信息。 5). 按照姓名查询,输出成员信息(包括其本人、父亲、孩子的信息)。 6). 按照出生日期查询成员名单。 7). 输入两人姓名,确定其关系。 8). 某成员添加孩子。 9). 删除某成员(若其还有后代,则一并删除)。 10).修改某成员信息。 11).按出生日期对家谱中所有人排序。 12).打开一家谱时,提示当天生日的健在成员。要求:建立至少30 个成员的数据,以较为直观的方式显示结果,并提供文稿形式以便检查。界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。存储结构:学生自己根据系统功能要求自己设计,但是要求相关数据要存储在数据文件中。测试数据:要求使用1、全部合法数据; 2、局部非法数据。进行程序测试,以保证程序的稳定。测试数据及测试结果请在上交的资料中写明; */ #include #include #include #include #include"map.h" #define MAXN 100 #define MAXMEM 100 #define Elemtype char // 树 typedef struct BiTNode { int mark;// 标记 int level; char name[50];// 姓名 char birthday[50];// 生日 char address[MAXN];// 住址 bool marriage;// 婚否(true 表示结婚,false 表示没结婚) bool live;// 建在(true 表示活着,false 表示过世) bool sex;// 性别(true 表示男,false 表示女) char livemassage[50];// 死亡日期(如果其已经死亡) Elemtype data;// struct BiTNode *lc,*rc; }BiTNode,*BiTree; // 树的相关操作 char nametemp[50];// 姓名 char birthdaytemp[50];// 生日

相关文档
相关文档 最新文档