学生选修课系统的设计.docx

上传人:b****5 文档编号:6367338 上传时间:2023-01-05 格式:DOCX 页数:44 大小:382.17KB
下载 相关 举报
学生选修课系统的设计.docx_第1页
第1页 / 共44页
学生选修课系统的设计.docx_第2页
第2页 / 共44页
学生选修课系统的设计.docx_第3页
第3页 / 共44页
学生选修课系统的设计.docx_第4页
第4页 / 共44页
学生选修课系统的设计.docx_第5页
第5页 / 共44页
点击查看更多>>
下载资源
资源描述

学生选修课系统的设计.docx

《学生选修课系统的设计.docx》由会员分享,可在线阅读,更多相关《学生选修课系统的设计.docx(44页珍藏版)》请在冰豆网上搜索。

学生选修课系统的设计.docx

学生选修课系统的设计

 

郑州大学物理工程学院

 

管理信息系统课程论文

题目:

学生选修课信息管理系统设计

 

年级:

2009级专业:

电子信息科学与技术

姓名:

柳炯学号:

20092250117

2012年6月日

学生选修课信息管理系统设计

摘要:

随着现在计算机技术和网络技术的发展,管理信息系统的作用越来越明显和重要。

作为计算机技术的一部分,使用管理信息系统对学生选修课系统进行管理,具有手工管理所无法媲美的优点。

系统分析:

1、系统流程图如下:

2、系统可行性分析

A、管理上的可行性:

该学生选修课系统管理方法科学,而且现有的管理制度已经成熟、规章制度已经齐全。

B、技术上的可行性:

软件需求:

操作系统WINDOWS2000AdvanceServer以上

硬件需求:

赛扬1.7GCPU、512M内存80G硬盘的计算机

使用语言为:

C语言

编辑工具为:

VC++6.0

C、经济上的可行性:

开发成本:

300元人民币。

效益:

暂时无法具体衡量。

效益/投资比:

暂时无法估算。

投资回收期:

大约2个月。

D、开发工具的选择:

VC++6.0作为前台的开发工具;用记事文本作为后台支持数据库;通过VC来连接到文本数据库并对其编程来实现各种功能。

结论:

综上所述,学生选修课信息管理系统在技术上非常成熟,主客观条件都具备,且具有良好的效益,因此开发此系统是可行的。

3、功能模块划分:

 

B、功能描述:

1、学生注册信息模块

学生信息添加:

学生进入注册页面,输入学号、密码、院系、班级、年级,然后进行提交。

系统把数据录入学生资料数据库中。

2、课程信息模块

(1)课程信息添加:

管理员用户登录后,进入课程信息管理功能单元,输入课程号,课序号,课程名称,教师姓名,开设院系这些数据后提交数据,完成课程信息地添加操作,此时在选课表中将出现刚才添加的课程的有关信息。

(2)课程信息修改:

管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要修改的课序号,选定后就可以修改该选定课程的课程编号,课序号,课程名称,教师姓名,开设院系,提交后就得到该门课程修改后的信息。

(3)课程信息删除:

管理员用户登录后,进入课程信息管理功能单元,如果是已经登录了,选择要删除的课程的课序号,提交后,就将选定课程删除了。

(4)已选课程信息的维护:

管理员用户登录后,进入选课程功能单元,就可以看到学生已选的课程,可以通过选择相应的课程号来将相应学生的选课记录删除。

3、学生登录功能模块

输入学生的用户名和密码,然后连接数据库,检验用户登录信息。

如果存在,则进入选课页面;如果用户名不存在或密码不正确,则给出登录失败的提示框。

4、选课功能模块

进入选课页面,选定所要选的课程后,然后提交。

系统自动修改课程数据库的信息,然后在学生数据库添加相关已选定的课程信息。

5、选修课查询模块

该学生登录后进入选修课选课页面后,从学生数据库中调出该学生的信息以及已选的课程信息,显示在下面。

 

系统设计:

1、根据系统需求分析和系统功能模块结构图来看,该系统应具备如下基本功能:

●学生选课的查询

●学生注册

●已注册管理员的发布、修改、删除选修课程信息

其功能模块结构图如下:

系统层次模块图:

2、模块设计:

(1)用户注册模块:

填写用户名、密码、确认密码

(2)用户登录模块:

填写已注册的用户名称,填写正确的密码,进入主控制页面。

(3)用户选课模块:

学生可以根据选修课信息选择自己所要选择的课程。

(4)用户查询模块:

可以进行查看所选课程的操作。

2、各模块C语言详细设计

(1)登录模块

功能:

本模块主要用于对用户身份进行鉴别。

用户通过表单提供用户名和密码信息,系统根据用户提供的登录信息对用户进行身份查询鉴别。

如果身份合法,则将用户导向系统的选课页面。

输入:

