学生选修课系统的设计Word文档下载推荐.docx

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

学生选修课系统的设计Word文档下载推荐.docx

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

学生选修课系统的设计Word文档下载推荐.docx

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"

Ver1.h"

Ver1Dlg.h"

MainWindow.h"

AdminDlg.h"

Student.h"

#include<

fstream>

vector>

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();

//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32

m_hIcon=AfxGetApp()->

LoadIcon(IDI_ICON2);

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

voidCVer1Dlg:

//{{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);

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()

//CVer1Dlgmessagehandlers

BOOLCVer1Dlg:

OnInitDialog()

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);

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

OnSysCommand(UINTnID,LPARAMlParam)

if((nID&

0xFFF0)==IDM_ABOUTBOX)

CAboutDlgdlgAbout;

dlgAbout.DoModal();

else

CDialog:

OnSysCommand(nID,lParam);

//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow

//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,

//thisisautomaticallydoneforyoubytheframework.

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);

OnPaint();

//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags

//theminimizedwindow.

HCURSORCVer1Dlg:

OnQueryDragIcon()

return(HCURSOR)m_hIcon;

OnReset()

Addyourcontrolnotificationhandlercodehere

UpdateData(FALSE);

OnEnter()

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=="

ShowWindow(SW_HIDE);

CAdminDlgdlg;

dlg.pDlg=this;

dlg.DoModal();

else

MessageBox("

用户名或密码错误!

\t"

MB_OK|MB_ICONINFORMATION);

ShowWindow(SW_NORMAL);

m_strUserName="

;

m_strPassword="

LoadStudentInfo()

//Loadstudentinfomation

ifstreaminfile;

infile.open("

data\\student.txt"

ios:

in);

if(infile)

charbuf[50];

while(!

infile.eof())

CStudenttmpStuInfo;

infile>

>

buf;

tmpStuInfo.m_strID=buf;

tmpStuInfo.m_strName=buf;

tmpStuInfo.m_strPassword=buf;

tmpStuInfo.m_strDepartment=buf;

tmpStuInfo.m_strGreade=buf;

tmpStuInfo.m_strClass=buf;

tmpStuInfo.m_nCourseCnt;

for(inti=0;

i<

i++)

intnCourseID;

infile>

nCourseID;

tmpStuInfo.m_nSelCourse.insert(nCourseID);

}

m_StuInfo.push_back(tmpStuInfo);

infile.close();

checkPassword()

UpdateData();

for(inti=0;

i!

=m_StuInfo.size();

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

if(m_StuInfo[i].m_strPassword!

=m_strPassword)

密码错误,请重新输入!

"

m_strPassword="

UpdateData(FALSE);

returnFALSE;

else

m_nCurLogin=i;

returnTRUE;

}

MessageBox("

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

"

returnFALSE;

SaveStudentInfo()

ofstreamoutfile;

outfile.open("

out);

if(i)outfile<

<

\n"

outfile<

(LPCTSTR)(m_StuInfo[i].m_strID);

//写入学号

(LPCTSTR)(m_StuInfo[i].m_strName);

//写入姓名

(LPCTSTR)(m_StuInfo[i].m_strPassword);

//写入密码

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

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

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

m_StuInfo[i].m_nCourseCnt;

//写入所选课程总数

//写入各门课程编号

for(set<

int>

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

it!

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

it++)

outfile<

*it;

outfile.close();

HBRUSHCVer1Dlg:

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

HBRUSHhbr=CDialog:

OnCtlColor(pDC,pWnd,nCtlColor);

ChangeanyattributesoftheDChere

if(pWnd->

GetDlgCtrlID()==IDC_ADMIN||pWnd->

GetDlgCtrlID()==IDC_STUDENT)

pDC->

SetBkMode(TRANSPARENT);

SetTextColor(RGB(0,0,255));

returnm_brush;

Returnadifferentbrushifthedefaultisnotdesired

returnhbr;

(3)学生注

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

当前位置:首页 > 职业教育 > 中职中专

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

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