学生信息管理系统实验

  • 格式:doc
  • 大小:53.50 KB
  • 文档页数:24

下载文档原格式

  / 24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构课程设计

设计题目:学生信息管理系统(顺序)

姓名及学号:

专业班级: 09计算机科学与技术

指导教师:

完成时间:

信息工程学院计算机科学系

安徽新华学院课程设计成绩评定表(本科)

目录

一、实验目的 (1)

二、实验内容 (1)

三、基本要求 (1)

四、算法设计思想 (1)

五、算法流程图 (1)

六、算法源代码 (6)

七、运行结果 (22)

八、收获和体会 (25)

九、致谢 (25)

1. 实验目的:

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

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

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

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

输入一个班学生的学号,姓名,性别,成绩。编程插入学生信息,设计查找每个学生的信息,删除学生信息,输出学生信息,修改学生信息,报表和显示学生信息,及退出学生信息管理系统。3.基本要求:

(1)硬件:微机,打印机各一台

(2)软件:Visual C++,windows7

4. 算法设计思想

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

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

(3). 代码的编写。定义数据结构和各个功能子函数。

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

5. 算法的流程图

6. 算法源代码:

#include<>

#include<>

#include<>

#define OK 1

#define ERROR 0

#define OVERFLOW -2

#define MAXSIZE 10

#define List_INIT_SPACE 10 #define List_INC_SPACE 1

typedef struct

{

char number[15];

char name[10];

char sex[10];

int score;

}Elemtype;

typedef struct

{

Elemtype *elem;

int length;

int listsize;

}sqlist;

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

void creatList(sqlist *L)

{

int i=0,n;

Elemtype *newbase;

L->elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemty pe)));

if(!L->elem) exit(OVERFLOW);

L->length=0;

L->listsize=List_INIT_SPACE;

printf("有几位同学:\n");

scanf("%d",&n);

for(i=0;i

{

if(L->length==L->listsize)

{

newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List _INC_SPACE)*sizeof(Elemtype));

if(newbase)

{

L->elem=newbase;

L->listsize+=List_INC_SPACE;

}

else exit(OVERFLOW);

}

printf("请输入第%d名同学的信息:\n",i+1);

printf("学号(15)\n");

scanf("%16s",L->elem[L->length].number);

printf("姓名(15)\n");

scanf("%16s",L->elem[L->length].name);

printf("性别(男:M女:F)\n");

scanf("%16s",L->elem[L->length].sex);

printf("成绩\n");

scanf("%10d",&L->elem[L->length].score);

L->length++;

}

printf("%d名学生信息如下:\n",L->length);

printf("学号(15) 姓名(15) 性别(男:M女:F) 成绩\n");

for(i=0;ilength;i++)

printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->ele m[i].name,L->elem[i].sex,L->elem[i].score);

}

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

void insertlist(sqlist*L)

{

int i,j,k;

char sign='y';

Elemtype *newbase;

Elemtype newelem;

while(sign!='n')

{

if(L->length==L->listsize)

{

newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List _INC_SPACE)*sizeof(Elemtype));

if(newbase)

{

L->elem=newbase;

L->listsize+=List_INC_SPACE;

}

else exit(OVERFLOW);

}

printf("请输入要插入的同学的信息:\n");

printf("学号(15)\n");

scanf("%16s",;

printf("姓名(15)\n");

scanf("%16s",;

printf("性别(男:M女:F)\n");

scanf("%16s",;

printf("成绩\n");

scanf("%10d",&;

printf("要插入到第几个位置:");