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

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

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

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

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

在课程设计中,我们充分发挥小组优势完成课程设计,同时也体会到小组合作的重要性与必要性。

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>

string.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(Elemtype)));

if(!

L->

elem)exit(OVERFLOW);

length=0;

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_INC_SPACE)*sizeof(Elemtype));

if(newbase)

{

L->

elem=newbase;

listsize+=List_INC_SPACE;

}

elseexit(OVERFLOW);

}

printf("

请输入第%d名同学的信息:

i+1);

学号(15)\n"

scanf("

%16s"

L->

elem[L->

length].number);

姓名(15)\n"

length].name);

性别(男:

M女:

F)\n"

length].sex);

成绩\n"

%10d"

length].score);

L->

length++;

}

%d名学生信息如下:

length);

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

F)成绩\n"

length;

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

elem[i].number,L->

elem[i].name,L->

elem[i].sex,L->

elem[i].score);

}

/*2向顺序表中插入元素*/

voidinsertlist(sqlist*L)

inti,j,k;

charsign='

y'

;

Elemtypenewelem;

while(sign!

='

n'

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

newelem.number);

newelem.name);

newelem.sex);

newelem.score);

要插入到第几个位置:

"

i);

while(i<

1||i>

length+1)

printf("

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

\n只能插入第1到第%d个位置上!

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

length+1);

scanf("

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];

L->

elem[j].score=L->

elem[j-1].score;

j++;

for(k=0;

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=='

||sign=='

N'

sign='

/*3查找学生信息*/

intfindlist(sqlist*L)

intj;

chari[16];

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

j);

if(j==1)

请输入学号:

%s"

i);

for(j=0;

j<

j++)

if(!

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请选择:

for(;

L->

elem[j]=L->

elem[j+1];

length--;

return1;

//L->

elem[j]以后的向前挪

/*5输出学生信息*/

voidprintlist(sqlist*L)

inti;

/*6修改功能*/

voidreviselist(sqlist*L)

inti,x,a=0;

charname[16];

charsex[16];

charnumber[16];

请选择你要改的同学的姓名"

name);

请选择你要改的同学的信息\n"

1.修改学生的姓名\n"

2.修改学生的学号\n"

3.修改学生的性别\n"

4.修改学生的成绩\n"

x);

switch(x)

case1:

if(strcmp(name,L->

elem[i].name)==0)

请输入新名字"

strcpy(L->

elem[i].name,name);

a=1;

if(a==0)

对不起你要改的名字不存在\n"

break;

case2:

for(i=0;

if(strcmp(name,L->

请输入新学号"

number);

elem[i].number,number);

if(a==0)

break;

case3:

请输入新性别"

sex);

elem[i].sex,sex);

case4:

请输入新成绩"

score);

elem[i].score=score;

if(a==0)

/*0退出学生信息管理系统*/

voidtuichu(sqlist*L)

elem)

free(L->

elem);

\n\n再见,欢迎下次使用"

exit(-2);

voidmain()

sqlista,*L=&

a;

******************************************************************\n"

printf("

*学生信息管理系统*\n"

*========================================\n"

*1.创建学生信息库并初始化*\n"

*2.添加学生信息*\n"

*3.查找学生信息*\n"

*4.删除学生信息*\n"

*5.输出学生信息*\n"

*6.修改学生信息*\n"

*0.退出学生信息管理系统*\n"

while

(1)

\n\n请选择(0-6):

0||i>

6)

只能选择0到6!

请重新选择:

switch(i)

case1:

creatList(L);

printf("

初始化完毕!

break;

case2:

insertlist(L);

case3:

i=findlist(L);

if(!

i)

printf("

没有该学生\n"

else

{

i--;

要查找的学生:

学号姓名性别成绩\n"

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

}break;

case4:

i=delnode(L);

{printf("

该学生已删除"

case5:

printlist(L);

break;

case6:

reviselist(L);

case0:

tuichu(L);

7.运行结果:

(1)初始化

(2)信息录入

(3)信息插入

(4)信息查询

(5)删除信息

(6)修改学生信息

(7)退出系统

8.收获及体会:

通过这次实训,增加了我们学习软件技术的兴趣,加强了小组成员之间的协作能力。

虽然对软件技术的具体内容还不是很了解,但通过对C语言这门课程的学习,已发现程序设计的乐趣。

在对C语言学习的过程中,我们也学到了许多关于计算机应用基础方面的知识,对计算机的机体也有了一个大体的了解。

这次实训由老师提供课题,参照范例程序,经过自己的改写,实现要求。

先做简单的输出,一步步的再做其它图案,在实际操作过程中所犯的一些错误,通过学习还会有意外的收获,感觉实训真的很有意思。

在具体操作中,对这学期所学C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到了C语言具有的语句简洁,使用灵活,执行效率高等特点。

发现上机实训的重要作用,特别是对数组和循环有了深刻的理解之后。

通过实际操作,学会C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。

深刻体会到“没有做不到的,只有想不到的”,“团结就是力量”,“实践是检验真理的标准”,……的寓意。

计时在此希望以后应多进行这样的实训,加长设间,培养学生独立思考问题的能力,提高实际操作水平。

致谢

本设计是在李红梅老师的悉心指导下完成的。

通过我们的设计选题、资料查找,李老师修改等方面对我进行了悉心的指导和鼓励。

值此设计完成之际,谨向指导老师李老师致以最衷心的感谢。

通过我们组成员的努力做出了这个学生管理系统,当我们看到我们的劳动成果,无比的开心,在这几个星期中,我们认真的工作,参考了大量资料,努力克服遇到的困难。

在这次课程设计中,我们一起谈论,我们一起研究,一起欢笑。

通过这次的数据结构的课程设计,让我们更加加深了它的语句思想!

让我从这次课程设计中获得了好多知识,获益匪浅!

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

当前位置:首页 > 初中教育 > 政史地

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

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