顺序表 学生信息管理系统
学生管理信息系统功能结构图
郑州华信学院学生信息管理系统课程名称:信息系统分析与设计项目名称:学生信息管理系统报告名称:功能结构图指导老师:王国君老师专业班级: 08计算机科学与技术小组编号:第6组系统功能结构1.结构设计根据对系统进行的需求分析,本系统将分为4个模块:1>学生管理管理学生的基本信息,包括个人信息的添加、修改、删除,以及选课信息的添加。
2>课程管理管理课程的基本信息,包括课程信息的添加、修改和删除。
3>成绩管理管理学生选课的成绩信息,包括成绩的登记与修改。
4>信息查询查询已经登记的信息,包括学生的基本信息、课程的基本信息成绩信息。
2.功能结构图2.1系统功能结构如图所示:2.2功能流程及工作流描述1>增加学生信息系统操作人员打开学生信息增加界面,输入相关信息(姓名、民族、籍贯、出生日期、入学年份、专业和学院等),在数据库中添加相关数据。
2>修改学生信息根据学生学号查询出该学生的相关信息,修改相关条目后保存在数据库中。
3>删除学生信息根据学生学号查询出该学生的相关信息,确定删除后,在数据库中删除该信息。
4>学生选课根据学生学号与需要选择的课程,确认无误后保存,数据库中将自动添加新的选课记录。
5>增加课程信息系统操作人员根据打开的课程信息增加界面,输入相关信息(课程名称、授课教师、上课时间、上课地点和课程类型等),在数据库中添加相关数据。
6>修改课程信息根据课程号查询出课程的相关信息,修改相关条目后保存在数据库中。
7>删除课程信息根据课程号查询出该课程的相关信息,确定删除后,在数据库中删除该信息。
8>登记成绩根据学号以及该学生所选择的课程,进行成绩登记,未选课的学生无法进行登记9>修改成绩对已登记的成绩进行修改。
10>学生查询可以根据学生学号、学生姓名、学生性别、学生所学专业、学生所属学院来对学生信息进行查询,所有符合条件的学生信息都将会被显示出来。
学生信息管理系统数据流图
学生信息管理系统零层数据图:4—学生是韋値岸学些课況或甘/学生信&管理系统0 诛电?畠学生* 特号密镯L 录几暉:牛与惠聊悟恵管理员*F生成矯殳予井‘1r»Tz«e管珅帶信护老怖学生信息系统1层数据流图:Rlrfllt审怕哥171工咸站信引aIARtt汞入litlg,哎處潅昌ISI学土学生信息数据流图:書ifl 黑件 I ---- 膺生信忌学生愛询斛rr”课稈豪疋■悔插性底壇总菩库xAx fi 询亲件t 2SE老师信息数据流图: 学生信扈數据衣老师伯息更軒立誉询畫电I —4i±tsB老师#Adtta 髦询哉—H 老剜亦«A«iS事谏毬雷库咸绩吞镇库童询醴---- ►谏程生剧I奋谊睾ft成•数需1 2«管理员数据信息流图:老Mi 恬氏敦材萼数据字典数据流描述: 数据流名:帐号密码 数据来源:用户登录处理数据去向:统计分析处理 说明:用户输入帐号与密码 数据组成:帐号+密码 数据流量:小 数据流名:查询条件数据来源:统计分析管理员数据去向:统计出用户输出信息说明:用于统计出用户查询的所有条件数据组成:帐号+密码数据流量:大数据流名:录入成绩数据来源:学生选课成绩数据去向:学生成绩表说明:录入学生的选课的成绩信息数据组成:课程号+课程名数据流量:大数据流名:录入课程数据来源:教务处制定的课程数据去向:学生选课表说明:录入学生选择的课程数据组成:课程代号+课程名数据流量:小数据流名:老师查询条件数据来源:统计分析数据去向:老师查询的相关信息说明:查询老师权限范围内的数据数据组成:学生学号+课程号+课程名+老师编号数据流量:小数据流名:学生查询条件数据来源:统计分析数据去向:查询学生的相关信息说明:在学生权限范围内查询信息数据组成:学号+课程号+课程名+成绩+选课名+籍贯+年级+专业+院系+年级数据流量:大数据流名:管理员查询条件数据来源:统计分析数据去向:查询学生老师管理员的相关信息说明:在管理员权限范围内查询信息数据组成:学号+老师编号+籍贯+出生年月+年级+性别+民族+专业+院系+政治面貌+职称数据流量:大数据流名:录入学生与老师数据来源:老师与学生信息表数据去向:增删老师与学生说明:管理学生与老师信息数据组成:学号+老师编号+出生日期+籍贯+性别+名族数据流量:小数据流名:课程信息数据来源:管理员录入胡课程数据去向:课程信息的管理,增加与修改说明:管理课程信息数据组成:课程代号+课程名+出版社+作者+专业+系别+年级数据流量:小数据元素词条描述:丄学生信息管理:名称:学生信息管理别名: 描述:反应学生基本信息情况定义:学生信息管理二学号+姓名+性别+民族+出生日期+系别+专业+ 年级+籍贯位置:学生信息的录入学生信息的查询学生信息的修改丄课程信息管理:名称:课程信息管理别名:描述:反应课程基本信息定义:课程信息管理二课程代号+课程编号+课程类型+学分+学时位置:课程信息的录入课程信息的查询课程信息的修改丄成绩信息管理:名称:成绩信息管理别名:描述:反应成绩基本信息定义:成绩信息管理二序号+课程名+学分+类别+考核方式+成绩+辅修标记位置:成绩信息录入成信息的查询成绩信息修改丄选课信息管理:名称:选课信息管理别名:描述:反应选课基本信息定义:选课信息管理二课程代号+课程名+学分+类别+任课老师+人数+班级位置:选课信息录入选课息的查询选课信息修改丄老师信息管理:名称:老师信息管理别名:描述:反应老师基本信息定义:老师信息管理二老师编号+姓名+性别+职称+出生日期+院系+ 籍贯+电话位置:老师信息录入老师信息查询老师信息修改丄密码信息管理:名称:密码信息管理别名: 描述:反应密码基本信息定义:密码信息管理二用户名+丢密码+新密码+确认密码位置:密码信息的修改丄课程安排信息管理名称:课程安排信息管理别名:描述:反应课程安排基本信息定义:课程安排信息管理二年级+专业+班级+院系+周数+内容位置:课程安排信息录入课程安排信息查询课程安排信息修改丄管理员信息:名称:管理员信息别名:描述:反应管理员基本信息定义:管理员信息二姓名+性别+民族+出生年月+籍贯+电话位置:管理员信息录入管理员信息查询管理员信息修改丄学生统计分析:名称:学生统计分析别名:描述:反应用户查询的相关信息定义:统计分析二姓名+性别+民族+出生年月+籍贯+电话+课程号+课程名+成绩+学分位置:学生信息录入学生信息查询学生信息修改丄学生统计分析:名称:学生统计分析别名:描述:反应学生查询的相关信息定义:学生统计分析二姓名+性别+民族+出生年月+籍贯+电话+课程号+课程名+成绩+学分位置:学生信息录入学生信息查询学生信息修改丄老师统计分析:名称:老师统计分析别名:描述:反应老师查询的相关信息定义:老师统计分析二姓名+性别+民族+出生年月+籍贯+电话+职称+课程名+成绩+学分位置:课程信息录入老师信息查询学生成绩修改丄管理员统计分析:名称:管理员统计分析别名:描述:反应管理员查询的相关信息定义:管理员统计分析二姓名+性别+民族+出生年月+籍贯+电话+职称+课程名位置:老师与学生信息录入老师与学生信息修改学生、老师、成绩修改丄统计课程:名称:统计课程别名:描述:学生查询选择课程的相关信息定义:统计课程二课程代号+课程名+老师+学分+学时位置:选择课程的查询退选课程丄统计成绩:名称:统计成绩别名:描述:反应学生成绩的相关信息定义:统计成绩二学号+姓名+课程名+成绩+学分位置:成绩信息查询丄统计学生:名称:统计学生别名:描述:查询学生的相关信息定义:统计学生二姓名+性别+民族+毕业情况+年级+出生年月+籍贯+ 电话位置:学生信息录入学生信息查询学生信息修改丄统计老师:名称:统计老师别名:描述:查询老师的相关信息定义:统计老师二姓名+性别+民族+职称+出生年月+籍贯+电话位置:老师信息录入老师信息查询老师信息修改丄统计课程:名称:统计课程别名:描述:查询授课的相关信息定义:统计课程=课程代号+课程名+出版社+年级+系别+专业位置:课程信息录入课程信息查询课程信息修改丄统计学分:名称:统计学分别名:描述:查询学生学分相关信息定义:统计学分=学号+课程学分+总学分位置:学生学分的查询。
顺序表实现学生信息管理
实验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 、掌握线性表的定义;2 、掌握线性表的基本操作,如建⽴、查找、插⼊和删除等。
实验内容:定义⼀个包含学⽣信息(学号,姓名,成绩)的的顺序表和链表,使其具有如下功能:(1) 根据指定学⽣个数,逐个输⼊学⽣信息;(2) 逐个显⽰学⽣表中所有学⽣的相关信息;(3) 根据姓名进⾏查找,返回此学⽣的学号和成绩;(4) 根据指定的位置可返回相应的学⽣信息(学号,姓名,成绩);(5) 给定⼀个学⽣信息,插⼊到表中指定的位置;(6) 删除指定位置的学⽣记录;(7) 统计表中学⽣个数。
参考信息:Definition of structure student :typedef struct {char no[8]; //8 位学号char name[20]; // 姓名int price; // 成绩}Student;Definition of sequential list:typedef struct {Student *elem; // 指向数据元素的基地址int length; // 线性表的当前长度}SqList ;Definition of linked list :typedef struct LNode{Student data; // 数据域struct LNode *next; // 指针域}LNode,*LinkList;实验要求:(1) 程序要添加适当的注释,程序的书写要采⽤缩进格式。
(2) 程序要具在⼀定的健壮性,即当输⼊数据⾮法时,程序也能适当地做出反应,如插⼊删除时指定的位置不对等等。
(3) 程序要做到界⾯友好,在程序运⾏时⽤户可以根据相应的提⽰信息进⾏操作。
(4) 上传源程序到课堂派。
顺序表的源程序保存为SqList.cpp,链表的源程序保存为LinkList.cpp。
顺序表的源程序:#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define OVERFLOW -2#define MAXSIZE 100typedef int Status; // 定义函数返回值类型typedef struct{char no[10]; // 学号char name[20]; // 姓名int score; // 成绩}student;typedef student ElemType;typedef struct{ElemType *elem; // 存储空间的基地址int length; // 当前长度}SqList;Status InitList(SqList *L) // 构造空的顺序表 Lif(!L->elem) exit(OVERFLOW);L->length=0;return OK;}ElemType GetElem(SqList &L,int i) // 访问顺序表,找到 i位置,返回给 e{return L.elem[i];}int Search(SqList &L,char str[]) // 根据名字查找,返回该同学在顺序表中的编号{for(int i=1;i<=L.length;i++){if(strcmp(L.elem[i].name,str)==0)return i;}return0;}Status ListInsert(SqList &L,int i,ElemType e) // 在 i位置插⼊某个学⽣的信息{if((i<1)||(i>L.length+1)) return ERROR;if(L.length==MAXSIZE) return ERROR;for(int j=L.length;j>=i;j--){L.elem[j+1]=L.elem[j];}L.elem[i]=e;++L.length;return OK;}Status ListDelete(SqList &L,int i) // 在顺序表中删除 i位置的学⽣信息{if((i<1)||(i>L.length)) return ERROR;for(int j=i;j<=L.length;j++){L.elem[j]=L.elem[j+1];}--L.length;return OK;}void Input(ElemType *e){printf("姓名:"); scanf("%s",e->name);printf("学号:"); scanf("%s",e->no);printf("成绩:"); scanf("%d",&e->score);printf("输⼊完成\n\n");}void Output(ElemType *e){printf("姓名:%-20s\n学号:%-10s\n成绩:%-10.2d\n\n",e->name,e->no,e->score); }int main(){SqList L;ElemType a,b,c,d;printf("------------10.2.34版-----------\n");puts("1. 构造顺序表");puts("2. 录⼊指定⼈数的学⽣信息");puts("3. 显⽰学⽣表中的所有信息");puts("4. 根据姓名查找该学⽣,并返回学号和成绩");puts("5. 根据某指定位置显⽰该学⽣信息");puts("6. 在指定位置插⼊学⽣信息");puts("7. 在指定位置删除学⽣信息");puts("8. 统计学⽣个数");puts("0. 退出");printf("------------------------\n");int x,choose;while(1){puts("请输⼊你要选择的功能前的序号:");scanf("%d",&choose);if(choose==0) break;switch(choose){case1:if(InitList(&L))printf("成功建⽴顺序表\n\n");printf("顺序表建⽴失败\n\n");break;case2:printf("请输⼊要录⼊学⽣的⼈数(⼩于100):"); scanf("%d",&x);for(int i=1;i<=x;i++){printf("第%d个学⽣:\n",i);Input(&L.elem[i]);}L.length=x;puts("");break;case3:for(int i=1;i<=x;i++){a=GetElem(L,i);Output(&a);}break;case4:char s[20];printf("请输⼊要查找的学⽣姓名:");scanf("%s",s);if(Search(L,s))Output(&L.elem[Search(L,s)]);elseputs("对不起,查⽆此⼈");puts("");break;case5:printf("请输⼊要查询的位置:");int id1;scanf("%d",&id1);b=GetElem(L,id1);Output(&b);break;case6:printf ("请输⼊要插⼊的位置:");int id2;scanf("%d",&id2);printf("请输⼊学⽣信息:\n");Input(&c);if(ListInsert(L,id2,c)){x++;puts("插⼊成功");puts("");}else{puts("插⼊失败");puts("");}break;case7:printf("请输⼊要删除的位置:");int id3;scanf("%d",&id3);if(ListDelete(L,id3)){x--;puts("删除成功");puts("");}else{puts("删除失败");puts("");}break;case8:printf("已录⼊的学⽣个数为:%d\n\n",L.length);break;}}printf("\n\n谢谢您的使⽤,请按任意键退出\n\n\n");system("pause");return0;}#include<stdio.h>#include<malloc.h>#include<stdlib.h>#include<string.h>#define OK 1#define ERROR 0#define OVERFLOW -2#include<iostream>using namespace std;typedef int Status; // 定义函数返回值类型typedef struct{char no[10]; // 学号char name[20]; // 姓名double score; // 成绩}student;typedef student ElemType;typedef struct LNode{ElemType data; // 数据域struct LNode *next; //指针域}LNode,*LinkList;Status InitList(LinkList &L) // 构造空链表 L{L=(struct LNode*)malloc(sizeof(struct LNode));L->next=NULL;return OK;}Status GetElem(LinkList L,int i,ElemType &e) // 访问链表,找到 i位置的数据域,返回给 e {LinkList p;p=L->next;int j=1;while(p&&j<i){p=p->next;++j;}if(!p||j>i) return ERROR;e=p->data;return OK;}Status Search(LNode L,char str[],LinkList &p) // 根据名字查找{p=L.next;while(p){if(strcmp(p->,str)==0)return OK;p=p->next;}return ERROR;}Status ListInsert(LinkList L,int i,ElemType e) // 在 i个位置插⼊某个学⽣的信息{LinkList p,s;p=L;int j=0;while(p&&j<i-1){p=p->next;++j;}if(!p||j>i-1) return ERROR;s=(struct LNode*)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;return OK;}Status ListDelete(LinkList p,int i) // 删除 i位置的学⽣信息{int j=0;while((p->next)&&(j<i-1))++j;}if(!(p->next)||(j>i-1)) return ERROR;LinkList q;q=p->next;p->next=q->next;delete q;return OK;}void Input(ElemType *e){cout<<"姓名:";cin>>e->name;cout<<"学号:";cin>>e->no;cout<<"成绩:";cin>>e->score;cout<<"完成输⼊\n\n";}void Output(ElemType *e){printf("姓名:%-20s\n学号:%-10s\n成绩:%-10.2lf\n\n",e->name,e->no,e->score); }int main(){LNode L;LinkList p;ElemType a,b,c,d;cout<<"------------10.2.34版 -----------\n";cout<<"1. 构造顺序表\n";cout<<"2. 录⼊指定⼈数的学⽣信息\n";cout<<"3. 显⽰学⽣表中的所有信息\n";cout<<"4. 根据姓名查找该学⽣,并返回学号和成绩\n";cout<<"5. 根据某指定位置显⽰该学⽣信息\n";cout<<"6. 在指定位置插⼊学⽣信息\n";cout<<"7. 在指定位置删除学⽣信息\n";cout<<"8. 统计学⽣个数\n";cout<<"0. 退出\n";cout<<"------------------------\n";int n,choose=-1;while(choose!=0){puts("请输⼊你要选择的功能前的序号:");cin>>choose ;if(choose==0)break;else if (choose==1){if(InitList(p))cout<<"建⽴顺序表成功\n";elsecout<<"建⽴顺序表失败\n";}else if (choose==2){cout<<"将要输⼊学⽣的⼈数:";cin>>n;for(int i=1;i<=n;i++){printf("第%d个学⽣:\n",i);Input(&a);ListInsert(&L,i,a);}}else if (choose==3){for(int i=1;i<=n;i++){GetElem(&L,i,b);Output(&b);}}else if (choose==4)cout<<"请输⼊要查找的学⽣姓名:";cin>>s;if(Search(L,s,p))Output(&(p->data));elsecout<<"对不起,查⽆此⼈";puts("");}else if (choose==5){cout<<"请输⼊要查询的位置:";int id1;cin>>id1;GetElem(&L,id1,c);Output(&c);}else if (choose==6){cout<<"请输⼊要插⼊的位置:";int id2;cin>>id2;cout<<"请输⼊学⽣信息:\n";Input(&d);if(ListInsert(&L,id2,d)){n++;cout<<"插⼊成功"; ;puts("");}else{cout<<"插⼊失败";puts("");}}else if (choose==7){cout<<"请输⼊要删除的位置:";int id3;cin>>id3;if(ListDelete(&L,id3)){n--;cout<<"删除成功";puts("");}else{cout<<"删除失败";puts("");}}else if (choose==8){cout<<"已录⼊的学⽣个数为:"<<n<<endl;break;}}cout<<"\n\n谢谢您的使⽤,请按任意键退出\n\n\n"; system("pause");return0;}。
学生信息管理系统数据流图
学生信息管理系统零层数据图:数据炸学生!, 学生谀穆安摊帐号密码<—学土咸樓及宇分’学生基本佰思迭课信息学生信息管理系统学生(S息老师佶邑录入学牛与老帅融课程倍息皆理员信崽笛理员学生信息系统1层数据流图: 学生选课倍息老帅基朮信息学生成|%|佶创•klLAI菽酸A录入深程学生信息数据流图:学生信息数屈片老师信息数据流图:管理员数据信息流图:数据字典•数据流描述:数据流名:帐号密码数据来源:用户登录处理数据去向:统计分析处理说明:用户输入帐号与密码数据组成:帐号+密码数据流量:小数据流名:查询条件数据来源:统计分析数据去向:统计出用户输出信息说明:用于统计出用户查询的所有条件数据组成:帐号+密码数据流量:大数据流名:录入成绩数据来源:学生选课成绩数据去向:学生成绩表说明:录入学生的选课的成绩信息数据组成:课程号+课程名数据流量:大数据流名:录入课程数据来源:教务处制定的课程数据去向:学生选课表说明:录入学生选择的课程数据组成:课程代号+课程名数据流量:小数据流名:老师查询条件数据来源:统计分析数据去向:老师查询的相关信息说明:查询老师权限范围内的数据数据组成:学生学号+课程号+课程名+老师编号数据流量:小数据流名:学生查询条件数据来源:统计分析数据去向:查询学生的相关信息说明:在学生权限范围内查询信息数据组成:学号+课程号+课程名+成绩+选课名+籍贯+年级+专业+院系+年级数据流量:大数据流名:管理员查询条件数据来源:统计分析数据去向:查询学生老师管理员的相关信息说明:在管理员权限范围内查询信息数据组成:学号+老师编号+籍贯+出生年月+年级+性别+民族+专业+ 院系+政治面貌+职称数据流量:大数据流名:录入学生与老师数据来源:老师与学生信息表数据去向:增删老师与学生说明:管理学生与老师信息数据组成:学号+老师编号+出生日期+籍贯+性别+名族数据流量:小数据流名:课程信息数据来源:管理员录入胡课程数据去向:课程信息的管理,增加与修改说明:管理课程信息数据组成:课程代号+课程名+出版社+作者+专业+系别+年级数据流量:小•数据元素词条描述:4-学生信息管理:名称:学生信息管理别名:描述:反应学生基本信息情况定义:学生信息管理二学号+姓名+性别+民族+岀生日期+系别+专业+ 年级+籍贯位置:学生信息的录入学生信息的查询学生信息的修改名称:课程信息管理别名:描述:反应课程基本信息定义:课程信息管理二课程代号+课程编号+课程类型+学分+学时位置:课程信息的录入课程信息的查询课程信息的修改4-成绩信息管理:名称:成绩信息管理别名:描述:反应成绩基本信息定义:成绩信息管理二序号+课程名+学分+类别+考核方式+成绩+辅修标记位置:成绩信息录入成信息的查询成绩信息修改4-选课信息管理:名称:选课信息管理别名:描述:反应选课基本信息定义:选课信息管理=课程代号+课程名+学分+类别+任课老师+人数+ 班级位置:选课信息录入选课息的查询选课信息修改4-老师信息管理:名称:老师信息管理别名:描述:反应老师基本信息定义:老师信息管理二老师编号+姓名+性别+职称+出生日期+院系+ 籍贯+电话位置:老师信息录入老师信息查询老师信息修改4-密码信息管理:名称:密码信息管理别名:描述:反应密码基本信息定义:密码信息管理二用户名+丢密码+新密码+确认密码位置:密码信息的修改£课程安排信息管理:名称:课程安排信息管理别名:描述:反应课程安排基木信息定义:课程安排信息管理二年级+专业+班级+院系+周数+内容位置:课程安排信息录入课程安排信息查询课程安排信息修改4-管理员信息:名称:管理员信息别名:描述:反应管理员基木信息定义:管理员信息=姓名+性别+民族+出生年月+籍贯+电话位置:管理员信息录入管理员信息查询管理员信息修改4-学生统计分析:名称:学生统计分析别名:描述:反应用户查询的相关信息定义:统计分析二姓名+性别+民族+出生年月+籍贯+电话+课程号+课程名+成绩+学分位置:学生信息录入学生信息查询学生信息修改4-学生统计分析:名称:学生统计分析别名: 描述:反应学生查询的相关信息定义:学生统计分析=姓名+性别+民族+岀生年月+籍贯+电话+课程号+课程名+成绩+学分位置:学生信息录入学生信息查询学生信息修改4-老师统计分析:名称:老师统计分析别名:描述:反应老师查询的相关信息定义:老师统计分析二姓名+性别+民族+岀生年月+籍贯+电话+职称+ 课程名+成绩+学分位置:课程信息录入老师信息查询学生成绩修改名称:管理员统计分析别名: 描述:反应管理员查询的相关信息定义:管理员统计分析二姓名+性别+民族+出生年月+籍贯+电话+职称+课程名位置:老师与学生信息录入老师与学生信息修改学生、老师、成绩修改4-统计课程:名称:统计课程别名:描述:学生查询选择课程的相关信息定义:统计课程二课程代号+课程名+老师+学分+学时位置:选择课程的查询退选课程4-统计成绩:名称:统计成绩别名:描述:反应学生成绩的相关信息定义:统计成绩=学号+姓名+课程名+成绩+学分位置:成绩信息查询I统计学生:名称:统计学生别名:描述:查询学生的相关信息定义:统计学生二姓名+性别+民族+毕业情况+年级+出生年月+籍贯+ 电话位置:学生信息录入学生信息查询学生信息修改4统计老师:名称:统计老师别名:描述:查询老师的相关信息定义:统计老师=姓名+性别+民族+职称+出生年月+籍贯+电话位置:老师信息录入老师信息查询老师信息修改4-统计课程:名称:统计课程别名:描述:查询授课的相关信息定义:统计课程二课程代号+课程名+出版社+年级+系别+专业位置:课程信息录入课程信息查询课程信息修改4-统计学分:名称:统计学分别名:描述:查询学生学分相关信息定义:统计学分二学号+课程学分+总学分位置:学生学分的查询。
顺序表C语言实现学生管理系统代码
9.退出\n");
scanf("%d",&a);
switch(a)
{
case 1: L=initseq();
displayAll(L); break; case 2: printf("\n 输入插入的位置:\n"); scanf("%d",&i); res=insertElem(L,i); if(res==1) displayAll(L); break; case 3: printf("\n 输入删除数据的位置:"); scanf("%d",&i); res=deleteElem(L,i); if(res==1) displayAll(L); break; case 4: printf("\n 学生总数为%d:\n",lengthList(L)); break; case 5: printf("\n 输入查找的学号:"); scanf("%s",ch); locateElem(L,ch);break; case 6: printf("\n 输入要查找学生的位置:"); scanf("%d",&i); locateElemByplace(L,i);break; case 7: displayAll(L);break; case 8: insertsort(L);break; case 9: printf("已退出"); b=0; break; } } }
Seqlist *L; L=(Seqlist *)malloc(sizeof(Seqlist)); L->last=-1; Student *s; printf("\n input students score,when the no is #,it finishes"); s=inputdata(); while(s) {
学生信息管理系统功能说明书
学生信息管理系统功能说明书学生信息管理系统功能说明书1、引言该文档旨在详细说明学生信息管理系统的功能和使用方法,以便用户可以充分了解和正确使用该系统。
本文档包括系统简介、功能模块、操作流程、系统要求、附录等内容。
2、系统简介2.1 系统概述学生信息管理系统是为学校或教育机构设计的一种信息管理工具,用于记录、查询和统计学生相关信息。
该系统结构清晰,操作简便,可以大大提高学校数据管理的效率。
2.2 系统特点- 支持学生基本信息的录入、修改和删除。
- 支持学生课程信息的录入、查询和统计。
- 支持学绩的录入、查询和分析。
- 支持教师信息的管理和查询。
- 支持管理员权限的设置和管理。
3、功能模块3.1 学生管理模块- 学生信息录入:包括基本信息(姓名、性别、年龄等)和联系方式(方式、邮箱等)的录入。
- 学生信息查询:按照学生姓名、班级、年级等条件进行查询。
- 学生信息统计:统计学生人数、男女比例、各年级人数等。
3.2 课程管理模块- 课程信息录入:包括课程名称、课程编号、教师名称等的录入。
- 课程信息查询:按照课程名称、课程编号等条件进行查询。
- 课程信息统计:统计每门课程的选课人数、平均成绩等。
3.3 成绩管理模块- 成绩录入:包括学生姓名、课程名称、成绩等的录入。
- 成绩查询:按照学生姓名、课程名称等条件进行查询。
- 成绩分析:统计学生的平均成绩、最高成绩、最低成绩等。
3.4 教师管理模块- 教师信息录入:包括教师姓名、教师编号、联系方式等的录入。
- 教师信息查询:按照教师姓名、教师编号等条件进行查询。
3.5 管理员模块- 权限设置:设置教师和学生的权限,例如只有管理员可以修改学生信息。
- 管理员信息查询:查询管理员的基本信息和权限设置。
4、操作流程4.1 学生信息管理操作流程1、登录系统。
2、进入学生管理模块。
3、进行学生信息录入、查询或统计操作。
4.2 课程信息管理操作流程1、登录系统。
2、进入课程管理模块。
学生管理信息系统功能结构图
学生管理信息系统功能结构图标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DQQTY-郑州华信学院学生信息管理系统课程名称:信息系统分析与设计项目名称:学生信息管理系统报告名称:功能结构图指导老师:王国君老师专业班级: 08计算机科学与技术小组编号:第6组系统功能结构1.结构设计根据对系统进行的需求分析,本系统将分为4个模块:1>学生管理管理学生的基本信息,包括个人信息的添加、修改、删除,以及选课信息的添加。
2>课程管理管理课程的基本信息,包括课程信息的添加、修改和删除。
3>成绩管理管理学生选课的成绩信息,包括成绩的登记与修改。
4>信息查询查询已经登记的信息,包括学生的基本信息、课程的基本信息成绩信息。
2.功能结构图系统功能结构如图所示:功能流程及工作流描述1>增加学生信息系统操作人员打开学生信息增加界面,输入相关信息(姓名、民族、籍贯、出生日期、入学年份、专业和学院等),在数据库中添加相关数据。
2>修改学生信息根据学生学号查询出该学生的相关信息,修改相关条目后保存在数据库中。
3>删除学生信息根据学生学号查询出该学生的相关信息,确定删除后,在数据库中删除该信息。
4>学生选课根据学生学号与需要选择的课程,确认无误后保存,数据库中将自动添加新的选课记录。
5>增加课程信息系统操作人员根据打开的课程信息增加界面,输入相关信息(课程名称、授课教师、上课时间、上课地点和课程类型等),在数据库中添加相关数据。
6>修改课程信息根据课程号查询出课程的相关信息,修改相关条目后保存在数据库中。
7>删除课程信息根据课程号查询出该课程的相关信息,确定删除后,在数据库中删除该信息。
8>登记成绩根据学号以及该学生所选择的课程,进行成绩登记,未选课的学生无法进行登记9>修改成绩对已登记的成绩进行修改。
10>学生查询可以根据学生学号、学生姓名、学生性别、学生所学专业、学生所属学院来对学生信息进行查询,所有符合条件的学生信息都将会被显示出来。
(完整版)学生信息管理系统数据流图
管理学生模块据流图:管理老师模块数据流图:选课管理与成绩管理模块数据流图:数据字典数据流描述:数据流名:查询条件数据来源:学生登录处理数据去向:学生信息表说明:通过合适的查询条件,输出学生的信息数据组成:学号+姓名数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:课程安排信息数据来源:管理员制定的课程管理信息数据去向:学生课程安排信息说明:用于管理学生的课程安排信息数据组成:课程号代+课程名+代课老师+学分+时间数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:录入成绩数据来源:老师对课程的考核方式数据去向:学生成绩管理说明:录入学生的选课的成绩信息数据组成:学号+姓名+课程名+成绩+学分数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:录入课程数据来源:管理员制定的课程信息数据去向:学生选课管理说明:录入学生选择的课程数据组成:课程代号+课程名+出版社数据流量:早晨9点到中午12点,下午14点到17点数据流量小数据流名:学生基本信息数据来源:管理员对学生的信息的管理数据去向:学生与老师及管理员得到学生的基本信息说明:查询学生的基本信息数据组成:学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:选课信息数据来源:老师输入到选课管理中的课程信息数据去向:学生的选课信息与成绩管理说明:查询学生的选课信息数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:学生的成绩及学分数据来源:选课管理与成绩管理数据去向:学生的成绩与学分信息说明:查询学生的成绩与学分数据组成:序号+课程名+学分+类别+考核方式+成绩+辅修标记数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:老师信息数据来源:管理老师数据去向:老师查询自身的信息说明:查询老师的基本信息数据组成:老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话数据流量:早晨9点到中午12点,下午14点到17点数据流量小数据流名:课程信息数据来源:管理员课程管理数据去向:学生的课程安排说明:管理员对课程信息的管理数据组成:课程代号+课程名+出版社+作者+专业+系别+年级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:管理员信息数据来源:管理员信息管理数据去向:管理员对自身的信息查询说明:管理员的基本信息数据组成:姓名+性别+民族+出生年月+籍贯+电话+职称数据流量:早晨9点到中午12点,下午14点到17点数据流量小数据流名:学生课程安排信息数据来源:管理课程对课程信息的录入数据去向:学生的选课信息说明:学生的课程安排数据组成:课程号代+课程名+代课老师+学分+时间数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:学生成绩信息数据来源:老师对课程考核方式数据去向:学生对成绩信息的查询说明:学生对选中课程的成绩查询数据组成:序号+课程名+学分+类别+考核方式+成绩+辅修标记数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:学生选课信息数据来源:管理员对课程的制定数据去向:学生选课管理说明:学生查询选中的课程信息数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:选课统计数据来源:选课管理数据去向:成绩管理说明:对选中课程的学生做出统计数据组成:课程代号+课程名+任课老师+人数+班级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:选课查询数据来源:管理元制定的课程数据去向:学生选课管理说明:学生查询选中的课程信息数据组成:课程代号+课程名+学分+类别+任课老师+人数+班级数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:成绩查询数据来源:老师对选课的考核方式数据去向:学生成绩管理说明:学生查询选中课程成绩信息数据组成:序号+课程名+学分+类别+考核方式+成绩+辅修标记数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据流名:成绩信息数据来源:老师对选课的考核方式数据去向:学生成绩管理说明:学生查询选中课程成绩信息数据组成:序号+课程名+学分+类别+考核方式+成绩+辅修标记数据流量:早晨9点到中午12点,下午14点到17点数据流量大数据元素词条描述:学生信息表:属性名字段名称数据类型长度备注学号Xs_xh Char 6 主键姓名Xs_xm char 8 不空性别Xs_xb bit 2 不空民族Xs_mz char 4 不空出生日期Xs_csrq smalldatetime 20 不空系别Xs_xib char 4 不空专业Xs_zy char 8 不空年级Xs_nj char 8 不空籍贯Xs_jg char 50 不空名称:学生信息表别名:描述:反应学生基本信息情况定义:学生信息表=学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯位置:学生信息的录入学生信息的查询学生信息的修改课程信息表:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:课程信息表别名:描述:反应课程基本信息定义:课程信息表=课程代号+课程编号+课程类型+学分+学时位置:课程信息的录入课程信息的查询课程信息的修改成绩信息表:属性名字段名称数据类型长度备注序号Cj_xh int 2 不空课程号Cj_kch char 6 主键学分Cj_xf int 2 不空类型Cj_lx char 6 不空考核方式Cj_khfs char 8 不空成绩Cj_cj int 2 不空辅修标记Cj_bj char 6 不空名称:成绩信息表别名:描述:反应成绩基本信息定义:成绩信息表=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置:成绩信息录入成信息的查询成绩信息修改选课信息表:属性名字段名称数据类型长度备注课程代号Xk_dh char 6 主键课程名Xk_kcm char 8 不空学分Xk_xf int 2 不空类别Xk_lb char 6 不空任课老师Xk_dkls char 6 不空人数Xk_rs int 2 不空班级Xk_bj char 6 不空名称:选课信息表别名:描述:反应选课基本信息定义:选课信息表=课程代号+课程名+学分+类别+任课老师+人数+班级位置:选课信息录入选课息的查询选课信息修改老师信息表:属性名字段名称数据类型长度备注老师编号Ls_bh char 6 主键姓名Ls_xm char 6 不空性别Ls_xb bit 2 不空出生日期Ls_csrq smalldatetime 20 不空职称Ls_zc char 8 不空院系Ls_yx char 6 不空籍贯Ls_jg char 50 不空电话Ls_dh char 12 不空名称:老师信息表别名:描述:反应老师基本信息定义:老师信息表=老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话位置:老师信息录入老师信息查询老师信息修改课程安排信息表:属性名字段名称数据类型长度备注年级Kcap_zy char 6 不空专业Kcap_nj char 8 不空班级Kcap_bj char 6 不空院系Kcap_yx char 6 不空周数Kcap_zs int 2 不空内容Kcap_nr char 12 不空名称:课程安排信息表别名:描述:反应课程安排基本信息定义:课程安排信息表=年级+专业+班级+院系+周数+内容位置:课程安排信息录入课程安排信息查询课程安排信息修改管理员信息表:属性名字段名称数据类型长度备注姓名Gl_xm char 6 不空性别Gl_xb bit 2 不空职称Gl_zc char 6 不空民族Gl_mz char 4 不空出生日期Gl_csrq smalldatetime 20 不空电话Gl_dh char 12 不空籍贯Gl_jg char 50 不空名称:管理员信息表别名:描述:反应管理员基本信息定义:管理员信息表=姓名+性别+民族+出生年月+籍贯+电话+职称位置:管理员信息录入管理员信息查询管理员信息修改管理学生:属性名字段名称数据类型长度备注学号Xs_xh Char 6 主键姓名Xs_xm char 8 不空性别Xs_xb bit 2 不空民族Xs_mz char 4 不空出生日期Xs_csrq smalldatetime 20 不空系别Xs_xib char 4 不空专业Xs_zy char 8 不空年级Xs_nj char 8 不空籍贯Xs_jg char 50 不空名称:学生信息表别名:描述:反应学生基本信息情况定义:管理学生=学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯位置:学生信息的录入学生信息的查询学生信息的修改管理老师:属性名字段名称数据类型长度备注老师编号Ls_bh char 6 主键姓名Ls_xm char 6 不空性别Ls_xb bit 2 不空出生日期Ls_csrq smalldatetime 20 不空职称Ls_zc char 8 不空院系Ls_yx char 6 不空籍贯Ls_jg char 50 不空电话Ls_dh char 12 不空名称:管理老师别名:描述:反应老师基本信息定义:管理老师=老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话位置:老师信息录入老师信息查询老师信息修改管理员信息:属性名字段名称数据类型长度备注姓名Gl_xm char 6 不空性别Gl_xb bit 2 不空职称Gl_zc char 6 不空民族Gl_mz char 4 不空出生日期Gl_csrq smalldatetime 20 不空电话Gl_dh char 12 不空籍贯Gl_jg char 50 不空名称:管理员信息别名:描述:反应管理员基本信息定义:管理员信息=姓名+性别+民族+出生年月+籍贯+电话+职称位置:管理员信息录入管理员信息查询管理员信息修改管理课程:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:管理课程别名:描述:反应课程基本信息定义:管理课程=课程代号+课程编号+课程类型+学分+学时位置:课程信息的录入课程信息的查询课程信息的修改选课管理:属性名字段名称数据类型长度备注课程代号Xk_dh char 6 主键课程名Xk_kcm char 8 不空学分Xk_xf int 2 不空类别Xk_lb char 6 不空任课老师Xk_dkls char 6 不空人数Xk_rs int 2 不空班级Xk_bj char 6 不空名称:选课管理别名:描述:反应选课基本信息定义:选课管理=课程代号+课程名+学分+类别+任课老师+人数+班级位置:选课信息录入选课息的查询选课信息修改成绩管理:属性名字段名称数据类型长度备注序号Cj_xh int 2 不空课程号Cj_kch char 6 主键学分Cj_xf int 2 不空类型Cj_lx char 6 不空考核方式Cj_khfs char 8 不空成绩Cj_cj int 2 不空辅修标记Cj_bj char 6 不空名称:成绩管理别名:描述:反应成绩基本信息定义:成绩管理=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置:成绩信息录入成信息的查询成绩信息修改课程安排管理:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:课程安排管理别名:描述:反应课程基本信息定义:课程安排管理=课程代号+课程编号+课程类型+学分+学时位置:课程安排信息的录入课程安排信息的查询课程安排信息的修改增加学生:属性名字段名称数据类型长度备注学号Xs_xh Char 6 主键姓名Xs_xm char 8 不空性别Xs_xb bit 2 不空民族Xs_mz char 4 不空出生日期Xs_csrq smalldatetime 20 不空系别Xs_xib char 4 不空专业Xs_zy char 8 不空年级Xs_nj char 8 不空籍贯Xs_jg char 50 不空名称:增加学生编号:1.1别名:描述:反应学入生基本信息情况定义:增加学生=学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯位置:新增学生信息的录入新增学生信息的查询新增学生信息的修改删除学生属性名字段名称数据类型长度备注学号Xs_xh Char 6 主键姓名Xs_xm char 8 不空性别Xs_xb bit 2 不空民族Xs_mz char 4 不空出生日期Xs_csrq smalldatetime 20 不空系别Xs_xib char 4 不空专业Xs_zy char 8 不空年级Xs_nj char 8 不空籍贯Xs_jg char 50 不空名称:删除学生编号:1.2别名:描述:反应毕业学生基本信息情况定义:删除学生=学号+姓名+性别+民族+出生日期+系别+专业+年级+籍贯位置:毕业学生信息的修改毕业学生信息的查询增加老师:属性名字段名称数据类型长度备注老师编号Ls_bh char 6 主键姓名Ls_xm char 6 不空性别Ls_xb bit 2 不空出生日期Ls_csrq smalldatetime 20 不空职称Ls_zc char 8 不空院系Ls_yx char 6 不空籍贯Ls_jg char 50 不空电话Ls_dh char 12 不空名称:增加老师编号:2.1别名:描述:反应新增老师基本信息定义:增加老师=老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话位置:新增老师信息录入新增老师信息查询新增老师信息修改删除老师:属性名字段名称数据类型长度备注老师编号Ls_bh char 6 主键姓名Ls_xm char 6 不空性别Ls_xb bit 2 不空出生日期Ls_csrq smalldatetime 20 不空职称Ls_zc char 8 不空院系Ls_yx char 6 不空籍贯Ls_jg char 50 不空电话Ls_dh char 12 不空名称:删除老师编号:2.2别名:描述:反应离职老师基本信息定义:删除老师=老师编号+姓名+性别+职称+出生日期+院系+籍贯+电话位置:离职老师信息查询离职老师信息修改选中课程:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:选中课程编号:3.1别名:描述:反应选中课程基本信息定义:选中课程=课程代号+课程编号+课程类型+学分+学时位置:选中课程信息的录入选中课程信息的查询选中课程信息的修改退选课程:属性名字段名称数据类型长度备注课程代号Kc_dh char 6 主键课程编号Kc_bh char 6 不空课程类型Kc_lx char 8 不空学分Kc_xf int 2 不空学时Kc_xs int 2 不空名称:退选课程编号:3.2别名:描述:反应退选课程基本信息定义:退选课程=课程代号+课程编号+课程类型+学分+学时位置:退选课程信息的修改退选课程信息的查询总成绩:属性名字段名称数据类型长度备注序号Cj_xh int 2 不空课程号Cj_kch char 6 主键学分Cj_xf int 2 不空类型Cj_lx char 6 不空考核方式Cj_khfs char 8 不空成绩Cj_cj int 2 不空辅修标记Cj_bj char 6 不空名称:总成绩编号:4.1别名:描述:反应成绩基本信息定义:总成绩=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置:总成绩信息录入总成信息的查询总成绩信息修改总学分:属性名字段名称数据类型长度备注序号Cj_xh int 2 不空课程号Cj_kch char 6 主键学分Cj_xf int 2 不空类型Cj_lx char 6 不空考核方式Cj_khfs char 8 不空成绩Cj_cj int 2 不空辅修标记Cj_bj char 6 不空名称:总学分编号:4.2别名:描述:反应学分基本信息定义:总学分=序号+课程名+学分+类别+考核方式+成绩+辅修标记位置::总学分信息录入总学分的查询总学分信息修改。
C语言学生信息系统(顺序表).cpp
C语言学生信息系统(顺序表).cpp#include#include#include#include#includetypedef struct{char num[15];char name[20];char class_[20];float score1; //英语成绩float score2; //高数成绩}stu;typedef struct{stu *data;int length;int listsize;}seqlist;int menu();int initlist(seqlist *L,int max);void createlist(seqlist *L,int max); int insertlist(seqlist *L,int i,stu x);int deletelist(seqlist *L,int i,stu *x); int locatelist(seqlist L,stu x);int updatelist(seqlist *L,int i,stu x); int displist(seqlist L);int scorefind(seqlist L,stu x);void main(){int n,max,i;float sum;stu s;seqlist L;while(1){n=menu();switch(n){case 1:printf("输入要创建的人数:");scanf("%d",&max);createlist(&L,max);printf("任意键结束!");getch();break;case 2:printf("选择要插入的位置:");scanf("%d",&n);printf("输入要插入的学生数据班级,姓名,学号,英语成绩,数学成绩,:\n");scanf("%s%s%s%f%f",s.class_,/doc/79 14460756.html,,s.num,&s.score1,&s.score2);insertlist(&L,n,s);printf("任意键结束!");getch();break;case 3:printf("输入要删除学生的姓名:");scanf("%s",/doc/7914460756.html,);n=locatelist(L,s);if(n==L.length+1)printf("不存在此人\n");else{ deletelist(&L,n,&s);printf("被删除人的信息:班级,姓名,学号,英语成绩,数学成绩,总分:\ns");printf("%s %s %s %f %f %f",s.class_,/d oc/7914460756.html,,s.num,s.score1,s.score2,(s.score1+s.score2) );}printf("任意键结束!");getch();break;case 4:printf("输入要更新数据同学的姓名:");scanf("%s",/doc/7914460756.html,);n=locatelist(L,s);printf("输入学生要更新的数据:");scanf("%s%s%s%f%f",s.class_,/doc/79 14460756.html,,s.num,&s.score1,&s.score2);updatelist(&L,n,s);printf("任意键结束!");getch();break;case 5:displist(L);printf("任意键结束!");getch();case 6:printf("输入要查成绩的学生的姓名:");scanf("%s",/doc/7914460756.html,); n=scorefind(L,s);if(n==-1) printf("无此人!\n");else{printf("请选择:");printf("1:英语,2:数学,3:总分:");scanf("%d",&i);if(i==1)printf("%f",L.data[n].score1);else if(i==2)printf("%f",L.data[n].score2);else{ sum=L.data[n].score1+L.data[n].score2;printf("%f",sum);}}printf("任意键结束!");getch();break;case 0:exit(1);break;default:continue;}}}int menu(){int n;system("cls");printf("****欢迎使用新生管理系统****\n"); printf(" 1.创建新生数据");printf(" 2.插入新生数据表\n 3.删除新生数据"); printf(" 4.更新新生数据\n 5.显示新生数据"); printf(" 6.查询成绩0.退出\n");printf("*********************************\n"); printf("请选择功能编号(0-6):");scanf("%d",&n);return n;}// 初始化int initlist(seqlist *L,int max){(*L).data=(stu *)malloc(max * sizeof(stu)); if((*L).data==NULL)return 0;(*L).length=0;(*L).listsize=max;return 1;}//创建链表void createlist(seqlist *L,int max){int n=0; stu x; char yn;initlist(L, max);do{printf("请输入第%d个学生的班级,姓名,学号,英语成绩,数学成绩,用空格隔开:\n",n+1);scanf("%s%s%s%f%f",x.class_,/doc/79 14460756.html,,x.num,&x.score1,&x.score2);getchar();insertlist(L,n+1,x);n++;printf("继续输入吗?Y/N:");yn=getchar();}while(yn=='Y'||yn=='y');}//插入int insertlist(seqlist *L,int i,stu x){int j;if((*L).length>=(*L).listsize){printf("链表已满\n");return 0;}else if(i<1 || i>(*L).length+1){ printf("插入位置错误\n"); return 0;}for(j=(*L).length;j>=i;j--)(*L).data[j]=(*L).data[j-1];(*L).data[i-1]=x;++(*L).length;return 1;}//删除int deletelist(seqlist *L,int i,stu *x){int j;if((*L).length==0){printf("空表,不能删除\n"); return 0;}*x=(*L).data[i-1];for(j=i;j<(*L).length;j++)(*L).data[j-1]=(*L).data[j];--(*L).length;return 1;}//据姓名查找int locatelist(seqlist L,stu x){int j;if(L.length==0){printf("空表,无法查找\n");return 0;}for(j=0;j<l.length;j++)< p="">if(strcmp(L.data[j].name,/doc/791446 0756.html,)==0)break;if(j>=L.length){printf("无此人"); return 0;}return j+1;}//更新学生数据int updatelist(seqlist *L,int i,stu x){if((*L).length==0){printf("空表,无数据\n");return 0;}(*L).data[i-1]=x;return 1;}int displist(seqlist L){int j;for(j=0;j<l.length;j++)< p="">{printf("%s %s %s",L.data[j].class_,L.data[j].name,L.data[j].nu m);printf("%f %f %f\n",L.data[j].score1,L.data[j].score2,(L.data[j] .score1+L.data[j].score2));}return 1;}//据姓名查找英语成绩int scorefind(seqlist L,stu x){int j;if(L.length==0){printf("空表,没数据!");}for(j=0;j<l.length;j++)< p="">if(strcmp(L.data[j].name,/doc/7914460756.html,)==0)return j+1;return -1;}</l.length;j++)<></l.length;j++)<></l.length;j++)<>。
学生信息管理系统顺序表实验1
学生信息管理系统(顺序表)实验1计设程课数据结构设计题目:学生信息管理系统(顺序)姓名及学号:专业班级: 09计算机科学与技术指导教师:完成时间:学生信息管理系统(顺序表)实验1系计算机科学院信息工程学学生信息管理系统(顺序表)实验1学生信息管理系统(顺序表)实验1)(本科安徽新华学院课程设计成绩评定表录目一、实验目的 (1)二、实验内容 (1)三、基本要求 (1)四、算法设计思想 (1)五、算法流程图 (1)六、算法源代码 (6)学生信息管理系统(顺序表)实验1七、运行结果 (22)八、收获和体会 (25)九、致谢 (25)1实验顺序表)学生信息管理系统(实验目的:1.通过制作学生信息管理系统基本掌握面向过程程序设计的的基本思路和方法;(1)C语言的基本知识和技能;达到熟练掌握(2)够利用所学的基本知识和技能,解决简单的程序设计问题。
)能(3 .实验内容:2编程插入学生信息,成绩。
姓名,性别,输入一个班学生的学号,设计查找每个学生的信息,删除学生信息,输出学生信息,修改学生信息,报表和显示学生信息,及退出学生信息管理系统。
3.基本要求:)硬件:微机,打印机各一台1(Visual C++,windows7 )软件:(2 算法设计思想4.(1).分析程序的功能要求,划分程序功能模块。
(2). 画出系统流程图。
(3). 代码的编写。
定义数据结构和各个功能子函数。
1实验)学生信息管理系统(顺序表(4). 程序的功能调试。
算法的流程图5.学生信息管理系统(顺序表)实验1数主函Main开print函数输出的提示信息选择相关操根whil根0~数语句实Switc具体操16退05432系根据相关调用函数输出相应生信程序结学生信息管理系统(顺序表)实验16. 算法源代码:#include<stdio.h>#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 1typedef struct{学生信息管理系统(顺序表)实验1char 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)学生信息管理系统(顺序表)实验1{int i=0,n;Elemtype *newbase;L->elem=(Elemtype*)malloc(List_INIT_SPACE*(sizeof(Elemtype) ));if(!L->elem) exit(OVERFLOW);L->length=0;L->listsize=List_INIT_SPACE;牰湩晴尨有几位同学:\n);scanf(%d,&n);for(i=0;i<n;i++){if(L->length==L->listsize){学生信息管理系统(顺序表)实验1newbase=(Elemtype*)realloc(L->elem,(List_INIT_SPACE+List_IN C_SPACE)*sizeof(Elemtype));if(newbase){L->elem=newbase;L->listsize+=List_INC_SPACE;}else exit(OVERFLOW);}牰湩晴尨请输入第%d名同学的信息:\n,i+1);牰湩晴尨学号(15)\n);scanf(_x0016_s,L->elem[L->length].number);牰湩晴尨姓名(15)\n);scanf(_x0016_s,L->elem[L->length].name);牰湩晴尨性别(男:M女:F)\n);scanf(_x0016_s,L->elem[L->length].sex);学生信息管理系统(顺序表)实验1牰湩晴尨成绩\n);scanf(_x0010_d,&L->elem[L->length].score);L->length++;printf(%d名学生信息如下:\n,L->length);牰湩晴尨学号(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);}/*2向顺序表中插入元素*/void insertlist(sqlist*L){int i,j,k;char sign='y';学生信息管理系统(顺序表)实验1Elemtype *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);}牰湩晴尨请输入要插入的同学的信息:\n); 学生信息管理系统(顺序表)实验1牰湩晴尨学号(15)\n);scanf(_x0016_s,newelem.number);牰湩晴尨姓名(15)\n);scanf(_x0016_s,);牰湩晴尨性别(男:M女:F)\n);scanf(_x0016_s,newelem.sex);牰湩晴尨成绩\n);scanf(_x0010_d,&newelem.score);牰湩晴尨要插入到第几个位置:);scanf(%d,&i);while(i<1||i>L->length+1){牰湩晴尨不能插入到第%d个位置!\n只能插入第1到第%d个位置上!\n请重新输入要插入的位置:,L->length+1);scanf(%d,&i);}学生信息管理系统(顺序表)实验1L->length++;for(j=L->length-1;j>i-2;j--){for(k=0;k<16;k++){L->elem[j].name[k]=L->elem[j-1].name[k];L->elem[j].number[k]=L->elem[j-1].number[k];L->elem[j].sex[k]=L->elem[j-1].sex[k];}L->elem[j].score=L->elem[j-1].score;}j++;for(k=0;k<16;k++){L->elem[j].name[k]=[k];学生信息管理系统(顺序表)实验1L->elem[j].number[k]=newelem.number[k];L->elem[j].sex[k]=newelem.sex[k];}L->elem[j].score=newelem.score;牰湩晴尨是否还要输入?(Y or N));getchar();scanf(%c,&sign);if(sign=='n'||sign=='N')sign='n';}printf(%d名学生信息如下:\n,L->length);牰湩晴尨学号(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);学生信息管理系统(顺序表)实验1}/*3查找学生信息*/int findlist(sqlist *L){int j;char i[16];printf(.按学号查找\n2.按姓名查找\n请选择:);scanf(%d,&j);if(j==1){牰湩晴尨请输入学号:);scanf(%s,i);for(j=0;j<L->length;j++)if(!strcmp(i,L->elem[j].number))//i==L->elem[j].number用数组函数学生信息管理系统(顺序表)实验1return j+1;return 0;}else{牰湩晴尨请输入姓名:);scanf(%s,i);for(j=0;j<L->length;j++)if(!strcmp(i,L->elem[j].name))//用数组函数return j+1;return 0;}}/*4删除学生信息*/学生信息管理系统(顺序表)实验1int delnode(sqlist *L){int j;char i[10];printf(.按学号删除\n2.按姓名删除\n请选择:); scanf(%d,&j);if(j==1){牰湩晴尨请输入学号:);scanf(%s,i);for(j=0;j<L->length;j++)if(!strcmp(i,L->elem[j].number))//i==L->elem[j].number用数组函数{for(;j<L->length;j++)L->elem[j]=L->elem[j+1];L->length--;学生信息管理系统(顺序表)实验1return 1;}return 0;}else{牰湩晴尨请输入姓名:);scanf(%s,i);for(j=0;j<L->length;j++)if(!strcmp(i,L->elem[j].name))//用数组函数{for(;j<L->length;j++)L->elem[j]=L->elem[j+1]; //L->elem[j]以后的向前挪L->length--;return 1;学生信息管理系统(顺序表)实验1}return 0;}}/*5输出学生信息*/void printlist(sqlist *L){int i;printf(%d名学生信息如下:\n,L->length);牰湩晴尨学号(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);}学生信息管理系统(顺序表)实验1/*6修改功能*/void reviselist(sqlist *L){int i,x,a=0;char name[16];char sex[16];char number[16];int score;牰湩晴尨请选择你要改的同学的姓名);scanf(_x0016_s,name);牰湩晴尨请选择你要改的同学的信息\n);printf(.修改学生的姓名\n);printf(.修改学生的学号\n);printf( .修改学生的性别\n);printf(.修改学生的成绩\n);学生信息管理系统(顺序表)实验1scanf(%d,&x);switch(x){case 1:for(i=0;i<L->length;i++){if(strcmp(name,L->elem[i].name)==0) {牰湩晴尨请输入新名字);scanf(_x0016_s,name);strcpy(L->elem[i].name,name);a=1;}}学生信息管理系统(顺序表)实验1if(a==0)牰湩晴尨对不起你要改的名字不存在\n); break;case 2:for(i=0;i<L->length;i++){if(strcmp(name,L->elem[i].name)==0) {牰湩晴尨请输入新学号);scanf(_x0016_s,number);strcpy(L->elem[i].number,number);a=1;}}if(a==0)学生信息管理系统(顺序表)实验1牰湩晴尨对不起你要改的名字不存在\n); break;case 3:for(i=0;i<L->length;i++){if(strcmp(name,L->elem[i].name)==0) {牰湩晴尨请输入新性别);scanf(_x0016_s,sex);strcpy(L->elem[i].sex,sex);a=1;}}if(a==0)牰湩晴尨对不起你要改的名字不存在\n); 学生信息管理系统(顺序表)实验1break;case 4:for(i=0;i<L->length;i++){if(strcmp(name,L->elem[i].name)==0) {牰湩晴尨请输入新成绩);scanf(%d,score);L->elem[i].score=score;a=1;}}if(a==0)牰湩晴尨对不起你要改的名字不存在\n); break;学生信息管理系统(顺序表)实验1}}/*0退出学生信息管理系统*/void tuichu(sqlist *L){if(!L->elem)free(L->elem);printf(\\n再见,欢迎下次使用);exit(-2);}void main(){sqlist a,*L=&a;学生信息管理系统(顺序表)实验1int i;printf(******************************************************************\n);printf(* 学生信息管理系统 *\n); printf(*========================================\n);printf(*1.创建学生信息库并初始化 *\n);printf(*2.添加学生信息 *\n);printf(*3.查找学生信息 *\n);printf(*4.删除学生信息 *\n);printf(* 5.输出学生信息 *\n);printf(*6.修改学生信息 *\n);printf(* 0.退出学生信息管理系统 *\n);牰湩晴尨????????????????????尽湜); printf(******************************************************************\n);while(1)学生信息管理系统(顺序表)实验1{printf(\\n请选择(0-6):);scanf(%d,&i);while(i<0||i>6){牰湩晴尨只能选择0到6!请重新选择:);scanf(%d,&i);}switch(i){case 1:creatList(L);牰湩晴尨初始化完毕!);break;case 2:学生信息管理系统(顺序表)实验1insertlist(L);break;case 3:i=findlist(L);if(!i)牰湩晴尨没有该学生\n);else{i--;牰湩晴尨要查找的学生:\n);牰湩晴尨学号姓名性别成绩\n);printf(%-10s%-10s%-10s%-d\n,L->elem[i].number,L->elem[i].na me,L->elem[i].sex,L->elem[i].score);}break;case 4:i=delnode(L);学生信息管理系统(顺序表)实验1if(!i)牰湩晴尨没有该学生\n);else灻楲瑮?该学生已删除);} break;case 5:printlist(L);break; case 6:reviselist(L);break; case 0:tuichu(L);}}}7.运行结果:(1)初始化学生信息管理系统(顺序表)实验1)信息录入(2)信息插入(3学生信息管理系统(顺序表)实验1 (4)信息查询(5)删除信息学生信息管理系统(顺序表)实验1)修改学生信息(6)退出系统(71实验(顺序表)学生信息管理系统8.收获及体会:加强了小组成通过这次实训,增加了我们学习软件技术的兴趣,但通员之间的协作能力。
顺序表结构的学生信息管理系统
海南大学《数据结构》课程设计题目:学生信息管理系统学号:20142835320016姓名:侯孟禹年级:2014级学院:应用科技学院系别:工学部专业:物联网工程指导教师:梁建慧完成日期:2016 年 6 月10 日目录中文摘要 (3)English abstract (4)方案分析 (5)程序设计 (6)输入输出模块 (6)信息的录入 (6)信息的遍历 (7)信息的查询 (8)管理模块 (11)信息的删除 (11)信息的修改 (12)信息的排序 (16)时间复杂度 (17)文件操作模块 (18)数据写入文件 (18)数据读出文件 (19)测试 (22)结论 (27)感谢 (28)参考文献 (28)附录: (28)中文摘要学生信息管理系统是人们日常生活中经常要用到的管理工具,它以文件的方式保存用户录入的数据,并提供查询功能供用户查询和使用学生信息管理系统。
本次设计的学生信息管理系统,支持基本的录入、删除、查找、修改和文件读写等功能。
此学生信息管理系统基于结构化程序设计思想和所使用的C语言开发环境与开发工具,并运用“软件工程”和“数据结构”中的有关概念和方法,针对具体设计题目和要求,分析功能要求,划分功能模块,用链表结构设计功能模块函数,以菜单方式调用相应功能模块来实现信息和数据处理。
关键词:学生管理系统;顺序表English abstractStudent information management system is often used in People's Daily life management tool, it saves the user input data in the form of documents, and provide the query function for the use of user queries and student information management system. The design of student information management system, support basic input, delete, search, modify, and read and write files, and other functions. The student information management system based on structured programming ideas and the use of C language development environment and development tools, and using the "software engineering" and "data structure" of the relevant concepts and methods, in view of the specific design questions and requirements, analysis of functional requirements, the division of function modules, with chain table structure design, function module function, to call the corresponding function module menu way to implement the information and data processingKeywords: student management system; sequence list t方案分析经过对程序设计题目的分析可知,学生信息基本属性包括学号、姓名、性别、住址、联系电话。
数据结构_顺序表综合实例(学生管理系统)
/*------数据结构之线性表---------------名称:线性表的链式存储实例语言:C语言敲者:C.ROOKIE邮箱:MG_TCCX@Q Q:2424488418日期:2012.11.09 (06:41)目的:再次复习数据结构心情:实例:数据结构线性表综合实例..实现学生管理系统..--------------------------------------*//*这是一个顺序表实现的。
还有很多功能没实现。
VC++6.0编译通过*/ #include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>/*学生信息结构体定义*/typedef struct{int stuno;char name[10];int score;int age;}Student;#define MaxSize 100typedef struct{Student data[MaxSize];int length;}SqList;/*菜单选项功能实现函数*/void menu();/*输入学生数据声明*/Student Create_List();/*输出学生数据声明*/void Print_List(SqList L,int i);/*查询学生数据声明*/int Locate_List(SqList L);/*添加学生数据声明*/SqList Insert_List(SqList L);/*删除学生数据声明*/SqList Delete_List(SqList L);/*主函数*/int main(){int n;SqList L;// Student S;L.length=0;menu();scanf("\t%d",&n);while(n){switch(n){case 0: printf("\n"); //退出程序return 0;case 1: printf("\n"); //查找学生信息Locate_List(L);getch();break;case 2: printf("\n");//添加学生信息L=Insert_List(L);break;case 3: printf("\n"); //删除学生信息L=Delete_List(L);break;default:printf("请重新输入.\n");}getch();menu();scanf("\t%d",&n);}printf("haiting");return 0;}/*输入学生数据函数定义*/Student Create_List(){Student S;printf("\t学号:");scanf("%d",&S.stuno);printf("\t姓名:");scanf("%s",);printf("\t成绩:");scanf("%d",&S.score);printf("\t年龄:");scanf("%d",&S.age);return S;}/*输出学生数据函数定义*/void Print_List(SqList L,int i){printf("\t学号\t姓名\t成绩\t年龄\n");printf("\t %d\t %s\t %d\t %d",L.data[i].stuno,L.data[i].name,L.data[i].score,L.data[i].age); }/*查询学生数据函数定义*/int Locate_List(SqList L){int n,i=0;char ch;printf("请输入要查询的学号:");scanf("%d",&n);while(i<=L.length){if(n==L.data[i].stuno){break;}i++;}if(n==L.data[i].stuno){printf("此学生存在.是否输出学生信息(Y/N):");scanf("%s",&ch); //这里必须是%s..if(ch=='y'){Print_List(L,i);}else{return 0;}}elseprintf("此学生不存在.\n");}return 0;}/*添加学生数据函数定义*/SqList Insert_List(SqList L){int i=0;Student S;i=L.length;S=Create_List();if(L.length==MaxSize){printf("表已满.不能插入.\n");return L;}while(S.stuno<L.data[i].stuno&&L.length!=0) {L.data[i+1]=L.data[i];i--;}if(S.stuno==L.data[i].stuno){printf("学号已存在.\n");}else{L.data[i]=S;L.length++;printf("添加成功.\n");}return L;}/*删除学生数据声明*/SqList Delete_List(SqList L){int i=0,n=0;char ch;printf("请输入要删除的学号:");scanf("%d",&n);while(i<=L.length-1)if(n==L.data[i].stuno){break;}i++;}if(L.data[i].stuno==n){printf("查到此生.是否删除(Y/N):");scanf("%s",&ch);if(ch=='y'){for(;i<=L.length-1;i++)L.data[i]=L.data[i+1];L.length--;printf("删除成功.\n");}else{return L;}}else{printf("次生不存在.\n");}return L;}/*菜单选项功能实现函数*/void menu(){system("cls"); //清屏printf("\n");printf("\n");printf("\t C.ROOKIE(2012.11.09(06:41))\n");printf("\t|---No one in the night---|\n");printf("\t|\t0. 退出程序|\n");printf("\t|\t1. 查找学生信息|\n");printf("\t|\t2. 添加学生信息|\n");printf("\t|\t3. 删除学生信息|\n");printf("\t|\t4. 修改学生信息|\n");printf("\t|\t5. 所有学生信息|\n");printf("\t|-----------------------|\n");printf("\t\t请输入(0--5)的数字:"); }。
顺序表的学生成绩管理系统设计与实现【最新范本模板】
长春建筑学院《数据结构》课程设计(论文)顺序表的学生成绩管理系统设计与实现Order table of student achievement management system design and implementation年级:学号:姓名:专业指导老师:二零一三年十二月摘要随着社会的发展,学校的规模不断的扩大,日常教学活动中提取相关信息,以反映教学情况.传统的手工操作方式,易发生数据丢失,统计错误,劳动强度高,且速度慢.使用计算机可以高速,快捷地完成以上工作。
在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范教学管理行为,从而提高了管理效率和水平。
学生成绩管理系统以计算机为工具,通过对学生成绩管理所需的信息管理,把管理人员和老师从繁琐的数据计算处理中解脱出来,使其有更多的精力从事教务管理政策的研究实施,教学计划的制定执行和教学质量的监督检查,从而全面提高教学质量。
信息社会的高科技,商品经济化的高效益,使计算机的应用已普及到经济和社会生活的各个领域。
计算机虽然与人类的关系愈来愈密切,还有人由于计算机操作不方便继续用手工劳动.为了适应现代社会人们高度强烈的时间观念,学生成绩管理系统软件为教学办公室带来了极大的方便。
该软件是以C语言为实现语言,其功能在系统内部有源代码直接完成。
通过操作目录,管理者和老师可以了解本软件的基本工作原理。
管理者和老师只需输入一些简单的汉字、数字,即可达到自己管理学生成绩的目标。
关键字:成绩管理系统 c语言数据结构AbstractWith the development of the society,the school scale unceasingly expands, the daily teaching activities to extract relevant information,to reflect the teaching situation. Traditional way of manual operation,prone to loss of data,statistical errors, high labor intensity, and the slow speed。
利用顺序表完成一个学生成绩管理系统
利⽤顺序表完成⼀个学⽣成绩管理系统 1//利⽤顺序表完成⼀个学⽣成绩管理系统2package classwork_5;34public class student {5private String name;//名字6private int id;//学号7private String state;//是否在籍8private double gpa;//在校绩点成绩9public student() {1011 }12public student(String name, int id, String state, double gpa) { = name;14this.id = id;15this.state = state;16this.gpa = gpa;17 }18public String getName() {19return name;20 }21public void setName(String name) { = name;23 }24public int getId() {25return id;26 }27public void setId(int id) {28this.id = id;29 }30public String getState() {31return state;32 }33public void setState(String state) {34this.state = state;35 }36public double getGpa() {37return gpa;38 }39public void setGpa(double d) {40this.gpa = d;41 }42 @Override43public String toString() {44return "" + name + "\t\t" + id + "\t\t" + state + "\t\t" + gpa;45 }4647}484950package classwork9;5152import java.util.ArrayList;53import java.util.List;54import java.util.Scanner;5556import classwork_5.student;5758public class stumanager {59private Scanner in = new Scanner(System.in);60private List<student> stu = new ArrayList<student>();6162// 初始化,先往学⽣管理系统⾥⾯存⼊⼀些学⽣信息63public void init() {64 student s1 = new student("⼩明", 2019216588, "在籍", 4.4);65 student s2 = new student("⼩红", 2019219888, "在籍", 1.2);66 student s3 = new student("⼩刚", 2019212188, "在籍", 3.4);67 stu.add(s1);68 stu.add(s2);69 stu.add(s3);70 }7172public void menu() {73 System.out.println("*******欢迎使⽤学⽣管理系统*******");74 System.out.println("请根据提⽰选择");75 System.out.println("1.添加学⽣信息");76 System.out.println("2.删除学⽣信息");77 System.out.println("3.修改学⽣信息");78 System.out.println("4.查询学⽣并输出");79 System.out.println("5.所有学⽣信息");8081int choice = in.nextInt();82switch (choice) {83case 1:84 addstu();85break;86case 2:87 delstu();88break;89case 3:90 amendstu();91break;92case 4:93 findstu();94break;95case 5:96 show();97break;98default:99 }100 }101102public void iscontinuemenu() {103 System.out.println("是否返回到主菜单(y/n)");104 String iscon = in.next();105if ("y".equals(iscon)) {106 menu();107 }108 }109110private void addstu() {111 System.out.println("增加学⽣信息");112 System.out.println("请输⼊学⽣名");113 String name = in.next();114 System.out.println("请输⼊学⽣学号");115int id = in.nextInt();116 System.out.println("请输⼊学⽣的⼊学年份");117int year = in.nextInt();118 String y = "";119if (year <= 2020 && year >= 2017) {120 y = "在籍";121 } else {122 y = "不在籍";123 }124 System.out.println("请输⼊学⽣绩点");125double gpa = in.nextDouble();126 student st = new student(name, id, y, gpa);127 stu.add(st);128 System.out.println("已添加完毕请返回主菜单查看"); 129 iscontinuemenu();130 }131132// 删除学⽣信息,根据学号删除133private void delstu() {134 System.out.println("请输⼊要删除的学号");135int a = in.nextInt();136for (int loop = 0; loop < stu.size(); loop++) {137if (((student) stu.get(loop)).getId() == a) {138 stu.remove(loop);139 System.out.println("删除成功!");140break;141 }142 }143144 System.out.println("已删除完毕请返回主菜单查看");145 iscontinuemenu();146 }147148// 修改学⽣信息amend149150private void amendstu() {151 System.out.println("请输⼊要修改学⽣信息的学号");152int a = in.nextInt();153int loop;154for (loop = 0; loop < stu.size(); loop++) {155if (((student) stu.get(loop)).getId() == a) {156break;157 }158 }159160 System.out.println("请输⼊新名字,学号,绩点");161 String name1 = in.next();162int id = in.nextInt();163double gpa = in.nextDouble();164 ((student) stu.get(loop)).setName(name1);165 ((student) stu.get(loop)).setId(id);166 ((student) stu.get(loop)).setGpa(gpa);167 System.out.println("已修改完毕请返回主菜单查看");168 iscontinuemenu();169 }170171// 查询学⽣信息,根据学号查询172private void findstu() {173 System.out.println("请输⼊要查询学⽣的学号");174175int a = in.nextInt();176int loop;177for (loop = 0; loop < stu.size(); loop++) {178if (((student) stu.get(loop)).getId() == a) {179 System.out.println(((student) stu.get(loop)));180break;181 }182 }183 iscontinuemenu();184185 }186187// 查看所有学⽣信息188private void show() {189 System.out.println("姓名\t\t学号\t\t\t在籍状态\t\t在校成绩"); 190191for (student x : stu) {192 System.out.print(x + " ");193 System.out.println();194 }195 iscontinuemenu();196 }197198}199200package classwork9;201202public class stuman_test {203204public static void main(String[] args) {205 stumanager a=new stumanager();206 a.init();207 a.menu();208209 }210211 }。
使用顺序表建立学生管理系统系统 -pro2
章节第2章线性表教师杨迎班级物联网姓名王子健学号201614030地点机房131 日期2017 成绩 A实验目的:掌握顺序表实现学生成绩管理系统实验内容:1.定义线性结构抽象接口ILIst2.创建顺序表类SqList3.创建学生结点类StudentNode(学号、姓名、性别、英语成绩、数据结构成绩)4.创建学生成绩管理类StudentManageSystem继承SqList5.测试实验结果:1.定义线性结构抽象接口ILIst2.创建顺序表类SqList3.创建学生结点类StudentNode(学号、姓名、性别、英语成绩、数据结构成绩)4.创建学生成绩管理类StudentManageSystem继承SqList:太多了..不截图了=。
=功能1:创建学生数据(原数组为空)// 构造长度为maxsize的数组public StudentRandom(int maxsize, int n) throws Exception {super(maxsize);Scanner sc = new Scanner(System.in);for (int i = 0; i < n; i++) {Student stu = new Student(sc);insert(stu);}}功能2:查询学生信息public Student get(int number) throws Exception {for (int i = 0; i < length(); i++) {Student stu = (Student) super.get(i);if (stu.getId() == number)return stu;}throw new Exception("学号" + number + "不存在");}功能3:删除学生数据public void remove(int number) throws Exception {for (int i = 0; i < length(); i++) {Student node = (Student) super.get(i);if (node.getId() == number) {super.remove(i);return;}}throw new Exception("学号" + number + "不存在");}功能4:增加学生数据// 在表尾(表长)插入数据npublic void insert(Student n) throws Exception { super.insert(length(), n);}。
实验一报告利用顺序表实现学生信息管理
实验一报告利用顺序表实现学生信息管理实验一利用顺序表实现学生信息管理[文档副标题]2013-7-2目录(1)(3)编程小感想:......................................................................................... 错误!未定义书签。
程序实现以下功能: (3)程序存在的问题(BUG): (3)难点分析及进一步工作: (4)(4)程序流图1、学生E-R图2、程序主要功能函数的程序流程图3、各程序模块名称及功能说明void main()————主函数,主要调用其他函数及初始化链表功能;由switch语句选择操作内容;struct student *SeqList(void);————初始化链表;struct student *ListCorrect(struct student *head);————更改函数,根据用户输入的学生信息,自动检索学号,对应修改该学生的信息;struct student *ListDelete(struct student *head);————删除函数,根据用户输入的学生学号,对应删除该学生信息;struct student *ListInsert(struct student *head);————插入函数,根据用户输入的学生信息,自动检索学号,并按学号由小到大顺序,将新信息插入到链表中;void ShowAll(struct student *head);————显示函数,显示当前链表内的所有学生信息;void Exit(struct student *head);————退出函数,退出程序并清空链表空间;个人小结程序实现以下功能:1、以链表的形式存储学生信息;2、struct student * SeqList 链表初始化:输入学生信息;将学生信息存入链表;3、struct student *ListDelete删除学生信息;输入学生学号,删除对应的学生信息;4、struct student *ListInsert 插入学生信息:输入要插入的学生对应各项信息,可实现按学号顺序对插入信息进行按从小到大排序;5、void ShowAll(struct student *head) 显示函数:动态显示链表内学生信息;6、void Exit(struct student *head) 退出函数:退出主函数中switch语句循环并释放相应链表空间;7、while—scanf—switch结构保持选择界面:可实现一次输入后程序不退出,可以多次选择程序对应功能,提高程序的实用性与可操作性;程序存在的问题(BUG):1、由于是链表形式实现初始化,每次运行都需重新输入学生信息;可考虑在链表定义部分用{}手动添加学生信息,如:struct student{int id;char name[10];char sex[10];char classnumber[10];struct student *next;}{{41105249,”***”,”女”,”数创二班”,”*******”}};2、输入学生信息除学号外四项可选择性填写,但是未填项在进行删除插入或者修改操作后,ShowAll显示链表信息中未填的项会出现乱码,但不影响输入的信息及以后该信息的删除插入修改;3、IMPORTANT!由于是用while—scanf—switch结构实现程序的多次选择,如在输入信息时,输入空格键超过两个,将会导致程序无限循环;暂没想到解决方法,所以输入时避免输入空格键难点分析及进一步工作:1、主函数保持程序的多次选择;已解决;2、链表指针域及数据域在函数间的传递问题;已解决;3、未填项的乱码问题;进一步完善设想:新增函数判别输入内容是否为空,为空则输入00来避免出现乱码问题;4、空格键的无限循环问题;进一步完善设想:加入判断输入内容是否为空,为空则重新输入;5、每次进入程序需重新输入信息;进一步完善设想:引进文件,程序退出时,将链表中的学生信息存入文件中,再次打开时再读取该信息;6、进一步完善程序:增加按姓名查找或按班级检索功能;增加成绩输入修改删除功能,并在成绩属性下增加子项,实现多层次信息管理;编程内容#include#include#include#include#include#define NULL 0#define dd sizeof(struct student)struct student{int id;char name[10];char sex[10];char classnumber[10];struct student *next;};int n=0;struct student *SeqList(void) ************输入学生信息************** {struct student *p1,*p2,*head=NULL;p1=p2=(struct student *)malloc(dd);printf("请依次输入学生数据:学号,姓名,性别,班级,电话\n");scanf("%d,%s,%s,%s,%s",&p1->id,&p1->name,&p1->sex,& p1->classnumber,&p1->tel);head=p1;for(n=0;n<3;n++){p2->next=p1;p2=p1;if(n==2);elsep1=(struct student *)malloc(dd);printf("请依次输入学生数据:学号,姓名,性别,班级,电话\n");scanf("%d,%s,%s,%s,%s",&p1->id,&p1->name,&p1->sex,& p1->classnumber,&p1->tel);}}p2->next=NULL;return(head);}struct student *ListDelete(struct student *head) **********删除学生信息************** {struct student *p1,*p2;int j;printf("请输入要删除信息的学生学号:\n");scanf("%d",&j);p1=head;p2=p1->next;n=0;if (j==p1->id)head=p2;else{for(n=1;n<=3;n++){if (j==p2->id)p1->next=p2->next;p1=p2;p2=p2->next;}return(head);}struct student *ListInsert(struct student *head)**********插入学生信息************** {struct student *p1,*p2,*p3;p2=(struct student *)malloc(dd);printf("请依次输入要插入的学生数据:学号,姓名,性别,班级,电话\n");scanf("%d,%s,%s,%s,%s",&p2->id,&p2->name,&p2->sex,&p2->classnumber,&p2->tel);p1=head;n=0;if (p2->idid){head=p2;head->next=p1;}else{for(n=1;n<3;n++){p3=p1;p1=p1->next;if (p2->idid){p3->next=p2;p2->next=p1;}}}if(p1->idid)p1->next=p2;p2->next=NULL;}return(head);}struct student *ListCorrect(struct student *head) **********修改学生信息************** {struct student *p1;int m;printf("输入修改的学号:\n");scanf("%d",&m);p1=head;for(n=0;n<3;n++){if (m==p1->id){printf("依次输入修改内容:学号,姓名,性别,班级,电话号码\n");scanf("%d,%s,%s,%s,%s",&p1->id,&p1->name,&p1->sex,& p1->classnumber,&p1->tel);break;}p1=p1->next;}return(head);}void Exit(struct student *head) ************退出函数************** {struct student *p1,*p2;p1=head->next;p2=head;while(p1!=NULL){free(p2);p2=p1;p1=p1->next;}free(p2);exit(1);}void ShowAll(struct student *head) ************显示函数**************{struct student *p;printf("\nNow,these %d records are:\n",n);p=head;while(p!=NULL){n++;printf("%d,%s,%s,%s,%s\n",p->id,p->name,p->sex,p->class number,p->tel);p=p->next;}void main() ************主函数**************{struct student *SeqList(void);struct student *ListCorrect(struct student *head);struct student *ListDelete(struct student *head);struct student *ListInsert(struct student *head);void ShowAll(struct student *head);void Exit(struct student *head);struct student *head;int m;printf("——————————————————————————————\n");printf("————学号:41105249—姓名:***—班级:数创二班————\n");printf("——————————————————————————————\n\n\n");head=SeqList();printf("请选择1——信息浏览,2——插入学生信息,3——删除学生信息,4——更改学生信息,0--退出程序\n");m=4;while(m!=0){scanf("%d",&m);switch(m){case 1:ShowAll(head);break;case 2:head=ListInsert(head);ShowAll(head);break;case 3:head=ListDelete(head);ShowAll(head);break;case 4:head=ListCorrect(head);ShowAll(head);break;case 0:{char s;printf("确定要退出吗?(Y/N)");scanf("%s",&s);if(s=='Y'||s=='y')Exit(head);break;default:{printf("喵呜伦家听不懂...\n"); break;}}}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}//switch
}//while
}
{
printf("请输入插入位置(1-%d):",L.length+1);
scanf("%d",&m);
insertsqlist(L,m,x);
disp(L);
L.elem[i].xh, L.elem[i].xm, L.elem[i].nl);
printf("按任意键继续!");
getch();
break;
case 0://退出系统
scanf("%d",&i);
i=findloc(L,i);//调用按位置查找的函数
if(i==-1) printf("该学生不存在!\n");
else printf("学号:%10s姓名:%15s年龄:%d\n",
scanf("%s",xh);
i=findxh(L,xh);
if(i==-1) printf("该学生不存在!\n");
else
{
deletsqlist(L,i+1,x);
printf("请输入学号、姓名、分数:");
scanf("%s%s%d",x.xh,x.xm,&x.nl);
insertsqlist(L,i,x);
}
return 1;
}
void disp(SqList L)
{
for(int i=1;i<=L.length;i++)
return -1;
}
if(i>=1&&i<=L.length)return i-1;
return -1;
}
int findxh(SqList L, char * xh)
{
if(L.length==0)
{
printf("没有数据!\n");
return -1;
printf("%10s%12s%5d\n",L.elem[i-1].xh,L.elem[i-1].xm,L.elem[i-1].nl);
printf("\n\n");
}
int findloc(SqList L, int i)
{
if(L.length==0)
{
printf("没有数据!\n");
int nl;
}STU;
typedef struct
{
STU * elem;
int lisesize;
int length;
}SqList;
/*(三)函数说明*/
int initsqlist(SqList &L,int max);
int insertsqlist(SqList &L,int i,STU x);
/*(四)函数定义*/
int initsqlist(SqList &L,int max)
{
L.elem=new STU[max];
if(L.elem==NULL)
{
printf("申请空间失败!\n");
exit(0);
}
L.lisesize=max;
L.length=0;
return 1;
}
int insertsqlist(SqList &L,int i,STU x)
{
if(L.length>=L.lisesize)
{
printf("没有空间!\n");
return 0;
}
if(i<1||i>L.length+1)
{
disp(L);
}
printf("按任意键继续!");
getch();
break;
case 5: //按位置查找
printf("请输入位置(1-%d):",L.length);
case 3://插入
printf("请输入要插入学生的学号、姓名和年龄:");
scanf("%s%s%d",x.xh, x.xm, &x.nl);
i=findxh(L,x.xh);
if(i==-1) //没有找到
int deletsqlist(SqList &L,int i,STU &x);
int creatsqlist(SqList &L,int size,int n);
void disp(SqList L);
int menu();
int findloc(SqList L, int i);
int findxh(SqList L, char * xh);
printf("位置不合理!\n");
return 0;
}
for(int k=L.length;k>=i;k--)
L.elem[k]=L.elem[k-1];
L.elem[i-1]=x;
L.length++;
return 1;
}
int deletsqlist(SqList &L,int i,STU &x)
L.elem[i].xh, L.elem[i].xm, L.elem[i].nl);
printf("按任意键继续!");
getch();
break;
case 6://按学号查找
L.elem[k-1]=L.elem[k];
L.length--;
return 1;
}
int creatsqlist(SqList &L,int size,int n)
{
STU x;
initsqlist(L,size);
forБайду номын сангаасint i=1;i<=n;i++)
{
}
else printf("该学生已经存在!\n");
printf("按任意键继续!");
getch();
break;
case 4://删除
printf("请输入要删除学生的学号:");
{
if(L.length==0)
{
printf("没有数据!\n");
return 0;
}
if(i<1||i>=L.length)
{
printf("位置不合理!\n");
return 0;
}
x=L.elem[i-1];
for(int k=i;k<=L.length;k++)
creatsqlist(L,20,3); break;
case 2: //显示
disp(L);
printf("按任意键继续!");
getch();
break;
/*(一)预编译命令*/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
/*(二)自定义数据类型*/
typedef struct stu
{
char xh[15];
char xm[15];
}
for(int i=1;i<=L.length;i++)
if(strcmp(xh,L.elem[i-1].xh)==0)
return i-1;
return -1;
}
int menu()//菜单函数
{ int n;
while(1)
{ system("cls");//清屏
printf("请输入学生的学号:");
scanf("%s",xh);
i=findxh(L,xh); //调用按姓名查找的函数
if(i==-1) printf("该学生不存在!\n");
else printf("学号:%10s姓名:%15s年龄:%d\n",
printf("*********学生基本信息管理系统*********\n");
printf(" 1—创建 2—显示\n");
printf(" 3—插入 4—删除\n");
printf(" 5—按位置查找 6—按学号查找\n");
printf(" 0—退出\n");
printf("*************************************\n");
printf("请输入功能编号(0-6 )");
scanf("%d",&n);
if(n>=0 && n<=6)return n;