




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学 生 实 验 报 告(理工类)课程名称: 软件设计与体系结构 专业班级:12软件工程(服务外包)1班 学生学号: 120510xxxxx 学生姓名: XXX 所属院部: XXXXXXXX学院 指导教师: xxxx 2014 2015 学年 第 1 学期 XXXX学院教务处制实验报告书写要求实验报告原则上要求学生手写,要求书写工整。若因课程特点需打印的,要遵照以下字体、字号、间距等的具体要求。纸张一律采用A4的纸张。实验报告书写说明实验报告中一至四项内容为必填项,包括实验目的和要求;实验仪器和设备;实验内容与过程;实验结果与分析。各院部可根据学科特点和实验具体要求增加项目。填写注意事项(1)细
2、致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用百分制,具体评分标准由各院部自行制定。实验报告装订要求实验批改完毕后,任课老师将每门课程的每个实验项目的实验报告以自然班为单位、按学号升序排列,装订成册,并附上一份该门课程的实验大纲。实验项目名称: 学生成绩管理系统 实验学时: 8 同组学生姓名: xxxxxxxxxxxx 实验地点: B4
3、07 实验日期: 12.2、9、16、22 实验成绩: 批改教师: 批改时间: 一、实验目的和要求掌握基于 Web 的信息管理系统的设计方法,加深对功能模型、对象模型以及 B/S 结构等的理解。二、实验仪器和设备Vc6.0,SQl server2005,三、实验过程学生成绩管理信息系统包括两个模块:(1) 求学生平均成绩并显示学生选修课表;(2) 求课程平均成绩并显示选择该门课的学生。 首先设计表:student Course:Selectcourse:配置数据源:在使用数据库之前在控制面板管理系统里面选择数据源配置数据库将所创建的数据库表格与操作系统所带的ODBC关联起来。添加完成后在vc里
4、用自带的函数库来连接数据库, 并添加创建或者添加删除修改等等基本功能。创建mfc界面:为按钮添加类函数:关键代码:CMyDlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if (nResponse = IDOK)/ TODO: Place code here to handle when the dialog is/ dismissed with OKelse if (nResponse = IDCANCEL)/ TODO: Place code here to handle when the dialog is/ dism
5、issed with Cancel/ Since the dialog has been closed, return FALSE so that we exit the/ application, rather than start the application's message pump.return FALSE;/ 学生成绩管理系统Dlg.cpp : implementation file/#include "stdafx.h"#include "学生成绩管理系统.h"#include "学生成绩管理系统Dlg.h"
6、#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIR
7、TUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataEx
8、change* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CAboutDlg)/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CAboutDlg, CDialog)/AFX_MSG_MAP(CAboutDlg)/ No message handlers/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg dialogCMyDlg:CMyDlg(CWnd* pParent /*=NULL*/): CDialog(CMyDlg:IDD, pParent)/AFX_DATA_INIT(CMyDlg)/AFX_DAT
9、A_INIT/ Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);void CMyDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMyDlg)DDX_Control(pDX, IDC_EDIT1, m_showAvgOfCourse);DDX_Control(pDX, IDC_EDIT5, m_s
10、howAverage);DDX_Control(pDX, IDC_EDIT3, m_showAllStuGrade);DDX_Control(pDX, IDC_EDIT2, m_showGrade);DDX_Control(pDX, IDC_COMBO2, m_courseName);DDX_Control(pDX, IDC_COMBO1, m_showStudents);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMyDlg, CDialog)/AFX_MSG_MAP(CMyDlg)ON_WM_SYSCOMMAND()ON_WM_QUERYDRAGICON()ON_BN_
11、CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)ON_BN_CLICKED(IDC_BUTTON4, OnButton4)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMyDlg message handlersBOOL CMyDlg:OnInitDialog()CDialog:OnInitDialog();/ Add "About." menu item to system menu./ IDM
12、_ABOUTBOX must be in the system command range.ASSERT(IDM_ABOUTBOX & 0xFFF0) = IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL)CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()pSysMenu->AppendMenu(M
13、F_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);/ Set the icon for this dialog. The framework does this automatically/ when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);/ Set big iconSetIcon(m_hIcon, FALSE);/ Set small icon/ TODO: Add extra init
14、ialization hereCoInitialize(NULL);/studentRst->Close();/courseRst->Close();/pConn->Close();/studentRst.Release();/courseRst.Release();/pConn.Release();CoUninitialize();return TRUE; / return TRUE unless you set the focus to a controlvoid CMyDlg:OnSysCommand(UINT nID, LPARAM lParam)if (nID &a
15、mp; 0xFFF0) = IDM_ABOUTBOX)CAboutDlg dlgAbout;dlgAbout.DoModal();elseCDialog:OnSysCommand(nID, lParam);/ If you add a minimize button to your dialog, you will need the code below/ to draw the icon. For MFC applications using the document/view model,/ this is automatically done for you by the framewo
16、rk./* void CMyDlg:OnPaint() if (IsIconic() CPaintDC dc(this); / device context for painting SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&re
17、ct); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; Draw the icon dc.DrawIcon(x, y, m_hIcon); else CDialog:OnPaint(); */ The system calls this to obtain the cursor to display while the user drags/ the minimized window.HCURSOR CMyDlg:OnQueryDragIcon()return (HCURSO
18、R) m_hIcon;void CMyDlg:OnButton1() / TODO: Add your control notification handler code here/* tryCoInitialize(NULL);_ConnectionPtr pConn(_uuidof(Connection);_RecordsetPtr pRst(_uuidof(Recordset);/pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=GradeMan
19、a;Data Source=GAODING-PC;"pConn->ConnectionString="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User Id=sa;Initial Catalog=GradeMana;Data Source=gaoding-pc"pConn->Open("","","",adConnectUnspecified);AfxMessageBox("success");p
20、Rst=pConn->Execute("SELECT * FROM student",NULL,adCmdText);while(!pRst->rsEOF)m_showStudents.AddString(_bstr_t)pRst->GetCollect("name");/(CComboBox*)GetDlgItem(IDC_COMBO1)->AddString(_bstr_t)pRst->GetCollect("name");/(CListBox*)GetDlgItem(IDC_COMBO1)->
21、AddString("1"); pRst->MoveNext(); pRst->Close();pConn->Close(); pRst->Release();pConn->Release();CoUninitialize();catch (_com_error e)CString strError;strError.Format("警告:连接库失败!错误信息:%s", e.ErrorMessage();AfxMessageBox(strError);return; */ _ConnectionPtr pConn(_uuid
22、of(Connection);_RecordsetPtr studentRst(_uuidof(Recordset);pConn->ConnectionString = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User Id=sa;Initial Catalog=GradeMana;Data Source=gaoding-pc"pConn->Open("", "", "", adConnectUnspecified);stu
23、dentRst = pConn->Execute("select * from student", NULL, adCmdText);while(!studentRst->rsEOF)m_showStudents.AddString(_bstr_t)studentRst->GetCollect("name");studentRst->MoveNext();void CMyDlg:OnButton2() / TODO: Add your control notification handler code here /CString
24、id=""CString name=""CString rstCourse=""CString stuAvg=""int i=0;double a;double totalScore=0;_ConnectionPtr pConn(_uuidof(Connection);_RecordsetPtr pRst(_uuidof(Recordset);_RecordsetPtr getRst(_uuidof(Recordset);trypConn->ConnectionString = "Provider=
25、SQLOLEDB.1;Password=sa;Persist Security Info=True;User Id=sa;Initial Catalog=GradeMana;Data Source=gaoding-pc"pConn->Open("", "", "", adConnectUnspecified); pRst=pConn->Execute("select * from student",NULL,adCmdText);catch (_com_error e)CString strE
26、rror;strError.Format("警告:连接库失败!错误信息:%s", e.ErrorMessage();AfxMessageBox(strError);return;pRst->Move(m_showStudents.GetCurSel(); CString query="courseList '"query+=(_bstr_t)pRst->GetCollect("id");query+="'" getRst=pConn->Execute(_bstr_t)query,N
27、ULL,adCmdText);rstCourse.Format("%-20s","课程名称"); rstCourse+="成绩" /rstCourse+=" 平均分"while(!getRst->rsEOF) CString name="" CString score="" CString avg1="" name.Format(_T("%-20s"),(char *)(_bstr_t)getRst->GetCollect(
28、"name"); score+=(_bstr_t)getRst->GetCollect("score"); a=atof(score); totalScore+=a; /avg1+=(_bstr_t)getRst->GetCollect("AVG(score)"); rstCourse+="rn" rstCourse+="rn"+name+""+score+"rn"/ AfxMessageBox(_bstr_t)getRst->GetCo
29、llect("AVG(score)"); / rstCourse+="rn"+name+""+score+"avg1"+"rn" getRst->MoveNext(); i+; pRst->Close(); getRst->Close(); pConn->Close(); m_showGrade.SetWindowText(rstCourse); stuAvg.Format("%-20s%.3lf","平均分:",totalScor
30、e/i); /rstAverage.Format("%.3lf",totalScore/i); /rstAverage.Format("%.2f",totalScore/i); m_showAverage.SetWindowText(stuAvg); /AfxMessageBox(totalScore); /AfxMessageBox(_bstr_t)getRst->GetCollect(average); /* CString a; a.Format(_T("%.2f"),(_bstr_t)getRst->GetColl
31、ect("average"); CString average; average.Format("%.2f",a); m_showAverage=average; UpdateData(false); */ /* CString average; average.Format("%lf",(_bstr_t)getRst->GetCollect("average"); SetDlgItemText(IDC_EDIT5,average); */void CMyDlg:OnButton3() / TODO: Add
32、 your control notification handler code hereint j=0;double b;double totalScore=0;double courseAverage;CString courseAvg;CString rstStudent=""_ConnectionPtr pConn(_uuidof(Connection);_RecordsetPtr courseRst(_uuidof(Recordset);_RecordsetPtr getRst(_uuidof(Recordset);trypConn->ConnectionSt
33、ring = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User Id=sa;Initial Catalog=GradeMana;Data Source=gaoding-pc"pConn->Open("", "", "", adConnectUnspecified); courseRst=pConn->Execute("select * from course",NULL,adCmdText);catch
34、(_com_error e)CString strError;strError.Format("警告:连接库失败!错误信息:%s", e.ErrorMessage();AfxMessageBox(strError);return;courseRst->Move(m_courseName.GetCurSel(); CString query="studentList '"query+=(_bstr_t)courseRst->GetCollect("id");query+="'" getRs
35、t=pConn->Execute(_bstr_t)query,NULL,adCmdText);rstStudent.Format("%-20s","学生姓名"); rstStudent+="成绩"/rstStudent+=" 平均分"while(!getRst->rsEOF) CString name="" CString score="" name.Format(_T("%-20s"),(char *)(_bstr_t)getRst->
36、GetCollect("name"); score+=(_bstr_t)getRst->GetCollect("score"); rstStudent+="rn" rstStudent+="rn"+name+score+"rn" getRst->MoveNext(); b=atof(score); totalScore+=b; j+; /AfxMessageBox(rstStudent); /AfxMessageBox(rstStudent); courseRst->Close
37、(); getRst->Close(); pConn->Close(); m_showAllStuGrade.SetWindowText(rstStudent); courseAvg.Format("%-20s%.3lf","平均分:",totalScore/j); m_showAvgOfCourse.SetWindowText(courseAvg);/DEL void CMyDlg:OnCancelMode() /DEL /DEL CDialog:OnCancelMode();/DEL /DEL / TODO: Add your messa
38、ge handler code here/DEL /DEL /DEL void CMyDlg:OnCaptureChanged(CWnd *pWnd) /DEL /DEL / TODO: Add your message handler code here/DEL /DEL CDialog:OnCaptureChanged(pWnd);/DEL void CMyDlg:OnButton4() / TODO: Add your control notification handler code here_ConnectionPtr pConn(_uuidof(Connection);_Recor
39、dsetPtr courseRst(_uuidof(Recordset);pConn->ConnectionString = "Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User Id=sa;Initial Catalog=GradeMana;Data Source=gaoding-pc"pConn->Open("", "", "", adConnectUnspecified);courseRst = pConn->Exe
40、cute("select * from course", NULL, adCmdText);while(!courseRst->rsEOF)m_courseName.AddString(_bstr_t)courseRst->GetCollect("name");courseRst->MoveNext();四、实验结果与分析查询结果:分析:在做这个实验的短短的四周里,我学到了很多东西。由于对vc不是很了解,遇到了许多难题,好在同组成员里有比较擅长的同学,在他的指导下学习了许多关于VC的东西。实验中,我们用的是MySQL数据库,数据库表的创
41、建等都用的GUI,数据库语句我们基本上就没用到,在后面的实验中会尽量多加使用数据库语句。由于时间比较仓促,对VC的了解也不是很多,在展示的时候被老师提出的问题难倒了,这一点着实感到很惭愧。在后面的实验中会努力改正,争取学到更多的东西。实验项目名称: 学生成绩管理系统 实验学时: 8 同组学生姓名: 实验地点: B407 实验日期: 12.2、9、16、22 实验成绩: 批改教师: 批改时间: 一、实验目的和要求掌握基于 Web 的信息管理系统的设计方法,加深对功能模型、对象模型以及 B/S 结构等的理解。二、实验仪器和设备MyEclipse8.5,Mysql,Tomcat7.0三、实验过程本过
42、程主要进行系统需求分析,数据库需求分析和运用数据库管理软件为本系统建立必须的表。3.1 系统需求分析系统需求分析就是系统开发的基础部分,通过详细的调查了解对系统的需求进而为设计做好基础。通过对学生和成绩管理员平时生活工作进行充分的调查和分析,然后结合自身的思考,得出要设计的成绩管理系统是要管理员和学生都能方便操作的系统。系统能实现用户的注册功能、登录功能、管理员添加,修改删除学生的信息,查询学生平均成绩,课程平均成绩等功能。经过前期的深入调查和研究,总结出该系统需要完成的一些具体功能,分析如下:管理员管理:能够完成登陆功能,录入学生的信息,登录功能、管理员添加,修改删除学生的信息,查询学生平均
43、成绩,查询课程平均成绩的功能。3.2 系统功能需求分析学生成绩管理系统主要包括三大功能模块,平均成绩,页面布局,增删改查等。平均成绩模块主要包括求学生平均成绩、课程平均成绩;成删改查主要包括注册,登录,修改学生信息成绩等功能。求学生平均成绩存储过程学生查询成绩管理系统查询学生存储过程求课程平均成绩存储过程课程查询查询课程存储过程添加学生信息登分界面修改学生信息删除学生信息成绩管理系统总体设计模块图3.4 数据库分析3.4.1 E-R图分析 email 管理员用户名ID密码 管理员信息实体E-R图真实姓名性别 学生所属院系学号成绩学生信息实体E-R图课程名 授课教师id 开课院系 课程 学时授课
44、教师姓名课程号课程实体E-R图 学生号选课课程号 分数选课实体E-R图3.4.2 数据库表分析根据上面实体和产生的行为,从实际需要出发,同时又考虑各实体间的联系和统一性,设计出如下各表。1管理员表管理员表主要是用于保存管理员的信息,如ID、用户名、密码等,如表3-1所示。表3-1 管理员的信息表序号字段名数据类型长度描述1admin_id自动编号管理员的惟一标识设置为主键2admin_email文本25管理员的邮箱3admin_pwd文本25管理员的密码4admin_username文本25管理员的姓名2学生表学生表主要是用于保存学生登录的信息,如学生的真实姓名,学号,所属院系等。表3-2 学
45、生的登录信息表序号字段名数据类型长度描述1id自动编号学生的惟一标识设置为主键2Name文本25学生的姓名3Gender文本25学生的性别4Department文本25学生的所属院系3课程表课程表用于存储课程的基本信息,如课程的id,name,period,departenment等。表3-3 学生住宿信息表序号字段名数据类型长度描述1id自动编号惟一标识,设置为主键2name文本25课程名3Period文本8课程的课时4dpartemnt文本20课程所属院系4选课表选课表主要是用于存储学生对应课程的分数信息。表3-4 公告栏表序号字段名数据类型长度描述1studentidInt8和cours
46、eid一起为主键2CoursedId8和studentid一起为主键3ScoreInt8分数记录 系统前台设计与实现成绩管理系统的整个前台挺简单的。下面将一一介绍我的网站系统的前台部分的实现。3.5 通用文件设计这里所说的通用文件是指在开发系统页面中,经常会使用到的文件。本系统包括了下面两个通用文件,分别是系统头文件和数据库连接文件。1jar包Jar包的主要作用就是可以理解为一个环境,没有这个环境一些功能无法实现。2数据库连接文件为了使每个网页都能方便的访问到数据库,要先建立一个数据库连接文件。此文件由DataConnect类实现。这是一个功能性文件,主要作用是连接服务器中的数据库,凡要调用数
47、据库的地方,现在就可以直接引用它了。3.6 功能设计功能设计中管理员的功能为:(1) 管理学生,包括添加、删除和修改学生信息。(2) 查询学生选课记录及其平均成绩。(3) 查询选修课程的学生及其平均成绩。关键代码如下:(1)public ArrayList<Object> selectStu() / TODO Auto-generated method stub ArrayList<Object> rs=new ArrayList<Object>(); String sql="call proc_name("+this.studentId
48、+");" /String sql="select studentid,,course.department,period,,score from selectcourse,course,student where course.id=courseid and student.id=studentid and studentid='"+this.studentId+"'" DBAccess db=new DBAccess(); if(db.createConn()rs=db
49、.queryReturnArrayList(sql);db.closeRs();db.closeStm();db.closeConn();return rs;public ArrayList<Object> selectAvgStu() / TODO Auto-generated method stub ArrayList<Object> rs=new ArrayList<Object>(); String sql="call proc_avgname("+this.studentId+");" /String sql="select studentid,,course.department,period,,score from selectcourse,course,student where course.id=courseid and student.id=studentid and studentid='"+this.studentId+"'" DBAcc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东财经大学东方学院《生产运营管理》2023-2024学年第二学期期末试卷
- 元宵节诗词鉴赏大会
- 丽江师范高等专科学校《机械设计理论教学》2023-2024学年第二学期期末试卷
- 上海东海职业技术学院《药理学实验方法学》2023-2024学年第一学期期末试卷
- 辽宁农业职业技术学院《微生物发酵制药实验》2023-2024学年第二学期期末试卷
- 山东省济宁微山县联考2025年中考物理试题命题比赛模拟试卷(17)含解析
- 山西工程技术学院《动物生物化学实验》2023-2024学年第二学期期末试卷
- 咸宁市通山县2025年数学三下期末学业质量监测模拟试题含解析
- 周口职业技术学院《基础工程与地基处理》2023-2024学年第二学期期末试卷
- 湖南邮电职业技术学院《BIM三维建筑设备工程制图》2023-2024学年第二学期期末试卷
- 2024年中小学教师资格考试复习资料
- 名企2025汇能控股集团有限公司人才招聘151人笔试参考题库附带答案详解
- 2025年学习深入贯彻中央八项规定精神知识测试题【附答案】
- 全媒体内容创作技能试题及答案
- 2025南水北调东线山东干线限责任公司人才招聘30人管理单位笔试遴选500模拟题附带答案详解
- 欧洲文明与世界遗产智慧树知到期末考试答案章节答案2024年广东工业大学
- 中国古代都城空间布局演变特征
- 砂石料加工场施工方案两篇
- TROXLER3440核子密度仪
- 前处理、电泳涂装常用四种输送方式的工艺特性和设备结构对比
- 污水处理厂安全生产费用提取使用管理制度
评论
0/150
提交评论