学生信息管理系统(顺序表)实验1

合集下载

超好的学生成绩管理系统实验报告顺序表链表

超好的学生成绩管理系统实验报告顺序表链表

数据结构实验报告一.具体设计Ⅰ顺序表㈠存储结构定义采用了两个结构体,其中Student结构体用于存储学生的各项信息,包括学号int num;姓名char name[20];英语成绩float english;数学成绩float math;数据结构成绩float database;总分float sum;平均分float average; 顺序表的结构体sqlist中包含的数据项是Student结构体,还有存储当前长度的int length;及当前分配的存储容量的int listsize;㈡函数功能定义及具体功能介绍⑴录入信息int Input(sqlist *L)每次输入学生的所有信息,输入完后提示是否继续输入⑵显示所有学生信息int Display(sqlist *L)⑶插入一条记录到表尾void Insert(sqlist *L)⑷删除一条记录int Delete(sqlist *L)包括1.按姓名删除2.按学号删除⑸统计成绩int Statistic(sqlist *L)包括全班平均成绩,各科平均成绩,总分最高分,总分最低分,各科最高分,各科最低分以及各科及格率⑹查找int Search(sqlist *L)查找方法包括1.顺序查找2.二分查找按查找内容又包括1.按学号查找2.按姓名查找,若查找成功则显示查找到的学生信息,若查找失败则提示“查找失败!”⑺排序int Sort(sqlist *L)排序方法包括1.直接插入排序2.折半插入排序3.冒泡排序4.直接选择排序,排序内容包括1.按学号排序2.按英语成绩排序3.按高数成绩排序4.按数据结构成绩排序5.按总分排序(0)退出程序void tuichu(sqlist *L)释放占用的内存空间,显示"谢谢使用!",然后关闭所有文件,终止正在进行的程序(9) 主菜单int menu(),每次进行完一次功能实现后再次弹出,方便用户使用(10) 主函数int main(),用switch语句根据用户的选择进行相应的操作㈢具体设计思路及过程⑴录入信息int Input(sqlist *L),初始length为0,每录入一个学生length加一,然后显示提示信息是否继续,若继续则要再录入,所以要把这个整体的外面再套一层while循环,但是在写的过程中也遇到了一个困难,还没有输入继续y,就让输入学生信息,通过百度,知道了C有一个输入的缓冲区,所以在每次输入前都请空了缓冲区,防止读入缓冲区余下的内容。

学生信息管理系统实验报告

学生信息管理系统实验报告

学生管理系统1、用例图(1)班级信息管理用例图说明:系统管理员直接参与的用例为“登录”、“找回密码”、“查看班级基本信息"、“删除班级基本信息”、“修改班级基本信息"和“录入班级基本信息”。

校领导、教师、学生直接参与的用例为“登录”、“找回密码"和“查看班级基本信息"。

若在登录过程中发生忘记密码的情况,就需要使用“找回密码"的功能来恢复密码,而在正常情况下用不到“找回密码"这个功能,所以用例“找回密码”和用例“登录"之间是扩展关系.(2)成绩管理用例图说明:教师直接参与的用例为“登录”、“查询成绩”、“删除成绩”、“录入成绩”、“修改成绩”和“保存成绩”。

学生直接参与的用例为“登录”和“查询成绩”.因为修改成绩和录入成绩的时候都要保存成绩,所以将保存成绩抽象出来作为单独的一个用例。

用例“录入成绩”、“修改成绩"和“保存成绩”之间是包含关系,用例“找回密码"和用例“登录"之间是扩展关系。

(3)网上选课用例图说明:学生直接参与的用例为“登录”、“找回密码"、“查看课程信息”、“按课程编号查看”、“按课程名查看”、“选择课程”和“删除已选课程。

系统管理员直接参与的用例为“登录”、“找回密码”和“维护课程信息”.其中查看课程信息有两种方式,一种是按课程编号查看,另一种是按课程名查看,所以“查看课程信息”是父用例,而“按课程编号查看"、“按课程名查看”是子用例,他们之间是泛化关系。

用例“找回密码"和用例“登录”之间是扩展关系。

(4)学生信息管理用例图说明:系统管理员直接参与的用例为“登录”、“找回密码”、“查询学生基本信息"、“删除学生基本信息”、“修改学生基本信息”和“录入学生基本信息”。

