学生信息管理系统顺序表实验文档格式.docx

上传人:b****1 文档编号:15019393 上传时间:2022-10-26 格式:DOCX 页数:17 大小:128.05KB
下载 相关 举报
学生信息管理系统顺序表实验文档格式.docx_第1页
第1页 / 共17页
学生信息管理系统顺序表实验文档格式.docx_第2页
第2页 / 共17页
学生信息管理系统顺序表实验文档格式.docx_第3页
第3页 / 共17页
学生信息管理系统顺序表实验文档格式.docx_第4页
第4页 / 共17页
学生信息管理系统顺序表实验文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

学生信息管理系统顺序表实验文档格式.docx

《学生信息管理系统顺序表实验文档格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统顺序表实验文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

学生信息管理系统顺序表实验文档格式.docx

王舒

课题设计

目的与

设计意义

1、课题设计目的:

课程设计任务是为了实现学生信息的相关操作,方面用户快速得到学生的各种信息,并且能进行信息的更新、插入、删除等操作。

课程设计的主要目的:

熟练利用数据结构各种算法思想设计程序;

掌握C语言基本语法;

通过课程设计,加深对数据结构课程所学内容的进一步理解和巩固;

加深对结构化课程设计思想的理解,并设计合理的模块化结构;

提高程序开发功能,能运用合理的控制流程编写清晰高效的程序;

培养分析问题、解决问题的能力。

在课程设计中,我们充分发挥小组优势完成课程设计,同时也体会到

小组合作的重要性与必要性。

2、课题设计意义:

年月

一、实验目的1

二、实验内容1

三、基本要求1

四、算法设计思想1

五、算法流程图1

六、算法源代码6

七、运行结果22

25

八、收获和体会25

九、致谢

1.实验目的:

通过制作学生信息管理系统

(1)基本掌握面向过程程序设计的的基本思路和方法;

(2)达到熟练掌握C语言的基本知识和技能;

(3)能够利用所学的基本知识和技能,解决简单的程序设计问题。

2.实验内容:

输入一个班学生的学号,姓名,性别,成绩。

编程插入学生信息,设计查找每个学生的信息,删除学生信息,输出学生信息,修改学生信息,报表和显示学生信息,及退出学生信息管理系统。

3.基本要求:

(1)硬件:

微机,打印机各一台

(2)软件:

VisualC++,windows7

4.算法设计思想

(1).分析程序的功能要求,划分程序功能模块。

(2).画出系统流程图。

(3).代码的编写。

定义数据结构和各个功能子函数。

(4).程序的功能调试。

5.算法的流程图

程序结束

6.算法源代码:

#include<

stdio.h>

stdlib.h>

#includevstring.h>

#defineOK1

#defineERROR0

#defineOVERFLOW-2

#defineMAXSIZE10

#defineList_INIT_SPACE10

#defineList_INC_SPACE1

typedefstruct

{

charnumber[15];

charname[10];

charsex[10];

intscore;

}Elemtype;

Elemtype*elem;

intlength;

intlistsize;

}sqlist;

/*1创建空顺序表并初始化*/

voidcreatList(sqlist*L)

inti=0,n;

Elemtype*newbase;

L->

elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemty

pe)));

if(!

elem)exit(OVERFLOW);

length=O;

listsize二List_INIT_SPACE;

printf("

有几位同学:

\n"

);

scanf("

%d"

&

n);

for(i=0;

i<

n;

i++)

if(L->

length==L->

listsize)

newbase=(Elemtype*)realloc(L->

elem,(List_INIT_SPACE+List」NC_SPACE)*sizeof(Elemtype));

if(newbase)

elem=newbase;

listsize+=List_INC_SPACE;

}

elseexit(OVERFLOW);

printf(”请输入第%昭同学的信息:

i+1);

printf("

学号(15)\n"

%16s"

L->

elem[L->

length].number);

姓名(15)\n"

length].name);

性别(男:

M女:

F)\n"

length].sex);

成绩\n"

%1Od"

length].score);

length++;

%d名学生信息如下:

length);

学号(15)姓名(15)性别(男:

M女:

F)成绩\n"

i<

length;

/*2向顺序表中插入元素*/voidinsertlist(sqlist*L)

inti,j,k;

charsign='

y'

;

Elemtypenewelem;

while(sign!

二'

n'

listsize){

elem,(List_INIT_SPACE+ListINC_SPACE)*sizeof(Elemtype));

请输入要插入的同学的信息:

newelem.number);

newelem.name);

newelem.sex);

newelem.score);

要插入到第几个位置:

"

i);

while(i<

1||i>

length+1)

printf(”不能插入到第%d个位置!

\n只能插入第1到第%d

个位置上!

\n请重新输入要插入的位置:

丄->

length+1);

seanf("

for(j=L->

length-1;

j>

i-2;

j--)

for(k=0;

k<

16;

k++)

elem[j].name[k]=L->

elem[j-1].name[k];

elem[j].number[k]=L->

elem[j-1].number[k];

elem[j].sex[k]=L->

elem[j-1].sex[k];

elem[j].score=L->

elem[j-1].score;

j++;

elem[j].name[k]=newelem.name[k];

elem[j].number[k]=newelem.number[k];

elem[j].sex[k]=newelem.sex[k];

elem[j].score=newelem.score;

是否还要输入?

(YorN)"

getchar();

%c"

sign);

if(sign=='

n'

||sign二二'

N'

sign二'

%d名学生信息如下:

/*3查找学生信息*/

intfindlist(sqlist*L)

intj;

chari[16];

1.按学号查找\n2.按姓名查找\n请选择:

);

j);

if(j==1)

请输入学号:

%s"

i);

for(j=0;

j<

j++)

strcmp(i,L->

elem[j].number))//i==L->

elem[j].number用

数组函数

returnj+1;

return0;

else

请输入姓名:

elem[j].name))//用数组函数

/*4删除学生信息*/

intdelnode(sqlist*L)

chari[10];

1.按学号删除\n2.按姓名删除\n请选择:

printf(”请输入学号:

for(;

elem[j]=L->

elem[j+1];

length--;

return1;

//L->

elem[j]以后

的向前挪

}/*5输出学生信息*/voidprintlist(sqlist*L)

inti;

printf(”学号(15)姓名(15)性别(男:

%-16s%-16s%-16s%-10d\n"

elem[i].number,L->

elem[i].name,L->

elem

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1