学生信息管理系统顺序表实验文档格式.docx
- 文档编号:15019393
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:17
- 大小:128.05KB
学生信息管理系统顺序表实验文档格式.docx
《学生信息管理系统顺序表实验文档格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统顺序表实验文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
王舒
课题设计
目的与
设计意义
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 顺序 实验