校领导、教师直接参与的用例为“登录”、“找回密码”和“查询学生基本信息”。

学生直接参与的用例为“登录”、“找回密码”、“查询学生基本信息"和“修改学生基本信息”。

实验一 顺序表操作实现

实验一 顺序表操作实现

实验一顺序表操作实现实验一顺序表操作实现实验日期:2022年3月6日实验目的及要求1.掌握线性表的基本操作和顺序存储的实现;2.以线性表的各种操作(建立、插入、删除、遍历等)的实现为重点;3.掌握线性表的顺序存储结构的定义和基本操作的实现;4.加深本函数指针的使用(尤其是C的应用)。

实验内容已知程序文件seqlist CPP给出了学生身高信息序列表的类型定义和基本运算函数定义。

(1)顺序表类型定义typedefstruct{intxh;/*学号*/floatsg;/*身高*/intsex;/*性别:0为男性,1为女性*/}数据类型;typedefstruct{datatypedata[max];/*存放顺序表元素的数组*/intlast;/*表示data中实际存放元素个数*/}seqlist;(2)基本操作功能原型voidinitlist(seqlist*lp);/*置一个空表*/voidcreatelist(seqlist*lp);/*创建学生订单表*/voidsort_xh(seqlist*lp);/*按学生编号排序*/void error(char*s)/*用户定义的错误处理函数*/void pntlist (seqlist*LP)/*输出学生表*/voidsave(seqlist*lp,charstrname[]);/*保存学生顺序表到指定文件*/任务一创建程序文件seqlist.cpp,其代码如下所示,理解顺序表类型seqlist和基本运算函数后回答下列问题。

/*seqlist。

CPP程序文件代码*/#include#include#definemax50typedef{intxh;/*学号*/floatsg;/*身高*/intsex;/*性别:0为男性,1为女性*/}数据类型;typedefstruct{datatypedata[max];/*存放顺序表元素的数组*/intlast;/*表示data中实际存放元素个数*/}seqlist;voidinitlist(seqlist*lp);/*摆一张空桌子*/voidcreatelist(seqlist*lp);/*建一个学生顺序表*/voidsort_xh(seqlist*lp);/*按学号排序*/voiderror(char*s);/*自定义错误处理函数*/voidpntlist(seqlist*lp);/*输出学生表*/voidsave(seqlist*lp,charstrname[]);/*将学生序列表保存到指定文件*//*置一个空表*/voidinitlist(seqlist*lp){lp->last=0;}/*建一个学生顺序表*/voidcreatelist(seqlist*lp){file*fp;intxh,sex;floatsg;if((fp=fopen(\{error(\}而(!feof(fp)){fscanf(fp,\lp->data[lp->last].xh=xh;lp->data[lp->last].sg=sg;lp->data[lp->last].sex=sex;lp->last++;}fclose(fp);}/*按学生人数递增*/voidsort_xh(seqlist*lp){inti,j,k;datatypest;对于(i=0;ilast-1;i++){k=i;for(j=i+1;jlast;j++)if(lp->data[j].xhdata[k].xh)k=j;if(k!=i){st=lp->data[k];lp->data[k]=lp->data[i];lp->data[i]=st;}}}/*自定义错误处理函数*/void error(char*s){printf(\exit(1);/*返回os,该函数定义在stdlib.h中*/}/*输出学生序列表*/void pntlist(seqlist*LP){inti;for(i=0;ilast;i++)printf(\}/*保存学生顺序表到指定文件*/voidsave(seqlist*lp,charstrname[]){file*fp;inti;如果((fp=fopen(strname,\{error(\}for(i=0;ilast;i++){fprintf(fp,\}fclose(fp);}请回答以下问题:(1)由顺序表类型定义可知,该顺序表类型名为seqlist,其中存放的元素为学生信息,学生信息定义的类型名为datatype,包含xh、sg、sex三个成员(写出成员变量名),学生信息存储于data数组,顺序表的表长变量为max。

学生信息管理系统实验报告

学生信息管理系统实验报告

一、实验目的1. 熟悉学生信息管理系统的基本功能和操作流程。

