学生信息管理系统课程设计实验报告.docx

上传人:b****5 文档编号:3827018 上传时间:2022-11-25 格式:DOCX 页数:9 大小:223.46KB
下载 相关 举报
学生信息管理系统课程设计实验报告.docx_第1页
第1页 / 共9页
学生信息管理系统课程设计实验报告.docx_第2页
第2页 / 共9页
学生信息管理系统课程设计实验报告.docx_第3页
第3页 / 共9页
学生信息管理系统课程设计实验报告.docx_第4页
第4页 / 共9页
学生信息管理系统课程设计实验报告.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

学生信息管理系统课程设计实验报告.docx

《学生信息管理系统课程设计实验报告.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统课程设计实验报告.docx(9页珍藏版)》请在冰豆网上搜索。

学生信息管理系统课程设计实验报告.docx

学生信息管理系统课程设计实验报告

 

*********大学

课程设计报告

课程名称高级语言程序设计

设计题目学生信息管理系统

专业计算机科学与技术

班级

学号

姓名

完成日期

课程设计任务书

设计题目:

学生信息管理系统设计

设计内容与要求:

内容:

对学生信息进行管理,学生信息包括学号、姓名、性别、年龄、学历、学号、住址、电话等(学号不重复)。

要求:

(1)系统以菜单方式工作

(2)学生信息录入功能(学生信息用文件保存)。

(3)输出学生信息、浏览学生信息功能。

(4)查询和排序功能:

(至少一种查询方式),如按学号查询、按学历查询等。

(5)学生信息删除、修改功能(任选项)。

 

指导教师:

_______________

年月日

课程设计评语

 

成绩:

指导教师:

_______________

年月日

【问题描述】

学生信息管理软件设计。

对学生信息进行管理,学生信息包括:

学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

试设计一个学生信息管理软件。

【基本要求】

一、输入的形式和输入值的范围

形式:

用scanf输入学生的学号,姓名,年龄,性别,出生年月,地址,电话,E-mail。

输入一个学生信息一个回车。

用输入的学号p1->num来控制输入,当输入的学号为0时,用break跳出循环。

即if(p1->num==0)break。

输入值的范围:

学号、年龄为整型longnum;intage;

姓名为字符串型15个字节charname[15];

性别为字符串型,10个字节charsex[10];

出生为字符串型,20个字节charchushen[20];

地址为字符串型,30个字节chardizhi[30];

邮箱为字符串型,输入11位数字charemail[11]。

二、输出的形式

输出是以表格的形式输出,即表格的每一行都能显示第一个学生的信息,第二行是显示第二个学生的信息。

三、程序所能达到的功能

对学生信息进行管理,学生信息包括职学号,姓名,年龄,性别,出生年月,地址,电话,E-mail。

(1)系统以菜单方式工作

(2)学生信息录入功能。

(3)输出学生信息、浏览学生信息功能。

(4)查询和排序功能:

(至少一种查询方式),如按学号查询、按姓名查询等。

(5)学生信息删除、修改功能(任选项)。

(6)添加学生信息。

【测试数据】

输入:

设输入四个学生信息,以最后一个学生的学号为0来结束输入,学号是整型。

预期的输出结果:

预期的输出结果请参见程序后的运行结果。

【数据结构】

排序记录的数据元素表采用一维数组存储结构,每个元素包含8个关键字段,其类型描述为:

#include<>

#include<>p2->next=p1;p2=p1;学号控制循环。

三、排序函数:

voidpaixu(structstudent*head)

用一个for语句做循环,不是NULL的话,指针指向下一个,按学生学号高低排序。

整形直接交换,字符型用strcpy交换,类型相当于两个数据之间的交换。

 

四、输出函数:

voidprintlist(structstudent*head)

在主函数里边用while控制循环,输出学生信息,然后指针指向下一个。

5、查询函数:

voidfindList_num(structstudent*head)和

voidfindList_num(structstudent*head)

输入一个学号或姓名,做一个for循环,即指针pt指向第一个地址,再定义一个指针p1,让它等于pt,他是紧跟着pt后面的一个指针,让p1->next不等于NULL,pt指向下一个地址。

这样就能修改最后一个学生信息了。

如果要查询的学生的学号在学生里,就输出该学生信息,否则,就输出查询的学生信息不存在。

六、删除函数:

intshanchu(structstudent*head)

输入一个学号,先找到这个学生的信息。

如果输入的学号在学生信息中,就进行以下循环:

如果输入的是第一个学生的话,就head等于第二个学生信息;如果输入的学生信息是最后一个,就让倒数第二个等于NULL;否则的话,就让下一个学生信息覆盖前一个。

如果输入的学号不在学生信息中,输出“此学生信息不存在”。

七、修改函数:

structstudent*delList(structstudent*head,longdel_num)

输入要修改的学号,找到该学生并且输出该学生的信息。

然后屏幕上会出现学生信息的所有项目,用switch进行选择修改的项目。

选择后输入新的学生信息,用它来覆盖原来的学生信息。

八、添加函数:

voidinsert(structstudent*head)

