学生信息管理系统课程设计报告
- 格式:doc
- 大小:2.50 MB
- 文档页数:19
杭州师范大学钱江学院课程设计题目学生信息管理系统教学院信息与机电工程分院专业计算机科学与技术班级计算机091姓名方伟宏指导教师吕明琪2011 年12 月25 日目录一.概述 (3)二.系统的结构分析与设计 (3)2.1 整体设计 (3)2.2 模块设计 (4)三.系统的实现 (5)3.1 登录界面 (5)3.2 学生信息界面 (6)3.3 学生信息查询,编辑,新增界面 (7)3.4 连接数据库 (11)四.总结................................................................................................. .16一概述一直以来学生的成绩管理是学校工作中的一项重要内容,我国的大中专院校的学生成绩管理水平普遍不高。
随着办学规模的扩大和招生人数的增加,建立一个成绩维护系统是非常必要的。
普通的成绩管理已不能适应时代的发展,因为它浪费了许多的人力和物力。
在当今信息时代这种传统的管理方法必然被以计算机为基础的信息管理系统所代替。
为了提高成绩管理的效率,我选择了学生成绩管理系统作为毕业设计的课题。
本系统在大多数成绩管理系统的基础上,主要增加了教师对成绩的操作,教师改完试卷后不用在往学院的教务处办公室报送成绩,可以直接的把成绩上传到网络上,学生也可以方便快速的查询到自己的成绩,考试后教务管理人员也不必总呆在学院的办公室,他们都不受时间,位置,空间的限制,只要有上网的条件,在家里就可二系统的结构分析与设计2.1 整体结构设计基于系统的使用对象是管理员,系统根据功能需要分为三个模块,即学生基本信息管理、新增学生信息管理和查询学生信息管理。
采用B/S模式,jsp+SQL 2008+JavaBean 的技术形式实现。
2.1.1 用户角色设计及权限分配管理员:拥有管理系统所有功能的权限,同时负责系统的用户的增删,服务功能的起停,数据的备份、还原等维护操作;2.1.2 系统模块设计学生信息管理系统包括三个基本模块:学生基本信息管理、新增学生信息管理和查询学生信息管理。
学生信息管理系统web课程设计1. 引言学生信息管理系统是一个用于管理学生信息的应用程序。
它提供了方便快捷的方式来记录和查看学生的个人信息、成绩、课程等相关数据。
本文将介绍一个基于web 的学生信息管理系统的设计。
2. 系统需求分析2.1 功能需求•学生信息录入:包括学生基本信息(姓名、性别、年龄等)、联系方式、家庭背景等。
•学生成绩录入:包括每门课程的成绩以及总成绩计算。
•学生课程管理:包括选课、退课等操作。
•学生信息查询:可以按照学号、姓名等条件进行学生信息的查询和显示。
•学生成绩查询:可以按照学号、姓名等条件进行学生成绩的查询和显示。
2.2 非功能需求•界面友好:用户界面应该简洁明了,操作方便,用户能够快速上手使用。
•安全性:对于敏感数据(如学生个人隐私),需要进行安全保护,防止未授权访问。
•性能要求:系统需要具备良好的性能,能够快速响应用户请求,并支持大量并发访问。
3. 系统设计3.1 技术选型•前端技术:使用HTML、CSS和JavaScript进行前端开发,借助Bootstrap 等框架提供的组件和样式。
•后端技术:使用Python的Web框架(如Django、Flask)进行后端开发,通过ORM(对象关系映射)技术与数据库进行交互。
•数据库:使用关系型数据库(如MySQL、PostgreSQL)存储学生信息和成绩数据。
3.2 系统架构学生信息管理系统采用MVC(模型-视图-控制器)架构,以实现前后端的解耦和代码的复用。
•模型(Model):负责处理数据逻辑,包括与数据库的交互、数据验证等。
•视图(View):负责展示数据给用户,并接收用户的输入。
•控制器(Controller):负责处理用户请求,调用相应的模型和视图进行处理。
3.3 数据库设计学生信息管理系统需要设计两个主要的数据表:学生表和成绩表。
学生表设计字段类型描述学号字符串主键姓名字符串性别枚举类型年龄整数联系方式字符串家庭背景字符串成绩表设计字段类型描述学号字符串外键课程名称字符串主键成绩浮点数3.4 界面设计学生信息管理系统的界面应该简洁明了,操作方便。
学生管理系统课程设计报告一、概述学生管理系统是一个用于实现对学生信息管理的一个系统,该系统包括学生信息的增加、修改、删除、查询、统计等功能。
该系统主要功能为便捷的记录学生的个人信息,包括学生姓名、学号、性别、出生日期、联系方式、住址、班级、专业、成绩等;方便地对学生信息进行管理,以方便教师和学校管理者进行相关决策。
二、需求分析该系统的主要功能需求如下:1、学生信息管理:该系统将记录每个学生的个人信息,包括但不限于姓名、学号、性别、出生日期、联系方式、住址、班级、专业、成绩等。
2、学生信息查询:用户可以通过学生姓名、学号等信息快速检索和查找学生信息。
3、学生信息统计:该系统能够统计每个班级、专业或整个学校的学生人数、男女比例、平均分等数据。
4、用户管理:该系统还将包括对用户的身份验证、用户的添加、修改和删除。
5、安全性:该系统需要确保数据安全,只有经过身份验证的用户方可进行敏感操作。
三、系统设计1、架构设计:该系统的架构设计采用三层结构,即表示层、业务逻辑层和数据访问层。
其中表示层主要负责用户界面的展示和数据的呈现;业务逻辑层则负责系统的业务逻辑设计和实现,包括对用户的身份认证、数据库的访问等;数据访问层负责数据和文件的访问,进行数据库的增删改查等操作。
2、具体模块设计:(1)用户认证模块:在系统运行时,需要对用户进行身份认证,只有认证通过后,才能使用系统。
(2)用户管理模块:该模块负责对用户的添加、删除和修改等操作。
(3)学生信息管理模块:该模块包括学生信息的添加、修改、删除和查询等功能。
同时,还包括对学生信息的导入和导出功能,方便用户存储和备份信息。
(4)学生信息统计模块:该模块主要负责对学生信息进行统计,包括不同年级、班级、专业的学生人数、男女比例和平均分等数据。
(5)系统设置模块:该模块负责系统日志的管理和系统参数的设置,可以方便地对系统进行优化和调试。
(6)界面设计:系统的界面设计需要清晰、实用、方便用户使用。
数据库学生管理系统课程设计报告一、引言学生管理系统是一种能够有效管理学校教育信息的软件系统。
本报告旨在设计一个基于数据库的学生管理系统,以便学校能够更好地管理学生信息、课程信息和成绩信息。
二、系统需求分析1. 学生信息管理学生信息包括学生的基本信息(如学号、姓名、性别、年龄、专业等)和联系方式。
系统应能够实现学生信息的录入、修改、查询和删除操作。
2. 课程信息管理课程信息包括课程编号、课程名称、授课教师和学分。
系统应能够实现课程信息的录入、修改、查询和删除操作。
3. 成绩信息管理成绩信息包括学生学号、课程编号、成绩和考试时间等。
系统应能够实现成绩信息的录入、修改、查询和删除操作,并能够计算学生的平均成绩和排名情况。
三、系统设计1. 数据库设计设计一个关系型数据库,包括学生表(Student)、课程表(Course)和成绩表(Score)。
学生表包含学号、姓名、性别、年龄、专业等字段;课程表包含课程编号、课程名称、教师等字段;成绩表包含学号、课程编号、成绩、考试时间等字段。
2. 界面设计设计一个简洁直观的用户界面,包括学生信息管理、课程信息管理和成绩信息管理等功能模块,为用户提供友好的交互体验。
四、系统实现基于数据库设计和界面设计,利用编程语言(如Java)实现学生管理系统功能。
通过编码和调试,确保系统功能正常运行。
五、系统测试对学生管理系统进行全面测试,包括功能测试、性能测试和安全测试等,保证系统的稳定性和可靠性。
六、系统优化根据测试结果和用户反馈,不断优化学生管理系统,提高系统的效率和用户体验。
七、总结通过学生管理系统课程设计,我对数据库设计、界面设计和系统实现有了更深入的理解。
希望这一设计能够为学校的教育信息管理提供一定的参考和帮助。
WORD格式*********大学课程设计报告课程名称高级语言程序设计设计题目学生信息管理系统专业计算机科学与技术班级学号姓名完成日期课程设计任务书设计题目:学生信息管理系统设计设计内容与要求:内容:对学生信息进行管理,学生信息包括学号、姓名、性别、年龄、学历、学号、住址、电话等(学号不重复)。
要求:(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. 学会运用编程语言(如Python)实现学生信息管理系统的基本功能;4. 了解信息系统的安全性和可靠性,提高信息保护意识。
技能目标:1. 能够运用所学知识设计并实现一个简单的学生信息管理系统;2. 培养分析问题、解决问题的能力,通过编程解决实际问题;3. 提高团队协作和沟通能力,通过项目实践共同完成任务;4. 掌握项目管理和时间规划,合理安排学习进度。
情感态度价值观目标:1. 培养学生对信息技术的兴趣和热情,提高学习积极性;2. 培养学生严谨、认真的工作态度,养成良好的编程习惯;3. 增强学生的信息安全意识,尊重个人隐私,树立正确的道德观念;4. 培养学生的团队精神,学会分享和合作,提高人际交往能力。
本课程针对初中年级学生,结合学科特点和教学要求,以实用性为导向,旨在让学生通过学习学生信息管理系统,掌握信息技术的基本知识和技能,同时培养其情感态度价值观。
课程目标具体、可衡量,便于后续教学设计和评估。
在教学过程中,教师需关注学生的个体差异,充分调动学生的积极性,引导他们主动参与课堂实践,提高课堂效果。
二、教学内容1. 学生信息管理系统概述- 了解信息系统的基本概念、功能及作用;- 掌握学生信息管理系统的基本模块和流程。
2. 数据库基础知识- 学习数据库的基本概念、数据模型;- 掌握SQL语言的基本操作,如插入、查询、更新和删除。
3. 编程语言应用- 学习Python编程基础,掌握基本语法和常用库;- 利用Python实现学生信息管理系统的功能。
4. 系统设计与实现- 分析学生信息管理系统的需求,进行系统设计;- 学习项目管理方法,制定项目计划,分工协作。
5. 系统测试与优化- 学习系统测试的基本方法,对实现的功能进行测试;- 根据测试结果,优化系统性能和用户体验。
管理信息系统课程设计报告学生选课管理信息系统班级:会121姓名:方樱桃学号:129094237前言学生选课是高校教务管理工作的一部分,学生选课管理信息化是现代学校人力资源开发与管理的手段。
主要介绍了学生选课管理系统的分析、设计及实现方法。
随着在校大学生人数不断的增加、开设的课程越来越丰富和多元化。
教务系统数据量也不断上涨,以往随堂选课的方法易造成选课系统的盲目性和教务处处理数据的繁重性,为减轻教务处的工作,以及让每个学生选到自己所喜欢的科目。
考虑建立一个方便、快速、公平和符合学分制管理制度的选课平台和应用系统就显得至关重要了。
学生选课管理系统,在学生选课的规范管理、科学统计和快速查询方面具有较大的实用意义。
它提高了信息的开放性,大大地改善了学生、教师对其最新信息查询的准确性。
它对于开展学生选课和信息查询的一种较为先进的选课模式,它对于发挥学生选择课程的自主性,提高学校课程管理效率等方面具有十分重要的作用的意义,并且具有其它技术手段无可比拟的优越性。
结合学生选课管理的实际需要,完成了对学生选课管理系统的需求分析,可行性分析,总体设计,详细设计,编码以及测试与调试。
本次设计基于游览器/服务器结构网上选课系统的基本设计思想,简单介绍了系统各功能模块及数据库的设计,设计出登陆,选课,查询等一系列功能关键词:网上选课数据库管理系统选课目录第一章学生选课管理信息系统的系统分析 (2)1.1学生选课管理信息系统的功能分析 (2)1.2学生选课管理信息系统设计的可行性分析 (2)1.2.1技术可行性研究 (2)1.2.2经济可行性研究 (3)1.2.3社会可行性研究 (3)1.3学生选课管理信息系统用户需求分析 (3)第二章学生选课管理信息系统的总体设计 (3)2.1学生选课管理信息系统流程设计 (3)2.2学生选课信息管理系统功能设计 (4)2.3学生选课信息管理系统概念结构设计 (5)2.4 学生选课管理信息系统的逻辑结构设计 (7)第三章学生选课信息管理系统的详细设计 (8)3.1学生选课信息管理业务流程图 (8)3.2学生选课信息管理关键功能流程图 (9)3.3学生选课信息管理系统程序设计 (10)第四章系统的调试与运行 (11)第五章总结 (12)参考文献 (12)第一章学生选课管理信息系统的系统分析1.1学生选课管理信息系统的功能分析学生选课系统含登录验证模块、学生选课模块、管理员模块和教师查询模块。
总结16一、课题介绍课题介绍 ...................................... ...................................... 3二、目的和要求目的和要求 ................................... ................................... 3三、任务计划任务计划 ...................................... .. (3)需求分析需求分析 (5)一、学生管理系统的发展现状学生管理系统的发展现状 ................................ ................................ 5二、系统功能分析系统功能分析 ................................... .. (5)三、系统结构框图系统结构框图 ................................... .. (5)数据库设计.........................................创建数据表的结构创建数据表的结构 ................................. (7)各表功能及其关系各表功能及其关系 ................................. (7)系统模块功能的实现与界面设计 (8)一、系统主要模块系统主要模块 ................................... ................................... 8二、欢迎界面欢迎界面 ..................................... ..................................... 9三、主菜单界面主菜单界面 ............................ ............................ 错误!未定义书签。
一、课程设计目的1.通过C++课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类,并掌握继承和派生类、基类、虚函数和多态的概念。
2.用所学的C++语言知识及其编程方法,包括类和对象、继承与多态等面向对象的基本思想和方法以及文件流的基本操作等内容。
通过布置具有一定难度的实际程序设计项目,要求学生独立完成所布置项目。
在分析设计过程中,要求学生养成良好的编程习惯,学会分析解决简单的实际问题,学会C++编程环境(VC++)的实际调试技巧和方法,要求学生在教师的指导下逐步完成应用程序的分析与设计过程。
二、课程设计的内容(一)、题目:学生信息管理系统(二)、目的与要求1。
目的:(1)基本掌握面向对象程序设计的基本思路和方法;(2)达到熟练掌握C++语言的基本知识和技能;(3)能够利用所学的基本知识和技能,解决简单的程序设计问题2。
要求基本要求:(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;(2)要求在设计的过程中,建立清晰的类层次;(3)在系统中至少要定义三个类,每个类中要有各自的属性和方法;(4)在系统的设计中,至少要用到面向对象的一种机制。
创新要求:在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
3。
信息描述学生信息:学号、姓名、系别、班级和所选科目及各科成绩等。
4。
功能描述(1)使用继承的方法构造3个类(如人员类——-基类,普通学生类和管理员类—---派生类)使用相应的对象放置相应信息(2) 编写同名的display()成员函数,用来输出相应的内容(3)录入学生信息并保存(4)按不同类别输出学生信息(如按性别、年龄等)(5)查询学生信息(以一种或多种方式,如按名字、学号等检索)(6) 修改学生信息并保存(7) 删除学生信息(8) 计算学生的平均成绩三、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理.也可根据自己对题目的理解增加新的功能模块.系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。
学生信息管理系统报告九江职业技术学院网络0901指导老师:胡志峰设计人员:段雪波陈诚尹小楠詹承喜王磊陈康王皓巍陈佳彬1 课题规划1.1软件功能通过对该系统的设计实现对用户登录信息的查看,对考生信息的管理:查看,添加,查找,修改,删除1.2 程序流程1.3 数据库设计数据库:demo表:login:2 程序实现2.1 登入模块(login.html)代码如下:<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type"content="text/html; charset=utf-8"/><title>登录</title><style>html {margin: 0;padding: 0 !important;padding: 55px 0 16px;*padding: 55px 016px !important;height: 100%;overflow :hidden;}body {margin: 0;padding: 0 !important;*padding: 0 0 16px !important;padding: 0 0 16px;height: 100%;overflow: hidden;}.header{width:100%;height:55px;background-color:#FFC;position:absolute;top:0;} .middle{position: absolute !important;*position: relative !important;position: relative;top: 55px!important;*top: 0 !important;top: 0;left: 0;bottom:16px;width:100%;overflow: hidden;height: auto !important;*height:100% !important;height: 100%;}.left{width:170px;height:100%;background-color:#6FC;float:left;}.right{margin:0 0 0 170px;background-color:#fff;height:100%;}.footer{width:100%;height:16px;background-color:#3CF;position:absolute; bottom:0;}.bar{width:100%;height:20px;background-color:#eee;}p{margin:0;margin-bottom:15px;}.container{overflow:auto;padding:150px;}</style><script language="javascript">function checkSingle(){var oForm = document.forms["myForm1"];var oSelectBox = oForm.identityvar iChoice = oSelectBox.selectedIndex; //获取选中项//alert("您选中了" + oSelectBox.options[iChoice].text);var text = oSelectBox.options[iChoice].text;if(text == "管理员")document.getElementById("txt").innerHTML = "账号";myForm1.action="login?cond=student"elseif(text == "学生")document.getElementById("txt").innerHTML = "学号";}</script></head><body><div class="header"><p align="center"><font color="#1EAC8F"size="6">考试系统</font></p></div><div class="middle"><div class="left"></div><div class="right"><div class="bar"></div><div class="container"><form action="login?cond=student"method="post"name="myForm1"onclick="checkSingl e()"><table align="center"vspace="center"><tr><td><label for="constellation">身份:</label></td><td><select id="identity"name="identity"><option value="stedent"selected="selected">学生</option><option value="mannage">管理员</option></select></td></tr><tr><td id="txt">学号</td><td><input type="text"name="number"></tr><tr><td>密码</td><td><input type="password"name="password"></tr><tr><td><input type="submit"value="提交"></td><td><input type="reset"value="重写"></td></tr></table></form></div></div></div><div class="footer"></div></body></html>2.2(LoginServlet)代码package org.sunxin.ch02.servlet;importjava.io.IOException;importjava.io.PrintWriter;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.servlet.ServletContext;importjavax.servlet.ServletException;importjavax.servlet.http.*;public class LoginServlet extends HttpServlet{private static final long serialVersionUID = 1L;private String driverClass;private String url;private String user;private String password;public void init() throws ServletException{ServletContextsc = getServletContext(); //得到上下文对象driverClass = sc.getInitParameter("driverClass");//用来得到在web.xml中配置的driverClass参数url = sc.getInitParameter("url");//用来得到在web.xml中配置的url参数user = sc.getInitParameter("user");//用来得到在web.xml中配置的user参数password = sc.getInitParameter("password");//用来得到在web.xml中配置的password参数try{Class.forName(driverClass); //用Class.forName(drverClass);方法加载数据库驱动}catch(ClassNotFoundExceptionce){throw new ServletException("加载数据库失败!");}}protected void doGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException{Connection conn = null; //创建一个连接对象空引用Statement stmt = null; //创建一个语句对象空引用request.setCharacterEncoding("gb2312");response.setContentType("text/html;charset=gb2312");PrintWriter out = response.getWriter();//得到一个out对象String condition = request.getParameter("cond"); //用请求对象的getParameter得到login.html表单中传过来的请求参数String number = request.getParameter("number");String pwd = request.getParameter("password");try{conn =DriverManager.getConnection(url,user,password); //得到一个连接对象stmt= conn.createStatement(); //得到一个语句对象if(condition.equals("student")) //如果login.html中传过来的参数是student就执行下面的语句{//为了防止SQL语句注入攻击,所以用下面的方法来读取数据库中的数据out.println(number);out.println(password + "456");String sqlStr1 = "select * from login where number='"+number+"'and password='"+pwd+"'";//定义SQL语句//String sqlStr1 = "select * from login where number='20094077'and password='20094077'";//定义SQL语句//String sqlStr1 = "select * from login";//定义SQL语句//PreparedStatementpstmt = conn.prepareStatement(sqlStr1);//用prepareStatement可以有效的防范SQL 语句注入攻击//pstmt.setString(1, number); //传递参数number//pstmt.setString(2, password);//传递参数password//ResultSetrs = pstmt.executeQuery(); //执行查询ResultSetrs = stmt.executeQuery(sqlStr1);if(rs.next()) //用next()方法判断rs对象是否有下一行,如果有就说明查到了用户{out.println("123456");HttpSession session= request.getSession();session.setAttribute("user",number);response.sendRedirect("student.jsp");}else if(condition.equals("admin")){String sqlStr2 = "select name from login where username=? and password=?";PreparedStatementpstmts = conn.prepareStatement(sqlStr2);pstmts.setString(1, number);pstmts.setString(2, password);rs = pstmts.executeQuery();if(rs.next()){HttpSession session= request.getSession();session.setAttribute("user",number);response.sendRedirect("admin.jsp");}}}}catch(SQLException se){se.printStackTrace();}}protected void doPost(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException{doGet(request,response);}}Login.html Login.html到student.jsp的跳转①student.jsp代码如下<%@page contentType="text/html; charset=GB2312"%><%request.setCharacterEncoding("GB2312");%>登入成功!3 总结3.1 程序功能总结该系统仅仅完成了基本的信息的查看修改添加删除其中的(修改)查找不能很好的利用各个信息进行查找(修改) 该系统还有很多可以完善的地方可是我能力有限。
华中科技大学文华学院数据结构课程设计报告题目:学生信息管理系统专业:计算机应用与技术学号:姓名:指导老师:时间:一、总体框架图1、题目:学生信息管理系统2、设计内容及要求:内容:完成简单的学生信息管理系统要求:(1)学生信息包括:学号、、数学成绩、英语成绩、数构成绩;(2)用链表存放学生信息;(3)实现简单的菜单调用;(4)程序的功能包括:学生信息链表的建立;学生信息的显示;学生信息的查询;学生信息的删除;学生信息的插入;编写算法,以实现基本要求。
二、本程序用到的基本操作InintList(&l):操作结果:构造一个空的线性表L。
DestroList(&L)初始条件:线性表已存在。
操作结果:销毁线性表。
ListInsert(&L,i,e)初始条件:线性表L已存在,操作结果:在L中第i 个位置之前插入新的数据元素e。
L的长度加1.ListDelete(&L,i,e)初始条件:线性表L已存在且非空操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1.}ADT List三、模块设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:结构体的建立,定义学生的学号,名字,和各成绩模块三:学生信息系统使用菜单声明函数void menu(),对整个系统进行明模块四:链表的建立,用void creat()来建立链表模块五:显示学生信息,声明void print()显示学生的信息模块六:学生信息的查找声明void search()为查找函数,通过switch(a)设定用学号查找,用姓名查找两个分支模块七:删除学生信息通过void delete()实现学生信息的删除,确定要删除的信息,再删除掉。
模块七:插入学生信息,通过void insert()为插入函数,通过switch(a)插入到指定学生的后面。
模块八:学生信息按学号排序声明void sort()将录入学生系按升序排列,用的是“冒泡排序法”实现排序四、系统设计流程图五、源代码#include "stdio.h"#include "stdlib.h"#include "string.h"#define STUDENT 2typedef struct student{int num; //学号char name[20]; //int math;//高数int English;//英语int Data;//数据结构struct student *next;}student;student *head=NULL;int length; //链表的长度void create(){student *p1,*p2;length=0;int number=0;p1=(student *)malloc(sizeof(student));p1->num=-1;if(head==NULL)head=p1;printf("请输入学生的学号、、高数、英语、数据结构:\n");while(number<=3){p2=(student *)malloc(sizeof(student));scanf("%d %s %d %d %d",&p2->num,p2->name,&p2->math,&p2->English,&p2-> Data); //输入学生信息if(p2->num==0){printf("链表创建完成!\n");break;}length++; //链表的长度p1->next=p2;p2->next=NULL;p1=p1->next;number++;}return ;}void display(){student *p=head->next;printf("链表中所有的学生信息如下:\n");while(p!=NULL){printf("%d %s %d %d %d\n",p->num,p->name,p->math,p->English,p->Data);p=p->next;}return ;}void search(){int num_;student *p=head->next;printf("需要查找的学生学号为:");scanf("%d",&num_);while(p!=NULL){if(p->num==num_){printf("学号为%d的学生的信息如下:\n",num_);printf("%d %s %d %d %d\n",p->num,p->name,p->math,p->English,p->Data);return;}p=p->next;}if(p==NULL)printf("无此记录!\n");return ;}void search1()char na_me[20];student *p=head->next;printf("需要查找的学生姓名为:");scanf("%s",na_me);while(p!=NULL){if(!(strcmp(p->name,na_me))){printf("姓名为%s的学生的信息如下:\n",na_me);printf("%d %s %d %d %d\n",p->num,p->name,p->math,p->English,p->Data);return;}p=p->next;}if(p==NULL)printf("无此记录!\n");return ;}void insert(){int num_,i;student *p,*q;p=head;printf("请输入你要插入位置: ");scanf("%d",&num_);if(num_>length){printf("找不到要插入的位置\n");return ;}else{printf("请输入你要插入的学生的学号、、高数、英语、数据结构:\n");q=(student *)malloc(sizeof(student));scanf("%d %s %d %d %d",&q->num,q->name,&q->math,&q->English,&q->Data);while(p!=NULL){if(p->num==q->num){printf("该学号已经存在,无法插入!\n");return ;}p=p->next;}p=head;for(i=0;i<num_;i++)p=p->next;q->next=p->next;p->next=q;length++;printf("插入成功!\n");return ;}}void Delete(){student *p,*q;q=head,p=head->next;printf("请输入要删除的学生的学号:\n"); scanf("%d",&num_);while(p!=NULL){if(p->num==num_){q->next=p->next;free(p);length--;printf("删除成功!\n");return ;}p=p->next;q=q->next;}if(p==NULL){printf("找不到要删除的编号!\n");}}void menu(){printf("________________________________________________________________\n");printf("| 学生信息管理系统|\n");printf("| 0、退出系统|\n");printf("| 1、建立链表|\n");printf("| 2、显示链表|\n");printf("| 3、查找链表中的某个学生信息|\n");printf("| 4、删除链表中指定学号的学生|\n");printf("| 5、指定的位置上插入一个学生|\n");printf("________________________________________________________________\n");return ;}int main(void){int a;menu();while(1){printf("请选择相应的功能:");scanf("%d",&a);switch(a){case 0:return 0;case 1:create();menu();break;case 2:if(head){display();menu();}else{printf("链表为空,请先建立链表!\n");menu();}break;case 3:if(head){printf("请选择是按学号查找还是按姓名查找,若是学号就按7,姓名按8\n");scanf("%d",&choice);if(choice==7){search();}else{search1();}menu();}else{printf("链表为空,请先建立链表!\n");menu();}break;case 4:if(head){Delete();menu();}else{printf("链表为空,请先建立链表!\n");menu();}break;case 5:if(head){insert();menu();}else{printf("链表为空,请先建立链表!\n");menu();}break;default:break;}}system("pause");return 0;}六、程序结果建立链表显示链表查询学生信息按学号查按姓名查删除信息插入信息退出系统七、心得体会这次的《学生信息管理系统》的设计中,使我懂得课堂上的知识,必须要通过实践操作才能掌握。
课设名称:学生信息管理系统院(系):信息科学与工程学院*名:***学号: 1406 年级: 2014级专业班级:计算机科学与技术4班指导教师:***时间: 2016年11月目录第一部分摘要 (2)第二部分目的背景与意义.......................... 错误!未定义书签。
第三部分需求分析................................ 错误!未定义书签。
第四部分系统设计................................ 错误!未定义书签。
结构设计.................................... 错误!未定义书签。
功能结构图.................................. 错误!未定义书签。
功能流程以及工作流描述...................... 错误!未定义书签。
第五部分数据库的设计............................ 错误!未定义书签。
数据库设计................................... 错误!未定义书签。
数据表的设计................................. 错误!未定义书签。
第六部分详细设计.. (7)学生管理系统主界面模块...................... 错误!未定义书签。
学生信息管理模块............................ 错误!未定义书签。
课程信息管理模块............................ 错误!未定义书签。
查询模块 (11)图数据库操作模块 (11)第七部分课程设计心得 (11)第一部分摘要该项目开发的软件为学校学生信息管理系统软件,是鉴于目前学校学生人数剧增,学生信息呈爆炸性增长的前提下,学校对学生信息管理的自动化与准确化的要求日益强烈的背景下构思出来的,该软件设计完成后可用于所有教育单位(包括学校,学院等等)的学生信息的管理。
中南大学二○一○~二○一一学年第二学期信息科学与工程学院课程设计报告书课程名称:C语言课程设计班级:电气信息2010级1班学号:姓名:指导教师:季桂树二○一一年六月一.需求分析课题要求编写一个学生信息管理系统。
其中学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:A、系统以菜单方式工作;B、学生信息录入功能(学生信息用文件保存)——输入;C、学生信息浏览功能——输出;D、查询、排序功能——算法;a、按学号查询;b、按姓名查询。
E、学生信息的删除与修改。
其次功能要求:A、界面比较美观;B、有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入。
二. 总体设计是否找到数据文件 读入上次保存的数据YN操作选择浏览学生信息录入学生信息修改学生信息查询学生信息删除学生信息读入数据,新增一个结点按顺序浏览全部学生信息查找到目标结点查找到目标结点,并进行删除查找修改节点,并修改将现有数据写入文件结束开始退出系统三.详细设计结构体:该结构由“学号,姓名,年龄,性别,出生年月,地址,电话,E-mail ”八个成员组成。
功能函数&模块:从键盘读入一个人的信息,并储存入学生信息。
将数据写入数据文件。
读入文件中的数据,如果有数据文件返回1否则返回0。
菜单选择,返回0~6的含义分别是“退出”、“录入”、“浏览”、“查询”、“删除”、“修改”、“读取”。
从学生信息管理系统中删除一个人的信息。
修改一个人的信息。
struct student { long int num; char name[20]; int age; char sex[4]; char birth[10]; char add[30]; long int tele; char mail[20];struct student *next;};void writeData()void readData() void menu()void del ()void modify() void record()void displayAll()输出所有的记录。