2. 掌握数据库设计的基本方法,能够根据需求设计合理的数据库结构。

3. 熟悉编程语言和开发工具,能够编写简单的数据库应用程序。

4. 提高团队合作能力和沟通能力。

二、实验环境1. 操作系统:Windows 102. 开发工具:Visual Studio 20193. 数据库:MySQL 5.74. 编程语言:C#三、实验内容1. 需求分析学生信息管理系统主要用于对学生信息进行管理,包括学生基本信息、成绩、课程、班级等。

系统应具备以下功能:(1)学生信息管理:增加、删除、修改、查询学生信息。

(2)成绩管理:录入、修改、查询学生成绩。

(3)课程管理:增加、删除、修改、查询课程信息。

(4)班级管理:增加、删除、修改、查询班级信息。

(5)统计分析:对学生成绩、课程等进行统计分析。

2. 数据库设计根据需求分析,设计如下数据库表:(1)学生信息表(student)字段名 | 数据类型 | 说明--- | --- | ---id | int | 学生编号(主键)name | varchar(50) | 学生姓名gender | varchar(10) | 性别age | int | 年龄class_id | int | 班级编号(外键)(2)成绩表(score)字段名 | 数据类型 | 说明--- | --- | ---id | int | 成绩编号(主键)student_id | int | 学生编号(外键)course_id | int | 课程编号(外键)score | float | 成绩(3)课程表(course)字段名 | 数据类型 | 说明--- | --- | ---id | int | 课程编号(主键)name | varchar(50) | 课程名称credit | int | 学分(4)班级表(class)字段名 | 数据类型 | 说明--- | --- | ---id | int | 班级编号(主键)name | varchar(50) | 班级名称3. 系统设计(1)界面设计采用Windows窗体应用程序,界面包括以下部分:- 主界面:展示系统功能菜单。

实验一顺序表的基本操作实验报告

实验一顺序表的基本操作实验报告

元素之后的所有数据都前移一个位置,最将线性表长减1。

3.顺序表查找操作的基本步骤:要在顺序表中查找一个给定值的数据元素则可以采用顺序查找的方法,从表中第 1 个数据元素开始依次将值与给定值进行比较,若相等则返回该数据元素在顺序表中的位置,否则返回0 值。

