精华内容
下载资源
问答
  • 一直收藏着的管理系统设计报告,受益匪浅,希望也可以帮助到你。 功能分析 本系统面向某高校的所有大学生的基本信息管理,主要分为学生基本信息管理、学生成绩信息管理、学生学籍信息管理和统计报表管理四大部分。...

    最新文章出炉,欢迎点评

    它曾是浏览器的王者,如今却前景堪忧......   推荐阅读 ★★★★

    往期文章回顾:

    1、Java开发岗位面试题汇总(不断补充……)★★★

    2、Java程序员必须掌握的英语词组 ★★

    3、学习Java的9张思维导图 ★★★★★

    一直收藏着的管理系统设计报告,受益匪浅,希望也可以帮助到你。

    功能分析

    本系统面向某高校的所有大学生的基本信息管理,主要分为学生基本信息管理、学生成绩信息管理、学生学籍信息管理和统计报表管理四大部分。
    (1) 学生基本信息管理
    学生基本信息管理完成学生基本信息(学号、姓名、性别等信息)的各种数据库管理操作。
    学生的基本信息由教务人员录入,系统需要对信息进行核对然后保存到学生基本信息数据库中,学生本人可以根据学号或个人帐号登录浏览自己的基本信息。
    学生可以根据系统提出更新请求,更新请求汇总为待更新学生基本信息,并由教务人员统一修改。
    班主任只能浏览本班学生的基本信息,学院主管学生工作的领导则可以查看全院所有学生的基本信息。
    若学生出现退学、修学等情况,班主任将这些同学的信息给教务人员,由教务人员统一删除或修改。
    (2) 学生成绩管理
    学生的成绩信息管理包括学生成绩的录入、查询、删除、修改等操作,学生成绩由教务处人员负责录入和修改。
    学生本人及班主任拥有不同的权限,可以凭学号或班级编号查看一个或多个学生的成绩信息。
    学工处制定奖学金颁发准则,每学期都根据学生成绩评选出符合奖学金要求的学生名单,打印出交学校主管部门审批。
    此外,教务处人员还可根据学生成绩及每名学生选修学分的多少确定退学名单和留级名单,打印出交学校主管部门审批。
    (3) 学生的学籍管理
    学生的学籍信息管理其实和第1和第2个功能紧密联系。
    主要完成如下功能:学生入学的学籍登记、学生休学的学籍保留、学生留级的学籍信息更新、学生复学的学籍激活、学生退学的学籍清除等工作。
    (4) 统计报表管理
    学校教务处可以对学生基本信息、学生成绩信息、学生学籍信息进行分类汇总,形成各种统计报表。如单门课程的及格率、学生获取奖学金的比率等。

    概要设计

    处理流程

     软件结构

    整体测试

    登录

    新增账户界面

    代码:

    DisplayStudent:

    import java.awt.*;
    import java.sql.*;
    import java.util.*;
    import javax.swing.*;
    
    public class DisplayStudent extends JFrame
    {
    	static final String JDBC_DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";
    	static final String DATABASE_URL = "jdbc:odbc:studyDSN";
    	private Connection connection;
    	private Statement statement;
    	
    	public DisplayStudent()
    	{
    		super("显示全部学生信息");
    		try
    		{
    			Class.forName(JDBC_DRIVER);
    			connection = DriverManager.getConnection(DATABASE_URL,"sa","8882551");
    			statement = connection.createStatement();
    			String sqlString = new String("select std_no as 学号,std_name as 姓名,std_sex as 性别,age as 年龄,std_sdept as 所在系,std_condition as 学籍状态 from student1");
    			ResultSet resultSet = statement.executeQuery(sqlString);
    			StringBuffer results = new StringBuffer();
    			ResultSetMetaData metaData = resultSet.getMetaData();
    			int numberOfColumns = metaData.getColumnCount();
    			for (int i = 1; i <= numberOfColumns; i++)
    				results.append(metaData.getColumnName(i)+"\t");
    			results.append("\n");
    			while(resultSet.next())
    			{
    				for (int i = 1; i <= numberOfColumns; i++)
    					results.append(resultSet.getObject(i)+"\t");
    				results.append("\n");
    			}
    			JTextArea textArea = new JTextArea(results.toString());
    			textArea.setEditable(false);
    			Container container = getContentPane();
    			container.add(new JScrollPane(textArea));
    			setSize(500,400);
    			setVisible(true);
    		}
    		catch(SQLException sqlException)
    		{
    			JOptionPane.showMessageDialog(null,sqlException.getMessage(),"Database Error",JOptionPane.ERROR_MESSAGE);
    			System.exit(1);
    		}
    		catch(ClassNotFoundException classNotFound)
    		{
    			JOptionPane.showMessageDialog(null,classNotFound.getMessage(),"Driver Not Found",JOptionPane.ERROR_MESSAGE);
    			System.exit(1);
    		}
    		finally 
    		{
    			try
    			{
    				statement.close();
    				connection.close();
    			}
    			catch(SQLException sqlException)
    			{
    				JOptionPane.showMessageDialog(null,sqlException.getMessage(),"Database Error",JOptionPane.ERROR_MESSAGE);
    				System.exit(1);
    			}
    		}
    	}
    	
    	public static void main(String args[])
    	{
    		DisplayStudents window = new DisplayStudents();
    		window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }

    Login:

    /*导入JDK包*/
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import java.sql.*;
    import java.util.*;
    /**/
    public class Login extends JFrame{	
        private JTextField tfUser,password;
        private String tfUser1,password1;
    	static final String JDBC_DRIVER="sun.jdbc.odbc.JdbcOdbcDriver";
    	static final String DATABASE_URL="jdbc:odbc:studyDSN";
    	private Connection connection;
    	private Statement statement;
    	String sqlString;
    	public Login(){
    		super("学生信息管理系统登陆窗口--王辉(05计算机二班)6号");
    		initialize();
    		Box horizontal1=Box.createHorizontalBox();
    		Box horizontal2=Box.createHorizontalBox();
    		Box horizontal3=Box.createHorizontalBox();
    		Box horizontal4=Box.createHorizontalBox();
    		Box horizontal5=Box.createHorizontalBox();
    		Box horizontal6=Box.createHorizontalBox();
    		Box horizontal7=Box.createHorizontalBox();
    		Box vertical1=Box.createVerticalBox();
    		Box vertical2=Box.createVerticalBox();		
    		Container container=getContentPane();
    		container.setLayout(new FlowLayout());
    		JLabel lbTitle=new JLabel("学生信息管理系统入口");
    		lbTitle.setFont(new Font("",Font.BOLD,18));
    		horizontal1.add(lbTitle);
    		JLabel lbUser3=new JLabel("    ");
    		horizontal7.add(lbUser3);
    		horizontal7.setSize(300,15);
    		//container.add(lbTitle);
    		JLabel lbUser=new JLabel("用户名:");
    		horizontal2.add(lbUser);
    		//container.add(lbUser);
    		final JTextField tfUser=new JTextField(10);
    		horizontal2.add(tfUser);		
    		//container.add(tfUser);
    		JLabel lbUser2=new JLabel("    ");
    		horizontal6.add(lbUser2);
    		horizontal6.setSize(300,15);	
    		JLabel lbpassword=new JLabel("密码:");
    		horizontal3.add(lbpassword);
    		//container.add(lbpassword);			
    		final JPasswordField password=new JPasswordField(10);
    		horizontal3.add(password);
    		vertical1.add(horizontal7);
    		vertical1.add(horizontal2);
    		vertical1.add(horizontal6);
    		vertical1.add(horizontal3);
    		JLabel lbUser1=new JLabel("    ");
    		horizontal5.add(lbUser1);
    		horizontal5.setSize(300,15);
    		//container.add(password);
    		/*添加按钮监听*/		
    		JButton InButton=new JButton("登陆");
    		horizontal4.add(InButton);	
    		InButton.addActionListener(
    			new ActionListener()
    			{
    				public void actionPerformed(ActionEvent event)
    				{			
    			          
    			           tfUser1=tfUser.getText();
    			           password1=password.getText();			           
    			           check(tfUser1,password1);			             			           
    				}
    			}
    			);
    		JLabel lbUser5=new JLabel("    ");
    		horizontal4.add(lbUser5);
    		//container.add(InButton);
    		JButton ClearButton=new JButton("重置");
    		ClearButton.addActionListener(new ActionListener(){
    			public void actionPerformed(ActionEvent event)
    			{				
    				tfUser.setText("");
    				password.setText("");
    				}
    			});
    		horizontal4.add(ClearButton);
    		//container.add(ClearButton);
    		vertical2.add(horizontal1);
    		vertical2.add(vertical1);
    		vertical2.add(horizontal5);
    		vertical2.add(horizontal4);		
    		container.add(vertical2);
    		setSize(500,200);
    		setVisible(true);
    		/*按钮监听实现*/		
    	}
    	
    
    	/*判断用户名密码*/
    	public void check(String tfUser0,String password0){		
    		
    		if(tfUser0.equals(""))
    	     {	
    	     JOptionPane.showMessageDialog(null,"请输入用户名","IOError",JOptionPane.ERROR_MESSAGE);	    
    	     }	   
    		else if(password0.equals(""))
    		{
    		JOptionPane.showMessageDialog(null,"请输入密码","IOError",JOptionPane.ERROR_MESSAGE);
    		}
    	
    	    else if(tfUser0.equals("ecjtu")&&password0.equals("ecjtu"))
    		{
    		   new Student(0);		            
               setVisible(false);
    		}
    		else{
    			try{
    		    String sqlString="select * from admin where adminusername='"+tfUser0+"' and adminpassword='"+password0+"'";
    			ResultSet resultSet=statement.executeQuery(sqlString);	
    			if(resultSet.next()){
    				new Student(1);		            
    	    	setVisible(false);
    			}
    			else{
    				JOptionPane.showMessageDialog(this,"Wrong Username Or Password","IOError",JOptionPane.ERROR_MESSAGE);
    			}
    			}catch(NumberFormatException formatException)
    		    {
    		    	JOptionPane.showMessageDialog(this,"Bad sno number","Invalid Number Format",JOptionPane.ERROR_MESSAGE);
    		    }
    		    catch(SQLException sqlException)
    		    {
    		    	System.out.println(sqlException);
    		    }
    		}		
    	}
    	 /*数据库连接*/
    	 	public void initialize()
    	{
    		try
    		{
    			Class.forName(JDBC_DRIVER);
    			connection = DriverManager.getConnection(DATABASE_URL,"sa","8882551");
    			statement = connection.createStatement();
    		}
    		catch(SQLException sqlException)
    		{
    			JOptionPane.showMessageDialog(null,sqlException.getMessage(),"Database Error",JOptionPane.ERROR_MESSAGE);
    			System.exit(1);
    		}
    		catch(ClassNotFoundException classNotFound)
    		{
    			JOptionPane.showMessageDialog(null,classNotFound.getMessage(),"Driver Not Found",JOptionPane.ERROR_MESSAGE);
    			System.exit(1);
    		}
    	}//end initialize   
    	public static void main(String[] args){
    		Login login=new Login();				
        }
    }
    //class checkException extends Exception{
    //	public checkException(String msg)
    //	{	
    //		super(msg);
    //	}
    //}

    相关文章推荐:

    1、 C语言学生成绩管理系统源代码 ★★★★★

    2、 C语言学籍管理系统源代码 ★★

    3、C语言学生成绩管理系统设计 《C语言程序设计》实训报告 ★★★

    4、C语言员工信息管理系统源代码 ★★★

    5、C语言学生信息管理系统源代码 ★★

     感谢你的关注与阅读,想要更多学习资料的朋友可以加VX:Pandaxiaonian 交流学习 

    展开全文
  • 学生成绩管理系统设计》 二、实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。 (2)掌握C++的基本概念和基础知识。 (3)通过训练能够读懂较为复杂的C++语言源程序...

    很多朋友私信要一份C语言学生成绩管理系统设计报告,提供一下获取方法吧

    扫描下方公号,发送 成绩系统 三个字,获取实训报告。

    后续也会把之前搜集到的优质管理系统相关资料分享出来,大家一起学习,下面是作者自己的一份实训报告,希望能帮助到大家

    一、课程设计题目

    《学生成绩管理系统设计》

    二、实训目的

    (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法。

    (2)掌握C++的基本概念和基础知识。

    (3)通过训练能够读懂较为复杂的C++语言源程序并具备基本C++语言程序设计的能力。

    4)通过实训,培养自己编写、调试、分析程序的能力。

    5)培养自己独立解决问题,查找资料的能力。同学之间相互帮助,相互交流,相互合作的团队精神。

    6) 培养自己良好的学习兴趣,独立的编程风格。

    7) 通过实训检查自己学习上的不足,达到熟练掌握C++语言的基本知识和技能。

    三、课程设计报告内容

    3.1功能要求

    该系统运行在DOS环境下,人机界面为命令行文本界面。完成的任务是对若干人的成绩信息进行管理,且数据保存到文件中。

    实现的主要功能是:

    系统以菜单方式进行工作

    学生信息和成绩输入功能

    学生信息和成绩输出功能

    学生信息和成绩浏览功能

    查询学生信息及成绩功能

    修改学生信息及成绩功能

    学生成绩排序

    以稳健的形式进行保存

    3.2 设计环境

    所使用的语言采用标准C,开发工具可选用在DOS环境下的Turbo C

    3.3 数据结构

    本系统是对学生成绩的信息进行管理,学生成绩信息采用C的结构体数据类型描述,定义如下:

    struct students
    {
       int num;          //学号-整型//
       char name[8];    //姓名-字符型//
       char chinese;    //大学语文-字符型//
       char math;       //大学数学-字符型//
       char computer;   //计算机-字符型//
       char sum;        //总成绩-字符型//
       char ave;        //平均分-字符型//
    }

    3.4实现方法及主要算法分析

    (1)主界面的设计:主界面采用文本菜单的形式,各功能调用通过菜单进行选择。采用循环处理,以便执行完某项处理后,仍可选择其他项处理。在循环内先显示提示信息,然后读取用户输入,使用switch语句对用户的输入进行判断,分别调用相应的模块,当某模块结束后再次回到文本菜单,直到用户选择结束程序菜单,才退出循环,从而退出系统。

    (2) 外部文件的类型:文件采用的二进制的文件,对文件的读写采用顺序文件的方式,并使用fread和fwrite等函数对文件进行操作。

    (3)清屏函数:一般由上一级菜单屏幕进入下一级菜单屏幕或由下一级菜单屏幕返回上一级菜单屏幕都需要清除屏幕原来显示的内容。同时在调用程序的过程中,记录需要清屏的位置,然后修改代码,加入clrscr()函数清屏。

    (4)提示信息:一般的输入与输出需有相应的提示信息,以增加用户的交互性,增加输出的可读性,以帮助用户使用程序。

    3.5模块设计

    根据功能要求,本系统为五大主要模块,具体模块如表所示。

    学生信息成绩管理系统的模块

    3.6处理流程

    (1)学生成绩管理系统主界面模块

    2)成绩输入模块 和(3)成绩排序模块

    (4)删除记录

    (5)修改记录

    (6)查找信息

    四、结论

    学生成绩管理系统的编写,看似杂乱无头绪,实际上却并不如此。它的每一个功能都能分成模块,有句话说的好,大事化小,小事化了。C语言编程也正式如此,把一个大的程序分为若干相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,这样不仅降低了难度还使得思路清晰,很容易编写出要做的程序,从而为设计一些较大的软件打下了良好的基础。

    分析问题:

    学生成绩管理系统的整体功能都包括、增加成员、删除成员、查看成员、修改成员、登陆口令五大板块,而查看有包括学号,姓名,大学语文成绩,大学数学成绩,计算机成绩,总成绩,平均分七个模块。

    1. 设计的数据对象包括整形:学号。字符型:姓名、3门课程成绩、总成绩、平均成绩。
    2. 数据结构线性数据结构,定义人数上限为1000.

    算法的设计:

    1. 自顶向下

      现有全局,在进行整体设计,然后再进行下层的设计,逐步实现精细化。采用这种方法能够做到胸有全局,能全盘考虑,不至于顾此失彼,头重脚轻。

    1. 逐步细化

       一步步地将上层的任务分解成较小的、易于实现的任务,知道可以很简单实现为止。

    编写源程序:

    1. 不求速度,但求质量!一步一个脚印,编写程序时候宁可速度慢些也要尽量保证质量,做到尽量不出错。
    2. 精力集中,全神贯注!写程序时候最忌讳三心二意,这样才能思路清晰保证质量。
    3. 保持一个良好的编程心态,不要被长长的代码吓到

    程序的编译与运行:

    1. 查找错误是一件让人闹心的事,但是要注重技巧,注意平时经验的积累。
    2. 程序编译成功不要满足现状,要积极测试程序的可用性,对功能不理想,存在缺点的地方,积极的改进,完善。

    五、结束语

    在实训过程中,使我良好的锻炼了自己,首先是兴趣方面,通过编写通讯录管理系统使我更加喜欢编程,使我从以前的迷茫状态中解脱出来,使我了解了编程的真正意义。我想这对我以后的人生有着很大的帮助。其次通过编写通讯录管理系统使我对写程序有了一定的思路,不像以前无从下手,使我理解了算法的意义,使我懂得了模块化思想的好处。

    通过一个星期的编写代码,使我对书本上的知识有了更深的理解,甚至有很多不懂的问题在这过程中自然而然的理解了。对期末考试更有了信心。在朱老师的悉心指导下,我对C语言有了更深刻的理解,对程序的算法,数据的定义,程序的改错等方面的能力有了很大提高,自身的注意力,耐心,和对编程的兴趣有了很大增长,使我获益匪浅。

    六、参考书目:

    [1]谭浩强,《C语言程序设计》,清华大学出版社

    附完整代码:

    #include<stdio.h>
    #include<string.h>    //比较字符串头文件//
    #include<stdlib.h>   //实时检测总数头文件//
    #define N 1000       //控制最大输入//
    int n=0;             //实时检测的总数n//
    
    /*定义结构体students*/																	       
    struct students
    {
       int num;          //学号-整型//
       char name[8];     //姓名-字符型//
       char chinese;     //大学语文-字符型//
       char math;        //大学数学-字符型//
       char computer;    //计算机-字符型//
       char sum;         //总成绩-字符型//
       char ave;        //平均分-字符型//
    }student[N],student1;     //student[N]是结构体数组student1是结构体的初始化//
    
      /*实时检测总数n*/
    void count()  
     {
    	FILE *fp;         //定义一个文件指针fp//
    	fp=fopen("students.txt","at+");     //以“追加”方式打开students文本文件//
    	if(fp==NULL)                        //判断文件是否为空//
    		printf("Cannot open file!");
        struct students stu1;                 
    	n=0;         //初始化//
    	while(1)
    	{
    	  if(feof(fp))  //检测文件是否结束//
    	  break;
          fread(&stu1,sizeof(struct students),1,fp);   //读取文件//
    	  n++;    //读取文件数//
        }
    	n--;           //关闭文件数//
    	fclose(fp);    //关闭文件//
     }
    
    /*菜单*/
    void main()
    {
    	int i;        //获取用户在菜单中的选择//     
    	while(i!=0)
    	{
    		system("cls");     //清屏//
    	printf("\t\t欢迎进入学生信息管理系统\n");
      printf("\t\t==============================\n");
    		printf("\t\t*请择操作                    *\n");
    		printf("\t\t*1输入学生信息               *\n");
    		printf("\t\t*2输出学生信息               *\n");
    		printf("\t\t*3修改学生信息               *\n");
    		printf("\t\t*4查询学生信息               *\n");
           printf("\t\t*5排序学生信息               *\n");
    		printf("\t\t*6退出                       *\n");
    	printf("\t\t==============================\n");
     scanf("%d",&i);
     system("cls");     //清屏// 
    		count();     //实时检测总数n//
    		switch(i)
    		{
    		 case 1:input();break;    //输入学生信息//	
    		 case 2:output();break; 	//输出学生信息//
    	     case 3:xiugai();output();break;    //修改学生信息//
            case 4:query();break;    //查询学生信息*/
            case 5:paixu();output();break;    //成绩排序//
    	default:
    		   printf("输入有错\n");     //错误纠正//  
    		}
    	}
    	   if(i==0)
    	     tuichu();        //退出系统//
    }
    
    
    /*成绩输入*/
    void input()   
    {
      int i=0;     //学生人数初始化//
      char c;
      FILE *fp;     //定义一个文件指针fp//
    	count();     //实时检测总数n//
    	fp=fopen("students.txt","at+");    //以“追加”方式打开students文本文件//
      do 
      {	
       printf("请输入学生的个人信息:\n");
         printf("\n请输入第%d学生的信息:\n",n+1);
         printf("请输入学生的学号:");
         scanf("%d",&student[i].num);
         printf("请输入学生的姓名:");
        scanf("%s",student[i].name);getchar();
        printf("请输入学生的大学语文成绩");
        scanf("%s",student[i].chinese);
        printf("请输入学生的大学数学成绩:");
        scanf("%d",&student[i].math);
        printf("请输入学生的计算机成绩:");
        scanf("%s",student[i].computer);
         getchar();
         student[i].sum=student[i].chinese+student[i].math+student[i].computer;
    		student[i].ave=student[i].sum/3;
    fwrite(&student[i],sizeof(struct students),1,fp);  //以方式将其写入students文本文件//
    	i++;     
    	n++;      
    	printf("\n\n\t\t\t\t是否继续输入(Y/N):");getchar();     //提示是否继续,从键盘  
                                                               获得一个字符//  
    scanf("%c",&c);  
      }
     while(c=='y'||c=='Y');
     fclose(fp);
    }
    
    /*成绩输出*/        
    void output()  
    {
      int i;
      char c;
      FILE *fp;      //定义一个文件指针fp//
      fp=fopen("students.txt","rt");    //以“读取的” 方式打开students文本文件//
      system("cls");     //清屏//
      getchar();
        
    printf("||------||-----||-----||-----||------||-------||-------||------||");
    	printf("|#学号-----姓名------大学语文------大学数学------计算机------总成绩
    -----平均分---#|\n");
      do{  
    	  for(i=0;i<n;i++)  
    	  { 
           fread(&student[i],sizeof(struct students),1,fp);  
           printf("%d",student[i].num);
            printf(" %d",student[i].name);
    	        printf("%d",student[i].chinese);
              printf(" %d ",student[i].math);
              printf("%d ",student[i].computer);
              printf("%d",student[i].sum);
              printf(" %d ",student[i].ave);
         
    	  }
    printf("|------||-----||------||-----||-----||-----||-----||------ |");
      	  printf("\n\n\t\t\t\t是否继续其它操作(Y/N):");     //提示是否继续//
    	      scanf("%c",&c);
    	  c=getchar();
    	}while(c=='y'||c=='Y');
         fclose(fp);      //关闭文件//
    }
    
    /*成绩修改*/
    void xiugai()  { 
      int i,tp,num1;
      char c; 
      FILE *fp;     //定义一个文件指针fp//
    
    lb:  
      printf("\n按学号修改\n\n");
      printf("请输入要修改的学生学号\n");
      scanf("%d",&num1);
    
     for(i=0;i<n;i++) 
     {
    	if(num1==student[i].num)
    	  { 
    		printf("要修改的学生信息为:\n");
            printf("学号\t姓名\t大学语文成绩\t大学数学成绩\t计算机成绩\t总成绩\t
    平均分\n");          
            printf(" %d ",student[i].num);
            printf(" %d ",student[i].name);
            printf(" %d ",student[i].chinese);
            printf(" %d ",student[i].math);
            printf(" %d ",student[i].computer);
            printf(" %d ",student[i].sum);
            printf(" %d ",student[i].ave);
            do {
    		    printf("请选择要修改项:\n");
                printf("1学号\n2姓名\n3大学语文成绩\n4大学数学成绩\n5总成绩\n6平
    均分\n");
                scanf("%d",&tp);
    	            switch(tp)
    			{
    	         case 1:
    				{	 printf("请输入学号:\n");
    		          scanf("%d",&student[i].num);
    		          goto la;
    				}	
    	  	      case 2:
    				{ printf("请输入姓名:\n");
    		          scanf("%s",student[i].name);
    		          goto la;
    				}	
    	  	      case 3:
    				{ printf("请输入大学语文成绩:\n");
    				  getchar();
    		          scanf("%c",&student[i].chinese);
    		         goto la;
    				}	
    	  	      case 4:
    				{ printf("请输入大学数学成绩:\n");
    		          scanf("%d",&student[i].math);
    		         goto la;		  
    				}	
    	  	      case 5:
    				{printf("请输入计算机成绩:\n");
    		          scanf("%s",student[i].computer);	
    		         goto la;
    				}	
    	  	     case 6:
    				{ printf("请输入总成绩:\n");
    		          scanf("%s",student[i].sum);
    		         goto la;
    				}	
    	  	     case 7:
    				{ printf("请输入平均分:\n");
    		          scanf("%s",student[i].ave);
    		         goto la;
    				}
    			}
    		}while (tp<8);		 
    la:	  printf("是否继续修改(y/n)\n");     //提示是否继续//
    	  getchar();
    	  scanf("%c",&c);
    	  if(c=='y'||c=='Y')  goto lb;
             }
      }
        fp=fopen("students.txt","w+");   //以“读写” 方式打开students文本文件//
    	  for(i=0; i<n;i++)
    	  fwrite(&student[i],sizeof(struct students),1,fp);  //以 方式将其写入students
                                                     文本文件//
     fclose(fp);    //关闭文件//
    }
    
    
    /*成绩查询*/
    void query()
    { int querymode;     //子菜单选择//
      int i,j=0,findnum;
      char findname[20];
      int findok,t=0;     //定义一个判断标志的整型变量findok//
      char findct;        //定义一个用于判断是否继续查找的字符变量findct//
      
       FILE *fp;         //定义一个文件指针fp//
       count();     //实时检测总数n//
       fp=fopen("students.txt","r");       //以“只读” 方式打开students文本文件//
       system("cls");     //清屏//
    
      /*查询菜单*/
      printf("\t\t信息查询");
      printf("\n\t1按姓名查询");
      printf("\n\t2按学号查询");
      printf("\n\t0返回上级菜单");
      printf("\n请输入您的操作:");
      scanf("%d",&querymode);
    
      /*查询操作*/
      switch(querymode)
      {case 1: 
        {     printf("请输入要查询学生的姓名:\n");
                getchar();
                scanf("%s",findname); 
                for(i=0;i<N;i++)
    		{
         fread(&student[i],sizeof(struct students),1,fp); //以方式将其读入students
                                                          文本文件//
       if(strcmp(student[i].name,findname)==0)        //比较字符串//
    			 { 
    			   j++;
    			   printf("\n查寻到的学生为:\n");
    			   if(j==1)
                              、
    printf("|------||-----||------||------||------||-------||------||-----|");    
    //仅在第一次显示//
    	printf("|#学号-----姓名------大学语文------大学数学------计算机------总成绩-
    ----平均分---#|\n");
              
    printf("%4d%d%d%d%d%d%d%d",student[i].num,student[i].name,
    student[i].chinese,student[i].math,student[i].sum,student[i].ave);
    			  }
    
    			}
    			if(j==0)
    			  printf("\n>>>查无此人!");
    
               //提示是否继续// 
                printf ("\n是否继续查找(Y/N)?");       
                getchar();
                getchar();}break;
      
        case 2:{ printf("请输入要查询学生的学号:");
                 scanf("%d",&findnum);
                 for(i=0;i<n;i++)
    			 {
                  fread(&student[i],sizeof(struct students),1,fp);        
    //以结构体students的方式从文件fp中读取,将其读入students文本文件,每次读入一个 
    学生的信息//
                  if(student[i].num==findnum)      //整型数字的比较// 
    			  {findok=1;break;}
    			  else findok=0;
    			 }
                  if(!findok)
    				printf("\n>>>查无此人!");
    			  else
    			  { printf("\n查寻到的学生为:\n") ;
    			    if(j==1)
                          printf("|-------||------||------||-------||-------||-------||-------||------|");   
     //仅在第一次显示//
     printf("|学号-----姓名------大学语文------大学数学------计算机------总成绩-----平均分---|\n");
     printf("%4d%d%d%d%d%d%d%d",student[i].num,student[i].name,
    student[i].chinese,student[i].math,student[i].sum,student[i].ave);
    			  }
    //提示是否继续//
          printf ("\n是否继续查找(Y/N)?");       
            getchar();
    			findct=getchar();     //从键盘输入一个判断字符,并将它赋值给字符变量
                                   findct,用于以下的if语句的判断 //
    			if(findct=='Y' || findct=='y')
    			  query();
    		  }
      }
      fclose(fp);    //关闭文件//
    }
    
    
    /*成绩排序*/
    void paixu()
    {
       int i, j;
         FILE *fp;       //定义一个文件指针fp//
       system("cls");      //清屏//
       count();       //实时检测总数n// 
       for(i=0;i<n-1;i++)
    	    for(j=0;j<n-1-i;j++)    //按学号对学生信息进行排序//
    		{
    		     if(student[j].num>student[j+1].num)   //整型数字的比较//
    			 {
    			     student1=student[j];
    			     student[j]=student[j+1];
    			     student[j+1]=student1;
    			 }
    		}
    	fp=fopen("students.txt","w+");  //以 “读写”方式打开students文本文件//
    	for(i=0;i<n;i++)
    	fwrite(&student[i],sizeof(struct students),1,fp);  //以结构体students的方式从
       文件fp中读取,将其写入students文本文件,每次写入一个学生的信息//
        fclose(fp);      //关闭文件//
    }
    
    /*退出系统*/
    void tuichu() 
    {
    	char c;
    	  system("cls");      //清屏//
        printf("\n\n\t\t谢谢使用\n\n\n");
        printf("\n\n\t\t制作人:李姣 渠莉 宝珠 朱佳 刘妍\n");
    	  getchar();
    	c=getchar();       //取用户输入,回显//    
    }

    需要实训报告的同学,请在下方留言,看到会一个个回复的。

    或者直接扫描下方公号,发送 成绩系统 三个字,获取下载源码

    如果失效了,再请直接私信或留言,欢迎大家一起探讨学习。

    相关文章推荐:

    1、 C语言学生成绩管理系统源代码 ★★★★★

    2、 C语言学籍管理系统源代码 ★★

    3、C语言学生成绩管理系统设计 《C语言程序设计》实训报告 ★★★

    4、Java学生管理系统设计与实现 (超详细,含课程设计)★★★★

    展开全文
  • 学生宿舍管理系统设计与分析

    千次阅读 热门讨论 2020-12-27 20:15:12
    学生宿舍管理系统能够合理安排新生分配宿舍,不浪费公共资源,减轻学校管理压力,同时减少宿舍内同学之间的矛盾,促使学生享受舒适的校园生活。 2、需求分析 2-1 系统概述 软件旨在宿舍管理全部电脑化。它主要可以更...

    1、项目背景

    随着科技的发展,智能化管理越来越重要。大学生在宿舍的时间超过了1/3,因此良好的宿舍管理对学生的生活和学习极为关键。学生宿舍管理系统能够合理安排新生分配宿舍,不浪费公共资源,减轻学校管理压力,同时减少宿舍内同学之间的矛盾,促使学生享受舒适的校园生活。

    2、需求分析

    2-1 系统概述

    软件旨在宿舍管理全部电脑化。它主要可以更快地了解到每个学生的住宿情况,使宿舍的管理效率更高,做的更好。宿舍管理系统是一个现代化软件,他通过集中式的信息数据库将各种档案管理功能结合起来,达到共享数据,降低成本,提高效率,改进服务等目的。

    2-1 系统运行环境

    java运行环境:jdk1.8
    web服务器版本:tomcat8.5
    开发工具:idea2020.1 + navicat premium 15
    数据库:mysql 8.0

    2-3 功能需求描述

    整体设计中,我们将宿舍管理系统分为四个页面:登录页面、宿舍管理员页面、学生页面下面将具体进行介绍每个页面的功能。
    (1)登陆页面
    登陆页面包括对各个部分功能进行解释以及管理员与学生登陆入口。
    (2)宿管页面
    宿管页面功能包括:查看所有学生信息、查看修改维修信息、查看修改快件信息、查看修改离校返校信息、查看修改水电费信息、查看修改晚归信息。
    (3)学生页面
    学生页面功能包括:查看学生信息、查看提交维修信息、查看快件信息、查看提交离校返校信息、查看水电费信息、查看晚归信息。

    3.用例分析

    功能分析描述了待开发的软件必须完成的任务,定义了必须实现的软件功能,使得用户通过这些功能完成他们的任务,从而满足业务需要。

    3-1 用户角色分析

    以下对学生宿舍管理系统的实际需求分析,系统涉及到以下角色:
    角色职责或功能
    学生系统主要参与者、查看宿舍人员信息等
    宿管系统的管理人员,负责上传学生晚归信息等
    表3-1用户角色划分表

    3-2 用例分析

    下面给出了学生宿舍管理系统的总体用例图,包含用例,如下图3-1所示 :

    在这里插入图片描述

    图3-1学生宿舍管理系统用例图

    4. 软件设计

    4-1 系统总体功能设计

    在这里插入图片描述

    图4-1学生宿舍管理系统功能模块图
    如上图4-2所示,学生宿舍管理系统一共分为六个模块:学生信息、学生快件信息、学生宿舍维修信息、学生离校返校信息、学生晚归信息、学生宿舍水电费信息。模块提供给宿舍管理人员和学生两种角色使用,管理员可以修改学生快件到件时间以及取件日期和取件人以及其电话号码,修改提交学生提交的维修信息,修改学生离校返校信息,修改提交学生晚归信息,修改提交水电费信息,最后传到数据库中供学生查看。

    5. 数据库设计

    5-1 数据库表

    (1)学生信息表
    保存学生的基本信息。
    字段名数据类型长度
    studentid字符型255主键
    studentname字符型255
    major字符型255
    gender字符型255
    classes字符型255
    dormitoryid字符型255
    phoneid字符型255
    entrytime时间型255
    (2)维修信息表
    保存维修信息的基本信息。
    字段名数据类型长度
    dormitoryid字符型255
    studentname字符型255
    goodsname字符型255
    reason字符型255
    guaranteetime时间型255
    phoneid字符型255
    (3)晚归信息表
    保存晚归信息的基本信息。
    字段名数据类型长度
    studentname字符型255
    dormitoryid字符型255
    reason字符型255
    latetime时间型255
    (4)离校返校信息
    保存离校返校信息的基本信息。
    字段名数据类型长度
    studentname字符型255
    dormitoryid字符型255
    leavetime时间型255
    returntime时间型255
    (5)水电费信息
    保存水电费信息的基本信息。
    字段名数据类型长度
    month字符型255
    dormitoryid字符型255
    electricfee字符型255
    electricnum整型255
    waterfee字符型255
    waternum整型255
    (6)快件信息
    保存快件信息的基本信息。
    字段名数据类型长度
    studentname字符型255
    dormitoryid字符型255
    arrivetime时间型255
    collecttime时间型255
    collectname字符型255
    collectname字符型255
    collectnum整型255
    展开全文
  • 学生管理系统设计与实现(C++实现)

    万次阅读 多人点赞 2016-06-26 16:48:40
    1、设计一个学生类Student,包括姓名,学号,性别,籍贯,年龄,出生日期和住址,其中"出生日期"定义为一个"日期"类(具有属性:year(年),month(月),date(日))内嵌子对象。 2、具有数据的录入、显示、保存、查询...

    一.内容

    1、设计一个学生类Student,包括姓名,学号,性别,籍贯,年龄,出生日期和住址,其中"出生日期"定义为一个"日期"类(具有属性:year(年),month(月),date(日))内嵌子对象。

    2、具有数据的录入、显示、保存、查询(按学号或姓名查询)、修改和删除功能。

    3、对Student类重载"=="运算符和"="运算符,"=="运算符判断两个Student类对象的id属性是否相等;"="运算符实现Student类对象的赋值操作。

    二.环境

    语言:C++

    平台:VS2013

    三.设计思路或方案

    根据实验要求把整个系统分化成不同的模块,每个模块完成一个特定的子功能。最后把这些模块结合起来组成一个整体,逐一实现各个功能。

    流程图如下:




    根据流程图可以看出,设计学生管理系统采取先局部后整体,首先从最小的时间类Date开始设计,然后把Date类对象放入学生类Student作为其中的一个私有数据成员,完成对Student类的设计。为了增强系统的模拟性以及程序的健壮性,引入异常机制的管理,创建Date_Exception类从C++异常类logic_error进行共有继承,对于不合法的Date输入进行重新操作(比如一年只有12个月且为整数,输入其他非法数字选择重新输入或者退出当前操作(如录入或者修改等))。对于基础类的准备工作大概已经完成,接下来则根据需求分别设计数据的录入、显示、保存、查询(按学号或姓名查询)、修改和删除功能。

    四.程序清单

    学生管理系统实现与设计分为四个文件分别为:

    main.cpp存有主函数以及关键函数增删改查的声明和实现,是程序运行的主体。

    Student.h主要存有Date类,Student类,Date_Exception类声明和简单实现

    Student.cpp主要存有3个类内复杂成员函数实现

    Interface.h开始和结束界面的声明和实现


    文件main.cpp

    #include "Student.h"  
    #include "interface.h"  
    #include <iostream>  
    #include <cstdlib>  
    #include <iomanip>  
    #include <fstream>  
      
    using namespace std;  
    const int MAX = 200;//数组大小   
      
    void menu_display();//显示菜单  
    void print_students_info(Student *stu);//显示全体学生信息  
    void read_student_info(Student *stu);//录入学生信息  
    int search_by_number(Student *stu, const int num);//根据学号查询  
    void search_by_name(Student *stu, const string name);//根据姓名查询 考虑重名  
    void modify_student(Student *stu, int num, int choice);//修改学生信息  
    void delete_student(Student *stu, int num);//删除学生信息  
    void write_file(Student *stu, const string file_name);//保存到文件  
      
    int main()  
    {  
        Front();//开始的界面   
      
        Date date[4];  
        date[1].setDate(1996, 2, 3);  
        date[2].setDate(1995, 12, 1);  
        date[3].setDate(1997, 6, 6);  
        Student students[MAX];  
        students[1].setStudent("徐一", 1, "男", date[1], "西安", "江苏");  
        students[2].setStudent("刘二", 2, "女", date[2], "西安", "陕西");  
        students[3].setStudent("张三", 3, "男", date[3], "西安", "浙江");  
      
        int flag = 1;  
        while (flag) {  
            menu_display();  
            cout << "输入你想执行的操作:";  
            char ch;  
            cin >> ch;  
            switch (ch) {  
            case '1':  
                cout << endl;  
                cout << "显示当前全体学生信息:" << endl;  
                print_students_info(students);  
                cout << endl;  
                break;  
            case '2':  
                cout << endl;  
                cout << "输入你想录入的学生信息:(学号根据当前学生人数自动排序)" << endl;  
                read_student_info(students);  
                cout << "显示当前全体学生信息:" << endl;  
                print_students_info(students);  
                cout << endl;  
                break;  
            case '3':  
                cout << endl;  
                cout << "1.根据学号查询\t2.根据姓名查询\t3.退出:";  
                int choice;  
                cin >> choice;  
                if (choice == 1) {  
                    cout << "请输入查找的学号:";  
                    int num;  
                    cin >> num;  
                    int i = search_by_number(students, num);  
                    if (i == 0)  
                        cout << "找不到此学生信息" << endl << endl;  
                    else{  
                        cout << "学生信息如下:" << endl;  
                        students[i].printStudent();  
                        cout << endl;  
                    }  
                }  
                else if (choice == 2) {  
                    cout << "请输入查找的姓名:";  
                    string name;  
                    cin >> name;  
                    search_by_name(students, name);  
                    cout << endl;  
                }  
                else {  
                    cout << endl;  
                    break;  
                }  
                break;  
            case '4':  
            {  
                        cout << endl;  
                        cout << "请输入你想修改的学号:";  
                        int i;  
                        cin >> i;  
                        int n = 1;  
                        while (students[n].getName() != "Andy") {  
                            n++;  
                        }//求现在的学生人数  
                        if (i > n - 1) {  
                            cout << "没有此学生信息!" << endl;  
                            cout << endl;  
                        }  
                        else{  
                            cout << "输入你想修改的属性(1.性别\t2.出生日期\t3.地址\t4.籍贯):";  
                            int no;  
                            cin >> no;  
                            modify_student(students, i, no);  
                            cout << "显示当前全体学生信息:" << endl;  
                            print_students_info(students);  
                            cout << endl;  
                        }  
                        break;  
            }  
            case '5':  
                cout << endl;  
                cout << "请输入你想删除的学号:";  
                int i0;  
                cin >> i0;  
                delete_student(students, i0);  
                cout << "显示当前全体学生信息:" << endl;  
                print_students_info(students);  
                cout << endl;  
                break;  
            case '6':  
            {  
                        cout << endl;  
                        cout << "输入你想写入的文件名:";  
                        string file_name;  
                        cin >> file_name;  
                        write_file(students, file_name);  
                        cout << endl;  
                        break;  
            }  
            case '7':  
                cout << endl;  
                cout << "退出系统!";  
                cout << endl;  
                flag = 0;  
                break;  
            }//switch  
        }//while  
        cout << endl;  
      
        Back();//结束界面   
        return 0;  
    }  
      
    void menu_display()  
    {  
        for (int i = 0; i<10; i++)  
            cout << "*";  
        cout << "学生管理系统";  
        for (int i = 0; i<10; i++)  
            cout << "*";  
        cout << endl;  
        cout << "* 1.显示" << "\t\t" << "2.录入 *" << endl;  
        cout << "* 3.查询" << "\t\t" << "4.修改 *" << endl;  
        cout << "* 5.删除" << "\t\t" << "6.打印 *" << endl;  
        cout << "* 7.退出" << "\t\t" << "       *" << endl;  
        for (int i = 0; i<32; i++)  
            cout << "*";  
        cout << endl;  
    }  
      
    void print_students_info(Student *stu)  
    {  
        int num = 1;  
        while (stu[num].getName() != "Andy") {  
            num++;  
        }  
        cout << "姓名" << "   " << "学号" << "  " << "性别" << setw(12) << "出生日期" << setw(12) << "地址" << setw(12) << "籍贯" << endl;  
        for (int i = 1; i < num; i++) {  
            if (stu[i].getName() == "无") {  
                cout << endl;  
                continue;  
            }  
            stu[i].printStudent();  
        }  
    }  
      
    void read_student_info(Student *stu)  
    {  
        string name, sex, address, native_place;  
        Date date;  
        cout << "姓名:";  
        cin >> name;  
        cout << "性别:";  
        cin >> sex;  
        try {  
            cout << "出生日期:";  
            cin >> date;  
        }  
        catch (Date_Exception &e) {  
            cout << e.getSide() << e.what() << endl;  
            cout << "是否要重新输入(y or n)";  
            char ch;  
            cin >> ch;  
            if (ch == 'y') {  
                cout << "出生日期:";  
                cin >> date;  
            }  
            else{  
                cout << "录入信息失败!" << endl;  
                return;  
            }  
        }  
        cout << "地址:";  
        cin >> address;  
        cout << "籍贯:";  
        cin >> native_place;  
        int i = 1;  
        while (stu[i].getName() != "Andy") {  
            i++;  
        }  
        stu[i].setStudent(name, i, sex, date, address, native_place);  
        cout << "录入学生信息成功!" << endl;  
    }  
      
    int search_by_number(Student *stu, const int num)  
    {  
        int n = 1;  
        while (stu[n].getName() != "Andy") {  
            ++n;  
        }  
        if (num > n - 1)  
            return 0;  
        int i = 1;  
        while (i < n) {  
            if (i == num)  
                return i;  
            i++;  
        }  
        return 0;  
    }  
      
    void search_by_name(Student *stu, const string name)  
    {  
        int n = 1;  
        while (stu[n].getName() != "Andy") {  
            n++;  
        }  
        int i = 1;  
        int flag = 0;  
        while (i++ < n) {  
            if (stu[i].getName() == name) {  
                stu[i].printStudent();  
                flag = 1;  
            }  
        }  
        if (flag == 0)  
            cout << "找不到此学生信息!" << endl;  
    }  
      
    void modify_student(Student *stu, int num, int choice)  
    {  
        //choice:1.性别\t2.出生日期\t3.地址\t4.籍贯  
        switch (choice) {  
        case 1:  
        {  
                  cout << "输入性别:";  
                  string sex1;  
                  cin >> sex1;  
                  stu[num].setSex(sex1);  
                  break;  
        }  
        case 2:  
        {  
                  Date date;  
                  try {  
                      cout << "输入出生日期:";  
                      cin >> date;  
                  }  
                  catch (Date_Exception &e) {  
                      cout << e.getSide() << e.what() << endl;  
                      cout << "是否要重新输入(y or n)";  
                      char ch;  
                      cin >> ch;  
                      if (ch == 'y') {  
                          cout << "出生日期:";  
                          cin >> date;  
                      }  
                      else{  
                          cout << "修改信息失败!" << endl;  
                          return;  
                      }  
                  }  
                  stu[num].setDate(date);  
                  break;  
        }  
      
        case 3:  
        {  
                  cout << "输入地址:";  
                  string address;  
                  cin >> address;  
                  stu[num].setAddress(address);  
                  break;  
        }  
        case 4:  
        {  
                  cout << "输入籍贯:";  
                  string native_place;  
                  cin >> native_place;  
                  stu[num].setNativePlace(native_place);  
                  break;  
        }  
      
        }  
        cout << "修改信息成功!" << endl;  
    }  
      
    void delete_student(Student *stu, int num)  
    {  
        Date date(0, 0, 0);  
        stu[num].setStudent("无", 0, "无", date, "无", "无");  
        cout << "删除信息成功!" << endl;  
    }  
      
    void write_file(Student *stu, const string file_name)  
    {  
        //格式("Andy", 1, "男", date, "西安", "江苏")  
        ofstream output;  
        output.open(file_name);  
        if (output.fail()) {  
            cout << "can't open the file" << endl;  
        }  
        int n = 1;  
        while (stu[n].getName() != "Andy") {  
            n++;  
        }  
        for (int i = 1; i < n; i++) {  
            if (stu[i].getName() == "无") {  
                output << endl;  
                continue;  
            }  
            output << setw(5) << stu[i].getName() << setw(8) << stu[i].getNumber() << setw(13) << stu[i].getSex() << setw(17)  
                << stu[i].getDate() << setw(24) << stu[i].getAddress() << setw(29) << stu[i].getNativePlace() << endl;  
        }  
        output.close();  
        cout << "数据写入文件成功!" << endl;  
    }  
    


    文件interface.h

    #ifndef _INTERFACE_H_  
    #define _INTERFACE_H_   
    #include <iostream>  
    #include <windows.h>  
    using namespace std;  
      
    void gotoxy(int x, int y)//设置坐标   
    {  
        COORD c;  
        c.X = x;  
        c.Y = y;  
        SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), c);  
    }  
      
    bool setcolor(WORD wAttributes)//设置颜色   
    {  
        HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);  
        if (hConsole == INVALID_HANDLE_VALUE)  
            return false;  
        bool bResult = SetConsoleTextAttribute(hConsole, wAttributes);  
        return bResult;  
    }  
      
    void Front()//开始的界面   
    {  
        gotoxy(22, 10);  
        setcolor(10);  
        cout << "学生";  
        setcolor(12);  
        cout << "管理";  
        setcolor(0x0007);  
        cout << "系统";  
        setcolor(9);  
        cout << "设计";  
        setcolor(0x0006);  
        cout << "实现";  
        gotoxy(42, 13);  
        setcolor(15);  
        cout << "BY 徐洋 and 雷婕";  
        Sleep(3000);  
        system("cls");  
    }  
      
    void Back()//结束的界面   
    {  
        system("cls");  
        setcolor(15);  
        gotoxy(20, 8);  
        cout << "感谢你使用*学生管理系统*" << endl << endl;  
        int i;  
        for (i = 0; i < 10; i++){  
            gotoxy(20 + i, 9);  
            cout << "欢迎你下次使用!!!";  
            Sleep(200);  
            if (i != 9){  
                gotoxy(20 + i, 9);  
                putchar(' ');  
            }  
        }  
        Sleep(3000);  
        exit(0);  
    }  
      
    #endif  


    文件Student.h

    #ifndef _STUDENT_H_  
    #define _STUDENT_H_  
      
    #include <iostream>  
    #include <string>  
    #include <iomanip>  
    #include <stdexcept>  
    using namespace std;  
      
    class Date_Exception :public logic_error {  
    private:  
        int var_;  
    public:  
        Date_Exception(int var) :logic_error("不是正常值!")  
        {  
            var_ = var;  
        }  
        double getSide() const { return var_; }  
    };  
      
    class Date {  
    private:  
        int year_;  
        int month_;  
        int day_;  
    public:  
        Date() :year_(0), month_(0), day_(0) {}  
        Date(int year, int month, int day)  
        {  
            year_ = year;  
            month_ = month;  
            day_ = day;  
        }  
        void setDate(int year, int month, int day)  
        {  
            if (year < 1990 || year>2016)  
                throw Date_Exception(year);  
            year_ = year;  
            if (month < 1 || month>12)  
                throw Date_Exception(month);  
            month_ = month;  
            if (day < 1 || day>31)  
                throw Date_Exception(day);  
            day_ = day;  
        }  
        int getYear() const { return year_; }  
        int getMonth() const { return month_; }  
        int getDay() const { return day_; }  
    };  
      
    class Student {  
    private:  
        string name_;//姓名  
        int number_;//学号  
        string sex_;//性别  
        Date date_;//出生日期  
        string address_;//住址  
        string native_place_;//籍贯  
    public:  
        //default value("Andy", 1, "男",date, "西安", "江苏")  
        Student() :name_("Andy"), number_(1), sex_("男"), date_(0, 0, 0), address_("西安"), native_place_("江苏") {}  
        Student(string name, int number, string sex, Date date, string address, string native_place);  
      
        void setStudent(string name, int number, string sex, Date date, string address, string native_place);  
        void setSex(string sex) { sex_ = sex; }  
        void setDate(Date date) { date_ = date; }  
        void setAddress(string address) { address_ = address; }  
        void setNativePlace(string native_place) { native_place = native_place; }  
      
        string getName() const { return name_; }  
        int getNumber() const { return number_; }  
        string getSex() const { return sex_; }  
        Date getDate() const { return date_; }  
        string getAddress() const { return address_; }  
        string getNativePlace() const { return native_place_; }  
      
        bool operator ==(Student &other);  
        Student& operator =(Student &other);  
        friend ostream &operator <<(ostream &out, const Date &other);  
        friend istream &operator >>(istream &in, Date &other);  
        void printStudent();  
    };  
      
    ostream &operator <<(ostream &out, const Date &other);  
    istream &operator >>(istream &in, Date &other);  
      
    #endif // !_STUDENT_H  
    

    文件Student.cpp

    #include "Student.h"  
      
    Student::Student(string name, int number, string sex, Date date, string address, string native_place) :name_(name),  
    number_(number), sex_(sex), date_(date), address_(address), native_place_(native_place) { }  
      
    void Student::setStudent(string name, int number, string sex, Date date, string address, string native_place)  
    {  
        name_ = name;  
        number_ = number;  
        sex_ = sex;  
        date_ = date;  
        address_ = address;  
        native_place_ = native_place;  
    }  
      
    bool Student::operator ==(Student &other)  
    {  
        return (name_ == other.name_&&number_ == other.number_&&sex_ == other.sex_);  
    }  
      
    Student& Student::operator=(Student &other)  
    {  
        name_ = other.name_;  
        number_ = other.number_;  
        sex_ = other.sex_;  
        date_ = other.date_;  
        address_ = other.address_;  
        native_place_ = other.native_place_;  
        return *this;  
    }  
      
    ostream &operator <<(ostream &out, const Date &other)  
    {  
        out << other.getYear() << "-" << other.getMonth() << "-" << other.getDay();  
        return out;  
    }  
      
    istream &operator >>(istream &in, Date &other)  
    {  
        int year, month, day;  
        in >> year >> month >> day;  
        other.setDate(year, month, day);  
        return in;  
    }  
      
    void Student::printStudent()  
    {  
        cout << name_ << setw(6) << number_ << setw(6) << sex_ << setw(9) << date_ << setw(12) << address_ << setw(12) << native_place_ << endl;  
    }  

    五.代码结果










    展开全文
  • 系统所需的具体相关技术和软件工具,比如java技术和MySQL技术和ssm框架以及数据库技术,系统的总体设计思路进行详细的说明和分析,包括系统功能、数据流图、功能分析和数据库的设计,同时对整体的ER图进行了全面的说明...
  • 学生宿舍管理系统设计与实现(课程论文)

    万次阅读 多人点赞 2018-12-11 09:29:36
    学生宿舍管理系统设计与实现   摘 要:现如今高校大学生越来越多,寝室压力巨大,学生不好管理。学生宿舍管理系统对于一个学校来说是必不可少的组成部分。目前好多学校还停留在宿舍管理人员手工记录数据的最初...
  • 基于php学生信息管理系统设计

    千次阅读 2019-04-13 23:42:47
    若干年前,各个学校的学生成绩管理基本上都是靠手工进行,随着学校的规模增大,有关学生信息管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生信息管理。但手工管理具有效率底、易出错、检索...
  • 摘 要 随着科技与经济的不断发展,在各大中小学校,用计算机管理学校的信息已经越来越普遍了。用计算机不但可以提高工作效率,而且还...通过实现和完善东软信息学院的梦想启航梦想启航梦想启航学生信息管理系统学生
  • 本系统以目前在网上已经出现的“基于Web学生考勤管理系统”为基础,运用Android平台进行相关设计使得教师或者考勤人员只需在Android手机上就可以很方便地并且及时完成每日的考勤,另外领导、教师和学生都可以随时...
  • C语言课程设计——学生考勤管理系统 题目要求: 学生考勤管理系统设计 (1)问题描述 考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课、课程名称、学生姓名、缺课类型(迟到、早退、请假及旷课)。采取...
  • Java 学生信息管理系统

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

    千次阅读 多人点赞 2020-01-31 11:03:09
    C语言实现学生成绩管理系统(小白也看得懂) ...程序设计整体思路 程序主要实现思路是依靠链表,数组,指针,结构体等相关知识,其中的核心是对链表的操作。 ①:使用单链表作为程序核心,单链表...
  • 信息管理系统 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对...
  • Java学生成绩管理系统

    2010-05-12 09:45:41
    2、理解整体算法的思路,即actionPerformed()的算法。 3、输入学生姓名、成绩,完成信息的录入,并将数据存储到文件中。 4、输入学生姓名,从文件中查询该姓名的学生的成绩,找到一个成绩后可以选择是否继续查询。 5...
  • 学生信息管理系统——整体构思

    千次阅读 热门讨论 2014-08-03 10:36:02
    现在完成了学生信息管理
  • 学生信息管理系统报告

    千次阅读 2020-09-17 19:12:58
    沈 阳 工 程 学 院 课 程 设 计 设计题目: 学生信息管理系统 院 系 信息学院 班级 计算机B191 学生姓名 陈力源 冯帅 学号 30 29 指导教师 关 颖...
  • wxpython+MySQL实现学生信息管理系统

    万次阅读 多人点赞 2018-09-18 23:43:51
    1.布局管理是可视化编程的基础思维,尽量避免定点式布局,不规则分布的各种控件可以局部先用wx.StaticBox(静态框)水平或垂直组合进来,再横向或纵向上与其他控件组合并,利用布局管理的内置参数设置,灵活控制想要...
  • 《C语言程序设计》实训报告——学生成绩管理系统 一、课程设计题目 《学生成绩管理系统》 二、课程设计要求 综合利用顺序、选择、循环等各种程序结构,使用自定义函数和二维数组,完成任务。 三、课程设计思路 3.1...
  • 史上最全面的python学生管理系统教程(一) 史上最全面的python学生管理系统教程(二) 序言 这篇将开始软件中学生页面的开发过程,将分为以下几个板块:注册与登录,查看个人成绩,获得当前登录帐号,修改个人....
  • 基于Web的学生成绩管理系统

    千次阅读 2021-03-05 20:07:33
    本次课程设计课题为学生成绩管理系统,该学生成绩管理系统主要包括前台用户界面的开发和后台数据库的开发,重点在于后台数据库的开发。要求建立起完整性强、数据一致性和数据安全性好的数据库。在前端用户界面的开发...
  • 学生信息管理系统

    2013-06-24 22:04:31
    一、题目:学生信息管理系统 二、目的与要求 1. 目的: (1) 掌握面向对象程序设计的基本思路和方法; (2) 了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程; (3) 进一步熟悉C++...
  • C++实现:学生管理系统(详细解析)

    万次阅读 多人点赞 2020-05-15 23:12:13
    学生成绩管理系统 (1)增加记录:要求可以连续增加多条记录。 (2)查找:可以根据姓名(或学号)查找某个学生的课程成绩,查找某门课程成绩处于指定分数段内的学生名单等等。可以实现模糊查询,即输入名字的一部 ...
  • 实验目的 基本要求 学生选课和成绩管理是高等学校教务管理的重要组成部分,主要包括教师管理学生成绩梦块、学生选课模块和系统管理模块。...请设计一个系统实现对学生的选课和成绩的管理系统要求实现以下功能: 教师
  • 基于Servlet、JSP的学生管理系统(附完整源码)

    千次阅读 多人点赞 2020-12-02 18:11:36
    最近重温servlet,想到了大学时期用同一个“学生管理系统”水了几门课的课程设计,不免感慨万千。 周末简单的写了个界面,建了几张表,做了一个小系统(试图找一找当年划水的感觉,可惜没找到)。 写的比较简单,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,244
精华内容 4,097
关键字:

学生管理系统的整体设计思路