精华内容
下载资源
问答
  • 学生成绩管理系统

    2013-08-28 14:06:43
    用C语言编写的学生成绩管理系统,是大二时的课设作业,运行结果正确没有错误。
  • 运用JSP,Servlet等Web开发技术开发的一个学生成绩管理系统。1. 充分利用实验1的成果,利用JSP显示实验1的运行结果。即原来输出在控制台的结果改成用JSP显示。 2. 要求结合JSP和Servlet的特性实现相关功能。设计主页...
  • 程序特点:为在线多用户管理系统。提供6种权限用户:校长室(可查询所有学生成绩信息),班主任(可录入、查询所任班级的所有学生成绩信息),任课老师(可录入、查询所任班级课程的所有学生成绩信息),学生、学生...
  • c++学生成绩管理系统

    2020-08-12 21:58:49
    本文包括学生成绩管理系统(链表实现)运行结果截图、自测数据、源代码、调试截图以及流程图(总体流程图和各个函数流程图)。 本人小白一枚,项目比较简陋,大神勿喷! 1. 问题描述 对班级学生的考试成绩进行统一...

    本文包括学生成绩管理系统(链表实现)运行结果截图、自测数据、源代码、调试截图以及流程图(总体流程图和各个函数流程图)。

    本人小白一枚,项目比较简陋,大神勿喷!

    1. 问题描述

    对班级学生的考试成绩进行统一管理,学生信息包括学号、姓名、数学成绩、英语成绩、物理成绩、总分。将数据存放到结构体中,用指针对节点进行操作处理。

    2. 实现功能

    1. 根据用户输入的学号,对节点进行增删查改
    2. 根据学号遍历链表节点
    3. 根据数学、英语、物理成绩以及总分排序输出学生信息

    3. 程序运行结果

    在这里插入图片描述

    4. 自测数据

    1
    2 lili 90 89 70
    1
    4 tici 98 79 86
    1
    3 wuxi 62 77 93
    1
    1 qiaz 87 78 84
    1
    5 ervi 79 81 95
    5
    4
    5
    2
    1
    qiaz 88 96 79
    6
    7
    8
    9
    3
    5
    5
    10
    

    5. 程序代码

    #include<iostream>
    #include<string>
    using namespace std;
    
    typedef struct student {
    	int id;//学号
    	string name;//姓名
    	int math;//数学
    	int english;//英语
    	int physics;//物理
    	int sum;//总分
    	struct student *next;
    }stu, *List;
    
    
    stu *head;
    void modify();//修改一个节点
    void add();//插入一个节点
    void delt();//删除一个节点
    void print_id();//遍历链表节点
    void find();//查找一个节点
    void print_sum();//排序输出全班总分
    void print_math(); //排序输出全班数学成绩
    void print_english();//排序输出全班英语成绩
    void print_physics();//排序输出全班物理成绩
    void sort(int flag);
    
    
    int main()
    {
    	head = new stu;
    	head->next = NULL;
    	int choice;
    	cout << "学生成绩管理系统\n\n";
    	cout << "1.插入一个节点\n2.修改一个节点\n3.删除一个节点\n4.查找一个节点\n5.遍历链表节点\n6.排序输出全班总分\n7.排序输出全班数学成绩\n8.排序输出全班英语成绩\n9.排序输出全班物理成绩\n10.退出\n\n\n\n";
    	cout << "输入选择(1-10): ";
    	cin >> choice;
    	while (1)
    	{
    		switch (choice)
    		{
    		case 1: add();   break;
    		case 2: modify();   break;
    		case 3: delt();   break;
    		case 4: find();   break;
    		case 5: print_id();   break;
    		case 6: print_sum();   break;
    		case 7: print_math();   break;
    		case 8: print_english();	break;
    		case 9: print_physics();	break;
    		case 10: exit(0);
    		default: cout << "输入有误!\n";   break;
    		}
    		cout << "输入选择(1-10): ";
    		cin >> choice;
    	}
    	return 0;
    }
    
    void test() {
    	if (!head) {
    		cout << "head NULL\n";
    		exit(-1);
    	}
    }
    
    void find() {
    	cout << "输入要查找学生的学号: ";
    	int id;
    	cin >> id;
    	stu *p;
    	test();
    	p = head->next;
    	while (p)
    	{
    		//cout << p->id << endl;
    		if (p->id == id)
    		{
    			cout << "学号:" << p->id << ",姓名:" << p->name << ",数学成绩:" << p->math << ",英语成绩:" << p->english << ",物理成绩:" << p->physics << ",总分:" << p->sum << endl;
    			return;
    		}
    		p = p->next;
    	}
    	cout << "学号不存在!" << endl;
    }
    
    void modify()
    {
    	cout << "输入要修改学生的学号: ";
    	int id;
    	cin >> id;
    	stu *p;
    	test();
    	p = head->next;
    	while (p)
    	{
    		//cout << p->id << endl;
    		if (p->id == id)
    		{
    			cout << "请输入修改后的名字,数学成绩,英语成绩,物理成绩: ";
    			string newname;
    			int newmath, newenglish, newphysics;
    			cin >> newname >> newmath >> newenglish >> newphysics;
    			p->sum = newmath + newenglish + newphysics;
    			p->name = newname;
    			p->math = newmath;
    			p->english = newenglish;
    			p->physics = newphysics;
    			cout << "修改成功" << endl;
    			return;
    		}
    		p = p->next;
    	}
    	cout << "学号不存在!" << endl;
    }
    
    
    void add()
    {
    	stu *p = head;
    	stu *q = new stu;
    	cout << "输入新加同学的学号,姓名,数学成绩,英语成绩,物理成绩: ";
    	cin >> q->id >> q->name >> q->math >> q->english >> q->physics;
    	q->sum = q->math + q->english + q->physics;
    	q->next = NULL;
    	if (p->next == NULL) {
    		p->next = q;
    		//p = q;
    		return;
    	}
    	
    	while (p->next != NULL) {
    		stu *temp = p;
    		p = p->next;
    		if (p->id > q->id) {
    			q->next = p;
    			temp->next = q;
    			return;
    		}
    	}
    	p->next = q;
    	//p = q;
    	return;
    }
    
    void delt()
    {
    	//system("cls");
    	stu *p, *q;
    	int id;
    	cout << "输入要删除学生的学号: ";
    	cin >> id;
    	test();
    	q = head;
    	p = q->next;
    	while (1)
    	{
    		if (p->id == id)
    		{
    			q->next = p->next;
    			delete p;
    			cout << "删除成功" << endl;
    			return;
    		}
    		q = p;
    		p = q->next;
    	}
    	cout << "学号不存在" << endl;
    }
    
    
    void print_id()
    {
    	stu *p;
    	test();
    	p = head->next;
    	sort(1);
    	while (p)
    	{
    		//cout << p->name << "      " << p->id << endl;
    		cout << "学号:" << p->id << ",姓名:" << p->name << ",数学成绩:" << p->math << ",英语成绩:" << p->english << ",物理成绩:" << p->physics << ",总分:" << p->sum << endl;
    		p = p->next;
    	}
    }
    
    void print_sum()
    {
    	stu *p;
    	test();
    	p = head->next;
    	sort(2);
    	while (p)
    	{
    		//cout << p->name << "      " << p->id << endl;
    		cout << "学号:" << p->id << ",姓名:" << p->name << ",总分:" << p->sum << endl;
    		p = p->next;
    	}
    }
    
    void print_math()
    {
    	stu *p;
    	test();
    	p = head->next;
    	sort(3);
    	while (p)
    	{
    		//cout << p->name << "      " << p->id << endl;
    		cout << "学号:" << p->id << ",姓名:" << p->name << ",数学成绩:" << p->math << endl;
    		p = p->next;
    	}
    }
    
    void print_english()
    {
    	stu *p;
    	test();
    	p = head->next;
    	sort(4);
    	while (p)
    	{
    		//cout << p->name << "      " << p->id << endl;
    		cout << "学号:" << p->id << ",姓名:" << p->name << ",英语成绩:" << p->english << endl;
    		p = p->next;
    	}
    }
    
    void print_physics()
    {
    	stu *p;
    	test();
    	p = head->next;
    	sort(5);
    	while (p)
    	{
    		//cout << p->name << "      " << p->id << endl;
    		cout << "学号:" << p->id << ",姓名:" << p->name << ",物理成绩:" << p->physics << endl;
    		p = p->next;
    	}
    }
    
    void sort(int flag) {
    	stu *p, *q;
    	if (flag == 1)
    	{
    		for (p = head->next; p != NULL; p = p->next)
    		{
    			for (q = p->next; q != NULL; q = q->next)
    				if (p->id > q->id)//根据学号从小到大排序
    				{
    					int t1 = p->id; p->id = q->id; q->id = t1;
    					string t2 = p->name; p->name = q->name; q->name = t2;
    					int t3 = p->math; p->math = q->math; q->math = t3;
    					int t4 = p->english; p->english = q->english; q->english = t4;
    					int t5 = p->physics; p->physics = q->physics; q->physics = t5;
    					int t6 = p->sum; p->sum = q->sum; q->sum = t6;
    				}
    		}
    	}
    	else if (flag == 2)
    	{
    		for (p = head->next; p != NULL; p = p->next)
    		{
    			for (q = p->next; q != NULL; q = q->next)
    				if (p->sum < q->sum)//根据总分从大到小排序
    				{
    					int t1 = p->id; p->id = q->id; q->id = t1;
    					string t2 = p->name; p->name = q->name; q->name = t2;
    					int t3 = p->math; p->math = q->math; q->math = t3;
    					int t4 = p->english; p->english = q->english; q->english = t4;
    					int t5 = p->physics; p->physics = q->physics; q->physics = t5;
    					int t6 = p->sum; p->sum = q->sum; q->sum = t6;
    				}
    		}
    	}
    	else if (flag == 3)
    	{
    		for (p = head->next; p != NULL; p = p->next)
    		{
    			for (q = p->next; q != NULL; q = q->next)
    				if (p->math < q->math)//根据数学从大到小排序
    				{
    					int t1 = p->id; p->id = q->id; q->id = t1;
    					string t2 = p->name; p->name = q->name; q->name = t2;
    					int t3 = p->math; p->math = q->math; q->math = t3;
    					int t4 = p->english; p->english = q->english; q->english = t4;
    					int t5 = p->physics; p->physics = q->physics; q->physics = t5;
    					int t6 = p->sum; p->sum = q->sum; q->sum = t6;
    				}
    		}
    	}
    	else if (flag == 4)
    	{
    		for (p = head->next; p != NULL; p = p->next)
    		{
    			for (q = p->next; q != NULL; q = q->next)
    				if (p->english < q->english)//根据英语从大到小排序
    				{
    					int t1 = p->id; p->id = q->id; q->id = t1;
    					string t2 = p->name; p->name = q->name; q->name = t2;
    					int t3 = p->math; p->math = q->math; q->math = t3;
    					int t4 = p->english; p->english = q->english; q->english = t4;
    					int t5 = p->physics; p->physics = q->physics; q->physics = t5;
    					int t6 = p->sum; p->sum = q->sum; q->sum = t6;
    				}
    		}
    	}
    	else if (flag == 5)
    	{
    		for (p = head->next; p != NULL; p = p->next)
    		{
    			for (q = p->next; q != NULL; q = q->next)
    				if (p->physics < q->physics)//根据物理从大到小排序
    				{
    					int t1 = p->id; p->id = q->id; q->id = t1;
    					string t2 = p->name; p->name = q->name; q->name = t2;
    					int t3 = p->math; p->math = q->math; q->math = t3;
    					int t4 = p->english; p->english = q->english; q->english = t4;
    					int t5 = p->physics; p->physics = q->physics; q->physics = t5;
    					int t6 = p->sum; p->sum = q->sum; q->sum = t6;
    				}
    		}
    	}
    }
    

    6. 调试截图

    在这里插入图片描述
    在这里插入图片描述

    7. 流程图

    1. 总流程图
      在这里插入图片描述
    2. add函数流程图
      在这里插入图片描述
    3. delt函数流程图
      在这里插入图片描述
    4. find函数流程图
      在这里插入图片描述
    5. modify函数流程图
      在这里插入图片描述

    Thank you for your watch!

    展开全文
  • python学生成绩管理系统创建,供大家参考,具体内容如下 要求编写学生类,班级类,并在电脑运行生成表单,输入一个数字,得到对应的结果。 输出样式 代码如下 学生类 class Student: def __init__(self,sno,name,...
  • 实现一个学生成绩管理系统,具有插入、浏览、查询、退出、删除、修改、统计等功能。 用汇编语言编写源程序,上机调试,进行修改,最后能正确得到运行结果
  • 错误 错误未定义书签 错误未定义书签 错误未定义书签 错误未定义书签 错误未定义书签 错误未定义书签 1设计目的及内容要求 2系统总体设计 3系统详细设计 4运行结果及分析 致谢 参考文献 简单学生成绩管理系统的设计...
  • 数据结构课程设计报告 课题名称 学生成绩管理系统 专业班级 学 号 姓 名 指导老师 一课题名称 学生成绩管理系统 二课题设计的基本思想原理和算法描述 1,基本思想 建立一个学生成绩管理系统能够实现每位学生的成绩的...
  • C语言课程设计学生成绩管理系统,包含详细设计,代码,运行结果及截图,参考文献,心得体会,及工具介绍
  • 本资源记录了用JAVA语言设计的学生成绩管理系统,里面有具体方案和具体代码,还有运行结果,仅用于参考。
  • 用Microsoft Visual Studio2012设计窗体,以及SQL server2008建立数据库来实现学生信息管理,课程信息录入,学生成绩管理的各个功能。内含数据库,运行结果
  • mfc学生成绩管理系统

    千次阅读 2020-07-06 10:35:00
    程序设计课程设计报告 目录 一、课程设计题目及内容 ...(2)、创建一个管理学生的类Management,包括实现学生的数据的增加、删除、修改、按课程成绩排序、保存学生数据到文件及加载文件中的数据等功能。

    程序设计课程设计报告

    目录
    一、课程设计题目及内容
    二、程序中使用的数据及主要符号说明
    三、带有详细注释的自己编写的源程序
    四、程序运行时的效果图
    五、实验结果分析,实验收获和体会。
    1、实验结果分析:
    2、实验收获和体会:

    一、实验内容
    实验1:
    (1)、设计一个学生类Student,包括数据成员:姓名、学号、二门课程(面向对象程序设计、高等数学)的成绩。
    (2)、创建一个管理学生的类Management,包括实现学生的数据的增加、删除、修改、按课程成绩排序、保存学生数据到文件及加载文件中的数据等功能。
    (3)、创建一个基于对话框的MFC应用程序,程序窗口的标题上有你姓名、学号和应用程序名称。使用(1)和(2)中的类,实现对学生信息和成绩的输入和管理。

    (4)、创建一个单文档的MFC应用程序,读取(3)中保存的文件中的学生成绩,分别用直方图和折线方式显示所有学生某课程的成绩分布图。
    在这里插入图片描述

    在这里插入图片描述

    二、程序中使用的数据及主要符号说明

    unsigned int mID;//学号
    	CString mName;//姓名
    	unsigned int mAge;//年龄
    	CString mAdd;//地址
    	float mCpp;//c++成绩
    	float mMath;//数学成绩
    	CListBox m_list;//列表名
    	afx_msg void OnClickedButtonAdd();//添加按钮
    	afx_msg void OnClickedButtonDel();//删除按钮
    	afx_msg void OnClickedButtonChange();//修改
    	afx_msg void OnClickedButtonOk();//确定
    	afx_msg void OnClickedButtonCancle();//取消
    	
    	afx_msg void OnSelchangeList1();//列表控件
    	virtual BOOL OnInitDialog();//初始化对话框
    	afx_msg void OnDestroy();//防止内存泄漏
    	afx_msg void OnClickedButton6();
    	int m_count;//记录人数
    	int mSex;//性别
    
    
    

    三、带有详细注释的自己编写的源程序

    1)、设计一个学生类Student
    //Student.h
    #pragma once
    
    #include<string>
    //using namespace std;
    #include<iostream>
    
    enum Sex { male, female };
    class Student
    {
    public:
    	Student();//构造函数
    	~Student();//析构函数
    
    	unsigned int GetID()const
    	{
    		return m_num;
    	}
    	void SetID(unsigned int ID) { m_num = ID; };
    	std::string GetName()const
    	{
    		return m_name;
    	}
    	void SetName(const std::string& name) { m_name = name; };
    	Sex GetSex()const
    	{
    		return m_sex;
    	}
    	void SetSex(Sex sex) { m_sex = sex; };
    	unsigned int GetAge()const
    	{
    		return m_age;
    	}
    	void SetAge(unsigned int age) { m_age = age; };
    	std::string GetAdd()const
    	{
    		return m_add;
    	}
    	void SetAdd(std::string add) { m_add = add; };
    	float GetCpp()const
    	{
    		return m_cpp;
    	}
    	void SetCpp(float cpp) { m_cpp = cpp; };
    	float GetMath()const
    	{
    		return m_math;
    	}
    	void SetMath(float math) { m_math = math; };
    
    	friend std::ostream& operator<<(std::ostream& os, const Student& st);
    	friend std::istream& operator>>(std::istream& is, Student& st);
    
    private:
    	unsigned int  m_num;//学号
    	std::string m_name;//姓名
    	Sex m_sex;//性别
    	unsigned int m_age;//年龄
    	std::string m_add;//地址
    	float m_cpp;//c++成绩
    	float m_math;//数学成绩
    
    };
    
    //Student.cpp///
    
    #include "pch.h"
    #include "Student.h"
    
    Student::Student()//初始化
    	:m_num(0)
    	, m_name("")
    	, m_sex(male)
    	, m_age(20)
    	, m_add("")
    	, m_cpp(0.0f)
    	, m_math(0.0f)
    {
    
    }
    
    Student::~Student()
    {
    }
    
    std::ostream& operator<<(std::ostream& os, const Student& st)//重载函数
    {
    	os << "" << st.m_num;
    	os << "" << st.m_name;
    	os << "" <<(int )st.m_sex;
    	os << "" << st.m_age;
    	os << "" << st.m_add;
    	os << "" << st.m_cpp;
    	os << "" << st.m_math;
    	return os;
    }
    
    std::istream& operator>>(std::istream& is, Student& st)
    {
    	is >> st.m_num;
    	is >> st.m_name;
    	int sex;
    	is >> sex;
    	st.m_sex = sex == 0 ? male : female;
    	is >> st.m_age;
    	is >> st.m_add;
    	is >> st.m_cpp;
    	is >> st.m_math;
    	return is;
    
    }2)、添加一个CStudentinfo类,包括实现学生的数据的增加、删除、修改、按课程成绩排序、保存学生数据到文件及加载文件中的数据等功能。
    //Dlg.h
    #pragma once
    // CStudentinfo 对话框
    
    class CStudentinfo : public CDialogEx
    {
    	
    private:
    	unsigned int mID;//学号
    	CString mName;//姓名
    	unsigned int mAge;//年龄
    	CString mAdd;//地址
    	float mCpp;//c++
    	float mMath;//数学
    	CListBox m_list;//列表名称
    public:
    	afx_msg void OnClickedButtonAdd();
    	afx_msg void OnClickedButtonDel();
    	afx_msg void OnClickedButtonChange();
    	afx_msg void OnClickedButtonOk();
    	afx_msg void OnClickedButtonCancle();
    public:
    	afx_msg void OnSelchangeList1();
    	virtual BOOL OnInitDialog();
    	afx_msg void OnDestroy();
    	afx_msg void OnClickedButton6();
    	int m_count;人数
    private:
    	int mSex;//性别
    };
    
    
    // CStudentinfo.cpp: 实现文件
    //
    
    #include "pch.h"
    #include "EX03.h"
    #include "afxdialogex.h"
    
    
    #include "Student.h"
    #include "CStudentinfo.h"
    #include <ctime>
    #include <fstream>
    // CStudentinfo 对话框
    
    IMPLEMENT_DYNAMIC(CStudentinfo, CDialogEx)
    
    //对话框初始化
    CStudentinfo::CStudentinfo(CWnd* pParent /*=nullptr*/)
    	: CDialogEx(DIALOG_STUDENT, pParent)
    	, mID(0)
    	, mName(_T(""))
    	, mAge(0)
    	, mAdd(_T(""))
    	, mCpp(0)
    	, mMath(0)
    	, mSex(0)
    	, m_count(0)
    {
    
    }
    
    // CStudentinfo 消息处理程序
    //
    
    //添加
    void CStudentinfo::OnClickedButtonAdd()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	UpdateData(TRUE);
    	if (mID > 0 && !mName.IsEmpty())
    	{
    		Student* pSt = new Student();
    	//	pSt = nullptr;
    		pSt->SetID(mID);
    		pSt->SetName(std::string(mName));
    		pSt->SetSex(mSex == 0 ? male : female);
    		pSt->SetAge(mAge);
    		pSt->SetAdd(std::string(mAdd));
    		pSt->SetMath(mMath);
    		pSt->SetCpp(mCpp);
    		CString temp;
    		temp.Format(_T("%d-%s"), mID, mName);
    		m_list.AddString(temp);
    		m_list.SetItemDataPtr(m_list.GetCount() - 1, pSt);
    
    		mName = "";
    		mAdd = "";
    		mID =0;
    		mAge = 0;
    		mMath = 0;
    		mCpp = 0;
    		UpdateData(false);
    	
    	}
    }
     
    //删除
    void CStudentinfo::OnClickedButtonDel()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	int sel = m_list.GetCurSel();//获取当前对象
    	if (sel == LB_ERR)return;
    	auto pSt = (Student*)m_list.GetItemDataPtr(sel);
    	delete pSt;
    	m_list.DeleteString(sel);
    }
    
    //修改
    void CStudentinfo::OnClickedButtonChange()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	int sel = m_list.GetCurSel();//获取当前对象
    	if (sel == LB_ERR)return;
    	auto pSt = (Student*)m_list.GetItemDataPtr(sel);
    	UpdateData(TRUE);//更新数据
    	pSt->SetID(mID);
    	pSt->SetName(std::string(mName));
    	pSt->SetSex(mSex == 0 ? male : female);
    	pSt->SetAge(mAge);
    	pSt->SetAdd(std::string(mAdd));
    	pSt->SetCpp(mCpp);
    	pSt->SetMath(mMath);
    	CString temp;
    	temp.Format(_T("%d-%s"), mID, mName);
    	m_list.DeleteString(sel);
    	m_list.InsertString(sel, temp);
    	//m_list.AddString(temp);
    	//m_list.SetItemDataPtr(m_list.GetCount() - 1, pSt);
    	m_list.SetItemDataPtr(sel, pSt);
    	mName = "";
    	mAdd = "";
    	UpdateData(false);
    
    }
    
    //确定,保存
    void CStudentinfo::OnClickedButtonOk()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	TCHAR fileName[MAX_PATH];
    	GetModuleFileName(nullptr, fileName, MAX_PATH);
    	CString file = fileName;
    	int pos = file.ReverseFind(_T('.'));
    	file = file.Left(pos + 1) + _T("txt");
    	std::ofstream ofile(file, std::ios::out);
    	if (ofile)
    	{
    		int n = m_list.GetCount();
    		ofile << n << std::endl;
    		for (int k = 0; k < n; ++k)
    		{
    			auto pSt = (Student*)m_list.GetItemDataPtr(k);
    			ofile << (*pSt);
    		}
    	}
    	ofile.close();
    
    	CDialogEx::OnOK();
    }
    
    
    //取消
    void CStudentinfo::OnClickedButtonCancle()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	CDialog::OnOK();
    }
    
    
    
    //列表事件
    void CStudentinfo::OnSelchangeList1()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	int sel = m_list.GetCurSel();//获取当前对象
    	if (sel == LB_ERR)return;
    	auto pSt = (Student*)m_list.GetItemDataPtr(sel);
    //数据读取
    	mID = pSt->GetID();
    	mName = pSt->GetName().c_str();
    	mSex = pSt->GetSex() == male ? 0 : 1;
    	mAge = pSt->GetAge();
    	mAdd = pSt->GetAdd().c_str();
    	mMath = pSt->GetMath();
    	mCpp = pSt->GetCpp();
    	UpdateData(false);
    
    }
    
    //添加额外初始化
    BOOL CStudentinfo::OnInitDialog()
    {
    	CDialogEx::OnInitDialog();
    
    	// TODO:  在此添加额外的初始化 
    
    	//读取信息
    	TCHAR fileName[MAX_PATH];
    	GetModuleFileName(nullptr, fileName, MAX_PATH);
    	CString file = fileName;
    	int pos = file.ReverseFind(_T('.'));
    	file = file.Left(pos + 1) + _T("txt");
    	std::ifstream ifile(file, std::ios::in);
    	if (ifile)
    	{
    		int n = 0;
    		ifile >> n;
    		for (int k = 0; k < n; ++k)
    		{
    			Student* pSt = new Student();
    			ifile >> (*pSt);
    			CString temp;
    			temp.Format(_T("%d-%s"),pSt->GetID(), pSt->GetName().c_str());
    			m_list.AddString(temp);
    			m_list.SetItemDataPtr(m_list.GetCount() - 1, pSt);
    		}
    	}
    
    	return TRUE;  // return TRUE unless you set the focus to a control
    				  // 异常: OCX 属性页应返回 FALSE
    }
    
    //防止内存泄漏
    void CStudentinfo::OnDestroy()
    {
    	int n = m_list.GetCount();
    	for (int k = 0; k < n; ++k)
    	
    		delete (Student*)m_list.GetItemDataPtr(k);
    
    	CDialogEx::OnDestroy();
    
    	// TODO: 在此处添加消息处理程序代码
    }
    
    //随机生成
    void CStudentinfo::OnClickedButton6()
    {
    	// TODO: 在此添加控件通知处理程序代码
    	UpdateData(true);
    	for (int k = 0; k < m_count; ++k)
    	{
    		auto pSt = new Student();
    		pSt->SetID(190620000 + rand() % 10000);
    		TCHAR name[9];
    		for (int i = 0; i < 8; ++i)
    		{
    			name[i] = 65 + rand() % 26;
    		}
    		name[8] = _T('\0');
    		pSt->SetName(std::string(name));
    		pSt->SetSex(rand() % 2 == 0 ? male : female);
    		pSt->SetAge(17 + rand() % 4);
    		pSt->SetAdd(std::string(name));
    		pSt->SetMath(40.0f + rand() % 51);
    		pSt->SetCpp(40.0f + rand() % 54);
    		CString temp;
    		temp.Format(_T("%d: %s"), pSt->GetID(), pSt->GetName().c_str());
    		m_list.AddString(temp);
    		m_list.SetItemDataPtr(m_list.GetCount() - 1, pSt);
    
    	}
    }
    

    (3)、创建一个基于对话框的MFC应用程序
    在这里插入图片描述

    (4)、创建一个单文档的MFC应用程序,读取(3)中保存的文件中的学生成绩,分别用直方图和折线方式显示所有学生某课程的成绩分布图。

    // EX03View.h: CEX03View 类的接口
    //
    
    #pragma once
    
    
    class CEX03View : public CView
    {
    // 重写
    public:
    	virtual void OnDraw(CDC* pDC);  // 重写以绘制该视图
    // 实现
    public:
    	virtual ~CEX03View();
    // 生成的消息映射函数
    public:
    	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
    };
    
    // EX03View.cpp: CEX03View 类的实现
    ///
    
    #include "pch.h"
    #include "framework.h"
    // SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的
    // ATL 项目中进行定义,并允许与该项目共享文档代码。
    #include "EX03Doc.h"
    #include "EX03View.h"
    #include"CStudentinfo.h"
    #include "Student.h"
    #include <fstream>
    //
    // CEX03View
    
    // CEX03View 绘图
    ///
    
    void CEX03View::OnDraw(CDC* pDC )
    {
    	CEX03Doc* pDoc = GetDocument();
    	ASSERT_VALID(pDoc);
    	if (!pDoc)
    		return;
    
    	// TODO: 在此处为本机数据添加绘制代码
    	int counts[][5] = { {0,0,0,0,0},{0,0,0,0,0} };
    	int mathCppMax[2] = { -1,1 };
    	for (int k = 0; k < mMaths.GetCount(); ++k)
    	{
    		//处理数学数据
    		int n = (int)mMaths[k] / 10 - 5;
    		if (n < 0) n = 0;
    		else if (n > 4) n = 4;
    		++counts[0][n];
    		if (mathCppMax[0] < counts[0][n]) 
    			mathCppMax[0] = counts[0][n];
    		//处理 C++
    		n = (int)mCpps[k] / 10 - 5;
    		if (n < 0) n = 0;
    		else if (n > 4) n = 4;
    		++counts[1][n];
    		if (mathCppMax[1] < counts[1][n]) 
    			mathCppMax[1] = counts[1][n];
    	}
    	//获取客户区矩形
    	CRect rect;
    	GetClientRect(&rect);
    	//窗口的宽度和高度
    	int w = rect.Width(), h = rect.Height() / 2;
    	//画分割线
    	pDC->MoveTo(0, h);
    	pDC->LineTo(w, h);
    	//显示标题文本
    	CRect rt(0, 0, w, 20);
    	pDC->DrawText(_T("数学成绩统计分布图"), rt, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
    	rt = CRect(0, h, w, h + 20);
    	pDC->DrawText(_T("C++成绩统计分布图"), rt, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
    	//设置画笔
    	CPen pen;
    	pen.CreatePen(PS_SOLID, 2, RGB(0x00, 0x00, 0xFF));
    	auto oldPen = pDC->SelectObject(&pen);
    	//设置阴影画刷
    	CBrush brush0;
    	brush0.CreateHatchBrush(HS_BDIAGONAL, RGB(0x00, 0x12, 0x7C));
    	CBrush brush1;
    	brush1.CreateHatchBrush(HS_FDIAGONAL, RGB(0x00, 0x12, 0x7C));
    	//折线段数据
    	CPoint pts[2][5];
    	//每个矩形的宽度及每个人的高度
    	int dw = 80, dh[2] = { (h - 20) / mathCppMax[0], (h - 20) / mathCppMax[1] };
    	//设置起始位置
    	int x = (w - 5 * dw) / 2;
    	//画矩形图
    	for (int k = 0; k < 5; ++k)
    	{
    		if (k % 2 == 0) pDC->SelectObject(&brush0);
    		else pDC->SelectObject(&brush1);
    		for (int i = 0; i < 2; ++i)
    		{
    			int y = (i + 1) * h - dh[i] * counts[i][k];
    			rt = CRect(x, (i + 1) * h, x + dw, y);
    			pDC->Rectangle(rt);
    			CString temp;
    			temp.Format(_T("%d人"), counts[i][k]);
    			pDC->DrawText(temp, rt, DT_CENTER | DT_VCENTER | DT_SINGLELINE);
    			pts[i][k].x = x + dw / 2;
    			pts[i][k].y = y;
    		}
    		x += dw;
    	}
    	//画折线段
    	CPen redPen;
    	redPen.CreatePen(PS_SOLID, 3, RGB(0xFF, 0x00, 0x00));
    	pDC->SelectObject(&redPen);
    	for (int k = 0; k < 2; ++k) pDC->Polyline(pts[k], 5);
    	pDC->SelectObject(oldPen);
    
    }
    
    
    // CEX03View 消息处理程序
    void CEX03View::OnLButtonDown(UINT nFlags, CPoint point)
    {
    	// TODO: 在此添加消息处理程序代码和/或调用默认值
    
    	CView::OnLButtonDown(nFlags, point);
    	
    		
    		CStudentinfo dlg;
    		if (dlg.DoModal() == IDOK)
    		{
    			//读取信息
    			TCHAR fileName[MAX_PATH];
    			GetModuleFileName(nullptr, fileName, MAX_PATH);
    			CString file = fileName;
    			int pos = file.ReverseFind(_T('.'));
    			file = file.Left(pos + 1) + _T("txt");
    			std::ifstream ifile(file, std::ios::in);
    			mMaths.RemoveAll();
    			mCpps.RemoveAll();
    			if (ifile)
    			{
    				int n = 0;
    				ifile >> n;
    				for (int k = 0; k < n; ++k)
    				{
    					Student* pSt = new Student();
    					ifile >> (*pSt);
    					mMaths.Add(pSt->GetMath());
    					mCpps.Add(pSt->GetCpp());
    				}
    			}
    		}
    }
    
    
    
    

    四、程序运行时的效果图

    在这里插入图片描述

    在这里插入图片描述

    五、实验结果分析,实验收获和体会。
    1、实验结果分析:
    (1)新建了Students.h头文件存储学生类
    (2)将单文档与管理系统关联起来,使得在管理系统界面能够实现绘图功能。
    (3)绘制了单文档的按钮,以及增加相应命令。
    2、实验收获和体会:
    (1)熟练使用UpdateDate函数进行界面数据更改与读入。
    (2)对如listbox等控件的使用有了深层次的理解
    (3)对listbox的各项函数、、sort函数等的使用的更加得心应手。
    (4)领悟了char与CString在调用时的区别,以及掌握了将浮点型转化为字符型的方法。
    (5)能够更加熟练的运用文件输入输出流对数据进行输入输出。
    (7)对单文档的绘图功能有了一定的了解。

    自我评分:91

    展开全文
  • python学生成绩管理系统创建

    千次阅读 2019-06-15 11:09:24
    python学生成绩管理系统创建 要求编写学生类,班级类,并在电脑运行生成表单,输入一个数字,得到对应的结果。 输出样式 代码如下 学生类 class Student: def __init__(self,sno,name,english,math): self.sno=...

    python学生成绩管理系统创建

    要求编写学生类,班级类,并在电脑运行生成表单,输入一个数字,得到对应的结果。

    输出样式
    在这里插入图片描述

    代码如下

    学生类

    class Student:
        def __init__(self,sno,name,english,math):
            self.sno=sno
            self.name=name
            self.__english=english
            self.__math=math
            
        @property
        def english(self):
            return self.__english
            
        @english.setter
        def english(self,english):
            self.__english=english if 0<=english<=100 else 0
            
        @property
        def math(self):
            return self.__math
                 
        @math.setter
        def math(self,math):
            self.__math=math if 0<=math<=100 else 0
            
        def get_average(self):
            return (self.english+self.math)/2
    
    
        def __str__(self):
            s=str.format('{0:>4d}{1: >4s}{2:>8d}{3:>8d}',self.sno,self.name,self.english,self.math)
            return s
            
            
        @staticmethod
        def get_header():
            return  '{0:>2s}{1: >4s}{2:\u3000>4s}{3: >4s}'.format('学号','姓名','英语','数学')
            
        def __eq__(self,other):
            return self.sno==other.sno
            
        def __gt__(self,other):
            return self.sno>other.sno
    

    测试

    #测试
    if __name__=='__main__':
        s1=Student(1,'王大海',100, 65)
        s2=Student(2,'李三',38,45)
        s3=Student(3,'李四',88,45)
        print(s1>s2)
        students=[s2,s1,s3]
        students.sort()
        print(students)
        print(Student.get_header())
        for s in students:
            print(s) 
    

    结果

    在这里插入图片描述

    班级类

    from student import Student
    
    class BanJi:
        def __init__(self,name):
            self.name=name
            self.students=[]
            self.load_data()
            
        def load_data(self):
            with open('data.txt','r')as f:
                for line in f:
                    d=line.split()
                    self.students.append(Student(int(d[0]),d[1],int(d[2]),int(d[3])))
                    
        def show_student(self):
            print(Student.get_header())
            for s in self.students:
                print(s)
                
        def add_student(self,student):
            if student in self.students:
                return '此学生已存在'
            else:
                self.students.append(student)
                return'添加成功'
                
        def __index_student(self,sno):
            s=Student(sno,'',0,0)
            if s not in self.students:
                return None
            else:
                return self.students.index(s)
                
        def find_student(self,sno):
            i = self.__index_student(sno)
            if i is None:
                return None
            else:
                return self.students[i]
    
    
        def delete_student(self,sno):
            i = self.__index_student(sno)
            if i is None:
                r = '没有学号为{0: d}'.format(sno)
            else:
                del self.students[i]
                r = '删除成功!'
            return r
            
        def update_student(self,sno):
            s = self.find_student(sno)
            if s is None:
                return '没有学号为{0:d}的学生!'.format(sno)
            else:
                print(s)
                print('请输入新的值,直接回车不修改!')
                name_str = input('姓名:')
                english_str = input('英语:')
                math_str = input('数学:')
                s.name = name_str if len(name_str)>0 else s.name
                s.name = int(english_str) if len(english_str)>0 else s.english
                s.name = int(math_str) if len(math_str)>0 else s.math
                return '修改成功!'
                
        def save_data(self):
            with open('data.txt','w',encoding = 'GBK') as f:
                for s in self.students:
                    r = str.format('{0:d} {1:s} {2:d} {3:d}\n',s.sno,s.name,s.english,s.math)
                    f.write(r)
                
                    
        def sort_by_english(self,reverse = False):
            self.students.sort(key=lambda x: x.english,reverse = reverse)
    

    学生管理系统

    import os
    from student import Student
    from banji import BanJi
    
    menu = """
    
    *********************
    
        学生成绩管理系统
        1.浏览学生成绩
        2.按学号查找学生
        3.按英语成绩排序
        4.添加学生
        5.删除学生
        6.修改学生信息
        9.保存
        0.退出
        
    *********************
    
    """
    tip = '输入(0-9)选择操作:'
    
    choice = ''
    
    b = BanJi('1802')
    
    os.system('cls')
    print(menu)
    
    while True:
        choice = input(tip)
        os.system('cls')
        print(menu)
        if choice == '0':
            print('数据以保存!')
            break
        elif choice == '1':
            b.show_student()
        elif choice == '2':
            sno = int(input('请输入您需要查询的学生的学号:'))
            s = b.find_student(sno)
            if s is None:
                print('无此学号的学生!')
            else:
                print(s)
        elif choice == '3':
            b.sort_by_english()
            b.show_student()
        elif choice == '4':
            print('请输入学生信息:')
            sno = int(input('学号:'))
            name = input('姓名:')
            english = int(input('英语:'))
            math = int(input('数学:'))
            student = Student(sno,name,english,math)
            r = b.add_student(student)
            print(r)
        elif choice == '5':
            sno = int(input('请输入要删除的学生的学号:'))
            r = b.delete_student(sno)
            print(r)
            
        elif choice == '6':
            sno = int(input('请输入要修改的学生的学号:'))
            r = b.update_student(sno)
            print(r)
            
        elif choice == '9':
            b.save_data()
            print('保存成功!')
        else:
            print('输入错误!')
    

    用spyder或者cmd运行都可以。

    展开全文
  • 学生成绩管理系统 项目说明 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入)。 从文件读取每个学生个人信息和scores.txt信息( scores.txt , scores2.txt为示例文件...
  • 系统用于管理某高校的本科生、研究生2类人员信息: 本科生信息:学号、姓名、性别、专业、年级、班级、高数成绩、英语成绩、C语言、总成绩、班级排名、年级排名 ...有需求分析,系统设计、编码、运行结果
  • 1)程序运行后首先显示学生成绩管理系统界面,其中包含系统功能介绍、操作说明及用户身份验证。 ​例如,开头显示“欢迎使用XXX学生成绩管理系统”,然后要求输入登录密码进行身份验证(密码为cup2016),接着显示...
  • 学生成绩管理系统(代码实现1.开发语言及工具1.开发语言2.开发工具2.代码实现1.类Databese数据库StudentStudentDaoManageSystemMain运行结果新增信息查找信息排序输出名次修改成绩删除信息 1.开发语言及工具 1.开发...

    1.开发语言及工具

    1.开发语言

    JAVA

    2.开发工具

    Idea

    2.代码实现

    1.类

    Databese数据库

    数据库,储存学生信息

    package ManageSystem;
    
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * 数据库,储存信息
     */
    public class Database {
       private List<Student> studentsList=new ArrayList<>();
       public Database(){
           Student student1=new Student("Kobe",2100,"软件工程",90,90,90,90,360);
           studentsList.add(student1);
           Student student=new Student("阿杜",3000,"体育",80,80,80,80,320);
           studentsList.add(student);
           Student student2=new Student("老詹",1000,"体育",85,85,85,85,340);
           studentsList.add(student2);
           Student student3=new Student("哈登",2000,"软件工程",80,85,80,85,330);
           studentsList.add(student3);
       }
       public List<Student> getStudentsList(){
            return studentsList;
       }
       public void setStudentsList(List<Student> studentsList){
           this.studentsList=studentsList;
       }
    }
    
    

    Student

    学生类

    package ManageSystem;
    
    /**
     * 学生类
     */
    public class Student {
        private String Name;//姓名
        private int Number;//学号
        private String Specialty;//专业
        private int no1;
        private int no2;
        private int no3;
        private int no4;
        private int Sum;//总分
        public Student(String Name,int Number,String Specialty,int no1,int no2,int no3,int no4,int sum){
            this.Name=Name;
            this.Number=Number;
            this.Specialty=Specialty;
            this.no1=no1;
            this.no2=no2;
            this.no3=no3;
            this.no4=no4;
            this.Sum=sum;
        }
        public String getName(){
            return Name;
        }
        public void setName(String Name){
            this.Name=Name;
        }
        public int getNumber(){
            return Number;
        }
        public void setNumber(int Number){
            this.Number=Number;
        }
        public String getSpecialty(){
            return Specialty;
        }
        public void setSpecialty(String Specialty){
            this.Specialty=Specialty;
        }
        public int getNo1(){
            return no1;
        }
        public void setNo1(int no1){
            this.no1=no1;
        }
        public int getNo2(){
            return no2;
        }
        public void setNo2(int no2){
            this.no2=no2;
        }
        public int getNo3(){
            return no3;
        }
        public void setNo3(int no3){
            this.no3=no3;
        }
        public int getNo4(){
            return no4;
        }
        public void setNo4(int no4){
            this.no4=no4;
        }
        public int getSum(){
            return Sum;
        }
        public void setSum(int Sum){
            this.Sum=Sum;
        }
    }
    
    

    StudentDao

    学生数据访问方法

    package ManageSystem;
    /**
     * 学生数据访问方法
     */
    public class StudentDao {
        private Database database;
        public StudentDao(Database database){
            this.database=database;
        }
        /**
         *学生信息打印输出
         */
        public void Print(){
            System.out.println("姓名" + "学号" + "专业" + "各科成绩"+"总分");
                for (Student student : database.getStudentsList()) {
                    System.out.print(student.getName()+"    ");
                    System.out.print(student.getNumber()+"    ");
                    System.out.print(student.getSpecialty()+"    ");
                    System.out.print(student.getNo1()+"    ");
                    System.out.print(student.getNo2()+"    ");
                    System.out.print(student.getNo3()+"    ");
                    System.out.print(student.getNo4()+"    ");
                    System.out.println(student.getSum()+"    ");
                }
        }
        /**
         *新增学生信息
         */
        public void Insert(Student student1){
            database.getStudentsList().add(student1);
            Print();
        }
        /**
         *对学生信息排序
         */
        public Student SortBynumber(){//学号排序
            Student student=null;
            for (int j=0;j<database.getStudentsList().size();j++){
                if(database.getStudentsList()!=null) {
                    for (int i=0;i<database.getStudentsList().size()-1;i++){
                        student=database.getStudentsList().get(i);
                        database.getStudentsList().set(i,database.getStudentsList().get(i+1));
                        database.getStudentsList().set(i+1,student);
                    }
                }
            }
            Print();
            return student;
        }
        public Student Sort1(){//按总成绩冒泡排序排序
            Student student=null;
            for (Student student1:database.getStudentsList()) {
                    if (database.getStudentsList() != null) {
                        for (int i = 0; i < database.getStudentsList().size() - 1; i++) {
                            if (database.getStudentsList().get(i).getSum() < database.getStudentsList().get(i + 1).getSum()) {
                                student = database.getStudentsList().get(i);
                                database.getStudentsList().set(i, database.getStudentsList().get(i + 1));
                                database.getStudentsList().set(i + 1, student);
                            }
                        }
                    }
            }
            PrintByNo();
            return student;
        }
        //希尔排序
        public Student ShellSort()
        {
            Student student1=null;
            int gap,j;
            for(Student student:database.getStudentsList()) {
                for (gap = database.getStudentsList().size()/ 2; gap > 0; gap /= 2)  //控制步长
                    for (j = gap; j < database.getStudentsList().size(); ++j)  //++j操作是很巧妙地,这步操作省去了对数组进行分组的一层循环
                    {
                        student1= database.getStudentsList().get(j);
                        int prev = j - gap;
    
                        while (prev >= 0 && database.getStudentsList().get(j).getSum()< database.getStudentsList().get(prev).getSum()) {  //这里是直接插入排序的核心步骤
                            database.getStudentsList().set(j,database.getStudentsList().get(prev));
                            prev -= gap;
                        }
                        database.getStudentsList().set(prev+gap,student1);
                    }
            }
            return student1;
        }
        //快速排序
        public Student  quick_sort( int left,int right)
        {
            Student student1=null;
            int i = left;
            int j = right;
            for (Student student:database.getStudentsList()) {
                student=database.getStudentsList().get(i);
                //i>=j时,就说明已经把x排到正确的位置了
                if (i < j) {
                    while (i < j) {
                        while (i < j && database.getStudentsList().get(j).getSum() > student1.getSum())//从右往左找第一个小于x的数
                            j--;
                        if (i < j)
                    /*赋值之后,把i往后移动一个位置,因为i前面的数肯定
                    比x小,故在下次查找大于x得值时,不用参与比较*/
                            database.getStudentsList().set(i++, database.getStudentsList().get(j));
                        while (i < j && database.getStudentsList().get(i).getSum() < student1.getSum())//从左往右找第一个大于x的数
                            i++;
                        if (i < j)
                            database.getStudentsList().set(j--, database.getStudentsList().get(i));//赋值之后,把j往前移动一个位置,因为j后面的数肯定比x大
                    }
                    database.getStudentsList().set(i,student1);//此时i和j指向的是同一个位置,故也可以写arr[j]=x
                    //递归调用的对基准值两边的序列进行快速排序
                    quick_sort( left, i - 1);//i==j时,就不用进入此函数了,故必须i<j
                    quick_sort(i + 1, right);//i==j时,就不用进入此函数了
                }
            }
            PrintByNo();
            return student1;
        }
        /**
         * 删除学生信息
         */
        //按名删除
        public Student DeleteByname(String name){
            Student student1=null;
            for(Student student:database.getStudentsList()){
                for(int i=0;i<database.getStudentsList().size();i++){
                    if(student1.getName()==name){
                        student1=database.getStudentsList().remove(i);
                    }
                }
            }
            Print();
            return student1;
        }
        /**
         * 查找学生信息
         */
        public Student SearchByname(String name){
            Student student1=null;
            for(Student student:database.getStudentsList()){
                    if(student.getName().equals(name)){
                        student1=student;
                        System.out.println("姓名:"+student1.getName());
                        System.out.println("学号:"+student1.getNumber());
                        System.out.println("专业:"+student1.getSpecialty());
                        System.out.println("第一成绩:"+student1.getNo1());
                        System.out.println("第二成绩:"+student1.getNo2());
                        System.out.println("第三成绩:"+student1.getNo3());
                        System.out.println("第四成绩:"+student1.getNo4());
                        System.out.println("总成绩:"+student1.getSum());
                    }
                }
            return student1;
        }
        /**
         * 修改成绩
         */
        public Student Change(int num,int no1,int no2,int no3,int no4,int sum){
            Student student=null;
            for(int i=0;i<database.getStudentsList().size();i++){
                student=database.getStudentsList().get(i);
                if(student.getNumber()==num){
                    student.setNo1(no1);
                    student.setNo2(no2);
                    student.setNo3(no3);
                    student.setNo4(no4);
                    student.setSum(sum);
                }
            }
            Print();
            return student;
        }
        /**
         * 排名输出
         */
        public void PrintByNo(){
            System.out.println("排名"+"姓名"+"学号"+"专业"+"第一成绩"+"第二成绩"+"第三成绩"+"第四成绩"+"总分");
            for (int i=0;i<database.getStudentsList().size();i++){
                System.out.print((i+1)+database.getStudentsList().get(i).getName()+"    ");
                System.out.print(database.getStudentsList().get(i).getNumber()+"    "+database.getStudentsList().get(i).getSpecialty()+"    ");
                System.out.print(database.getStudentsList().get(i).getNo1()+"    "+database.getStudentsList().get(i).getNo2()+"    ");
                System.out.print(database.getStudentsList().get(i).getNo3()+"    "+database.getStudentsList().get(i).getNo4()+"    ");
                System.out.println(database.getStudentsList().get(i).getSum()+"    ");
            }
        }
    }
    
    

    ManageSystem

    管理系统类,实现功能

    package ManageSystem;
    
    import java.util.Scanner;
    
    /**
     * 学生管理系统
     */
    public class ManageSystem {
        private StudentDao studentDao;
        Scanner scanner=new Scanner(System.in);
        private int Id=1;
        private int password=0;
    public ManageSystem(Database database){
        studentDao=new StudentDao(database);
    }
        /**
         * 登录界面,进入系统
         */
       public void Start(){
            System.out.print("用户名:");
           int num=scanner.nextInt();
           if(Id==num){
               InputPassword();
                   /**
                    * 进入系统界面
                    */
           }else {
               System.out.println("用户不存在!");
               Start();
           }
       }
       public void InputPassword() {
           System.out.print("密码:");
           int pass = scanner.nextInt();
           if (password==pass) {
               Visit();
           }else {
            System.out.println("密码错误");
            Start();
        }
       }
        /**
         * 访问系统,实现相应功能
         */
        public void Visit(){
            System.out.println("1.学生基本信息");
            System.out.println("2.信息管理");
            int choice=scanner.nextInt();
            switch (choice) {
                case 1:
                {//输出信息
                    Student student = studentDao.SortBynumber();
                    System.out.println("输入1返回上一层");
                    int i=scanner.nextInt();
                    if(i==1) Visit();
                }
                    break;
                case 2: {
                    System.out.println("1.新增信息");
                    System.out.println("2.查找信息");
                    System.out.println("3.排序信息");
                    System.out.println("4.修改成绩");
                    System.out.println("5.删除信息");
                    int choice1 = scanner.nextInt();
                    switch (choice1) {
                        case 1: {
                            System.out.println("姓名:");
                            String name = scanner.next();
                            System.out.println("学号:");
                            int number = scanner.nextInt();
                            System.out.println("专业:");
                            String specialty = scanner.next();
                            System.out.println("各科成绩;");
                            int no1 = scanner.nextInt();
                            int no2 = scanner.nextInt();
                            int no3 = scanner.nextInt();
                            int no4 = scanner.nextInt();
                            System.out.println("总分;");
                            int sum = scanner.nextInt();
                            Student student1 = new Student(name, number, specialty, no1, no2, no3, no4, sum);
                            studentDao.Insert(student1);
                        }
                        break;
                        case 2: {
                            System.out.println("输入姓名:");
                            String name = scanner.next();
                            Student student1 = studentDao.SearchByname(name);
                        }
                        break;
                        case 3: {
                            System.out.println("1.冒泡排序");
                            System.out.println("2.希尔排序");
                            int i = scanner.nextInt();
                            switch (i) {
                                case 1:
                                {Student student1 = studentDao.Sort1();}
                                    break;
                                case 2:
                                    Student student2 = studentDao.ShellSort();
                                break;
                                case 3:{
                                    String name=scanner.next();
                                    Student student=studentDao.DeleteByname(name);
                                }
                            }
                            Student student1 = studentDao.Sort1();
    
                        }
                        break;
                        case 4: {
                            System.out.println("输入学号:");
                            int number = scanner.nextInt();
                            System.out.println("输入修改的各科成绩:");
                            int a = scanner.nextInt();
                            int b = scanner.nextInt();
                            int c = scanner.nextInt();
                            int d = scanner.nextInt();
                            int sum = a + b + c + d;
                            Student student1 = studentDao.Change(number, a, b, c, d, sum);
                        }
                        break;
                    }
                }
            }
        }
    }
    
    

    Main

    调用数据库,实现运行

    package ManageSystem;
    
    /**
     * 主类
     */
    public class Main {
        public static void main(String []args){
            Database database=new Database();
            ManageSystem manageSystem=new ManageSystem(database);
            manageSystem.Start();
        }
    }
    
    

    运行结果

    新增信息

    在这里插入图片描述
    在这里插入图片描述

    查找信息

    在这里插入图片描述

    排序输出名次

    在这里插入图片描述

    修改成绩

    在这里插入图片描述

    展开全文
  • 目录 1 C++ 课程设计实验目的. 2 2 课程设计内容. 2 2.1? 课程设计的题目及简介. 2 2.2? 设计思路说明.... 程序实现.... 程序流程图.... 文件流的实现. 7 3 运行结果截图....C++课程设计实验通过设计一个学生成绩管理系统
  • word 资料 目 录 TOC \o "1-3" \h \z \u 1设计目的及内容要求 1 2 系统总体设计 1 3 系统详细设计 2 4 运行结果及分析 17 致谢 21 参考文献 22 简单学生成绩管理系统的设计与实现 1设计目的及内容要求 设计目的 ...
  • word word资料 TOC \o "1-5" \h \z \o "Current Document" 1设计目的及内容要求 1 , \o "Current Document" 2系统总体设计 1 : \o "Current Document" 3系统详细设计 2 [ \o "Current Document... 简单学生成绩管理系统
  • 采用java技术构建的一个管理系统。整个开发过程首先对系统进行需求分析,得出系统的主要功能。接着对系统进行总体设计和详细设计。总体设计主要包括系统功能设计、系统总体结构设计、系统数据结构设计和系统安全设计...
  • 本科生课程论文封面 课 程 名 称 C语言课程设计 教 师 姓 名 本科生...算法设计 程序代码 程序运行结果 编程中遇到的困难及解决方法 总结心得及良好建议 致谢 2 一课程论文题目学生成绩管理系统 1题目要求 请设计学生
  • 这份文档主要是有关学生成绩管理系统的,有结构图,类图,顺序图,用例图,还有详细说明,以及运行结果截图,部分主要源代码。希望可以对大家有所帮助。谢谢在、支持。
  • 基于ASP.NET的平台下以C#编写程序,用Visual Studio .2005连接SQL Server 2005建立的数据库,调试并运行结果
  • (3)按科目成绩查询:输入指定分数,程序运行后显示该科目中考试成绩大于等于指定分数的同学的学号、姓名以及该科成绩并统计满足条件的人数; (4)总分查询:输入指定分数,程序运行后显示总分成绩大于等于指定...
  • 我校尽管部分学院或系已开出学生成绩管理系统,但开发的系统不具有通用性,所以我想借本次毕业设计之际,开发一个不仅适用本校各系而且适用于其它各校的通用高校学生成绩管理系统. 采用软件工程的指导方法,选用C/S...
  • 1 引言 4 2 相关技术概述 4 2.1 Java语言 4 2.2 Spring MVC 5 2.3 MySQL数据库 5 2.4 Tomcat--Web服务器 5 ...4 运行及测试结果 13 4.1 测试的目的 13 4.2 测试的结果 13 总结 17 参考文献 18 致谢 19

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 228
精华内容 91
关键字:

学生成绩管理系统运行结果