线性表的动态分配顺序存储结构—C语言实现#define MaxSize 50//存储空间的分配量Typedef char ElemType;Typedef struct{ElemType data[MaxSize];int length; //表长度(表中有多少个元素)}SqList;动态创建一个空顺序表的算法:void InitList(SqList *&L) //初始化线性表{L=(SqList *)malloc(sizeof(SqList)); //分配存放线性表的空间L->length=0; //置空线性表长度为0}线性表的插入:status Sqlist_insert(Sqlist &L,int i,Elemtype x)/*在顺序表L中第i个元素前插入新元素x*/{ if (i<1||i>L.length+1) return ERROR; /*插入位置不正确则出错*/if (L.length>=MAXLEN)return OVERFLOW;/*顺序表L中已放满元素,再做插入操作则溢出*/for(j=L.length-1;j>=i-1;j--)L.elem[j+1]=L.elem[j]; /*将第i个元素及后续元素位置向后移一位*/L.elem[i-1]=x; /*在第i个元素位置处插入新元素x*/L.length++; /*顺序表L的长度加1*/return OK;}线性表的删除:status Sqlist_delete(Sqlist &L,int i,Elemtype &e)/*在顺序表L中删除第i个元素*{ if (i<1||i>L.length) return ERROR; /*删除位置不正确则出错*/for(j=i;j<=L.length-1;j++)L.elem[j-1]=L.elem[j]; /*将第i+1个元素及后继元素位置向前移一位*/L.length--;/*顺序表L的长度减1*/return OK;}线性表元素的查找:int LocateElem(SqList *L, ElemType e) //按元素值查找{int i=0;while (i<L->length && L->data[i]!=e)i++; //查找元素eif (i>=L->length) //未找到时返回0return 0;elsereturn i+1; //找到后返回其逻辑序号}输出线性表:void DispList(SqList *L) //输出线性表{int i;if (ListEmpty(L)) return;for (i=0;i<L->length;i++)printf("%c ",L->data[i]);printf("\n");}输出线性表第i个元素的值:bool GetElem(SqList *L,int i,ElemType &e)//求线性表中某个数据元素值{if (i<1 || i>L->length)return false; //参数错误时返回falsee=L->data[i-1]; //取元素值return true; //成功找到元素时返回true}代码:#include <stdio.h>#include <malloc.h>#define MaxSize 50typedef char ElemType;typedef struct{ElemType data[MaxSize];int length;} SqList;void InitList(SqList *&L);void DestroyList(SqList *L);bool ListEmpty(SqList *L);int ListLength(SqList *L);void DispList(SqList *L);bool GetElem(SqList *L,int i,ElemType &e);int LocateElem(SqList *L, ElemType e);bool ListInsert(SqList *&L,int i,ElemType e);bool ListDelete(SqList *&L,int i,ElemType &e);void InitList(SqList *&L)//初始化线性表{L=(SqList *)malloc(sizeof(SqList));//分配存放线性表的空间L->length=0;//置空线性表长度为0 }void DestroyList(SqList *L)//销毁线性表{free(L);}bool ListEmpty(SqList *L)//判线性表是否为空表{return(L->length==0);}int ListLength(SqList *L)//求线性表的长度{return(L->length);}void DispList(SqList *L)//输出线性表{int i;if (ListEmpty(L)) return;for (i=0;i<L->length;i++)printf("%c ",L->data[i]);printf("\n");}bool GetElem(SqList *L,int i,ElemType &e)//求线性表中某个数据元素值{if (i<1 || i>L->length)return false;//参数错误时返回falsee=L->data[i-1];//取元素值return true;//成功找到元素时返回true}int LocateElem(SqList *L, ElemType e)//按元素值查找{int i=0;while (i<L->length && L->data[i]!=e)i++;//查找元素eif (i>=L->length)//未找到时返回0return 0;elsereturn i+1;//找到后返回其逻辑序号}bool ListInsert(SqList *&L,int i,ElemType e)//插入数据元素{int j;if (i<1 || i>L->length+1)return false;//参数错误时返回falsei--;//将顺序表逻辑序号转化为物理序号for (j=L->length;j>i;j--)//将data[i]及后面元素后移一个位置L->data[j]=L->data[j-1];L->data[i]=e;//插入元素eL->length++;//顺序表长度增1return true;//成功插入返回true}bool ListDelete(SqList *&L,int i,ElemType &e)//删除数据元素{int j;if (i<1 || i>L->length)//参数错误时返回falsereturn false;i--;//将顺序表逻辑序号转化为物理序号e=L->data[i];for (j=i;j<L->length-1;j++)//将data[i]之后的元素前移一个位置L->data[j]=L->data[j+1];L->length--;//顺序表长度减1return true;//成功删除返回true}void main(){SqList *L;ElemType e;printf("顺序表的基本运算如下:\n");printf(" (1)初始化顺序表L\n");InitList(L);printf(" (2)依次采用尾插法插入a,b,c,d,e元素\n");ListInsert(L,1,'a');ListInsert(L,2,'b');ListInsert(L,3,'c');ListInsert(L,4,'d');ListInsert(L,5,'e');printf(" (3)输出顺序表L:");DispList(L);printf(" (4)顺序表L长度=%d\n",ListLength(L));printf(" (5)顺序表L为%s\n",(ListEmpty(L)?"空":"非空"));GetElem(L,3,e);printf(" (6)顺序表L的第3个元素=%c\n",e);实验结果:心得体会:通过本次实验,实现了数据结构在程序设计上的作用,了解了数据结构语言,加深了对c语言的认识掌并掌握了线性表的顺序存储结构的表示和实现方法,掌握顺序表基本操作的算法实现,同时了解了顺序表的应用。

顺序表的基本操作和实现实验报告(一)

顺序表的基本操作和实现实验报告(一)

顺序表的基本操作和实现实验报告(一)顺序表的基本操作和实现实验报告1. 引言顺序表是计算机科学中一种常用的数据结构,用于存储一组元素并支持快速的随机访问。

本实验旨在探究顺序表的基本操作和实现方法。

2. 实验目的•理解顺序表的概念和特性。

•学习顺序表的基本操作,包括插入、删除、查找和修改等。

