精华内容
下载资源
问答
  • java学生信息管理系统(附源码)

    万次阅读 多人点赞 2016-07-14 16:36:30
    一: 介绍 1:实现登录界面 2:实现主界面 有两种操作 一种是按钮操作 另外一种是SQL语句。 3:连接SQL server 2008 数据库,后续我更新了,加了一个MySql 版本。在我的下载链接里面都有,里面也有使用...

    一:   介绍

          

      1:实现登录界面

        2:实现主界面

               有两种操作 一种是按钮操作  另外一种是SQL语句。

        3:连接SQL server 2008 数据库,后续我更新了,加了一个MySql 版本。在我的下载链接里面都有,里面也有使用说明。另外*myeclipse和eclipse,            jcreator什么的都是IDE,使用都一样,基本没什么区别,只不过myeclipse更商业化不开源,也就意味着收费,里面集成的插件比较多而已。

               *****************************************************************************************************

               用到的软件及环境SQLserver2008,eclipse,sqljdbc4.jar(数据库驱动包)

               *****************************************************************************************************

               另外一个Mysql 5.7.15.  Myeclipse2015,mysql-connector-java-5.1.34.jar

                 **********************************************************************************************************************

     

               java的JDK环境 (自行安装配置)

                切记:

                另外要新建数据库wtf 和新建学生表student(也可以用你自己创建的数据库及表,不过你得在源代码中进行修改):

                还要导入sqljdbc4.jar

            

        4:实现增删改查  (另有退出和刷新)

    二:    使用

      1:首先导入rjgc包

     

    然后点开browse  找到rjgc  

    最后点击finish

    得到    下图

    加载出来以后可能有的java文件前面有错,因为还没有导入sqljdbc4.jar

    (*******************************************************************************************************************************                    注意,方式一导入jdbc的图是之前我做的时候比较麻烦的一种方式,但是也能达到效果,在后期的我更新的链接资源中,如果导入任意版本源码包的话,都会自动加载lib包以及下面不同版本对应的jdbc连接驱动。这时候你只需要在那个lib文件夹下的.jar 文件上右键点击-->build path--->add to build path,导入jdbc结束。

    方式二导入:贴一张图

    上面这张图是方式二导入的,

    **************************************************************************************************************************)

     

    接下来继续,方式一导入  看下图:

     

     

     

    这时候应该就差不多可以运行了,不过还得把SQLserver2008的(MSSQLSERVER)服务开启了。

    上图

    再回到eclipse界面 打开rjgc

    最后双击LoginIn.java打开代码文本

    运行  就可以出现登录界面  

    在LoginIn.java代码文本里面找到登录用户 和密码后就可以登录了 

    比如admin 123  和wangtangfu 123456      (注意不要多加空格)

    其实用户权限都一样  如果你想加用户权限  可以写两个不同的Qframe.java。要做到主窗口里面的功能不同   ,可以屏蔽一些按钮

    比如修改  增加  等功能。然后在不同用户登陆的时候调用不同的Qframe.java,这样应该可以实现权限问题。。。

     

    2:

    还有程序里面应运了一些图片,它们的位置路径位置可能不一样 ,自行参照代码理解修改(很容易的哟);

     

    三:程序运行截图

       登陆窗口

     主窗口

    SQL语句执行  比如select * from student  

    刷新按钮:

    增加按钮:

                                                                                                                                                         添加成功之后刷新即可:

    删除按钮:

    修改按钮:

    查询按钮

     

     

    至此  

          学生管理系统就完成了   

               其中的登陆界面是 我借鉴别人的  

                   文中难免有不足之处,恳请批评指正

                                                                                                                                       2016-7-14

    再此上传不了附件 所以我给链接去在云盘下载 


    首次上传

    (2017_6_12更新)链接: https://pan.baidu.com/s/1aSeKJ8gXxWSElHaTU6_PdA 密码: yqpv

     


    添加myeclipse+mysql 版本:

    (2017_12_17更新)链接: https://pan.baidu.com/s/1dFAlILj 密码: 9z7k

    (2017_12_17更新)链接: https://pan.baidu.com/s/1dFAlILj 密码: 9z7k

    (2017_12_17更新)链接: https://pan.baidu.com/s/1dFAlILj 密码: 9z7k


     


    修改student.sql执行报错 (执行时可以打开偷偷看一眼)

    (2019_04_13更新)链接: https://pan.baidu.com/s/121sRLAerxEa3UmTD50Uu6g 密码: xjge

    (2019_04_13更新)链接: https://pan.baidu.com/s/121sRLAerxEa3UmTD50Uu6g 密码: xjge

    (2019_04_13更新)链接:https://pan.baidu.com/s/121sRLAerxEa3UmTD50Uu6g 密码: xjge

     

    展开全文
  • c#实现简单学生信息管理系统

    万次阅读 多人点赞 2019-06-06 21:40:37
    登录、添加学生信息、修改学生信息、删除学生信息、查询学生信息 三、实现步骤 1、登陆界面功能实现 老规矩,先贴下主要代码: //构造方法 public Login() { InitializeComponent(); this.label3.Parent = ...

    一、运行环境windows,使用vs编译软件
    在这里插入图片描述
    二、主要功能
    登录、添加学生信息、修改学生信息、删除学生信息、查询学生信息
    三、实现步骤
    1、登陆界面功能实现
    老规矩,先贴下主要代码:

    		//构造方法
    		public Login()
            {
                InitializeComponent();
                this.label3.Parent = this;
                this.label1.BackColor = Color.Transparent;
                this.label2.BackColor = Color.Transparent;
                this.label3.BackColor = Color.Transparent;
                this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            }
            //对登录按钮的事件实现代码
            private void button1_Click(object sender, EventArgs e)
            {
                string ss = ConfigurationManager.ConnectionStrings["Stu"].ToString();
                SqlConnection conn = new SqlConnection(ss);
                try
                {
                     //开启连接           
                     conn.Open();           
                    // MessageBox.Show("数据库连接成功!");           
                }
                catch (Exception)
                {
                     //MessageBox.Show("数据库连接失败!");
                }         
                String uname = txtName.Text.Trim();
                string pword = txtPass.Text.Trim();
                if(uname == ""|| pword == "")
                {
                    MessageBox.Show("请输入用户名或密码!");
                    return;
                }
                else
                {
                    SqlCommand cmd = conn.CreateCommand();
                    SqlDataAdapter adp = new SqlDataAdapter();
                    string sql2 = "select * from account where name='"+ uname + " 'and pass='" + pword + " ' ";
                    cmd.CommandText = sql2;
                    adp.SelectCommand = cmd;
                    DataSet dat = new DataSet();
                    adp.Fill(dat, "account");
                    if(dat.Tables["account"].Rows.Count == 0)
                    {
                        MessageBox.Show("用户名或密码错误!");
                        return;
                    }
                    else
                    {
                        Form1.isLogin = true;
                        Form1.username = this.txtName.Text;
                        this.Close();
                    }
                    cmd.Clone();
                }
                conn.Close();
               
            }
            //实现按ESC键关闭该窗口
            protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
            {
                switch (keyData)
                {
                    case Keys.Escape:
                        this.Close();//esc关闭窗体
                        break;
                }
                return false;
            }
            //重置按钮清空文本框
            private void button2_Click(object sender, EventArgs e)
            {
                txtName.Text = "";
                txtPass.Text = "";
            }     
            //密码输入完成后实现敲击enter键触发登录按钮
            private void txtPass_KeyDown(object sender, KeyEventArgs e)
            {
                if(e.KeyCode == Keys.Enter)
                {
                    this.button1_Click(sender, e);
                }
            }
    		//实现按enter键使焦点转移到下一文本框,与tab键通用
            private void txtName_KeyPress(object sender, KeyPressEventArgs e)
            {
                if (e.KeyChar == (char)Keys.Enter)
                {
                    SendKeys.Send("{tab}");
                }
            }
    

    效果如下图:
    在这里插入图片描述
    2、主界面功能实现
    主要代码如下:

    		public static bool isLogin = false;
            int id;
            SqlConnection conn;
            SqlCommand cmd;
            SqlDataAdapter adp;
            DataSet dat;
            public static string username
            {
                get;
                set;
            }
            public Form1()
            {
                InitializeComponent();
                this.label1.BackColor = Color.Transparent;
                this.groupBox1.BackColor = Color.Transparent;
                this.groupBox2.BackColor = Color.Transparent;
                this.dataGridView1.BorderStyle = BorderStyle.None;
                this.dataGridView1.CellBorderStyle = DataGridViewCellBorderStyle.None;
                
                this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                this.Text += "| 管理员:" + username;
                string ss = ConfigurationManager.ConnectionStrings["Stu"].ToString();
                //建立数据库连接
                conn = new SqlConnection(ss);
                try
                {
                    //开启连接           
                    conn.Open();
                    // MessageBox.Show("数据库连接成功!");           
                }
                catch (Exception)
                {
                    MessageBox.Show("数据库连接失败!");
                }
                
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                DataGridViewDataLoad();
                
                //this.stu_dentTableAdapter.Fill(this.students.Stu_dent);
    
            }
    
            private void DataGridViewDataLoad()
            {
                String sql1 = "select * from Stu_dent";
                adp = new SqlDataAdapter(sql1,conn);
                dat = new DataSet();
                adp.Fill(dat);
                dataGridView1.DataSource = dat.Tables[0];
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                string num = textBox1.Text.Trim();
                string name = textBox2.Text.Trim();
                String sql4 = "Select * from Stu_dent where 1=1";
                if(!String.IsNullOrEmpty(num))
                {
                    sql4 += " and StuNum=" + num;
                }
                if(!String.IsNullOrEmpty(name))
                {
                    sql4 += " and StuName like '%" + name + "%'";
                }
                adp = new SqlDataAdapter(sql4, conn);
                dat = new DataSet();
                adp.Fill(dat);
                dataGridView1.DataSource = dat.Tables[0];
                
            }
            protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
            {
                switch (keyData)
                {
                    case Keys.Escape:
                        this.Close();//esc关闭窗体
                        break;
                }
                return false;
            }
            private void button1_Click(object sender, EventArgs e)
            {
                AddStudent addStudent = new AddStudent();
                addStudent.StartPosition = FormStartPosition.CenterScreen;
                //addStudent.Show();
                addStudent.ShowDialog();
                DataGridViewDataLoad();
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                MessageBox.Show("请在学生信息显示框中双击所要删除学生所在的那一行即可!!!","提示");
            }
            private void button3_Click(object sender, EventArgs e)
            {
                MessageBox.Show("请在学生信息显示框中单击所要删修改学生所在的那一行的任意文字区域即可!", "提示");
            }
            private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                DialogResult result = MessageBox.Show("确定删除该学生信息?", "删除", MessageBoxButtons.OKCancel);
                if(result == DialogResult.OK)
                {
                    id = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value);
                    Console.WriteLine(id);
                    string sql2 = "delete from Stu_dent where ID=" + id;
                    cmd = new SqlCommand(sql2, conn);
                    cmd.ExecuteNonQuery();
    
                }
                DataGridViewDataLoad();
            }
    
            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                id = Convert.ToInt32(this.dataGridView1.Rows[e.RowIndex].Cells[0].Value);
                UpdateStudent updatestudent = new UpdateStudent(id);
                updatestudent.StartPosition = FormStartPosition.CenterScreen;
                updatestudent.ShowDialog();
                DataGridViewDataLoad();
            }
    

    效果如下:
    在这里插入图片描述
    3、添加学生信息功能实现
    主要代码如下:

    public AddStudent()
            {
                InitializeComponent();
                this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
                string ss = ConfigurationManager.ConnectionStrings["Stu"].ToString();
                //建立数据库连接
                conn = new SqlConnection(ss);
                try
                {
                    //开启连接           
                    conn.Open();
                    // MessageBox.Show("数据库连接成功!");           
                }
                catch (Exception)
                {
                    MessageBox.Show("数据库连接失败!");
                }
    
            }
    
            private void AddStudent_Load(object sender, EventArgs e)
            {
                
            }
    
            private void label1_Click(object sender, EventArgs e)
            {
    
            }
            protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
            {
                switch (keyData)
                {
                    case Keys.Escape:
                    this.Close();//esc关闭窗体
                    break;
                }
                return false;
            }
            private void button1_Click(object sender, EventArgs e)
            {
                string StuNum = textBox1.Text.Trim();
                string StuName = textBox2.Text.Trim();
                int StuAge;
                Int32.TryParse(textBox3.Text.Trim(), out StuAge);
                string StuClass = textBox5.Text.Trim();
                string StuPhone = textBox6.Text.Trim();
                string StuSex = radioButton1.Checked ? "男" : "女";
                if (String.IsNullOrEmpty(StuNum))
                {
                    MessageBox.Show("学号不能为空!");
                }
                if (String.IsNullOrEmpty(StuName))
                {
                    MessageBox.Show("姓名不能为空!");
                }
                
                if (String.IsNullOrEmpty(StuClass))
                {
                    MessageBox.Show("班级不能为空!");
                }
                if (String.IsNullOrEmpty(StuPhone))
                {
                    MessageBox.Show("联系方式不能为空!");
                }
                string sql = string.Format("insert into Stu_dent values ('{0}','{1}','{2}','{3}','{4}','{5}')", StuNum, StuName,StuAge,StuSex, StuClass, StuPhone );
                cmd = new SqlCommand(sql, conn);
                int count = cmd.ExecuteNonQuery();
                if (count > 0)
                {
                    MessageBox.Show("添加成功!");
                }
                else
                {
                    MessageBox.Show("添加失败!");
                }
                this.Close();
            }
    

    在这里插入图片描述
    4、删除学生信息功能实现
    在这里采用双击所要删除学生所在的那一行的任意位置即可
    主要代码如下:

    private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                DialogResult result = MessageBox.Show("确定删除该学生信息?", "删除", MessageBoxButtons.OKCancel);
                if(result == DialogResult.OK)
                {
                    id = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].Value);
                    Console.WriteLine(id);
                    string sql2 = "delete from Stu_dent where ID=" + id;
                    cmd = new SqlCommand(sql2, conn);
                    cmd.ExecuteNonQuery();
    
                }
                DataGridViewDataLoad();
            }
    

    效果如下图(双击第一行进行删除):
    删除前:
    在这里插入图片描述
    删除后:
    在这里插入图片描述
    5、修改学生信息功能实现
    在这里采用单击所要修改学生所在行任意文字处即可
    主要代码如下:

    public UpdateStudent(int id)
            {
                this.id = id;
                string ss = ConfigurationManager.ConnectionStrings["Stu"].ToString();
                conn = new SqlConnection(ss);
                try
                {
                    //开启连接           
                    conn.Open();
                    // MessageBox.Show("数据库连接成功!");           
                }
                catch (Exception)
                {
                    MessageBox.Show("数据库连接失败!");
                }
                InitializeComponent();
                this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            }
            protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
            {
                switch (keyData)
                {
                    case Keys.Escape:
                        this.Close();//esc关闭窗体
                        break;
                }
                return false;
            }
            private void UpdateStudent_Load(object sender, EventArgs e)
            {
                cmd = conn.CreateCommand();
                string sql1 = "select * from Stu_dent where ID=" + id;
                cmd.CommandText = sql1;
                reader = cmd.ExecuteReader();
                if(reader.HasRows)
                {
                    reader.Read();
                    textBox1.Text = reader.GetString(1);
                    textBox2.Text = reader.GetString(2);
                    textBox3.Text = reader.GetInt32(3).ToString();
                    if(reader.GetString(4) == "男")
                    {
                        this.radioButton2.Checked = true;
                    }
                    else
                    {
                        this.radioButton1.Checked = true;
                    }
                    textBox5.Text = reader.GetString(5);
                    textBox6.Text = reader.GetString(6);
                }
    
                reader.Close();
                
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                string StuNum = textBox1.Text.Trim();
                string StuName = textBox2.Text.Trim();
                int StuAge;
                Int32.TryParse(textBox3.Text.Trim(), out StuAge);
                string StuClass = textBox5.Text.Trim();
                string StuPhone = textBox6.Text.Trim();
                string StuSex = radioButton1.Checked ? "男" : "女";
                if (String.IsNullOrEmpty(StuName))
                {
                    MessageBox.Show("姓名不能为空!");
                }
    
                if (String.IsNullOrEmpty(StuClass))
                {
                    MessageBox.Show("班级不能为空!");
                }
                if (String.IsNullOrEmpty(StuPhone))
                {
                    MessageBox.Show("联系方式不能为空!");
                }
                string sql = string.Format("update Stu_dent set StuName='{0}',StuAge={1},StuSex='{2}',StuClass='{3}',StuPhone='{4}' where StuNum='{5}'", StuName, StuAge, StuSex, StuClass, StuPhone, StuNum);
                cmd = new SqlCommand(sql, conn);
                int count = cmd.ExecuteNonQuery();
                if (count > 0)
                {
                    MessageBox.Show("修改成功!");
                }
                else
                {
                    MessageBox.Show("修改失败!");
                }
                this.Close();
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                cmd = conn.CreateCommand();
                string sql1 = "select * from Stu_dent where ID=" + id;
                cmd.CommandText = sql1;
                reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    reader.Read();
                    textBox1.Text = reader.GetString(1);
                    textBox2.Text = reader.GetString(2);
                    textBox3.Text = reader.GetInt32(3).ToString();
                    if (reader.GetString(4) == "男")
                    {
                        this.radioButton2.Checked = true;
                    }
                    else
                    {
                        this.radioButton1.Checked = true;
                    }
                    textBox5.Text = reader.GetString(5);
                    textBox6.Text = reader.GetString(6);
                }
    
                reader.Close();
            }
    

    (在这里将郭某某的专业班级为例)
    修改前:
    在这里插入图片描述
    修改后:
    在这里插入图片描述
    6、查询学生信息功能实现
    查询功能就写了两种查询方式
    主要代码如下:

    private void button5_Click(object sender, EventArgs e)
            {
                string num = textBox1.Text.Trim();
                string name = textBox2.Text.Trim();
                String sql4 = "Select * from Stu_dent where 1=1";
                if(!String.IsNullOrEmpty(num))
                {
                    sql4 += " and StuNum=" + num;
                }
                if(!String.IsNullOrEmpty(name))
                {
                    sql4 += " and StuName like '%" + name + "%'";
                }
                adp = new SqlDataAdapter(sql4, conn);
                dat = new DataSet();
                adp.Fill(dat);
                dataGridView1.DataSource = dat.Tables[0];
                
            }
    

    效果如下:
    按学号查询:
    在这里插入图片描述
    按姓名查询:
    在这里插入图片描述
    总结:这是上完c#课后,自己无聊整着玩的,功能实现简单易懂,比较容易,希望能对你的学习有所帮助。对了,每个窗体的背景图片是我再网上随便找的,你可以选择你喜欢的背景。
    https://download.csdn.net/download/yang_shuai_/12911668

    展开全文
  • 数据结构实现学生信息管理系统功能

    万次阅读 多人点赞 2019-01-22 20:25:22
    学生信息管理系统 1、 学生信息录入:主要是录入学生班级信息和学生基本情况; 2、 学生信息查询:按指定系检索该系的学生信息,其中包括所有的学生信息; 3、 学生信息维护:维护学生、系别、课程、学生选课及...

    学生信息管理系统

    1、 学生信息录入:主要是录入学生班级信息和学生基本情况;
    2、 学生信息查询:按指定系检索该系的学生信息,其中包括所有的学生信息;
    3、 学生信息维护:维护学生、系别、课程、学生选课及成绩等方面的基本信息,包括增加、删除和修改;
    4、 学生选课:为学生提供选课界面,包括所有课程信息。进入该界面前学生要输入正确的学号和姓名。

    具体代码如下:(vc++6.0刚刚试过可以运行)

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include<conio.h>
    #include <windows.h>
    struct course	//定义储存课程信息的结构体
    {
    	int num;//课程号
    	char subject[10];//课程名
    	int mark;//学分
    	int count;//已选人数
    }cour[5] = { {1,"数据结构",3,0},{2,"java语言",3,0},
    {3,"大学英语",5,0},{4,"软件工程",4,0},{5,"线性代数",3,0} };//课程信息
    void Output_course(struct course *p)//调用存储课程信息结构体数组,输出所有课程信息
    {
    	system("cls");
    	printf("课程信息如下:   \n");
    	for (p = cour; p < cour + 5; p++)
    		printf("课程号--%d   科目--%7s   学分--%d   已选人数--%d\n\n",
    			p->num, p->subject, p->mark, p->count);
    }
    struct student	//定义存储学生信息的结构体
    {
    	long num;
    	char name[10];
    	char order1[10];//所选课程1
    	char order2[10];//所选课程2
    }stu[8] = {	   {20170401,"小明","NULL","NULL"},
    			   {20170402,"小红","NULL","NULL"},
    			   {20170403,"小张","NULL","NULL"},
    			   {20170404,"小王","NULL","NULL"},
    			   {20170405,"小花","NULL","NULL"},
    			   {20170406,"小丽","NULL","NULL"},
    			   {20170407,"小雨","NULL","NULL"},
    			   {20170408,"小二","NULL","NULL"},
    };
    void Output_student(struct student *p)调用存储课程信息结构体数组,输出所有学生信息
    {
    	system("cls");
    	printf("学生的选课情况如下:\n");
    	for(p=stu;p<stu+8;p++)
    	printf("学号--%d  姓名--%3s  课程1--%7s  课程2--%7s\n\n",
    		p->num, p->name, p->order1, p->order2);
    }
    void modify(struct student *p, struct course cour[5])
    //调用储存course和student的结构体数组,输出任意一个学生信息,并且可以修改
    {
    	int s;
    	int g;
    	char b;
    	char k[10];
    	char h;
    	long n;
    	long m;
    	int i;
    	int j;
    	char name1[20];
    	system("cls");
    	printf("请输入学号(20170401-20170408):");
    	scanf("%d", &n);
    	printf("请输入学号对应的姓名:");
    	scanf("%d", &h);
    	for (p = stu; p < stu + 8; p++)
    	{
    		if (n == p->num)	//找到对应的学生
    		{
    			system("cls");
    			printf("\n\n\n 该学生信息如下\n\n\n");
    			printf("学号--%d  姓名--%s  课程1--%s  课程2--%s\n\n", 
    				p->num, p->name, p->order1, p->order2);
    			printf("\nA.修改  退出请按A,a外任意字母键\n");
    			scanf("%s", &b);
    			{ if (b == 'a' || b == 'A')
    			{
    				printf("\n1.修改学号   2.修改姓名   3.修改所选课程\n");
    				scanf("%d", &s);
    				{ if (s == 1)
    				{
    					printf("\n 学号修改为:\n"); //修改学号
    					scanf("%d", &m);
    					p->num = m;
    					system("cls");
    					printf("\n\n\n\n\n\n\n修改后如下:\n");
    					printf("学号--%d  姓名--%s  课程1--%s  课程2--%s\n\n",
    						p->num, p->name, p->order1, p->order2);
    				}
    				if (s == 2)
    				{
    					printf("\n 姓名修改为:\n");
    					scanf("%20s", name1);
    					strcpy(p->name, name1);
    					system("cls");
    					printf("\n\n\n\n\n 修改后如下\n\n");
    					printf("学号--%d  姓名--%s  课程1--%s  课程2--%s\n\n", 
    						p->num, p->name, p->order1, p->order2);
    				}
    				if (s == 3)
    				{
    					system("cls");
    					printf("\n 输入你想修改的课程:区分大小写\n");
    					scanf("%s", &k);
    					{if (strcmp(p->order1, k) == 0)
    					{
    						system("cls");
    						printf("\n1.数据结构  2.java语言   3.大学英语   4.软件工程   5.线性代数\n");
    						printf("\n你想修改为(1-5):\n");
    						scanf("%d", &g);
    						for (i = 0; i < 5; i++)
    						{
    							if (g == i + 1)
    							{
    								if (cour[g - 1].count >= 3)
    								{
    									system("cls");
    									printf("\n\n  该课程已被选满\n");//课程选满,返回主菜单
    								}
    								else {
    									if (strcmp(p->order2, cour[g - 1].subject) == 0)
    										printf("\n\n 你已选过这门课   \n\n");//重选,返回主菜单
    									else {
    										strcpy(p->order1, cour[g - 1].subject);
    										cour[g - 1].count++;
    										for (j = 0; j < 5; j++)
    										{
    											if (strcmp(cour[j].subject, k) == 0)
    
    												cour[j].count--;
    										}
    										system("cls");
    										printf("\n\n学生信息 \n\n");
    										printf("学号--%d  姓名--%s  课程1--%s  课程2--%s\n\n",
    											p->num, p->name, p->order1, p->order2);
    									}
    								}
    							}
    						}
    					}
    					else
    						if (strcmp(p->order2, k) == 0)
    						{
    							system("cls");
    							printf("\n1.数据结构  2.java语言   3.大学英语   4.软件工程   5.线性代数\n");
    							printf("\n你想修改为(1-5):\n");
    							scanf("%d", &g);
    							for (i = 0; i < 5; i++)
    							{
    								if (g == i + 1)
    								{
    									if (cour[g - 1].count >= 3)
    									{
    										printf("\n\n   该课程已被选满\n");//已选满
    									}
    									else {
    										if (strcmp(p->order1, cour[g - 1].subject) == 0)
    											printf("\n\n 你已选过这门课   \n\n");//重选
    										else {
    											strcpy(p->order2, cour[g - 1].subject);
    											cour[g - 1].count++;
    											for (j = 0; j < 5; j++)
    											{
    												if (strcmp(cour[j].subject, k) == 0)
    													cour[j].count--;
    											}
    											system("cls");
    											printf("\n\n学生信息 \n\n");
    											printf("学号--%d  姓名--%s  课程1--%s  课程2--%s\n\n",
    												p->num, p->name, p->order1, p->order2);
    										}
    									}
    								}
    							}
    						}
    						else  printf("\n\n 您还没选这门课或拼写错误\n\n");
    					}
    				}
    
    				}
    			}
    			}
    		}
    	}
    }
    
    void xuanke(struct student *p,struct course cour[5])//为任意学生去选课
    { long n;int a;int b;int t = 0;int u = 0;int i;
    	system("cls");
    	printf("请输入学号(20170401-20170408):");
    	scanf("%d", &n);
    
    	for (p = stu;p < stu + 8;p++)
    	{
    		if (n == p->num)//找到相应的学生
    		{
    			system("cls");
    			if (strcmp(p->order1,"NULL")!=0)	//第一门课不为空
    				t = 1;
    			else
    			{
    				system("cls");
    				printf("\n\n\n\n\n\n请选您的第一门课   提示:您最多只能选二门课\n\n");
    				printf("\n1.数据结构  2.java语言   3.大学英语   4.软件工程   5.线性代数\n\n");
    				printf("\n请选第一门课:不选请按1-5外任意数字键返回\n\n");
    				scanf("%d", &a);//输入所选课程编号
    				for (i = 0; i < 5; i++)
    				{
    					if (a == i + 1)
    					{
    						if (cour[a - 1].count >= 3)
    						{
    							printf("\n\n该课程已被选满\n");//课程选满。返回主菜单
    						}
    						else {
    							if (strcmp(p->order2,cour[a - 1].subject)==0)
    								printf("\n\n\n 你已选过这门课\n");//重选,返回主菜单
    							else {
    								strcpy(p->order1, cour[a - 1].subject);//选课成功
    								cour[a - 1].count++;
    								system("cls");
    								printf("\n\n\n\n\n\n   学生信息:\n");
    								printf("学号--%d  姓名--%s  课程1--%s  课程2--%s\n\n",
    									p->num, p->name, p->order1, p->order2);
    							}
    						}
    					}
    				}
    			}
    			if (strcmp(p->order2, "NULL")!=0)//第二门课不为空
    				u = 1;
    			else {
    				printf("\n\n\n\n\n\n请选您的第二门课   提示:您最多只能选二门课\n\n");
    				printf("\n1.数据结构  2.java语言   3.大学英语   4.软件工程   5.线性代数\n\n");
    				printf("\n 请选第二门课:不选请按 1-5 外任意数字键返回\n\n");
    				scanf("%d", &b);
    				for (i = 0; i < 5; i++)
    				{
    					if (b == i + 1)
    					{
    						if (cour[b - 1].count >= 3)
    						{
    							printf("\n\n 该课程已被选满 \n");//已选满,返回主菜单
    						}
    						else {
    							if (strcmp(p->order1, cour[b - 1].subject)==0)
    								printf("\n\n\n   你已选过这门课   \n");//重选,返回主菜单
    							else {
    								strcpy(p->order2, cour[b - 1].subject);
    								cour[b - 1].count++;
    								system("cls");
    								printf("\n\n\n\n\n\n   学生信息:\n");//成功选课
    								printf("学号--%d  姓名--%s  课程1--%s  课程2--%s\n\n",
    									p->num, p->name, p->order1, p->order2);
    							}
    						}
    					}
    				}
    			}
    			if (u==1&&t==1)
    				printf("\n 您已选满,若想修改请进入菜单 3\n");
    		}
    	}
    }
    
    void a()
    {
    	for (;;){
    	int n;
    	printf("\t\t************欢迎来到选课系统************\n\n");
    	printf("\t\t**-------- 1 浏览课程信息 ------------**\n\n");
    	printf("\t\t**-------- 2 浏览学生选课情况 --------**\n\n");
    	printf("\t\t**-------- 3 学生信息查询和修改 ------**\n\n");
    	printf("\t\t**-------- 4 学生选课 ----------------**\n\n");
    	printf("\t\t**-------- 5 退出 --------------------**\n\n");
    	printf("请选择(1-5):[ ]\b\b");
    	scanf("%d", &n);
    	switch (n)
    	{
    	case 1:Output_course(cour); break;
    	case 2:Output_student(stu); break;
    	case 3:modify(stu,cour); break;
    	case 4:xuanke(stu,cour); break;
    	case 5:exit(0);
    	default:printf("请输入正确数字!\n");
    	}
    	}
    }
    
    
    #define N 100
    typedef struct stulink_node
    {
    	char sdepartment[10];
    	char sclass[10];
    	char scourse[10];
    	char sno[14];
    	char sname[10];
    	char ssex[2];
    	float psscore;
    	float syscore;
    	float qmscore;
    	float zpscore;
    	struct stulink_node *next;
    }student;
    typedef student *linklist;
    
    student *head;
    
    char sno[N][20]={{'a','b'}};
    int count;
    void display();                  //函数声明
    int judge(char sno1[])               //判断学号函数
    {
    	int i;
    	for(i=0;i<N;i++)
    	{
    		if(!strcmp(sno1,sno[i]))
    			return 1;
    	}
    	return 0;
    }
    
    student *init()            //建立一个空的单链表
    {
    	return NULL;
    }
    float average(student *stu)          //求总评成绩函数
    {
    	return (float)(0.4*stu->psscore+0.3*stu->syscore+0.3*stu->qmscore);
    }
    void luru()                //录入学生信息函数
    {	
    	linklist p,q;
    	static int count=0;
    	char flag='0';
    	q=(linklist)malloc(sizeof(student));
    	p=head=NULL;
    	while(flag=='0')
    		{
    			printf("\n");
    			printf("请输入学生的学号: ");
    			scanf("%s",&q->sno);
    			while(judge(q->sno))
    			{
    			printf("学号重复,请重新输入:");
    			scanf("%s",&q->sno);
    			}
    			strcpy(sno[count],q->sno);count++;
    			printf("请输入学生的系别: ");
    			scanf("%s",&q->sdepartment);
    			printf("请输入学生的班级: ");
    			scanf("%s",&q->sclass);
    			printf("请输入学生的课程: ");
    			scanf("%s",&q->scourse);
    			printf("请输入学生的姓名: ");
    			scanf("%s",&q->sname);
    			printf("请输入学生的性别: ");
    		    scanf("%s",&q->ssex);
    			printf("请输入学生的平时成绩: ");
    		    scanf("%f",&q->psscore);
    			printf("请输入学生的实验成绩: ");
    		    scanf("%f",&q->syscore);
    			printf("请输入学生的期末成绩: ");
    			scanf("%f",&q->qmscore);
    			q->zpscore=average(q);
    			setbuf(stdin,NULL);
    			if(head==NULL) 
    			{
    				head=q;
    				p=head;
    			}
    			else 
    			{
    				p->next=q;
    				p=q;
    			}
    			q=(linklist)malloc(sizeof(student));
    			printf("按0继续输入,否则退出\n");
    			flag=getch();
    			setbuf(stdin,NULL);
    		}
    	free(q);
    	printf("输入完毕!\n ");
    	p->next=NULL;
    }
    void charu()                      //插入 学生信息函数        
    {
    	int j=0,i;
    	linklist p,q;
    	p=head;
    	printf("请输入要插入的位置: ");
    	scanf("%d",&i);
    	if(i<0) printf("输入位置不规范!\n");
    	else 
    	{
    		while (p&&i!=j)
    		{
    			p=p->next;j++;
    		}
    		if(!p&&i!=0)  printf("未找到该结点不能插入!");
    		else
    		{
    			q=(linklist)malloc(sizeof(student));
    			printf("请输入学生的学号: ");
    			scanf("%s",&q->sno);
    			while(judge(q->sno))
    			{
    			printf("学号重复,请重新输入:");
    			scanf("%s",&q->sno);
    			}
    			strcpy(sno[count],q->sno);count++;
    			printf("请输入学生的系别: ");
    			scanf("%s",&q->sdepartment);
    			printf("请输入学生的班级: ");
    			scanf("%s",&q->sclass);
    			printf("请输入学生的课程: ");
    			scanf("%s",&q->scourse);
    			printf("请输入学生的姓名: ");
    			scanf("%s",&q->sname);
    			printf("请输入学生的性别: ");
    			scanf("%s",&q->ssex);
    			printf("请输入学生的平时成绩: ");
    			scanf("%f",&q->psscore);
    			printf("请输入学生的实验成绩: ");
    			scanf("%f",&q->syscore);
    			printf("请输入学生的期末成绩: ");
    			scanf("%f",&q->qmscore);
    			q->zpscore=average(q);
    			if(i==0)
    			{
    				q->next=head;
    				head=q;
    			}
    			else 
    			{
    				q->next=p->next;
    				p->next=q;
    			}
    		}
    	}
    
    }
    void xiugai()                         //修改学生信息函数
    {
    	linklist q;
    	int m=0;
    	char sno[15];
    	q=head;
    	printf("请输入要修改的学生学号:");
    	scanf("%s",&sno);
    	if(!q)  printf("修改失败,没有学生信息!\n");
    	else 
    	{
    		while(q!=NULL)
    		{
    			if(strcmp(q->sno,sno)==0)
    			{
    				printf("请输入学生的系别: ");
    			    scanf("%s",&q->sdepartment);
    			    printf("请输入学生的班级: ");
    			    scanf("%s",&q->sclass);
    			    printf("请输入学生的课程: ");
    			    scanf("%s",&q->scourse);
    				printf("请输入学生的学号: ");
    				scanf("%s",&q->sno);
    				printf("请输入学生的姓名: ");
    				scanf("%s",&q->sname);
    				printf("请输入学生的性别: ");
    				scanf("%s",&q->ssex);
    				printf("请输入学生的平时成绩: ");
    				scanf("%f",&q->psscore);
    				printf("请输入学生的实验成绩: ");
    				scanf("%f",&q->syscore);
    				printf("请输入学生的期末成绩: ");
    				scanf("%f",&q->qmscore);
    				q->zpscore=average(q);
    				setbuf(stdin,NULL);
    				m=1;
    				printf("修改成功!\n\n");
    				break;
    			}
    			else
    				q=q->next;	
    		}
    		if(m==0) printf("修改失败,没有该学生信息!\n\n");
    	}
    }
    
    void shanchu()                       //删除学生信息函数
    {
    	linklist pre,q;
    	char sno[12];
    	pre=head;
    	q=head;
    	printf("请输入要删除的学生学号:");
    	scanf("%s",&sno);
    	if(!q) printf("没有学生信息,无法删除!\n\n");
    	else
    	{
    		while(q)
    		{
    			if(strcmp(q->sno,sno)==0) 
    			{
    				if(q==head)
    				{
    				head=q->next;
    				free(q);
    				}
    				else 
    				{
    				pre->next=q->next;
    				free(q);
    				}
    				printf("删除成功!\n");
    				break;
    			}
    			else
    			{
    				pre=q;
    				q=q->next;
    			}
    		}
    	}	
    }
    
    void chaxun()                           //查询学生信息函数
    {
    	linklist p;
    	int m=0;
    	char sno[15];
    	p=head;
    	printf("请输入需查询的学生学号:");
    	scanf("%s",&sno);
    	if(!p) printf("没有学生信息,无法查询!\n\n");
    	else
    	{
    		while(p)
    		{
    			if(strcmp(p->sno,sno)==0) 
    			{
    				printf("系别:%s\n",p->sdepartment);
    				printf("班级:%s\n",p->sclass);
    				printf("课程:%s\n",p->scourse);
    				printf("学号:%s\n",p->sno);
    				printf("姓名:%s\n",p->sname);
    				printf("性别:%s\n",p->ssex);
    				printf("平时成绩:%-.2f\n",p->psscore);
    				printf("实验成绩:%-.2f\n",p->syscore);
    				printf("期末成绩:%-.2f\n",p->qmscore);
    				printf("总评成绩:%-.2f\n",p->zpscore);
    				m=1;
    				break;
    			}
    			else
    				p=p->next;
    		}
    		if(m==0) printf("查询失败,没有该生信息!\n");
    	}
    	
    }
    void paixu()                       //对学生总评成绩排序(冒泡法)
    {
    	linklist p,q,r;
    	student temp;
    	r=head;
    	if(r==NULL) printf("没有学生成绩,请先添加学生成绩!\n");
    	else
    	{
    	while(r)
    	{
    		p=r;
    		q=r->next;
    		while(q)
    		{
    			if(p->zpscore < q->zpscore)
    			{
    				strcpy(temp.sdepartment,p->sdepartment);
    				strcpy(temp.sclass,p->sclass);
    				strcpy(temp.scourse,p->scourse);
    				strcpy(temp.sno,p->sno);
    				strcpy(temp.sname,p->sname);
    				strcpy(temp.ssex,p->ssex);
    				temp.psscore=p->psscore;
    				temp.syscore=p->syscore;
    				temp.qmscore=p->qmscore;
    				temp.zpscore=p->zpscore;
    
      				strcpy(p->sdepartment,q->sdepartment);
    				strcpy(p->sclass,q->sclass);
    				strcpy(p->scourse,q->scourse);
    				strcpy(p->sno,q->sno);
    				strcpy(p->sname,q->sname);
    				strcpy(p->ssex,q->ssex);
    				p->psscore=q->psscore;
    				p->syscore=q->syscore;
    				p->qmscore=q->qmscore;
    				p->zpscore=q->zpscore;
    
    				strcpy(q->sdepartment,temp.sdepartment);
    				strcpy(q->sclass,temp.sclass);
    				strcpy(q->scourse,temp.scourse);
    				strcpy(q->sno,temp.sno);
    				strcpy(q->sname,temp.sname);
    				strcpy(q->ssex,temp.ssex);
    				q->psscore=temp.psscore;
    				q->syscore=temp.syscore;
    				q->qmscore=temp.qmscore;
    				q->zpscore=temp.zpscore;
    			}
    			q=q->next;
    		}
    		r=r->next;
    	}
    	printf("****排序完毕,按由大到小的总评成绩!");
    	display();
    	}
    	
    }
    
    void display()                   //输出学生信息函数
    {
    	student *p;
    	p=head;
    	if(!p) printf("暂无学生成绩!\n");
    	else
    	{
    		printf("各个学生成绩为:\n");
    		while(p)
    		{
    			/*printf("系别:%s,班级:%s,课程:%s,学号:%s,姓名:%s,性别:%s,
    				平时成绩:%-.2f,实验成绩:%-.2f,期末成绩:%-.2f,总评成绩:%-.2f\n",
    				p->sdepartment,p->sclass,p->scourse,p->sno,p->sname,p->ssex,
    				p->psscore,p->syscore,p->qmscore,p->zpscore);*/
    			    printf("系别:%s	",p->sdepartment);
    				printf("班级:%s	",p->sclass);
    				printf("课程:%s	",p->scourse);
    				printf("学号:%s	",p->sno);
    				printf("姓名:%s	",p->sname);
    				printf("性别:%s	",p->ssex);
    				printf("平时成绩:%-.2f	",p->psscore);
    				printf("实验成绩:%-.2f	",p->syscore);
    				printf("期末成绩:%-.2f	",p->qmscore);
    				printf("总评成绩:%-.2f\n",p->zpscore);
    			p=p->next;
    		}
    	}
    }
    void menu()
    {
    	int choose;
    	printf("**************学生信息管理系统*****************\n");
    	printf("*                                             *\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("*----------- 9.退出系统-----------------------*\n");
    	printf("***********************************************\n");
    	printf("\n");
    	printf("请输入你的选择:");
    	scanf("%d",&choose);
    	switch(choose)
    	{
    	case 1:luru();break;
    	case 2:charu();break;
    	case 3:xiugai();break;
    	case 4:shanchu();break;
    	case 5:chaxun();break;
    	case 6:paixu();break;
    	case 7:display();break;
    	case 8:a();break;
    	case 9:exit(0);break;
    	default:printf("请输入正确数字!\n");
    	}
    	menu();
    }
    
    int main()
    {
    	head=init();
    	menu();
    	return 0;
    }
    
    
    

    运行结果很多,我简单的给个主菜单
    在这里插入图片描述
    欢迎您关注我的微信公众号:学习微站(studysth)
    在这里插入图片描述

    最后,这是我的主页链接:https://blog.csdn.net/weixin_43206161

    展开全文
  • 学生信息管理系统——C语言版

    万次阅读 多人点赞 2019-04-06 18:07:13
    1)查询学生信息 2)添加学生信息 3)修改学生信息 4)删除学生信息 5)刷新学生信息 6)保存学生信息 7)输出当前学生信息 2.题目要求: 1)使用结构体建立学生信息体制 2)实现七大基本功能 3)采用文件存储学生...

    一.题目分析:
    1.功能概述:
    1)查询学生信息
    2)添加学生信息
    3)修改学生信息
    4)删除学生信息
    5)刷新学生信息
    6)保存学生信息
    7)输出当前学生信息
    2.题目要求:
    1)使用结构体建立学生信息体制
    2)实现七大基本功能
    3)采用文件存储学生信息
    二.算法构造
    1.难点解析----对文件的操作
    1.1文件读取

    FILE * fp;
    	if ((fp = fopen(filename, "r")) == NULL) return 0;
    	//从文件读取信息 
    	while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {
    		j++;
    	}
    

    1.2文件写入

    FILE * fp;
    fp = fopen(filename, "w");
    	for (i = 0; i < n; i++){
    		fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,
    			stu[i].score[0], stu[i].score[1], stu[i].score[2]);
    	}
    

    2.流程图
    在这里插入图片描述
    3.七大基本功能----函数实现
    3.1菜单函数:通过菜单建立用户与程序之间的交流

    void menu()/* 界面*/
    {
    	int num;
    	printf(" \n\n                    \n\n");
    	printf("  ******************************************************\n\n");
    	printf("  *                学生信息管理系统                    *\n \n");
    	printf("  ******************************************************\n\n");
    	printf("*********************系统功能菜单*************************       \n");
    	printf("     ----------------------   ----------------------   \n");
    	printf("     *********************************************     \n");
    	printf("     * 0.系统帮助及说明  * *  1.刷新学生信息   *     \n");
    	printf("     *********************************************     \n");
    	printf("     * 2.查询学生信息    * *  3.修改学生信息   *     \n");
    	printf("     *********************************************     \n");
    	printf("     * 4.增加学生信息    * *  5.按学号删除信息 *     \n");
    	printf("     *********************************************     \n");
    	printf("     * 6.显示当前信息    * *  7.保存当前学生信息*     \n");
    	printf("     ********************** **********************     \n");
    	printf("     * 8.退出系统        *                            \n");
    	printf("     **********************                            \n");
    	printf("     ----------------------   ----------------------                           \n");
    	printf("请选择菜单编号:");
    	scanf("%d", &num);
    	switch (num)
    	{
    	case 0:help(); break;
    	case 1:flush(); break;
    	case 2:seek(); break;
    	case 3:modify(); break;
    	case 4:insert(); break;
    	case 5:del(); break;
    	case 6:display(); break;
    	case 7:save(); break;
    	case 8:
    		k = 0; 
    		printf("即将退出程序!\n");
    		break;
    	default:printf("请在0-8之间选择\n");
    	}
    }
    

    3.2系统帮助与说明函数:适用于初次接触学生信息管理系统的用户参考

    void help()
    {
    	printf("\n0.欢迎使用系统帮助!\n");
    	printf("\n1.初次进入系统后,请先选择增加学生信息;\n");
    	printf("\n2.按照菜单提示键入数字代号;\n");
    	printf("\n3.增加学生信息后,切记保存;\n");
    	printf("\n4.谢谢您的使用!\n");
    }
    

    3.3刷新学生信息函数
    功能:调用刷新信息函数后,文件中再无学生信息

    int flush(){
    	char filename[LEN + 1];
    	int i = 0;
    	printf("请输入要刷新学生信息的文件名:\n");
    	scanf("%s", filename);
    	int j = 0;
    	FILE * fp;
    	if ((fp = fopen(filename, "r")) == NULL) return 0;
    	//从文件读取信息 
    	while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {
    		j++;
    	}
    	n = j;
    	printf("刷新成功!!!");
    	return n;
    }
    
    

    3.4查询学生信息函数
    功能:通过输入要查询的学生学号或者姓名,与系统中的学生信息进行对比,若相等,则输出该学生的基本信息;反之,则输出该学生在该管理系统中不存在
    查询方式:
    1)按照学号查询
    2)按照姓名查询

    void seek() /*查找*/
    {
    	int i, item, flag;
    	char s1[21]; /* 以姓名和学号最长长度+1为准*/
    	printf("------------------\n");
    	printf("-----1.按学号查询-----\n");
    	printf("-----2.按姓名查询-----\n");
    	printf("-----3.退出本菜单-----\n");
    	printf("------------------\n");
    	while (1)
    	{
    		printf("请选择子菜单编号:");
    		scanf("%d", &item);
    		flag = 0;
    		switch (item)
    		{
    		case 1:
    			printf("请输入要查询的学生的学号:\n");
    			scanf("%s", s1);
    			for (i = 0; i<n; i++)
    			if (strcmp(s1,stu[i].StudentId) == 0)
    			{
    				flag = 1;
    				printf("学生学号\t学生姓名\t年龄\t性别\tC语言成绩\t高等数学\t大学英语成绩\n");
    				printf("--------------------------------------------------------------------\n");
    				printf("%s\t%s\t%d\t%6\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    			}
    			if (0 == flag)
    				printf("该学号不存在!\n"); break;
    		case 2:
    			printf("请输入要查询的学生的姓名:\n");
    			scanf("%s", s1);
    			for (i = 0; i<n; i++)
    			if (strcmp(stu[i].StudentName, s1) == 0)
    			{
    				flag = 1;
    				printf("学生学号\t学生姓名\t年龄\t性别\tC语言成绩\t高等数学\t大学英语成绩\n");
    				printf("--------------------------------------------------------------------\n");
    				printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex, stu[i].score[0], stu[i].score[1], stu[i].score[2]);
    			}
    			if (0 == flag)
    				printf("该姓名不存在!\n"); break;
    		case 3:return;
    		default:printf("请在1-3之间选择\n");
    		}
    	}
    }
    

    3.5修改学生信息
    功能:通过输入学号来选择要修改的该学号学生的信息内容,从而完成修改信息操作;

    //修改学生信息
    void modify() /*修改信息*/
    {
    	int i, item, num = -1;
    	char sex1, s1[LEN + 1], s2[LEN + 1]; /* 以姓名和学号最长长度+1为准*/
    	float score1;
    	printf("请输入要要修改的学生的学号:\n");
    	scanf("%s", s1);
    	for (i = 0; i < n; i++){
    		if (strcmp(stu[i].StudentId, s1) == 0){/*比较字符串是否相等*/
    			num = i;
    			printf("------------------\n");
    			printf("1.修改姓名\n");
    			printf("2.修改年龄\n");
    			printf("3.修改性别\n");
    			printf("4.修改C语言成绩\n");
    			printf("5.修改高等数学成绩\n");
    			printf("6.修改大学英语成绩\n");
    			printf("7.退出本菜单\n");
    			printf("------------------\n");
    			while (1)
    			{
    				printf("请选择子菜单编号:");
    				scanf("%d", &item);
    				switch (item)
    				{
    				case 1:
    					printf("请输入新的姓名:\n");
    					scanf("%s", s2);
    					strcpy(stu[num].StudentName, s2);
    					break;
    				case 2:
    					printf("请输入新的年龄:\n");
    					scanf("%d", stu[num].StudentAge);
    					break;
    				case 3:
    					printf("请输入新的性别:\n");
    					scanf("%s", &sex1);
    					stu[i].StudentSex = sex1;
    					break;
    				case 4:
    					printf("请输入新的C语言成绩:\n");
    					scanf("%f", &score1);
    					stu[num].score[0] = score1;
    					break;
    				case 5:
    					printf("请输入新的高等数学成绩:\n");
    					scanf("%f", &score1);
    					stu[num].score[1] = score1;
    					break;
    				case 6:
    					printf("请输入新的大学英语成绩:\n");
    					scanf("%f", &score1);
    					stu[num].score[2] = score1;
    					break;
    				case 7:	return;
    				default:printf("请在1-7之间选择\n");
    				}
    			}
    			printf("修改完毕!请及时保存!\n");
    		}
    		else{
    			printf("没有该学生学号!!!");
    		}
    	}
    }
    

    3.6添加学生信息函数
    功能:添加学生信息,并保存至文件中

    //添加学生信息函数
    void insert() /*插入函数*/
    {
    	int i = n, j, flag;
    	printf("请输入待增加的学生数:\n");
    	scanf("%d", &m);
    	if (m > 0){
    		do
    		{
    			flag = 1;
    			while (flag)
    			{
    				flag = 0;
    				printf("请输入第%d位学生的学号:\n", i + 1);
    				scanf("%s", stu[i].StudentId);
    				for (j = 0; j < i; j++){
    					if (strcmp(stu[i].StudentId, stu[j].StudentId) == 0){
    						printf("该学号已存在,请重新输入!\n");
    						flag = 1;
    						break;
    					}
    				}
    			}
    			printf("请输入第%d 个学生的姓名:\n", i+1);
    			scanf("%s", stu[i].StudentName);
    			printf("请输入第%d 个学生的年龄:\n", i+1);
    			scanf("%d", &stu[i].StudentAge);
    			printf("请输入第%d 个学生的性别:\n", i+1);
    			scanf(" %c", &stu[i].StudentSex);
    			printf("请输入第%d 个学生的C语言成绩\n",i+1);
    			scanf("%f", &stu[i].score[0]);
    			printf("请输入第%d 个学生的高等数学成绩:\n", i+1);
    			scanf("%f", &stu[i].score[1]);
    			printf("请输入第%d 个学生的大学英语成绩:\n", i+1);
    			scanf("%f", &stu[i].score[2]);
    			if (0 == flag){
    				i++;
    			}
    		} while (i<n + m);
    	}
    		n += m;
    		printf("学生信息增加完毕!!!\n");
    		system("pause");
    }
    

    3.7删除学生信息函数
    功能:通过输入要删除学生信息的学号,删除该学生在该管理系统中的所有信息;

    //删除学生信息函数
    void del()
    {
    	int i, j, flag = 0;
    	char s1[LEN + 1];
    	printf("请输入要删除学生的学号:\n");
    	scanf("%s", s1);
    	for (i = 0; i < n; i++){
    		if (strcpy(stu[i].StudentId, s1) == 0){
    			flag = 1;
    			//要删除学生后面的学生往前移一位
    			for (j = i; j < n - 1; j++){
    				stu[j] = stu[j + 1];
    			}
    		}
    	}
    		//查找失败
    		if (0 == flag){
    			printf("该学号不存在!!!\n");
    		}
    		if (1 == flag){
    			printf("删除成功!!!");
    			//删除成功,学生人数减1
    			n--;
    		}
    		system("pause");
    }
    

    3.8显示当前学生信息
    功能:可以输出进行多种操作后的学生信息管理系统中的所有学生信息;

    //显示全部数据信息
    void display()
    {
    	int i;
    	printf("共有%d位学生的信息:\n", n);
    	if (0 != n)
    	{
    		printf("学生学号 \t学生姓名 \t年龄   \t性别   \tC语言成绩\t高等数学 \t大学英语成绩\n");
    		printf("--------------------------------------------------------------------\n");
    		for (i = 0; i<n; i++)
    		{
    			printf("%s \t%s \t%d   \t%c   \t%.1f\t%.1f \t%.1f\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex, stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    		}
    	}
    	system("pause");
    }
    

    3.8保存学生信息
    功能:将进行某些操作后的学生信息保存到指定文件中

    void save(){
    	int i;
    	FILE *fp;
    	char filename[LEN + 1];
    	printf("请输入要保存的文件名:\n");
    	scanf("%s", filename);
    	fp = fopen(filename, "w");
    	for (i = 0; i < n; i++){
    		fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,
    			stu[i].score[0], stu[i].score[1], stu[i].score[2]);
    	}
    	printf("保存成功!!!\n");
    	fclose(fp);
    	system("pause");
    }
    
    

    三.源程序代码

    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>	/*I/O函数*/
    #include<stdlib.h>	/*其它说明*/
    #include<string.h>	/*字符串函数*/
    
    #define LEN 15		/* 学号和姓名最大字符数,实际请更改*/
    #define N 50		/* 最大学生人数,实际请更改*/
    
    int k = 1, n = 0, m = 0;/* n代表当前记录的学生人数*/
    
    //函数声明
    void readfile();
    void seek();
    void modify();
    void insert();
    void del();
    void display();
    void save();
    void menu();
    
    //结构体保存学生信息
    struct student{
    	char StudentId[LEN+1];
    	char StudentName[LEN+1];
    	int StudentAge;
    	char StudentSex;
    	float score[3];
    }stu[N];
    
    //主函数
    int main()
    {
    	while (k)
    	{
    		menu();
    	}
    	system("pause");
    	return 0;
    }
    
    //系统帮助函数
    void help()
    {
    	printf("\n0.欢迎使用系统帮助!\n");
    	printf("\n1.初次进入系统后,请先选择增加学生信息;\n");
    	printf("\n2.按照菜单提示键入数字代号;\n");
    	printf("\n3.增加学生信息后,切记保存;\n");
    	printf("\n4.谢谢您的使用!\n");
    }
    
    //刷新文件
    int flush(){
    	char filename[LEN + 1];
    	int i = 0;
    	printf("请输入要刷新学生信息的文件名:\n");
    	scanf("%s", filename);
    	int j = 0;
    	FILE * fp;
    	if ((fp = fopen(filename, "r")) == NULL) return 0;
    	//从文件读取信息 
    	while (fscanf(fp, "%s %s %s %d %d %d %d ", &stu[j].StudentId, &stu[j].StudentName, &stu[j].StudentAge, &stu[j].StudentSex, &stu[j].score[0], &stu[j].score[1], &stu[j].score[2]) == 7) {
    		j++;
    	}
    	n = j;
    	printf("刷新成功!!!");
    	return n;
    }
    
    //查找学生信息
    void seek() /*查找*/
    {
    	int i, item, flag;
    	char s1[21]; /* 以姓名和学号最长长度+1为准*/
    	printf("------------------\n");
    	printf("-----1.按学号查询-----\n");
    	printf("-----2.按姓名查询-----\n");
    	printf("-----3.退出本菜单-----\n");
    	printf("------------------\n");
    	while (1)
    	{
    		printf("请选择子菜单编号:");
    		scanf("%d", &item);
    		flag = 0;
    		switch (item)
    		{
    		case 1:
    			printf("请输入要查询的学生的学号:\n");
    			scanf("%s", s1);
    			for (i = 0; i<n; i++)
    			if (strcmp(s1,stu[i].StudentId) == 0)
    			{
    				flag = 1;
    				printf("学生学号\t学生姓名\t年龄\t性别\tC语言成绩\t高等数学\t大学英语成绩\n");
    				printf("--------------------------------------------------------------------\n");
    				printf("%s\t%s\t%d\t%6\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId,stu[i].StudentName,stu[i].StudentAge,stu[i].StudentSex,stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    			}
    			if (0 == flag)
    				printf("该学号不存在!\n"); break;
    		case 2:
    			printf("请输入要查询的学生的姓名:\n");
    			scanf("%s", s1);
    			for (i = 0; i<n; i++)
    			if (strcmp(stu[i].StudentName, s1) == 0)
    			{
    				flag = 1;
    				printf("学生学号\t学生姓名\t年龄\t性别\tC语言成绩\t高等数学\t大学英语成绩\n");
    				printf("--------------------------------------------------------------------\n");
    				printf("%s\t%s\t%d\t%c\t%.1f\t%.1f\t%.1f\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex, stu[i].score[0], stu[i].score[1], stu[i].score[2]);
    			}
    			if (0 == flag)
    				printf("该姓名不存在!\n"); break;
    		case 3:return;
    		default:printf("请在1-3之间选择\n");
    		}
    	}
    }
    
    //修改学生信息
    void modify() /*修改信息*/
    {
    	int i, item, num = -1;
    	char sex1, s1[LEN + 1], s2[LEN + 1]; /* 以姓名和学号最长长度+1为准*/
    	float score1;
    	printf("请输入要要修改的学生的学号:\n");
    	scanf("%s", s1);
    	for (i = 0; i < n; i++){
    		if (strcmp(stu[i].StudentId, s1) == 0){/*比较字符串是否相等*/
    			num = i;
    			printf("------------------\n");
    			printf("1.修改姓名\n");
    			printf("2.修改年龄\n");
    			printf("3.修改性别\n");
    			printf("4.修改C语言成绩\n");
    			printf("5.修改高等数学成绩\n");
    			printf("6.修改大学英语成绩\n");
    			printf("7.退出本菜单\n");
    			printf("------------------\n");
    			while (1)
    			{
    				printf("请选择子菜单编号:");
    				scanf("%d", &item);
    				switch (item)
    				{
    				case 1:
    					printf("请输入新的姓名:\n");
    					scanf("%s", s2);
    					strcpy(stu[num].StudentName, s2);
    					break;
    				case 2:
    					printf("请输入新的年龄:\n");
    					scanf("%d", stu[num].StudentAge);
    					break;
    				case 3:
    					printf("请输入新的性别:\n");
    					scanf("%s", &sex1);
    					stu[i].StudentSex = sex1;
    					break;
    				case 4:
    					printf("请输入新的C语言成绩:\n");
    					scanf("%f", &score1);
    					stu[num].score[0] = score1;
    					break;
    				case 5:
    					printf("请输入新的高等数学成绩:\n");
    					scanf("%f", &score1);
    					stu[num].score[1] = score1;
    					break;
    				case 6:
    					printf("请输入新的大学英语成绩:\n");
    					scanf("%f", &score1);
    					stu[num].score[2] = score1;
    					break;
    				case 7:	return;
    				default:printf("请在1-7之间选择\n");
    				}
    			}
    			printf("修改完毕!请及时保存!\n");
    		}
    		else{
    			printf("没有该学生学号!!!");
    		}
    	}
    }
    
    void sort()//按学号排序
    {
    	int i, j, k, *p, *q, s;
    	char temp[LEN + 1], ctemp;
    	float ftemp;
    	for (i = 0; i<n - 1; i++)
    	{
    		for (j = n - 1; j>i; j--)
    		if (strcmp(stu[j - 1].StudentId, stu[j].StudentId)>0)
    		{
    			strcpy(temp, stu[j - 1].StudentId);
    			strcpy(stu[j - 1].StudentId, stu[j].StudentId);
    			strcpy(stu[j].StudentId, temp);
    			strcpy(temp, stu[j - 1].StudentName);
    			strcpy(stu[j - 1].StudentName, stu[j].StudentName);
    			strcpy(stu[j].StudentName, temp);
    			ctemp = stu[j - 1].StudentSex;
    			stu[j - 1].StudentSex = stu[j].StudentSex;
    			stu[j].StudentSex = ctemp;
    			p = &stu[j - 1].StudentAge;
    			q = &stu[j].StudentAge;
    			s = *q;
    			*q = *p;
    			*p = s;
    			for (k = 0; k<3; k++)
    			{
    				ftemp = stu[j - 1].score[k];
    				stu[j - 1].score[k] = stu[j].score[k];
    				stu[j].score[k] = ftemp;
    			}
    		}
    	}
    }
    
    //添加学生信息函数
    void insert() /*插入函数*/
    {
    	int i = n, j, flag;
    	printf("请输入待增加的学生数:\n");
    	scanf("%d", &m);
    	if (m > 0){
    		do
    		{
    			flag = 1;
    			while (flag)
    			{
    				flag = 0;
    				printf("请输入第%d位学生的学号:\n", i + 1);
    				scanf("%s", stu[i].StudentId);
    				for (j = 0; j < i; j++){
    					if (strcmp(stu[i].StudentId, stu[j].StudentId) == 0){
    						printf("该学号已存在,请重新输入!\n");
    						flag = 1;
    						break;
    					}
    				}
    			}
    			printf("请输入第%d 个学生的姓名:\n", i+1);
    			scanf("%s", stu[i].StudentName);
    			printf("请输入第%d 个学生的年龄:\n", i+1);
    			scanf("%d", &stu[i].StudentAge);
    			printf("请输入第%d 个学生的性别:\n", i+1);
    			scanf(" %c", &stu[i].StudentSex);
    			printf("请输入第%d 个学生的C语言成绩\n",i+1);
    			scanf("%f", &stu[i].score[0]);
    			printf("请输入第%d 个学生的高等数学成绩:\n", i+1);
    			scanf("%f", &stu[i].score[1]);
    			printf("请输入第%d 个学生的大学英语成绩:\n", i+1);
    			scanf("%f", &stu[i].score[2]);
    			if (0 == flag){
    				i++;
    			}
    		} while (i<n + m);
    	}
    		n += m;
    		printf("学生信息增加完毕!!!\n");
    		system("pause");
    }
    
    //删除学生信息函数
    void del()
    {
    	int i, j, flag = 0;
    	char s1[LEN + 1];
    	printf("请输入要删除学生的学号:\n");
    	scanf("%s", s1);
    	for (i = 0; i < n; i++){
    		if (strcpy(stu[i].StudentId, s1) == 0){
    			flag = 1;
    			//要删除学生后面的学生往前移一位
    			for (j = i; j < n - 1; j++){
    				stu[j] = stu[j + 1];
    			}
    		}
    	}
    		//查找失败
    		if (0 == flag){
    			printf("该学号不存在!!!\n");
    		}
    		if (1 == flag){
    			printf("删除成功!!!");
    			//删除成功,学生人数减1
    			n--;
    		}
    		system("pause");
    }
    
    //显示全部数据信息
    void display()
    {
    	int i;
    	printf("共有%d位学生的信息:\n", n);
    	if (0 != n)
    	{
    		printf("学生学号 \t学生姓名 \t年龄   \t性别   \tC语言成绩\t高等数学 \t大学英语成绩\n");
    		printf("--------------------------------------------------------------------\n");
    		for (i = 0; i<n; i++)
    		{
    			printf("%s \t%s \t%d   \t%c   \t%.1f\t%.1f \t%.1f\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex, stu[i].score[0],stu[i].score[1],stu[i].score[2]);
    		}
    	}
    	system("pause");
    }
    
    void save(){
    	int i;
    	FILE *fp;
    	char filename[LEN + 1];
    	printf("请输入要保存的文件名:\n");
    	scanf("%s", filename);
    	fp = fopen(filename, "w");
    	for (i = 0; i < n; i++){
    		fprintf(fp, "%s%s%d%c%.lf%.lf%.lf\n", stu[i].StudentId, stu[i].StudentName, stu[i].StudentAge, stu[i].StudentSex,
    			stu[i].score[0], stu[i].score[1], stu[i].score[2]);
    	}
    	printf("保存成功!!!\n");
    	fclose(fp);
    	system("pause");
    }
    
    void menu()/* 界面*/
    {
    	int num;
    	printf(" \n\n                    \n\n");
    	printf("  ******************************************************\n\n");
    	printf("  *                学生信息管理系统                    *\n \n");
    	printf("  ******************************************************\n\n");
    	printf("*********************系统功能菜单*************************       \n");
    	printf("     ----------------------   ----------------------   \n");
    	printf("     *********************************************     \n");
    	printf("     * 0.系统帮助及说明  * *  1.刷新学生信息   *     \n");
    	printf("     *********************************************     \n");
    	printf("     * 2.查询学生信息    * *  3.修改学生信息   *     \n");
    	printf("     *********************************************     \n");
    	printf("     * 4.增加学生信息    * *  5.按学号删除信息 *     \n");
    	printf("     *********************************************     \n");
    	printf("     * 6.显示当前信息    * *  7.保存当前学生信息*     \n");
    	printf("     ********************** **********************     \n");
    	printf("     * 8.退出系统        *                            \n");
    	printf("     **********************                            \n");
    	printf("     ----------------------   ----------------------                           \n");
    	printf("请选择菜单编号:");
    	scanf("%d", &num);
    	switch (num)
    	{
    	case 0:help(); break;
    	case 1:flush(); break;
    	case 2:seek(); break;
    	case 3:modify(); break;
    	case 4:insert(); break;
    	case 5:del(); break;
    	case 6:display(); break;
    	case 7:save(); break;
    	case 8:
    		k = 0; 
    		printf("即将退出程序!\n");
    		break;
    	default:printf("请在0-8之间选择\n");
    	}
    }
    

    四.调试、测试以及实验结果
    1.调试:
    在这里插入图片描述
    2.测试:
    输入数据类型与定义时不符合,程序运行过程中会出现错误
    在这里插入图片描述
    3.实验结果:
    (1)~(9)是一个连续的运行实验结果
    (1)运行菜单
    在这里插入图片描述
    (2)添加学生信息
    在这里插入图片描述
    (3)保存学生信息
    在这里插入图片描述

    (4)显示全部信息
    在这里插入图片描述

    (5)修改学生信息
    在这里插入图片描述

    (6)显示修改后全部信息
    在这里插入图片描述

    (7)刷新学生信息
    在这里插入图片描述

    (8)保存学生信息
    在这里插入图片描述

    (9)显示刷新后的全部信息
    在这里插入图片描述
    五、总结:
    编写一个功能齐全的、方便用户操作的学生管理系统,需要长期的实践与积累。
    实践时检验的好办法,学到的知识经过实践的检验,才能更好的被自身吸收。文件的操作的程序编写应用对我来说,是一个没有经过多次实践的问题,所以我在写这部分程序时,还是有些难度。该程序中还存在一个问题就是,当输入一个与定义时不符的数据,程序在运行过程中会出现错误,修改办法还在思考,欢迎大家来与我互相共勉。

    展开全文
  • Python题目:学生信息管理系统-高级版(图形界面+MySQL数据库) 使用图形界面显示,选用list、tuple、dictionary或map等数据结构,操作数据库存储X个学生的三门课的成绩(机器学习、Python程序设计、研究生英语)...
  • JavaWeb-简单学生信息管理系统的实现-Jsp+Servlet+MySql

    万次阅读 多人点赞 2019-04-05 14:58:42
    关注公众号:吾爱代码,回复Java学生管理系统,获取下载链接~ 关注公众号:吾爱代码,回复Java学生管理系统,获取下载链接~ 关注公众号:吾爱代码,回复Java学生管理系统,获取下载链接~
  • C语言实现学生信息管理系统

    万次阅读 多人点赞 2019-04-08 14:40:48
    使用C语言对学生管理系统进行优化
  • 学生信息管理系统

    千次阅读 2013-06-28 15:29:50
    最近在做学生信息管理系统,做之前大脑一片空白,觉得做系统真的好复杂!但真正入手了也没那么复杂了。  学生信息管理系统条理性很强大概可以分为三大块:添加信息、修改信息和查询信息,当然还有一些琐碎的东西。...
  • Java+学生信息管理系统+GUI+文件

    万次阅读 多人点赞 2019-07-05 20:10:03
    系统可实现学生信息的增加,删除,修改,查询,并将学生信息存储在文件中 其中, 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以...
  • C#学生信息管理系统

    千次阅读 2020-02-29 08:59:21
    题目:学生信息管理系统 语言和环境 语言:C#,WinForms 环境:Visual Studio 2010,SQL Server 2008 实现目标 某学校要实现班级学生信息管理,要求使用.NET WinForms技术完成一个班级学生信息管理系统的开发,...
  • 学生信息管理系统功能性需求包括以下内容:  (1)系统管理员登录后可以对班级的基本信息进行增加、删除、修改、查询等操作。学校领导登录后可以对班级基本信息进行查询操作。  (2)教师登录后可以对学生...
  • Python项目:学生信息管理系统(完整版)

    万次阅读 多人点赞 2018-06-06 19:11:10
    本文是基于上一篇(python项目:学生信息管理系统(初版) )进行了完善,并添加了新的功能。 主要包括有: 完善部分:输入错误;无数据查询等异常错误 新的功能:文件的操作:文件的读写,其中重点是对文本字符...
  • C++学生信息管理系统

    千次阅读 多人点赞 2019-11-06 11:20:30
    我大一时,使用C++写了一个简单的学生管理系统,主要是为了完成老师布置的课程设计。现在又快到那个验收课程设计的时候了,现在分享给大家。如果你要的是用C写的代码,这个也是可以参考的,你可以自己进行修改成C的...
  • 学生信息管理系统(Java+JSP)

    万次阅读 多人点赞 2019-01-23 13:33:38
    简易的学生信息管理系统(含源码)
  • 数据库课设之学生信息管理系统

    万次阅读 多人点赞 2019-07-13 17:31:10
    数据库课设之学生信息管理系统 一、系统需求分析 学校每年都有新生入学、老生毕业,还有其他各种人事变动。如何有效地管理这些学生 的信息,帮助学校和老师掌握学生的情况,这就是学生信息管理系统需要完成的功能。 ...
  • C语言开发简单的学生成绩管理系统(附源码)

    万次阅读 多人点赞 2019-04-15 21:08:22
    学生成绩管理系统 开发语言:C语言 开发工具:Visual Studio 2019 开发时间:2019.4.14 开发者:summer @一、系统使用展示 @二、系统功能 @三、菜单 @四、录入学生信息 @五、打印学生信息 @六、保存学生信息 @七、...
  • 基于python的学生信息管理系统

    千次阅读 多人点赞 2020-11-25 20:39:44
    学生管理系统主要包括录入学生信息、查找学生信息、删除学生信息、修改学生信息、排序学生信息、统计学生总数、显示学生信息,这几项功能。其中录入学生的信息包括学号、姓名、英语成绩、python成绩、数学成绩、总...
  • Python实现学生信息管理系统

    万次阅读 多人点赞 2019-07-08 12:28:50
    试设计一个学生信息管理系统,使之能提供一下基本功能: 系统以菜单方式工作 学生信息录入功能(学生信息用文件保存)--- 输入 学生信息浏览功能 --- 输出 查询、排序功能 --- 算法 按学号查询 按姓名查询 学生...
  • 学生信息管理系统c++

    万次阅读 2017-07-01 19:28:02
    一个简单的c语言学生信息管理系统,是控制台程序。 运行界面如下,功能已经全部实现 本资料绝对原创,请认准发表时间,如有相同,请私信我。
  • Java学生信息管理系统源码

    千次阅读 2019-12-24 11:24:10
    学生信息管理系统 功能说明 学生信息管理,包括学生、班级、院系、课程、成绩等的管理。 本程序仅供学习食用。 工程环境 JDK IntelliJ IDEA MySQL 运行说明 1、安装JDK。 2、导入SQL脚本并配置。 使用...
  • python简易学生信息管理系统

    千次阅读 多人点赞 2019-09-14 13:02:15
    主要讲解使用python开发一个简易学生信息管理系统
  • Android实现学生信息管理系统之学生端功能实现

    千次阅读 多人点赞 2019-07-14 19:32:10
    Android实现学生信息管理系统之登录与数据库准备 效果图 依赖 大部分组件来自于Design库 在build.gradle 文件中添加这样的代码 dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) ...
  • Python题目:学生信息管理系统

    千次阅读 多人点赞 2019-11-18 20:17:14
    Python题目:学生信息管理系统 选用list、tuple、dictionary或map等数据结构,存储X个学生的三门课的成绩(机器学习、Python程序设计、研究生英语),并实现以下功能: 1.添加学生信息 2.修改学生信息 3.删除...
  • python之学生信息管理系统

    万次阅读 多人点赞 2017-08-14 13:29:38
    通过编写一个学生信息管理系统,学习应用了函数,函数嵌套使用,函数返回多个数据,局部变量和全局变量,完整的学生信息管理系统可以实现增删查改等功能,在这里,主要编写了添加,修改和显示功能
  • 学生信息管理系统(C语言)

    万次阅读 多人点赞 2019-05-13 17:36:35
    学生信息管理系统(C实现-文件-链表) 需求分析 其中的”信息管理模块“的登录验证改为用户登录验证了 主要的一些思路 使用动态链表组织内存数据,并且关联到文件 采用的是全局变量,分别代表管理员和学生,...
  • Java 学生信息管理系统

    千次阅读 2019-06-17 22:58:35
    Swing + i/o 写的学生成绩信息管理系统单机版 这个程序花了大约一周时间,从无到有 翻阅了许多资料,踩过了许多坑 虽然现在swing并不是主流,但是swing只是一种工具 写这个程序收获了许多别的东西,也锻炼了自己 ...
  • 学生信息管理系统 Android studio (直接可用)

    万次阅读 多人点赞 2017-07-02 17:08:18
    百度上流传最广的版本有所欠缺,并不能直接使用,同时有很多不必要的功能,这是我进行删减、修改、核查后的版本,根据下面的步骤一步步来直接能够运行程序。
  • 庖丁解“学生信息管理系统

    千次阅读 多人点赞 2013-08-18 17:00:54
    学生信息管理系统已经敲完,历时半个多月,总觉得自己的收获就不能几个字草草了之,因此再写篇关于学生信息管理系统的博客,“庖丁解‘牛’”,再次剖析一下学生信息管理系统,总结一下收获。 一、学生信息管理系统...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,917
精华内容 38,766
关键字:

学生信息管理系统功能介绍