用户名、密码

处理:

(1)输入用户的登录信息:

在页面提供的表单出输入用户的用户名和密码信息,点击“登录”按钮提交表单信息到身份验证页面。

或点击“重置”按钮,重新输入。

(2)用户身份进行验证:

连接数据库,打开用户文本档案信息,检验用户登录信息。

以输入数据“用户名”为查询条件创建数据集查看输入用户名是否存在。

如果存在,继续检验输入的密码是否正确。

密码和用户名都正确,则进入选课页面;如果用户名不存在或密码不正确,则给出登录失败的提示框。

输出:

学生选课页面

(2)学生登录页面图如下图所示:

登录后通过此方法从检索是否有此用户:

#include"stdafx.h"

#include"Ver1.h"

#include"Ver1Dlg.h"

#include"MainWindow.h"

#include"AdminDlg.h"

#include"Student.h"

#include

#include

usingnamespacestd;

#ifdef_DEBUG

#definenewDEBUG_NEW

#undefTHIS_FILE

staticcharTHIS_FILE[]=__FILE__;

#endif

/////////////////////////////////////////////////////////////////////////////

//CAboutDlgdialogusedforAppAbout

classCAboutDlg:

publicCDialog

{

public:

CAboutDlg();

//DialogData

//{{AFX_DATA(CAboutDlg)

enum{IDD=IDD_ABOUTBOX};

//}}AFX_DATA

//ClassWizardgeneratedvirtualfunctionoverrides

//{{AFX_VIRTUAL(CAboutDlg)

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport

//}}AFX_VIRTUAL

//Implementation

protected:

//{{AFX_MSG(CAboutDlg)

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

};

CAboutDlg:

:

CAboutDlg():

CDialog(CAboutDlg:

:

IDD)

{

//{{AFX_DATA_INIT(CAboutDlg)

//}}AFX_DATA_INIT

}

voidCAboutDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CAboutDlg)

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)

//{{AFX_MSG_MAP(CAboutDlg)

//Nomessagehandlers

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CVer1Dlgdialog

CVer1Dlg:

:

CVer1Dlg(CWnd*pParent/*=NULL*/)

:

CDialog(CVer1Dlg:

:

IDD,pParent)

{

//{{AFX_DATA_INIT(CVer1Dlg)

m_strUserName=_T("");

m_strPassword=_T("");

m_iAdmin=1;

m_nCurLogin=-1;

m_bIsExistUser=FALSE;//默认为不存在用户

//m_StuInfo.clear();

//}}AFX_DATA_INIT

//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32

m_hIcon=AfxGetApp()->LoadIcon(IDI_ICON2);

m_brush.CreateSolidBrush(RGB(208,231,250));

}

voidCVer1Dlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CVer1Dlg)

DDX_Text(pDX,IDC_USER,m_strUserName);

DDX_Text(pDX,IDC_PASSWORD,m_strPassword);

DDX_Radio(pDX,IDC_ADMIN,m_iAdmin);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CVer1Dlg,CDialog)

//{{AFX_MSG_MAP(CVer1Dlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(BTN_RESET,OnReset)

ON_BN_CLICKED(BTN_ENTER,OnEnter)

ON_WM_CTLCOLOR()

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CVer1Dlgmessagehandlers

BOOLCVer1Dlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//Add"About..."menuitemtosystemmenu.

//IDM_ABOUTBOXmustbeinthesystemcommandrange.

ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

{

CStringstrAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if(!

strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

}

}

//Settheiconforthisdialog.Theframeworkdoesthisautomatically

//whentheapplication'smainwindowisnotadialog

SetIcon(m_hIcon,TRUE);//Setbigicon

SetIcon(m_hIcon,FALSE);//Setsmallicon

//TODO:

Addextrainitializationhere

//SetDialogBkCo

LoadStudentInfo();//Loadstudentinfomation

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

}

voidCVer1Dlg:

:

OnSysCommand(UINTnID,LPARAMlParam)

{

if((nID&0xFFF0)==IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog:

:

OnSysCommand(nID,lParam);

}

}

//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow

//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,

//thisisautomaticallydoneforyoubytheframework.

voidCVer1Dlg:

:

OnPaint()

{

if(IsIconic())

{

CPaintDCdc(this);//devicecontextforpainting

SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);

//Centericoninclientrectangle

intcxIcon=GetSystemMetrics(SM_CXICON);

intcyIcon=GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

intx=(rect.Width()-cxIcon+1)/2;

inty=(rect.Height()-cyIcon+1)/2;

//Drawtheicon

dc.DrawIcon(x,y,m_hIcon);

}

else

{

CDialog:

:

OnPaint();

}

}

//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags

//theminimizedwindow.

HCURSORCVer1Dlg:

:

OnQueryDragIcon()

{

return(HCURSOR)m_hIcon;

}