•掌握顺序表的实现方法,包括静态分配和动态分配两种方式。

•培养对数据结构的抽象思维和编程能力。

3. 实验内容1.了解顺序表的定义,及其与数组的关系。

2.掌握插入操作的实现方法,包括在表头、表中和表尾插入元素。

3.掌握删除操作的实现方法,包括按索引删除和按值删除。

4.掌握查找操作的实现方法,包括按索引查找和按值查找。

5.掌握修改操作的实现方法,包括按索引修改和按值修改。

6.实现顺序表的静态分配和动态分配两种方式。

4. 实验步骤1.定义顺序表的结构体,包括数据存储区和长度属性。

2.实现插入操作,根据需要选择插入位置和移动元素。

3.实现删除操作,根据需要选择删除方式和更新长度。

4.实现查找操作,根据需要选择查找方式和返回结果。

5.实现修改操作,根据需要选择修改方式和更新元素。

6.实现顺序表的静态分配和动态分配方法。

5. 实验结果经过多次实验和测试,顺序表的基本操作都能够正确实现。

在插入操作中,能够将元素正确插入指定位置,并保持顺序表的有序性。

在删除操作中,能够按需删除指定位置或值的元素,并正确更新顺序表的长度。

在查找操作中,能够根据索引或值查找到对应的元素,并返回正确的结果。

在修改操作中,能够按需修改指定位置或值的元素,并更新顺序表的内容。

6. 实验总结本实验通过对顺序表的基本操作和实现方法的学习和实践,进一步巩固了对数据结构的理解和编程能力的培养。

顺序表作为一种常用的数据结构,对于解决实际问题具有重要的作用。

通过本次实验,我对顺序表的插入、删除、查找和修改等操作有了更深入的了解,并学会了如何实现这些操作。

通过本次实验,我还学会了顺序表的静态分配和动态分配方法,了解了它们的区别和适用场景。

学生管理系统实验报告

学生管理系统实验报告实验目的本次实验的目的是设计并实现一个学生管理系统,以便管理教师对学生的基本信息、课程成绩等重要数据进行记录、查询和修改。

通过该实验,我们可以学习和掌握数据库的设计与应用,以及如何利用编程语言实现对数据库的操作。

实验环境本次实验使用的开发环境为Windows操作系统,数据库管理系统采用MySQL,编程语言为Java。

实验内容与步骤1. 数据库设计首先,我们需要进行数据库的设计。

根据实际需求,设计了以下几个表:- 学生表(Student):包含学生的学号、姓名、性别、出生日期等基本信息。

- 课程表(Course):包含课程的课程号、课程名、学分等信息。

- 成绩表(Score):包含学生的学号、课程号和成绩等信息。

2. 数据库连接使用Java编程语言,我们需要编写代码来连接MySQL数据库。

首先引入相关的数据库连接库,在代码中设置数据库的连接信息,如数据库URL、用户名和密码。

3. 数据库操作接下来,我们需要编写代码来实现对数据库的操作,包括插入、查询和修改等功能。

- 插入数据:通过执行SQL语句,将学生的基本信息、课程信息和成绩信息插入到相应的表中。

- 查询数据:根据学生学号或课程号,执行查询语句,并将结果以表格的形式展示出来。

- 修改数据:对于某个学生或某门课程的成绩,可以根据学号或课程号来修改其对应的成绩。

4. 用户界面设计为了方便教师使用学生管理系统,我们设计了一个简洁美观的用户界面。

通过该界面,教师可以方便地进行数据库的操作。

实验结果与分析经过运行实验代码,成功地实现了学生管理系统的设计与实现。

教师可以通过该系统对学生的信息进行录入、查询和修改,从而实现了对学生的有效管理。

界面设计方便了教师的操作,使其能够直观地进行各项功能的实现。

实验总结通过本次学生管理系统实验,我对数据库的设计与应用有了更深入的理解。

实验中,我掌握了数据库的基本操作和编程语言对数据库的操作方法,同时也提高了编程能力和逻辑思维能力。

学生管理系统_实验报告

一、实验目的1. 熟悉并掌握数据库的基本操作,包括创建数据库、创建表、插入数据、查询数据等。

2. 熟悉并掌握Java编程语言的基本语法和面向对象编程思想。

