学生信息管理系统课程设计实验报告
- 格式:doc
- 大小:270.50 KB
- 文档页数:31
学生信息管理系统课程设计报告1. 项目简介该项目旨在开发一个学生信息管理系统,为学校管理学生信息提供便捷的解决方案,满足管理部门的日常管理需求,能够对学生成绩、个人信息进行细致的管理和追踪。
本系统将用户权限划分为普通用户和管理员,管理员可以查看所有学生信息,添加新用户,编辑学生成绩等,普通用户可以查看自己的学生信息。
2. 项目所涉及的技术本项目使用的技术包括:(1)数据库:SQLite,用于存储系统用户和学生信息;(2)编程语言:Python,用于编写系统后端。
(3)前端技术:HTML、CSS、JS,用于创建系统前端页面。
3. 系统设计(1)用户登录系统设计系统登录部分使用HTML表单,可以分为3部分:(1)登录表单:用户可以输入用户名和密码进行登录;(2)验证码:用户需要输入验证码进行人机验证;(3)登录按钮:点击按钮可以提交表单,实现登录。
(2)成绩管理系统设计(1)登录权限管理:为用户设置不同的访问权限。
(2)添加学生:允许管理员添加新学生,输入学生信息;(3)编辑学生信息:允许管理员编辑学生信息;(4)录入学生成绩:允许管理员在数据库中录入学生成绩;(5)查看成绩:允许普通用户查看自己的学生成绩。
4. 实现(1)登录部分本部分使用HTML表单进行登录页面的设计,表单的各属性依次为:用户名、密码、验证码以及登录按钮。
(2)成绩管理系统本部分实现了登录权限管理、添加学生、编辑学生信息和成绩查询功能,登录权限使用cookie储存,添加学生、编辑学生信息利用数据库储存,成绩查询功能实现了从数据库中检索学生成绩的功能,成绩信息以表格形式呈现出来。
5. 总结本项目旨在开发一个学生信息管理系统,用于学校管理学生信息。
本文对本项目的功能进行了简要的概括介绍,以及使用的技术,并根据需求设计出系统的大体结构,着重介绍了用户登录和成绩管理系统设计,并介绍了本项目的实现,总结了本次项目所取得的成果。
学生管理系统1、用例图(1)班级信息管理用例图说明:系统管理员直接参与的用例为“登录”、“找回密码”、“查看班级基本信息"、“删除班级基本信息”、“修改班级基本信息"和“录入班级基本信息”。
校领导、教师、学生直接参与的用例为“登录”、“找回密码"和“查看班级基本信息"。
若在登录过程中发生忘记密码的情况,就需要使用“找回密码"的功能来恢复密码,而在正常情况下用不到“找回密码"这个功能,所以用例“找回密码”和用例“登录"之间是扩展关系.(2)成绩管理用例图说明:教师直接参与的用例为“登录”、“查询成绩”、“删除成绩”、“录入成绩”、“修改成绩”和“保存成绩”。
学生直接参与的用例为“登录”和“查询成绩”.因为修改成绩和录入成绩的时候都要保存成绩,所以将保存成绩抽象出来作为单独的一个用例。
用例“录入成绩”、“修改成绩"和“保存成绩”之间是包含关系,用例“找回密码"和用例“登录"之间是扩展关系。
(3)网上选课用例图说明:学生直接参与的用例为“登录”、“找回密码"、“查看课程信息”、“按课程编号查看”、“按课程名查看”、“选择课程”和“删除已选课程。
系统管理员直接参与的用例为“登录”、“找回密码”和“维护课程信息”.其中查看课程信息有两种方式,一种是按课程编号查看,另一种是按课程名查看,所以“查看课程信息”是父用例,而“按课程编号查看"、“按课程名查看”是子用例,他们之间是泛化关系。
用例“找回密码"和用例“登录”之间是扩展关系。
(4)学生信息管理用例图说明:系统管理员直接参与的用例为“登录”、“找回密码”、“查询学生基本信息"、“删除学生基本信息”、“修改学生基本信息”和“录入学生基本信息”。
校领导、教师直接参与的用例为“登录”、“找回密码”和“查询学生基本信息”。
学生直接参与的用例为“登录”、“找回密码”、“查询学生基本信息"和“修改学生基本信息”。
Java Web学生管理系统课设报告一、引言1.1 课题背景随着信息化技术的发展,学校需要一种能够方便管理学生信息的系统,以提高管理效率。
因此,开发一款基于Java Web的学生管理系统具有重要意义。
1.2 目的和意义本课题旨在设计和实现一个基于Java Web的学生管理系统,通过该系统实现学生信息的录入、查询、修改、删除等操作,从而方便学校对学生信息的管理,提高管理效率。
1.3 任务和要求本课题的任务是设计和实现一个基于Java Web的学生管理系统,要求系统能够实现以下功能:学生信息录入、查询、修改、删除等操作;学生信息按班级、学号、姓名等条件进行查询;数据持久化存储等。
二、系统分析2.1 系统需求分析根据学校对学生信息管理的实际需求,本系统需要实现以下功能:学生信息录入、查询、修改、删除等操作;学生信息按班级、学号、姓名等条件进行查询;数据持久化存储等。
2.2 业务流程分析学生管理系统的业务流程主要包括:学生信息录入、查询、修改、删除等操作。
其中,学生信息录入是整个业务流程的起点,通过录入学生信息,将数据存储到数据库中。
然后,可以通过查询功能根据不同条件对学生信息进行查询。
当学生信息需要修改或删除时,可以通过相应的操作进行修改或删除。
2.3 数据流程分析学生管理系统的数据流程主要包括:数据输入、数据处理和数据输出三个部分。
其中,数据输入主要是学生信息的录入;数据处理主要是对学生信息进行查询、修改、删除等操作;数据输出主要是将处理后的学生信息展示给用户。
在整个数据流程中,需要保证数据的准确性和完整性。
三、系统设计3.1 系统架构设计本系统采用MVC设计模式进行开发,分为模型层、视图层和控制层三个部分。
模型层主要负责业务逻辑的处理和数据的封装;视图层主要负责用户界面的展示;控制层主要负责接收用户的请求并调用模型层进行处理,然后将结果返回给视图层展示给用户。
3.2 数据库设计本系统采用MySQL数据库进行数据的存储和处理。
数据库课程设计报告----------建立学生成绩管理系统一、学习掌握了如何连接数据库,用C#,,SQL建立学生成绩管理系统二、界面截图登录界面代码:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data.SqlClient;public partial class Login : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void BtnLogin_Click(object sender, EventArgs e){if (TxtPassword.Text == string.Empty || TxtUsername.Text == string.Empty){Response.Write("<script>alert('请输入正确的学号和密码')</script>");}string conStr = "Data Source=127.0.0.1;Initial Catalog=students;integrated Security=True";//连接字符串SqlConnection con = new SqlConnection(conStr); //创建connection对象con.Open();SqlCommand cmd = new SqlCommand("select Password from Users where UserID='" + TxtUsername.Text + "'", con);SqlDataReader Reader = cmd.ExecuteReader();if (Reader.Read()){if (TxtPassword.Text.Trim()==Reader["Password"].ToString().Trim()){// Response.Write("<script>alert('登录成功')</script>");Server.Transfer("Index.aspx");}else{Response.Write("<script>alert('密码错误')</script>");}}else{Response.Write("<script>alert('用户不存在')</script>");}}}主界面代码:<html xmlns="/1999/xhtml"><head runat="server"><title></title></head><body><form id="form1" runat="server"><div><ul><li><a href="Update.aspx">学生成绩更新</a></li><li><a href="Select.aspx">学生成绩查询</a></li><li><a href="Summary.aspx">学生成绩汇总</a></li> </ul></div></form></body></html>更新界面代码:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data.SqlClient;public partial class Update : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void BtnInsert_Click(object sender, EventArgs e){string conStr = "Data Source=127.0.0.1;Initial Catalog=students;integrated Security=True";//连接字符串SqlConnection Con = new SqlConnection(conStr); //创建connection对象Con.Open();string cmdStr = string.Format("insert into SC(Sno,Cno,Grade) values('{0}','{1}','{2}')", this.TxtSno.Text, this.TxtCno.Text,this.TxtGrade.T ext);SqlCommand cmd = new SqlCommand(cmdStr, Con);try{cmd.ExecuteNonQuery();Response.Write("<script>alert('插入成功!')</script>");SqlDataAdapter sda = new SqlDataAdapter("select Sno 学号,Cno 课程号,Grade 成绩from SC", Con);System.Data.DataSet ds = new System.Data.DataSet();sda.Fill(ds);this.GridView1.DataSource = ds;this.GridView1.DataBind();}catch (SqlException sqle){Response.Write("异常:<br>" + sqle.ToString());}finally{Con.Close();}}protected void BtnDelete_Click(object sender, EventArgs e){string conStr = "Data Source=127.0.0.1;Initial Catalog=students;integrated Security=True";//连接字符串SqlConnection Con = new SqlConnection(conStr); //创建connection对象Con.Open();string cmdStr =string.Format("delete from SC where Sno='{0}' and Cno='{1}'",this.TxtSno.Text,this.TxtCno.Text);SqlCommand cmd = new SqlCommand(cmdStr, Con);try{cmd.ExecuteNonQuery();Response.Write("<script>alert('删除成功!')</script>");SqlDataAdapter sda = new SqlDataAdapter("select Sno 学号,Cno 课程号,Grade 成绩from SC", Con);System.Data.DataSet ds = new System.Data.DataSet();sda.Fill(ds);this.GridView1.DataSource = ds;this.GridView1.DataBind();}catch (SqlException sqle){Response.Write("异常:<br>" + sqle.ToString());}finally{Con.Close();}}protected void BtnEdit_Click(object sender, EventArgs e){string conStr = "Data Source=127.0.0.1;Initial Catalog=students;integrated Security=True";//连接字符串SqlConnection Con = new SqlConnection(conStr); //创建connection对象Con.Open();SqlCommand cmd = new SqlCommand("p_UpdateGrade", Con);mandType = mandType.StoredProcedure;// 添加参数cmd.Parameters.Add("@sno", System.Data.SqlDbType.VarChar, 10).Value = this.TxtSno.Text;cmd.Parameters.Add("@cno", System.Data.SqlDbType.VarChar, 6).Value = this.TxtCno.Text;cmd.Parameters.Add("@grade", System.Data.SqlDbType.TinyInt).Value = this.TxtGrade.T ext;try{cmd.ExecuteNonQuery();//显示Response.Write("<script>alert('修改成功!')</script>");SqlDataAdapter sda = new SqlDataAdapter("select Sno 学号,Cno 课程号,Grade成绩from SC", Con);System.Data.DataSet ds = new System.Data.DataSet();sda.Fill(ds);this.GridView1.DataSource = ds;this.GridView1.DataBind();}catch (SqlException sqle){Response.Write("异常:<br>" + sqle.ToString());}finally{Con.Close();}}}查询界面using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data.SqlClient;public partial class Select : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e){}protected void BtnSelect_Click(object sender, EventArgs e){string conStr = "Data Source=127.0.0.1;Initial Catalog=students;integratedSecurity=True";//连接字符串SqlConnection Con = new SqlConnection(conStr); //创建connection对象Con.Open();SqlCommand cmd = new SqlCommand("Select avg(Grade) 平均成绩from SC where Sno='" + this.TxtSno.Text + "'", Con);SqlDataReader dr = cmd.ExecuteReader();if (dr.Read()){TxtAverage.Text = dr["平均成绩"].ToString();}dr.Close();//设置要执行存储的名称SqlDataAdapter sda = new SqlDataAdapter("p_SelectSC", Con);//设置命令对象的类型mandType= mandType.StoredProcedure;//添加存储过程中的参数sda.SelectCommand.Parameters.Add("@sno", System.Data.SqlDbType.VarChar, 20).Value = this.TxtSno.Text;System.Data.DataSet ds = new System.Data.DataSet();sda.Fill(ds);//判断是否读到数据if (ds.Tables[0].Rows.Count == 0){Response.Write("<script>alert('没有查询到数据')</script>");}else{this.GridView1.DataSource = ds;this.GridView1.DataBind();Con.Close();}}}汇总界面代码:using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Data.SqlClient;public partial class Summary : System.Web.UI.Page{protected void Page_Load(object sender, EventArgs e) {}protected void BtnCno_Click(object sender, EventArgs e){string conStr = "Data Source=127.0.0.1;Initial Catalog=students;integrated Security=True";//连接字符串SqlConnection Con = new SqlConnection(conStr); //创建connection对象//创建数据库适配器对象,从SC表中查询信息string cmdstr = "SELECT Cno 课程号,COUNT(*) 人数,MAX(Grade) 最高分,min(Grade) 最低分,avg(Grade) 平均分FROM SC GROUP BY Cno";SqlDataAdapter sda = new SqlDataAdapter(cmdstr, Con);//创建数据集对象System.Data.DataSet ds = new System.Data.DataSet();//通过数据适配器将数据填充到DataSet中sda.Fill(ds);//通过GridView控件,在界面上显示数据集的内容this.GridView1.DataSource = ds;this.GridView1.DataBind();Con.Close();}protected void BtnSdept_Click(object sender, EventArgs e){string conStr = "Data Source=127.0.0.1;Initial Catalog=students;integrated Security=True";//连接字符串SqlConnection Con = new SqlConnection(conStr); //创建connection对象//创建数据库适配器对象,从SC表中查询信息string cmdstr = "select Sdept 专业,avg(Grade)as 平均成绩from Student join SC on Student.Sno=SC.Sno group by Sdept order by 平均成绩desc";SqlDataAdapter sda = new SqlDataAdapter(cmdstr, Con);//创建数据集对象System.Data.DataSet ds = new System.Data.DataSet();//通过数据适配器将数据填充到DataSet中sda.Fill(ds);//通过GridView控件,在界面上显示数据集的内容this.GridView2.DataSource = ds;this.GridView2.DataBind();Con.Close();}}三、在写程序的过程中,遇到很多问题,但是我都积极的去查找资料了。
学生信息管理系统实验报告学生信息管理系统实验报告一、引言学生信息管理系统是一种用于管理学生个人信息和学籍信息的软件系统。
本实验旨在通过设计和实现一个简单的学生信息管理系统,来提高学生信息管理的效率和准确性。
二、系统设计1. 系统功能学生信息管理系统主要包括以下功能:- 学生信息录入:管理员可以录入学生的个人信息,包括姓名、性别、年龄、联系方式等。
- 学籍信息管理:管理员可以管理学生的学籍信息,包括学号、班级、学院、专业等。
- 学生信息查询:管理员和教师可以根据学生的姓名、学号等关键字进行查询。
- 学生信息修改:管理员可以对学生的个人信息和学籍信息进行修改。
- 学生信息统计:系统可以生成学生的各种统计报表,如按性别统计、按年级统计等。
2. 系统架构学生信息管理系统采用B/S架构,即浏览器/服务器架构。
前端使用HTML、CSS和JavaScript实现,后端使用PHP和MySQL进行数据存储和处理。
三、系统实现1. 前端界面设计系统的前端界面采用简洁、直观的设计风格,以提高用户的使用体验。
界面包括登录页面、主页和各个功能模块页面。
2. 后端数据处理系统的后端采用PHP作为服务器端脚本语言,通过与前端的交互,实现数据的存储和处理。
使用MySQL作为数据库,存储学生的个人信息和学籍信息。
3. 功能实现系统的各个功能模块通过编写相应的PHP脚本来实现。
例如,学生信息录入功能通过表单的方式获取用户输入的数据,并将数据存储到数据库中;学生信息查询功能通过SQL语句查询数据库,并将查询结果返回给前端。
四、系统测试与评估为了验证系统的功能和性能,我们进行了一系列的测试和评估。
1. 功能测试通过模拟用户的操作场景,测试系统的各个功能是否正常运行。
例如,测试学生信息录入功能是否能够正确地将数据存储到数据库中,测试学生信息查询功能是否能够准确地返回查询结果等。
2. 性能测试通过模拟多个用户同时访问系统,测试系统的并发性能和响应时间。
数据库学生信息管理系统实验报告一、实验目的本次实验的目的是设计并实现一个基于数据库的学生信息管理系统,通过该系统可以对学生的基本信息进行增删改查等操作,方便高效地管理学生信息。
二、实验内容1. 创建数据库:首先,在MySQL中创建一个名为"student_info"的数据库,用于存储学生信息的表。
2. 创建表结构:在数据库中创建一个名为"student"的表,用于存储学生的基本信息,包括学号、姓名、性别、年龄、班级等字段。
3. 实现增加学生信息的功能:设计一个界面,在界面上输入学生的基本信息,然后将这些信息插入到数据库的"student"表中。
4. 实现删除学生信息的功能:设计一个界面,在界面上输入要删除的学生的学号,然后根据学号将该学生的信息从数据库的"student"表中删除。
5. 实现修改学生信息的功能:设计一个界面,在界面上输入要修改的学生的学号和需要修改的字段信息,然后根据学号将该学生的相应字段信息更新到数据库的"student"表中。
6. 实现查询学生信息的功能:设计一个界面,在界面上输入要查询的学生的学号,然后根据学号从数据库的"student"表中查询相应学生的信息并显示在界面上。
三、实验过程1. 创建数据库:在MySQL中执行以下指令创建名为"student_info"的数据库:CREATE DATABASE student_info;2. 创建表结构:在"student_info"数据库中执行以下指令创建名为"student"的表:CREATE TABLE studentid INT PRIMARY KEY AUTO_INCREMENT,student_id VARCHAR(20) NOT NULL,name VARCHAR(20) NOT NULL,gender VARCHAR(4) NOT NULL,age INT NOT NULL,class VARCHAR(20) NOT NULL3. 实现增加学生信息的功能:使用Java编写一个程序,通过JDBC 连接到MySQL数据库,然后通过用户界面输入学生的基本信息,将这些信息插入到"student"表中。
学生管理系统实验报告实验目的本次实验的目的是设计并实现一个学生管理系统,以便管理教师对学生的基本信息、课程成绩等重要数据进行记录、查询和修改。
通过该实验,我们可以学习和掌握数据库的设计与应用,以及如何利用编程语言实现对数据库的操作。
实验环境本次实验使用的开发环境为Windows操作系统,数据库管理系统采用MySQL,编程语言为Java。
实验内容与步骤1. 数据库设计首先,我们需要进行数据库的设计。
根据实际需求,设计了以下几个表:- 学生表(Student):包含学生的学号、姓名、性别、出生日期等基本信息。
- 课程表(Course):包含课程的课程号、课程名、学分等信息。
- 成绩表(Score):包含学生的学号、课程号和成绩等信息。
2. 数据库连接使用Java编程语言,我们需要编写代码来连接MySQL数据库。
首先引入相关的数据库连接库,在代码中设置数据库的连接信息,如数据库URL、用户名和密码。
3. 数据库操作接下来,我们需要编写代码来实现对数据库的操作,包括插入、查询和修改等功能。
- 插入数据:通过执行SQL语句,将学生的基本信息、课程信息和成绩信息插入到相应的表中。
- 查询数据:根据学生学号或课程号,执行查询语句,并将结果以表格的形式展示出来。
- 修改数据:对于某个学生或某门课程的成绩,可以根据学号或课程号来修改其对应的成绩。
4. 用户界面设计为了方便教师使用学生管理系统,我们设计了一个简洁美观的用户界面。
通过该界面,教师可以方便地进行数据库的操作。
实验结果与分析经过运行实验代码,成功地实现了学生管理系统的设计与实现。
教师可以通过该系统对学生的信息进行录入、查询和修改,从而实现了对学生的有效管理。
界面设计方便了教师的操作,使其能够直观地进行各项功能的实现。
实验总结通过本次学生管理系统实验,我对数据库的设计与应用有了更深入的理解。
实验中,我掌握了数据库的基本操作和编程语言对数据库的操作方法,同时也提高了编程能力和逻辑思维能力。
学生管理系统实验报告一、引言学生管理系统是一种用于管理学生信息和学校相关资源的软件系统。
通过学生管理系统,可以实现学生信息的录入、查询、修改和删除等功能,方便学校管理学生信息和课程安排。
本实验旨在设计和实现一个简单的学生管理系统,并通过测试评估其功能和性能。
二、系统设计1.需求分析学生管理系统应包括以下基本功能:- 学生信息的录入:包括学生姓名、学号、性别、年龄、班级等基本信息。
- 学生信息的查询:根据学号或姓名查询学生的详细信息。
- 学生信息的修改:可以修改学生的基本信息。
- 学生信息的删除:可以删除学生的信息。
- 学生课程的安排:可以为学生安排课程并进行管理。
- 成绩录入和查询:可以录入学生课程成绩并查询学生成绩。
2.系统流程设计根据需求分析,学生管理系统可以划分为以下模块:- 学生信息管理模块:负责学生信息的录入、查询、修改和删除等功能。
- 课程管理模块:负责课程的录入和安排等功能。
- 成绩管理模块:负责学生成绩的录入和查询等功能。
3.系统数据库设计学生管理系统需要使用数据库来存储学生信息、课程信息和成绩信息等数据。
数据库可以使用关系型数据库如MySQL或非关系型数据库如MongoDB等。
4.系统界面设计学生管理系统的界面设计应简洁美观,易于操作。
可以采用图形界面和命令行界面等形式,根据实际需求灵活选择。
三、系统实现根据系统设计,我们选择使用MySQL数据库和Java编程语言来实现学生管理系统。
1.数据库设计首先创建一个名为"student"的数据库,在该数据库中创建三个表:- 学生信息表(student_info):包括学生ID、姓名、性别、年龄、班级等字段。
- 课程信息表(course_info):包括课程ID、课程名称、授课教师等字段。
- 成绩信息表(score_info):包括学生ID、课程ID、成绩等字段。
2.系统实现代码首先进行数据库连接,然后实现各个功能对应的代码,包括学生信息的录入、查询、修改和删除,课程信息的录入和安排,成绩的录入和查询等。
计算机系学生信息管理系统课程设计报告.doc《计算机系学生信息管理系统》课程设计报告报告题目:计算机系学生信息管理系统作者所在系部:计算机科学与工程系作者所在专业:网络工程作者学号:作者姓名:指导教师姓名:完成时间:2012年12月10日目录目录摘要第一章绪论 (1)1.1 课程设计的目的 (1)1.2 课程设计的意义 (1)第二章系统分析 (2)2.1 需求分析 (2)2.2 开发工具选择 (2)第三章总体设计 (3)3.1 项目规划 (3)3.2 系统业务流程分析 (3)3.3 系统功能结构 (4)第四章系统设计 (5)4.1 设计目标 (5)4.2 开发及运行环境 (5)4.3 数据库设计 (5)第五章技术准备 (8)5.1更改密码 (8)5.2信息添加、查询、修改、删除 (9)5.3 窗口控件 (9)第六章主要功能模块设计与测试 (12)6.1登陆窗体设计 (12)6.2教师登陆窗体 (16)6.3管理员登陆 (19)6.4 工具栏的显示 (25)第七章疑难问题分析与解决 (29)7.1动态更新窗口中ComboBox的Items中的数据 (29)7.2表之间关联 (29)总结 (30)技术总结 (30)经验总结 (31)致谢 (32)参考文献 (33)附录 (35)摘要对于高等学校来说,学生信息的管理至关重要。
面对庞大的信息量,需要通过专门的管理系统来系统化、规范化以及高效地实现学生信息管理。
利用Visual Studio 2010编写程序,实现了用户对在校学生基本信息,即学号、姓名、班级、年级、专业、住址、出生年月等信息的增加、删除、修改、查询。
本系统主要有2个主要功能模块:教师模块,管理员模块。
教师模块中,可是实现的功能包括对学生进行按学号,姓名和班级的查询,还包括对登陆密码的修改。
管理员模块中,功能包括对学生进行增添,删除,查找,修改和对密码的修改。
已经过全面的系统测试,能够很好的运行,达到了预期的效果。
精品文档 可编辑 *********大学 课 程 设 计 报 告
课程名称 高级语言程序设计 设计题目 学生信息管理系统 专 业 计算机科学与技术 班 级 学 号 姓 名 完成日期 精品文档
可编辑 课 程 设 计 任 务 书 设计题目: 学生信息管理系统设计 设计内容与要求: 内容: 对学生信息进行管理,学生信息包括学号、姓名、性别、年龄、学历、学号、住址、电话等(学号不重复)。 要求: (1) 系统以菜单方式工作 (2) 学生信息录入功能(学生信息用文件保存) 。 (3) 输出学生信息、浏览学生信息功能。 (4) 查询和排序功能:(至少一种查询方式) ,如按学号查询、按学历查询等。 (5) 学生信息删除、修改功能(任选项)。
指导教师:_______________ 年 月 日
课 程 设 计 评 语
成绩: 指导教师:_______________ 精品文档 可编辑 年 月 日 精品文档
可编辑 【问题描述】 学生信息管理软件设计。对学生信息进行管理,学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一个学生信息管理软件。
【基本要求】 一、输入的形式和输入值的范围 形式:用scanf输入学生的学号,姓名,年龄,性别,出生年月,地址,电话,E-mail。输入一个学生信息一个回车。用输入的学号p1->num来控制输入,当输入的学号为0时,用break跳出循环。即if(p1->num==0)break。 输入值的范围: 学号、年龄为整型 long num; int age; 姓名为字符串型15个字节char name[15]; 性别为字符串型,10个字节char sex[10]; 出生为字符串型,20个字节char chushen[20]; 地址为字符串型,30个字节char dizhi[30]; 邮箱为字符串型,输入11位数字char email[11]。
二、输出的形式 输出是以表格的形式输出,即表格的每一行都能显示第一个学生的信息,第二行是显示第二个学生的信息。
三、程序所能达到的功能 对学生信息进行管理,学生信息包括职学号,姓名,年龄,性别,出生年月,地址,电话,E-mail。 (1)系统以菜单方式工作 (2)学生信息录入功能。 精品文档 可编辑 (3)输出学生信息、浏览学生信息功能。 (4)查询和排序功能:(至少一种查询方式),如按学号查询、按姓名查询等。 (5)学生信息删除、修改功能(任选项)。 (6)添加学生信息。
【测试数据】 输入:设输入四个学生信息,以最后一个学生的学号为0来结束输入,学号是整型。 预期的输出结果:预期的输出结果请参见程序后的运行结果。
【数据结构】 排序记录的数据元素表采用一维数组存储结构,每个元素包含8个关键字段,其类型描述为: #include #include //分配size字节的存储区 #include //包含字符串处理函数的头文件,可以直接调用现有的字符串处理的一系列函数 #define len sizeof(struct student) //宏定义求字节运算符 #include //清屏功能 struct student //声明一个结构体类型struct student { long num; //定义学号为long型数据 char name[15]; //定义姓名 int age; //定义年龄 char sex[3]; //定义性别 char chushen[10]; //定义出生 char dizhi[20]; //定义出生地址 精品文档 可编辑 char phone[11]; //定义电话 char email[20]; //定义邮箱 struct student *next; //next是指针变量,指向结构体变量
【算法思想】 利用一维结构体存放所有学生的信息,输入后,在输出时要对学生按学号的高低排序,然后可以执行按学号查询学生信息,输入学号,删除学生信息,输入学号可以找出该学生信息,然后选择修改学生信息,如果来了新学生,还可以添加学生信息。
【总体设计】 主菜单包括:输入函数、学号排序、浏览函数、删除函数、修改函数、添加函数。
图1-1学生管理总体设计
输入一个学生学号,来删除该学生信息 输入学号,修改的学生信息
显示主菜单
输入函数 学生排序 输出学生信息 删除学生信息 修改学生信息 添加学生信息 用键盘输入学生信息 按学生学号高低排序
在原有的学生上添加学生信息 以表格的形式输出学生信息 精品文档
可编辑 【模块划分】
一、主函数:main() 显示系统工作菜单,显示该系统的所有功能。告诉使用者所有将会调用的被 调函数,再运用选择函数switch即可根据使用者所输入的学号进入对应的功能程序。并且对菜单做了一个循环,进行完一个选择后,按回车键可进行清屏功能,把屏幕上除了主菜单以外都清空,然后可以继续选择那些可以使用的功能,这样可以方便使用者使用,并且每一步都很清晰。以8退出系统。
二、输入函数:struct student *creat() 在该程序的前面已经定义了一个结构体struct student用来储存学生的所有信息,(学号、年龄、姓名、性别、出生日期、地址、电话、邮箱)。定义p1和p2,struct student *p1,*p2;p1,p2是指向struct student类型数据的指针变量。定义一个n=0,n是输入的个数,主要作用是:如果输入一个学生信息,首地址指向p1,head=p1;否则p2的下一个地址指向p1,p2指向p1. p2->next=p1;p2=p1;学号控制循环。
三、排序函数:void paixu(struct student *head) 用一个for语句做循环,不是NULL的话,指针指向下一个,按学生学号高低排序。整形直接交换,字符型用strcpy交换,类型相当于两个数据之间的交换。
四、输出函数:void printlist(struct student *head) 在主函数里边用while控制循环,输出学生信息,然后指针指向下一个。 精品文档
可编辑 五、查询函数:void findList_num(struct student *head) 和 void findList_num(struct student *head) 输入一个学号或姓名,做一个for循环,即指针pt指向第一个地址,再定义一个指针p1,让它等于pt,他是紧跟着pt后面的一个指针,让p1->next不等于NULL,pt指向下一个地址。这样就能修改最后一个学生信息了。如果要查询的学生的学号在学生里,就输出该学生信息,否则,就输出查询的学生信息不存在。
六、删除函数:int shanchu(struct student *head) 输入一个学号,先找到这个学生的信息。如果输入的学号在学生信息中,就进行以下循环:如果输入的是第一个学生的话,就head等于第二个学生信息;如果输入的学生信息是最后一个,就让倒数第二个等于NULL;否则的话,就让下一个学生信息覆盖前一个。如果输入的学号不在学生信息中,输出“此学生信息不存在”。
七、修改函数:struct student *delList(struct student *head,long del_num)
输入要修改的学号,找到该学生并且输出该学生的信息。然后屏幕上会出现学生信息的所有项目,用switch进行选择修改的项目。选择后输入新的学生信息,用它来覆盖原来的学生信息。
八、添加函数:void insert(struct student *head) 用一个while语句while(p2->next!=NULL)控制循环,p2的指针指向下一个地址,即p2=p2->next;这是找到最后一个地址,然后开辟动态存储区,p1=(struct student *)malloc(len);输入要添加的学号,用学号为0来终止循环,如果不为0,就继续输入学生信息。
【源程序】
#include #include //分配size字节的存储区 #include //包含字符串处理函数的头文件,可以直精品文档 可编辑 接调用现有的字符串处理的一系列函数 #define len sizeof(struct student) //求字节运算符 #include //清屏功能 FILE *fp; struct student //声明一个结构体类型struct student {int num; //学号为整型 char name[20]; //姓名为字符串 char genter[10]; //性别为字符串 int age; //年龄为整型 char xueli[20]; //学历为字符串 int gongzi; //学号为整型 char address[30]; //地址为字符串 char phone[11]; //电话为字符串 struct student *next; //next是指针变量,指向结构体变量 }; void menu() { printf("===========学生信息管理系统==========\n\n"); printf(" 1、录入学生信息\n"); printf(" 2、浏览学生信息\n"); printf(" 3、查询学生信息\n"); printf(" 4、删除学生信息\n"); printf(" 5、插入学生信息\n"); printf(" 6、修改学生信息\n"); printf(" 7、排序学生信息\n"); printf(" 8、退出管理系统\n"); printf("=====================================\n"); } struct student *creat() //录入学生信息