用一个while语句while(p2->next!

=NULL)控制循环,p2的指针指向下一个地址,即p2=p2->next;这是找到最后一个地址,然后开辟动态存储区,p1=(structstudent*)malloc(len);输入要添加的学号,用学号为0来终止循环,如果不为0,就继续输入学生信息。

【源程序】

#include<>

#include<>开程序,进入主菜单,“学生信息管理系统”,包括七项功能,

(1)输入学生信息,以输入学号位0结束;

(2)浏览学生信息;(3)按学生好号或姓名查询学生信息;(4)按学号删除学生信息;(5)按学号找出要修改的学生信息,再修改该学生信息;(6)添加学生信息;(8)退出系统。

图1-2菜单

2.选择

(1),输入四个学生信息,输入的学号为0结束输入。

如图1-3。

图1-3输入

3.选择功能

(2)浏览学生信息,如1-4。

1-4浏览学生信息

4.选择功能(3),进行查询学生信息,如下图,查找的是学号为12的学生信息。

同时要查找的学生信息不在学生表中,就会输出“学生信息不存在”。

1-5查找学生信息

5.选择功能(4),进行删除功能,如下图,输入要删除的学号为14,再选择功能

(2),查看是否删除掉,同时,如果要删除的学生信息不在学生表中,就输出“此学生信息不存在”。

如下图1-6。

图1-6删除学生信息

6.选择功能(5),添加学生信息,输入学生信息,以输入的学号为0结束输入,再选择功能

(2)进行浏览,查看添加的学生信息是否添加上,如下图1-7。

图1-7添加学生信息

7.选择功能(6),修改学生信息,输入要修改学生学号,以输入的学号为12为例,再选择功能

(2)进行浏览,查看添加的学生信息是否添加上,修改前如下图1-8,修改后如图1-9。

图1-8查找修改学生信息

图1-9修改后的学生信息

8.选择0,退出系统。

图1-10退出系统

【心得体会】

在这次实训报告期间,因为在以前的实验报告十二用的结构体和链表不是很熟悉,所以对这次实训有点陌生,也有以前做过的函数问题,但还是有一些不是很清楚的问题,所以又重新做了一遍,把一些以前不明白的问题弄会了,有一些没有接触过的函数,虽说不是很难,但要调出来可能半天也调不出来,这时,再扣下去,也不可能出结果。

可能是一些理解的方式有误,于是我就通过在网上查询,或者让同学或让是帮着看一看,就会发现问题。

主函数:

由于这次我做的是学生信息管理系统,被调用的函数比较多,在以前的实验报告中就用了一个菜单,但是像这次这么多的程序,用一个肯定不方便使用,因为使用者不知道我设计的程序都是干什么用的,使用起来不方便。

所以,

我给菜单做了一个循环,这样,使用者每用完一个程序,就会出现一个菜单,供使用者方便使用。

同时,我又用了一个清屏功能,就是每执行完一个程序,就会提示使用清屏函数,把上面的屏幕清空,进入主菜单。

查询函数:

在做查询函数的时候,由于以前没有写过这样的函数,使得我刚开始就陷入了困难当中,但是我没有就此放弃对程序的编写与调试,我通过在网上查找一些类似的程序和讲解我对这个功能有了初步的了解,调了很长时间,终于调试了出来,用到for(pt=head,p1=pt;p1->next!

=NULL;p1=pt,pt=pt->next)进行循环。

这样能运行了,再定义一个指针变量p1,它是紧跟着pt后面的,这样pt查询不到,p1就可以查到。

删除函数:

我设计的这个函数是按学号来删除学生信息的。

先判断输入的学号是否在学生信息表中,如果不在就输出“此学生信息不存在”,如果在就进行一下三个判断:

(1)如果要删除的学生是第一个学生,就让第二个学生的地址等于head;

(2)如果要删除的学生是最后一个学生,就让倒数第二个学生的覆盖最后一个;(3)如果输入的学生不是以上两种情况,就让下一个学生的地址覆盖前一个学生的。

修改函数:

先按学号来找出该学生的信息,然后屏幕上就会出现学生信息的选项,然后用switch语句实现多支选择结构,进行选择,再输入新的学生信息,来覆盖原来的学生信息。

输入的学生信息以输入的学号为0结束。

添加函数:

在添加函数里,我先是调用查找函数,找到要添加的位置,然后再调用添加函数进行添加,期间用for语句做一个循环,让指针指向最后一个学生信息,然后再添加新的学生信息。

在做这个学生信息管理系统的这段时间,真的学会了很多,编程不仅仅是要编程者明白其中的用法,更主要的是要使用者明白,对于大多数人更加使用,所以,在这个管理系统真的让我学会了很多,也知道了以前我根本想不到的一些问题,让我在做这些程序的时候更加周密、严谨。

在这期间,高兴过,同时也失落过。

做出了一个函数真的真的是很高兴,因为那时自己的果实,但如果一时陷入问题当中又很苦恼,真的是很失落,甚至对它失去信息。

现在我真的认识到了c语言的渊博,以前我们只是敲一些非常简单的程序,现在我们都可以设计一个管理系统了,而且它都是有以前那些小程序的基础。

真的需要好好去学习,值得去探索。

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

当前位置:首页 > 小学教育 > 小学作文

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

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