3. 通过实际编程,提高学生的编程能力和问题解决能力。

二、实验环境1. 操作系统:Windows 102. 数据库:MySQL 5.73. 开发工具:Eclipse4. 编程语言:Java三、实验内容1. 数据库设计2. 系统功能设计3. 系统实现四、实验步骤1. 数据库设计(1)创建数据库```sqlCREATE DATABASE StudentManagementSystem;```(2)创建表```sql-- 创建学生信息表CREATE TABLE student_info (student_id INT PRIMARY KEY AUTO_INCREMENT, student_name VARCHAR(50) NOT NULL,gender CHAR(1) NOT NULL,class_id INT NOT NULL,age INT NOT NULL,phone VARCHAR(20));-- 创建班级信息表CREATE TABLE class_info (class_id INT PRIMARY KEY AUTO_INCREMENT, class_name VARCHAR(50) NOT NULL);```2. 系统功能设计(1)学生信息管理- 添加学生信息- 删除学生信息- 修改学生信息- 查询学生信息(2)班级信息管理- 添加班级信息- 删除班级信息- 修改班级信息- 查询班级信息3. 系统实现(1)创建Java项目- 使用Eclipse创建一个名为“StudentManagementSystem”的Java项目。

(2)创建实体类- 创建Student类,包含学生信息字段,如:student_id、student_name、gender、class_id、age、phone等。

学生信息 管理系统实验报告

1.实验名称学生信息管理系统程序设计2. 实验内容1)利用文件student.txt,存储所有学生的信息2)学生信息包括:学号、姓名、性别、年龄、籍贯、所在班级、兴趣爱好3)程序具备删除、修改、增加、按姓名查询、按班级查询4)程序有一个Student类,该类具有学号、姓名、性别、年龄、籍贯、所在班级、兴趣爱好共计七个属性,属性的访问修饰符均为private,类还具有属性所对应的public getXXX(),public setXXX();成员方法用于修改或读取对应的属性值,类还具有public Student(Strin 学号),public Student(String 学号,String )等共计7个构造方法5)程序具有一个StudentManager类,该类具有一个公共无参构造方法及public void addStudent(Student stu)public void delStudent(Student stu)public void updateStudent(Student stu)public Student queryStudentbyName(String name)public List<Student> queryStudentsbyClass(String cls) 该类具有一个List<Student> stus = new ArrayList<Student>();6)程序具有一个StudentManagerApp类,该类具有一个入口方法public static void main(String[]args)方法的逻辑1.调用private static void initApp(StudentManager sm)通过读取student.txt文件,通过调用sm的addStudent方法完成对sm的stus成员值。