voidCVer1Dlg:

:

OnReset()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_strUserName=_T("");

m_strPassword=_T("");

m_iAdmin=1;

UpdateData(FALSE);

}

voidCVer1Dlg:

:

OnEnter()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

switch(m_iAdmin)

{

case1:

{

if(!

m_strUserName.GetLength())

{

MessageBox("用户名不能为空!

","提示",MB_OK|

MB_ICONINFORMATION);

return;

}

if(checkPassword())

{

ShowWindow(SW_HIDE);//先隐藏登录窗口

CMainWindowdlg;

dlg.pDlg=this;

dlg.DoModal();

}

}

break;

case0:

if(m_strUserName=="admin"&&m_strPassword=="admin")

{

ShowWindow(SW_HIDE);//先隐藏登录窗口

CAdminDlgdlg;

dlg.pDlg=this;

dlg.DoModal();

}

else

MessageBox("用户名或密码错误!

\t","提示",MB_OK|MB_ICONINFORMATION);

break;

}

ShowWindow(SW_NORMAL);

m_strUserName="";

m_strPassword="";

UpdateData(FALSE);

}

voidCVer1Dlg:

:

LoadStudentInfo()

{

//Loadstudentinfomation

ifstreaminfile;

infile.open("data\\student.txt",ios:

:

in);

if(infile)

{

charbuf[50];

while(!

infile.eof())

{

CStudenttmpStuInfo;

infile>>buf;

tmpStuInfo.m_strID=buf;

infile>>buf;

tmpStuInfo.m_strName=buf;

infile>>buf;

tmpStuInfo.m_strPassword=buf;

infile>>buf;

tmpStuInfo.m_strDepartment=buf;

infile>>buf;

tmpStuInfo.m_strGreade=buf;

infile>>buf;

tmpStuInfo.m_strClass=buf;

infile>>tmpStuInfo.m_nCourseCnt;

for(inti=0;i

{

intnCourseID;

infile>>nCourseID;

tmpStuInfo.m_nSelCourse.insert(nCourseID);

}

m_StuInfo.push_back(tmpStuInfo);

}

infile.close();

}

}

BOOLCVer1Dlg:

:

checkPassword()

{

UpdateData();

for(inti=0;i!

=m_StuInfo.size();i++)

{

if(m_StuInfo[i].m_strID==m_strUserName)

{

if(m_StuInfo[i].m_strPassword!

=m_strPassword)

{

MessageBox("密码错误,请重新输入!

",

"提示",MB_OK|MB_ICONINFORMATION);

m_strPassword="";

UpdateData(FALSE);

returnFALSE;

}

else

{

m_nCurLogin=i;

returnTRUE;

}

}

}

MessageBox("用户名不存在,请重新输入!

",

"提示",MB_OK|MB_ICONINFORMATION);

m_strPassword="";

UpdateData(FALSE);

returnFALSE;

}

voidCVer1Dlg:

:

SaveStudentInfo()

{

ofstreamoutfile;

outfile.open("data\\student.txt",ios:

:

out);

for(inti=0;i!

=m_StuInfo.size();i++)

{

if(i)outfile<<"\n";

outfile<<(LPCTSTR)(m_StuInfo[i].m_strID);//写入学号

outfile<<"\t";

outfile<<(LPCTSTR)(m_StuInfo[i].m_strName);//写入姓名

outfile<<"\t";

outfile<<(LPCTSTR)(m_StuInfo[i].m_strPassword);//写入密码

outfile<<"\t";

outfile<<(LPCTSTR)(m_StuInfo[i].m_strDepartment);

outfile<<"\t";

outfile<<(LPCTSTR)(m_StuInfo[i].m_strGreade);

outfile<<"\t";

outfile<<(LPCTSTR)(m_StuInfo[i].m_strClass);

outfile<<"\t";

outfile<

//写入各门课程编号

for(set:

:

iteratorit=m_StuInfo[i].m_nSelCourse.begin();

it!

=m_StuInfo[i].m_nSelCourse.end();it++)

{

outfile<<"\t"<<*it;

}

}

outfile.close();

}

HBRUSHCVer1Dlg:

:

OnCtlColor(CDC*pDC,CWnd*pWnd,UINTnCtlColor)

{

HBRUSHhbr=CDialog:

:

OnCtlColor(pDC,pWnd,nCtlColor);

//TODO:

ChangeanyattributesoftheDChere

if(pWnd->GetDlgCtrlID()==IDC_ADMIN||pWnd->GetDlgCtrlID()==IDC_STUDENT)

{

pDC->SetBkMode(TRANSPARENT);

pDC->SetTextColor(RGB(0,0,255));

returnm_brush;

}

//TODO:

Returnadifferentbrushifthedefaultisnotdesired

returnhbr;

}

(3)学生注

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1