




已阅读5页,还剩100页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课题名称C+面向对象程序设计课题名称学生成绩管理系统班级 姓名 学号 指导助教 2013年9月15日学生成绩管理系统目录一、 系统需求分析二、 总体设计三、 详细设计四、 系统调试五、 使用说明书六、 编程体会附录一:源程序清单附录二:评分表一、 系统需求分析学生成绩管理系统主要用于采集、保存、查询学生课程及成绩。考虑到在实际应用学生成绩管理系统时,使用者可能是负责成绩录入及修改的管理员、任课老师和学生,这些使用者的使用权限显然不尽相同(如学生无权查看其它同学的成绩,老师仅能查看他所授的课程),因此系统应该具备用户登录及赋予不同用户不同权限的功能(具体功能分析详见“二、总体设计”)。同时,考虑到用户友好性,通过MFC实现了图形化界面。 系统显示菜单 开始用户选择功能系统执行具体功能用户选择退出NY退出系统用户登录系统匹配用户数据赋予用户相应权限系统流程图:二、 总体设计 系统功能分析学生成绩管理系统主要用于采集、保存、查询学生课程及成绩。考虑到在实际应用学生成绩管理系统时,使用者可能是负责成绩录入及修改的管理员、任课老师和学生,这些使用者的使用权限显然不尽相同(如学生无权查看其它同学的成绩,老师仅能查看他所授的课程)。因此成绩管理系统中应当具有用户登录功能,根据不同用户赋予不同权限: 管理员(admin):可以添加、修改、查看、删除用户信息,添加、修改、查询、删除课程,添加、修改、查询学生成绩(认为学生一旦选课并留下成绩,则不能删除,即使课程由于教务安排而改变但是成绩条目反映出学生学习情况)。 老师:可以修改本人用户信息,查询课程,查询本人所授课程的学生成绩 学生:可以修改本人用户信息,查询本人所选课程及相应成绩确定用户权限后,设计学生成绩管理系统的相关功能:(注明:以下带*标注的表明该功能仅能由管理员实现) 用户信息*添加、修改、删除、查看用户信息 课程信息添加*、修改*、删除*、查看课程信息 成绩信息添加*、修改*、查看成绩信息 个人信息本系统认为教师的教工号或学生的学生号视为不可更改的信息(除非由管理员删除),可以修改本用户的其他个人信息(用户名、密码) 系统功能模块划分与设计图1 学生成绩管理系统功能模块图三、 详细设计 类层次图2 学生成绩管理系统中的类层次结构 功能模块的实现 图3 主菜单功能函数及截图 用户信息模块图4 用户信息功能模块示意图及截图 课程信息模块图5 课程信息功能模块示意图及截图 成绩信息模块图6 查询功能示意图及截图 类的UML图(注:本图由Visual Studio 2008的类视图生成)四、 系统调试继上次“犀利公司人事管理系统”后,这次实现学生成绩管理系统时,过程得心应手了不少。第一次用MFC可视化编程时遇到的Unicode与ANSI转换、以及字符类型转换后可能存在的内存泄露问题等尽量避免了。在这次编写程序的过程中,我还发现之前未留意的C+的小细节,那就是派生类的成员函数是不能访问本对象的基类对象之外的其他基类对象的保护成员的,即便派生类采用了公有继承的方式。因此为了实现系统的功能,不得不在每个类里加入一系列的output_XXXX函数来获取类的保护成员的值。其他还遇到的问题有: dlgdata.cpp line40 断言错误这个问题是由删除对话框时并未删去与该对话框绑定的对象造成的,通过查询/onlyou930/article/details/6384075等网站,通过查找将对象删除解决了该问题。五、 结果分析 测试文件测试文件有user_information.dat, course_information.dat, item_information.dat, data_salesmanager.dat三个二进制文件,分别记录用户、课程、成绩的信息。user_information.dat内容:【条目数+条目1+条目2】每条条目的信息包括用户权限(1,2,3 4字节)+号码(4字节)+姓名(128字节)+登陆密码(32字节,现有用户密码均设为123)course_information.dat内容:【条目数+条目1+条目2】每条条目的信息包括课程号(4字节)+课程名(128字节)+授课学期(4字节)+学分(4字节)+是否计分(4字节)+授课老师教工号(4字节)+授课教师姓名(128字节)item_information.dat内容:【条目数+条目1+条目2】每条条目的信息包括选课学生学号(4字节)+选课学生姓名(128字节)+课程号(4字节)+学分(4字节)+授课学期(4字节)+授课教师教工号(4字节)+授课教师姓名(128字节)+课程名(128字节)+是否计分(4字节)+成绩(4字节) 测试、操作步骤 0.首页界面 1.管理员界面l 1.1用户信息界面u 1.1.1添加用户u 1.1.2修改用户u 1.1.3删除用户u 1.1.4查看用户l 1.2课程信息界面u 1.2.1添加课程u 1.2.2修改课程u 1.2.3删除课程u 1.2.4查看课程l 1.3成绩信息界面u 1.3.1添加成绩u 1.3.2修改成绩u 1.3.3查看成绩l 1.4个人信息界面 2.教师界面l 2.1用户信息界面教师不具有用户信息功能l 2.2课程信息界面u 2.2.1添加课程教师不具有添加课程功能u 2.2.2修改课程教师不具有添加课程功能u 2.2.3删除课程教师不具有删除课程功能u 2.2.4查看课程l 2.3成绩信息界面u 2.3.1添加成绩教师不具有添加成绩功能u 2.3.2修改成绩教师不具有添加成绩功能u 2.3.3查看成绩l 2.4个人信息界面同管理员界面 3.学生界面l 3.1用户信息界面学生不具有用户信息功能l 3.2课程信息界面u 3.2.1添加课程学生不具有添加课程功能u 3.2.2修改课程学生不具有修改课程功能u 3.2.3删除课程学生不具有删除课程功能u 3.2.4查看课程l 3.3成绩信息界面u 3.3.1添加成绩学生不具有添加成绩功能u 3.3.2修改成绩学生不具有修改成绩功能u 3.3.3查看成绩l 3.4个人信息界面同管理员界面六、 编程体会继上次编写“犀利公司人事管理系统”后第二次独立编写大作业,在编程的速度和准确率等方面都有了不小的提升,可见Practice makes perfect.之前初次使用MFC发生的不少问题都得以避免,从而更加感受到可视化编程带来的极大便利。个人感觉这个学生成绩管理系统与人事管理系统相比,在类的构成关系上更为复杂,因此刚刚开始编程时我颇费了一番脑筋,类的结构图也是写写改改,总觉得有些不合理之处。不过现在成品中的类的结构是我个人认为比较科学合理的一种结构了。但是由于是一遍想一边写,文件的组成不是非常合理,用到了三个文件,这么做的后果就是当数据进行修改时,需要对三个文件均进行修改,因而源代码中费了不少笔墨,现在回想起来,虽然问题都解决了,但是如果对程序有更深远的规划,可能可以避免这些不必要的麻烦,使程序更加简洁。还有一点,那就是在写这个程序的过程中,中间由于参加社会实践活动耽搁了10多天,导致实践结束后继续写时花了好久才理清自己当时的思路,可见即使是同一个人写的程序,时间一久也会感到陌生,所以思路清楚是每次写程序时都要注意的关键,不能想到哪儿是哪儿,这样虽然图一时之快,但可能给后来留下隐患。附录一、源程序清单 头文件/ academic.h : PROJECT_NAME 应用程序的主头文件/#pragma once#ifndef _AFXWIN_H_#error 在包含此文件之前包含“stdafx.h”以生成PCH 文件#endif#include resource.h/ 主符号#include #include class.h#include adminDlg.h/ CacademicApp:/ 有关此类的实现,请参阅academic.cpp/class CacademicApp : public CWinApppublic:CacademicApp();/ 重写public:virtual BOOL InitInstance();/ 实现DECLARE_MESSAGE_MAP();extern CacademicApp theApp;/ academicDlg.h : 头文件/#pragma once/ CacademicDlg 对话框class CacademicDlg : public CDialog/ 构造public:CacademicDlg(CWnd* pParent = NULL);/ 标准构造函数/ 对话框数据enum IDD = IDD_ACADEMIC_DIALOG ;protected:virtual void DoDataExchange(CDataExchange* pDX);/ DDX/DDV 支持/ 实现protected:HICON m_hIcon;/ 生成的消息映射函数virtual BOOL OnInitDialog();afx_msg void OnSysCommand(UINT nID, LPARAM lParam);afx_msg void OnPaint();afx_msg HCURSOR OnQueryDragIcon();DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedButton1();afx_msg void OnBnClickedOk();afx_msg void OnBnClickedCancel();/adminDlg.h#pragma once#include afxwin.h/ CadminDlg 对话框class CadminDlg : public CDialogDECLARE_DYNAMIC(CadminDlg)public:CadminDlg(CWnd* pParent = NULL); / 标准构造函数virtual CadminDlg();/ 对话框数据enum IDD = IDD_DIALOG ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedCancel();/virtual BOOL OnInitDialog();CListBox m_list;afx_msg void OnBnClickedButton4();virtual BOOL OnInitDialog();afx_msg void OnBnClickedButton1();afx_msg void OnBnClickedButton2();CButton m_b1;CButton m_b2;afx_msg void OnBnClickedButton3();/class.h软件中设计的类的声明#pragma once#include using namespace std;class manpublic:man();man();protected:int individualNo;TCHAR name64;class user:public manpublic:user();user(int,int,TCHAR*,TCHAR*);user();virtual void get_information(fstream&);virtual void save_information(fstream&);void set_information(TCHAR*,TCHAR*);virtual void set_information(int,int,TCHAR*,TCHAR*);int output_type()return type;int output_no()return individualNo;TCHAR* output_name()return name;TCHAR* output_pw()return passwords;int match(int,int,TCHAR*,TCHAR*);friend bool operator=(user&,user&);protected:int type;TCHAR passwords16;class item;class student:public manpublic:student();student(int,TCHAR*);student();void set_information(int,TCHAR*);void set_student(int,TCHAR*);int output_student_no()return individualNo;TCHAR* output_student_name()return name;friend item;class teacher:public manpublic:int output_teacher_no()return individualNo;TCHAR* output_teacher_name()return name;class course:public teacherpublic:course();course(int,int,int,int,TCHAR*,int,TCHAR*);course();virtual void get_information(fstream&);virtual void save_information(fstream&);void set_information(int,int,int,int,TCHAR*,int,TCHAR*);void set_teacher(int,TCHAR*);friend bool operator=(course &,course&);int output_course_no()return courseNo;int output_teacher_no()return teacher:individualNo;int output_course_credit()return credit;int output_course_term()return term;int output_course_status()return status;TCHAR* output_course_name()return course_name;friend item;protected:int courseNo;/courseNo表示课程号int credit;/credit表示学分int term;/term表示授课学期int status;/status表示课程是记通过还是计分,1表示记通过,2表示计分TCHAR course_name64;/课程名;/由student类和course类派生出item(条目)类class item:public student,public coursepublic:item();item();virtual void get_information(fstream&);virtual void save_information(fstream&);void set_information(student&s,course&c,int g,int sc);int item:output_course_grade()if(score=-3) return 0;if(score=-2) return 1;if(score=-1) return 2;void operator = (item);int output_score()return score;int output_teacher_no()return course:output_teacher_no();protected:int score;/score表示课程得分,其中score=-3-1表示课程是记通过的,0100表示课程是计分的;/CourseAddDlg.h#pragma once#include afxwin.h/ CCourseAddDlg 对话框class CCourseAddDlg : public CDialogDECLARE_DYNAMIC(CCourseAddDlg)public:CCourseAddDlg(CWnd* pParent = NULL); / 标准构造函数virtual CCourseAddDlg();/ 对话框数据enum IDD = IDD_DIALOG_COURSE_ADD ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:virtual BOOL OnInitDialog();CEdit m_edit1;CEdit m_edit2;CComboBox m_cb1;CComboBox m_cb2;CComboBox m_cb3;CComboBox m_cb5;afx_msg void OnBnClickedCancel();afx_msg void OnBnClickedOk();/CourseChangeDlg.h#pragma once#include afxwin.h/ CCourseChangeDlg 对话框class CCourseChangeDlg : public CDialogDECLARE_DYNAMIC(CCourseChangeDlg)public:CCourseChangeDlg(CWnd* pParent = NULL); / 标准构造函数virtual CCourseChangeDlg();/ 对话框数据enum IDD = IDD_DIALOG_COURSE_CHANGE ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedOk();/virtual BOOL OnInitDialog();CComboBox m_cb1;afx_msg void OnBnClickedCancel();virtual BOOL OnInitDialog();afx_msg void OnCbnSelchangeCombo6();CEdit m_edit;CComboBox m_cb2;CComboBox m_cb3;CComboBox m_cb4;CComboBox m_cb5;/CourseConsultDlg.h#pragma once#include afxwin.h/ CCourseConsultDlg 对话框class CCourseConsultDlg : public CDialogDECLARE_DYNAMIC(CCourseConsultDlg)public:CCourseConsultDlg(CWnd* pParent = NULL); / 标准构造函数virtual CCourseConsultDlg();/ 对话框数据enum IDD = IDD_DIALOG_COURSE_CONSULT ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:CEdit m_edit;CListBox m_list;afx_msg void OnBnClickedOk();/CourseDeleteDlg.h#pragma once#include afxwin.h/ CCourseDeleteDlg 对话框class CCourseDeleteDlg : public CDialogDECLARE_DYNAMIC(CCourseDeleteDlg)public:CCourseDeleteDlg(CWnd* pParent = NULL); / 标准构造函数virtual CCourseDeleteDlg();/ 对话框数据enum IDD = IDD_DIALOG_COURSE_DELETE ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedOk();afx_msg void OnBnClickedCancel();virtual BOOL OnInitDialog();CComboBox m_cb;/CourseDlg.h#pragma once#include afxwin.h/ CcourseDlg 对话框class CcourseDlg : public CDialogDECLARE_DYNAMIC(CcourseDlg)public:CcourseDlg(CWnd* pParent = NULL); / 标准构造函数virtual CcourseDlg();/ 对话框数据enum IDD = IDD_DIALOG_COURSE ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:virtual BOOL OnInitDialog();CButton m_b1;CButton m_b2;afx_msg void OnBnClickedButton1();CButton m_b3;afx_msg void OnBnClickedCancel();afx_msg void OnBnClickedButton4();afx_msg void OnBnClickedButton2();afx_msg void OnBnClickedButton3();/globalvar.h全局变量的声明#pragma once#include class.hextern user*pt;extern user*obj_user;extern int user_num;extern course* obj_course;extern int course_num;extern item*obj_item;extern int item_num;extern int no;extern char* Wide2Bytes(TCHAR* );extern TCHAR*Bytes2Wide(char *);extern double StringToDouble(char *);extern char* IntToString(int);extern double Wide2Double(TCHAR*);/loginDlg.h#pragma once#include afxwin.h/ CloginDlg 对话框class CloginDlg : public CDialogDECLARE_DYNAMIC(CloginDlg)public:CloginDlg(CWnd* pParent = NULL); / 标准构造函数virtual CloginDlg();/ 对话框数据enum IDD = IDD_LOGIN_DIALOG ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:CComboBox m_cb;afx_msg void OnBnClickedOk();CEdit m_edit1;CEdit m_edit2;virtual BOOL OnInitDialog();afx_msg void OnBnClickedCancel();CEdit m_edit3;afx_msg void OnCbnSelchangeCombo1();/personalinfoDlg.h#pragma once#include afxwin.h/ CpersonalinfoDlg 对话框class CpersonalinfoDlg : public CDialogDECLARE_DYNAMIC(CpersonalinfoDlg)public:CpersonalinfoDlg(CWnd* pParent = NULL); / 标准构造函数virtual CpersonalinfoDlg();/ 对话框数据enum IDD = IDD_DIALOG_PERSONAL_INFO;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedCancel2();afx_msg void OnBnClickedOk2();CEdit m_edit1;CEdit m_edit2;CEdit m_edit3;CEdit m_edit4;/registerDlg.h#pragma once#include afxwin.h/ CregisterDlg 对话框class CregisterDlg : public CDialogDECLARE_DYNAMIC(CregisterDlg)public:CregisterDlg(CWnd* pParent = NULL); / 标准构造函数virtual CregisterDlg();/ 对话框数据enum IDD = IDD_REGISTER_DIALOG ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:CComboBox m_cb;CEdit m_edit1;CEdit m_edit2;afx_msg void OnBnClickedOk2();virtual BOOL OnInitDialog();afx_msg void OnBnClickedCancel2();CEdit m_edit3;afx_msg void OnCbnSelchangeCombo1();/Resource.h/NO_DEPENDENCIES/ Microsoft Visual C+ generated include file./ Used by academic.rc/#define IDOK3 3#define IDCANCEL4 4#define IDOK2 5#define IDCANCEL2 6#define IDM_ABOUTBOX 0x0010#define IDD_ABOUTBOX 100#define IDS_ABOUTBOX 101#define IDD_ACADEMIC_DIALOG 102#define IDR_MAINFRAME 128#define IDD_LOGIN_DIALOG 129#define IDD_DIALOG 130#define IDD_REGISTER_DIALOG 133#define IDD_DIALOG_PERSONAL_INFO 136#define IDD_DIALOG_COURSE 137#define IDD_DIALOG_SCORE 138#define IDD_DIALOG_COURSE_ADD 140#define IDD_DIALOG_COURSE_CHANGE 141#define IDD_DIALOG_USER 142#define IDD_DIALOG_USER_CONSULT 143#define IDD_DIALOG_USER_CHANGE 144#define IDD_DIALOG_USER_DELETE 146#define IDD_DIALOG_COURSE_CONSULT 147#define IDD_DIALOG_SCORE_ADD 148#define IDD_DIALOG_CHANGE 149#define IDD_DIALOG_SCORE_CONSULT 150#define IDD_DIALOG_SCORE_CHANGE 152#define IDD_DIALOG_COURSE_DELETE 153#define IDC_BUTTON1 1000#define IDC_COMBO1 1001#define IDC_COMBO6 1002#define IDC_EDIT1 1003#define IDC_EDIT2 1004#define IDC_BUTTON2 1004#define IDC_EDIT3 1005#define IDC_EDIT4 1006#define IDC_BUTTON3 1007#define IDC_EDIT5 1007#define IDC_BUTTON4 1008#define IDC_EDIT6 1008#define IDC_COMBO2 1020#define IDC_COMBO3 1021#define IDC_COMBO4 1022#define IDC_LIST1 1023#define IDC_COMBO5 1025/ Next default values for new objects/ #ifdef APSTUDIO_INVOKED#ifndef APSTUDIO_READONLY_SYMBOLS#define _APS_NEXT_RESOURCE_VALUE 155#define _APS_NEXT_COMMAND_VALUE 32771#define _APS_NEXT_CONTROL_VALUE 1030#define _APS_NEXT_SYMED_VALUE 101#endif#endif/ScoreAddDlg.h#pragma once#include afxwin.h/ CScoreAddDlg 对话框class CScoreAddDlg : public CDialogDECLARE_DYNAMIC(CScoreAddDlg)public:CScoreAddDlg(CWnd* pParent = NULL); / 标准构造函数virtual CScoreAddDlg();/ 对话框数据enum IDD = IDD_DIALOG_SCORE_ADD ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:virtual BOOL OnInitDialog();afx_msg void OnBnClickedOk();CComboBox m_list1;CComboBox m_list2;CComboBox m_list3;CComboBox m_list4;CEdit m_edit1;CEdit m_edit2;afx_msg void OnBnClickedCancel();afx_msg void OnCbnSelchangeCombo1();afx_msg void OnEnKillfocusEdit1();/ScoreChangeDlg.h#pragma once#include afxwin.h/ CScoreChangeDlg 对话框class CScoreChangeDlg : public CDialogDECLARE_DYNAMIC(CScoreChangeDlg)public:CScoreChangeDlg(CWnd* pParent = NULL); / 标准构造函数virtual CScoreChangeDlg();/ 对话框数据enum IDD = IDD_DIALOG_SCORE_CHANGE ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:virtual BOOL OnInitDialog();afx_msg void OnCbnSelchangeCombo1();CComboBox m_cb1;CComboBox m_cb2;CComboBox m_cb3;CComboBox m_cb4;CEdit m_edit2;CEdit m_edit1;afx_msg void OnCbnSelchangeCombo3();afx_msg void OnCbnSelchangeCombo2();afx_msg void OnBnClickedCancel();afx_msg void OnBnClickedOk();afx_msg void OnEnKillfocusEdit1();/ScoreConsultDlg.h#pragma once#include afxwin.h/ CScoreConsultDlg 对话框class CScoreConsultDlg : public CDialogDECLARE_DYNAMIC(CScoreConsultDlg)public:CScoreConsultDlg(CWnd* pParent = NULL); / 标准构造函数virtual CScoreConsultDlg();/ 对话框数据enum IDD = IDD_DIALOG_SCORE_CONSULT ;protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV 支持DECLARE_MESSAGE_MAP()public:afx_msg void OnBnClickedCancel();afx_msg void OnBnClickedOk();CEdit m_edit;CListBox m_list;/scoreDlg.h#pragma once#include afxwin.h/ CscoreDlg 对话框class CscoreDlg : public CDialogDECLARE_DYNAMIC(CscoreDlg)public:CscoreDlg(CWnd* pParent = NULL); / 标准构造函数virtual CscoreDlg();/ 对话框数据enum IDD = IDD_DIALOG_SCORE ;protected:virtual void DoDataExchange(CDa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年五金制品行业跨境电商市场潜力与增长策略分析报告
- 药品采购安全管理制度
- 药店人员培训管理制度
- 药店总部仓库管理制度
- 药店药品采购管理制度
- 设备人员考核管理制度
- 设备停用闲置管理制度
- 设备数据采集管理制度
- 设备物资基础管理制度
- 设备维修风险管理制度
- 儿科常用药、用药特点及护理ppt
- 胎心监护以及判读
- DB37T 4027-2020 食用农产品可追溯供应商通用规范 果蔬
- 企业资产损失所得税税前扣除鉴证业务操作的指南
- 高等数学(下册)资料期末复习试题与答案
- 增压机通用说明书.
- 监理人员廉洁自律制度管理办法
- 四冲程内燃机 机械原理课程设计说明书
- BS EN 10222-5-2000用于压力目的的钢锻件—第5部分:马口铁钢奥氏体钢和奥氏体-铁素体不锈钢
- Grace评分表、TIMI评分、CRUSAD评分、wells评分等
- 洗洁精-MSDS(202334)
评论
0/150
提交评论