2.进入程序界面,代码结构:调用private static void printUI()显示程序的功能while(true){ //读入用户的功能选择switch(){case :case :}}3.调用private static void storeApp(StudentManager sm) 完成student.txt文件的更新。

顺序表实现学生信息管理

实验1 利用顺序表实现学生信息管理1.实验目的·掌握顺序表结构的实现方式;·掌握顺序表常用算法的实现;·熟悉利用顺序表解决问题的一般思路;领会顺序表结构的优点与不足。

2.实验内容与要求以学生信息为数据元素建立顺序表。

一个学生的信息包括学号、姓名、性别、班级和联系电话。

程序用户可通过数字键选择信息浏览、插入信息、删除信息等功能。

对程序的具体要求如下:(1)程序启动后,显示下列选项信息:1—信息浏览2—插入信息3—删除信息4-修改信息0—退出程序(2)输入数字“1”显示所有学生信息列表。

(3)输入数字“2”进入插入信息功能模块。

程序依次提示并由用户输入学号、姓名、性别、班级和联系电话,最终实现在线性表头部插入一个学生信息。

(4)输入数字“3”进入删除信息功能模块。

程序提示并由用户输入学号,最终实现按照学号删除某个学生信息。

(5)输入数字“4”进入修改信息功能模块。

程序提示并由用户输入学号,最终实现按照学号修改某个学生信息。

(6)通过输入数字“0”使得程序结束。

(7)当用户执行浏览、插入、删除功能后,程序应继续提示用户通过数字键选择相应功能,直到用户输入数字“0”程序才结束。

3.实验编程指导(1)可仿照本章顺序表的定义形式,建立学生信息结点数据,并进一步建立一个长度为5的顺序表。

(2)参考本章中顺序表的算法描述和算法的实现,在本程序中增加顺序表的插入、删除等算法实现函数。

(3)编写主函数,可通过在while循环结构中嵌入switch分支结构实现操作选择功能。

(4)完善插入、删除功能。

实现插入信息的录入、删除记录的定位等细节。

(5)完善用户操作界面,给出详细的操作提示。

4.实验报告要求实验报告要求以word文件形式发到老师邮箱。

内容包括:(1)报告封面包括实验名称、班级、姓名、学号以及实验完成日期。

(2)各程序模块名称及功能说明。

并绘制出主要功能函数的程序流程图。

(3)个人小结。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
L->length++;
}
printf("%d名学生信息如下:\n",L->length);
printf("学号(15)姓名(15)性别(男:M女:F)成绩\n");
for(i=0;i<L->length;i++)
printf("%-16s%-16s%-16s%-10d\n",L->elem[i].number,L->elem[i].name,L->elem[i].sex,L->elem[i].score);
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);
3.基本要求:
(1)硬件:微机,打印机各一台
(2)软件:Visual C++,windows7
4.算法设计思想
(1).分析程序的功能要求,划分程序功能模块。
(2). 画出系统流程图。
(3). 代码的编写。定义数据结构和各个功能子函数。
(4). 程序的功能调试。
5.算法的流程图
6.算法源代码:
#include<stdio.h>
四、算法设计思想………………………………………………… 1
五、算法流程图…………………………………………………………… 6
七、运行结果……………………………………………………… 22
八、收获和体会…………………………………………………… 25
九、致谢…………………………………………………………… 25
typedef struct
{
char number[15];
char name[10];
char sex[10];
int score;
}Elemtype;
typedef struct
{
Elemtype *elem;
int length;
int listsize;
}sqlist;
/*1创建空顺序表并初始化*/
在课程设计中,我们充分发挥小组优势完成课程设计,同时也体会到小组合作的重要性与必要性。
2、课题设计意义:
指导教师:
年 月 日
安徽新华学院课程设计成绩评定表(本科)
一、实验目的……………………………………………………… 1
二、实验内容……………………………………………………… 1
三、基本要求……………………………………………………… 1
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);
#include<stdlib.h>
#include<string.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define MAXSIZE 10
#define List_INIT_SPACE 10
#define List_INC_SPACE 1
L->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));
void creatList(sqlist *L)
{
int i=0,n;
Elemtype *newbase;
L->elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemtype)));
if(!L->elem) exit(OVERFLOW);
L->length=0;
数据结构课程设计
设计题目:学生信息管理系统(顺序)
姓名及学号:
专业班级:09计算机科学与技术
指导教师:
完成时间:
信息工程学院计算机科学系
课题名称
学生信息管理系统(顺序表)
院 系
信息工程学院
年级专业
10计科特色
学 号
姓 名
成 绩
1042157103
何业祥
1042157104
孔磊磊
10421571019
王 舒
课题设计
目的与
设计意义
1、课题设计目的:课程设计任务是为了实现学生信息的相关操作,方面用户快速得到学生的各种信息,并且能进行信息的更新、插入、删除等操作。课程设计的主要目的:熟练利用数据结构各种算法思想设计程序;掌握C语言基本语法;
通过课程设计,加深对数据结构课程所学内容的进一步理解和巩固;加深对结构化课程设计思想的理解,并设计合理的模块化结构;提高程序开发功能,能运用合理的控制流程编写清晰高效的程序;培养分析问题、解决问题的能力。
}
/*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)
1.实验目的:
通过制作学生信息管理系统
(1)基本掌握面向过程程序设计的的基本思路和方法;
(2)达到熟练掌握C语言的基本知识和技能;
(3)能够利用所学的基本知识和技能,解决简单的程序设计问题。
2.实验内容:
输入一个班学生的学号,姓名,性别,成绩。编程插入学生信息,设计查找每个学生的信息,删除学生信息,输出学生信息,修改学生信息,报表和显示学生信息,及退出学生信息管理系统。
相关文档
最新文档