课程设计报告参考格式.docx
《课程设计报告参考格式.docx》由会员分享,可在线阅读,更多相关《课程设计报告参考格式.docx(23页珍藏版)》请在冰豆网上搜索。
![课程设计报告参考格式.docx](https://file1.bdocx.com/fileroot1/2023-4/17/88ec4978-fbf2-44f6-bed2-6536d7994f7e/88ec4978-fbf2-44f6-bed2-6536d7994f7e1.gif)
课程设计报告参考格式
学号
武汉科技大学城市学院
课程设计报告
课程名称面向对象程序设计(vc++)课程设计
题目
学部
专业
班级
姓名
指导教师
2016
年
12
月
23
日
面向对象程序设计(vc++)课程设计任务书
题目火车站售票预定管理系统的设计与实现
1开发平台:
Visualc++6.0
2设计任务
1、设计内容
设计一个火车站售票管理系统,首先是欢迎界面,然后选择登录,登录的时候首先要判断用户的身份,合法的用户然后进入到系统主界面中。
按照要求完成所有的功能和模块。
(1)火车信息表表单,主要字段有:
班次号、出发时间、到达时间、出发城市、到达城市、途径城市、硬座价格、卧铺价格、备注
(2)用户信息表单,主要字段有:
用户名、密码
3课程设计报告书主要内容
1)需求分析
2)总体设计
2.1设计的总体思想与算法描述
2.2模块结构图
2.3各功能模块的功能与处理流程描述
2.4界面设计
3)各功能模块程序设计
按照功能模块的功能与处理流程描述给出详细的程序代码,并给出重点语句的注释.
4)小结
4课程设计要求
1)按时到机房签到,在指定机位上机。
遵守机房纪律。
2)独立完成课程设计任务。
指导教师到机位上指导学生和分时段验收学生完成的程序,按时提交打印的课程设计报告书
5课程设计参考书
[1]吕风翥.c++语言程序设计.北京:
电子工业出版社.2011
[2]张晓民.VC++2010应用开发技术.北京:
机械工业出版社.2013
[3]张海蕃.软件工程导论.北京:
清华大学出版社,2008
[4]杨正甫.面向对象分析与设计.北京:
中国铁道出版社,2004
撰写者:
曾志华李聪审定:
聂玉峰
目录
1需求分析1
1.1系统概述1
1.2问题分析1
2系统总体设计2
2.1功能模块图2
2.2系统流程图2
2.3系统数据文本设计3
3系统实现4
3.1进入功能4
3.3查找功能5
3.4删除功能6
3.5添加功能6
欢迎界面的代码9
5总结14
6参考文献15
1需求分析
1.1系统概述
系统含有以下内容:
(1)欢迎界面,点击进入登陆界面。
(2)登陆界面,连接文本,登陆你的名字和密码进入主界面。
(3)主界面,在菜单选项中选择查询,删除,修改,增加,录入。
(4)查询界面,按起始站和终点站查询,如武汉->汉川,即显示出发时间地点到达时间等信息。
(5)删除界面,点击列表控件中的首数据,点击删除,即删除出发时间地点到达时间等信息。
(6)增加界面,在编辑框中输入各项信息,即增加出发时间地点到达时间等信息。
(7)修改界面,点击列表框中的被修改数的首数据,且在编辑框中输入各项信息,即修改出发时间地点到达时间等信息。
1.2问题分析
整个火车站售票预订管理系统怎么登陆进去,如何与文本建立联系,怎么在主界面进行查询删除修改增加学生信息。
各个运算功能的详细设计说明分别如下:
1)首先是登陆界面,用户信息表单,主要字段有:
用户名、密码和注册。
2)然后点击注册,成功之后输入用户名和密码可以进入否则错误。
3)进入主菜单界面,在菜单选项中选择查询删除修改增加。
插入第二张表,显示火车信息表表单,主要字段有:
班次号、出发时间、到达时间、出发城市、到达城市、途径城市等信息。
4)查询界面,按起始站,终点站查询。
输入起始站,终点站,如武汉,汉川,及显示出发时间地点到达时间等信息。
5)删除增加修改界面与之类似。
2系统总体设计
2.1功能模块图
图2-1功能模块图
当登录之后,主界面显示了有关辆信息的输入框和右边已经添加的车辆信息的显示窗口。
界面下面是“录入”,“查找”,“添加”,“修改”,“退出”。
这些按钮分别对应它们的功能。
录入:
把已经添加的车辆信息的文本导入到程序中;
添加:
添加新的车辆信息;
修改;修改已经添加的车辆信息;
退出;把车辆信息保存到文本文件,关闭程序窗口。
2.2系统流程图
图2-2系统流程图
2.3系统数据文本设计
火车站售票管理系统文本数据有2个
(1)主要字段有:
班次号、出发时间、到达时间、出发城市、到达城市。
(2)用户信息表单,主要字段有:
用户名、密码
Name
passward
3系统实现
3.1进入功能
按enter键进入登陆界面
图3-1欢迎界面
3.2登陆功能
进入登陆界面,输入用户名曾建铭和密码123456,即可进入主界面。
同时也可以注册账号密码存储至文本当中。
图3-2登陆界面
3.3查找功能
输入所要查找的起始站和终点站,如武汉到汉川,即可显示班次号、出发时间、到达时间、出发城市、到达城市。
图3-3查询界面
3.4删除功能
输入所要删除的班次号,如005,即可显示班次号、出发时间、到达时间、出发城市、到达城市。
图3-4删除界面
3.5添加功能
输入所要添加的班次号、出发时间、到达时间、出发城市、到达城市。
图3-5添加界面
3.6修改功能
输入所要修改的班次号,如001,即可修改所要修改的内容。
图3-6修改界面
3.7录入功能
更新文本框中的信息至列表框中。
4关键程序代码
欢迎界面的代码
voidCWelcomeDlg:
:
OnBnClickedButton1()
{
OnCancel();
CLoginDlgdlg;
dlg.DoModal();
}
登陆界面的代码
voidCTestDlg:
:
OnInput()
{
ifstreaminfile("账户记事本.txt",ios:
:
in);
stringname,keys;
UpdateData(true);
if(m_keys==""||m_name=="")
{
AfxMessageBox("请输入账号和密码!
");
return;
}
while(infile>>name>>keys)
{
if(m_name.GetBuffer(0)==name&&m_keys.GetBuffer(0)==keys)
{
CGuanliyuandlga;
a.DoModal();
return;
}
}
AfxMessageBox("请输入正确的账号和密码!
!
");
SetDlgItemText(IDC_EDIT1,"");
SetDlgItemText(IDC_EDIT2,"");
infile.close();
}
voidCTestDlg:
:
OnZHUCHE()
{
ofstreamoutfile("账户记事本.txt",ios:
:
app);
ifstreaminfile("账户记事本.txt",ios:
:
in);
UpdateData(true);
stringname,keys;
while(infile>>name>>keys)
{
if(m_keys==""||m_name=="")
{
AfxMessageBox("请输入完整账号和密码!
");
return;
}
if(m_name.GetBuffer(0)==name)
{
AfxMessageBox("您输入的账号以存在!
");
return;
}
}
outfile<C_wronga;
a.DoModal();
SetDlgItemText(IDC_EDIT1,"");
SetDlgItemText(IDC_EDIT2,"");
outfile.close();
}
主界面代码
BOOLCGuanliyuandlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
stringriqi,checi,qishizhan,zhongdianzhan,ktime,dtime;
CListCtrl*pList=(CListCtrl*)GetDlgItem(IDC_LIST);
pList->InsertColumn(0,"日期",0,100);
pList->InsertColumn(0,"车次",0,100);
pList->InsertColumn(0,"起始站",0,100);
pList->InsertColumn(0,"终点站",0,100);
pList->InsertColumn(0,"出发时间",0,100);
pList->InsertColumn(0,"到达时间",0,100);
ifstreaminFile("信息.txt",ios:
:
in);
inti=0;
while(inFile>>riqi>>checi>>qishizhan>>zhongdianzhan>>ktime>>dtime)
{
intnCount=pList->GetItemCount();
pList->InsertItem(nCount,riqi.c_str());
pList->SetItemText(i,1,checi.c_str());
pList->SetItemText(i,2,qishizhan.c_str());
pList->SetItemText(i,3,zhongdianzhan.c_str());
pList->SetItemText(i,4,ktime.c_str());
pList->SetItemText(i,5,dtime.c_str());
i++;
}
returnTRUE;
}
查询界面代码
voidCGuanliyuandlg:
:
OnChaxun()
{fstreamfile("信息.txt",ios:
:
in|ios:
:
out);
CStringriqi,checi,qishizhan,zhongdianzhan,ktime,dtime;
string_riqi,_checi,_qishizhan,_zhongdianzhan,_ktime,_dtime;
CListCtrl*pList=(CListCtrl*)GetDlgItem(IDC_LIST);
UpdateData(true);
GetDlgItemText(IDC_RIQI,riqi);
GetDlgItemText(IDC_CHECI,checi);
GetDlgItemText(IDC_QISHIZHAN,qishizhan);
GetDlgItemText(IDC_ZHONGDIANZHAN,zhongdianzhan);
GetDlgItemText(IDC_KTINE,ktime);
GetDlgItemText(IDC_DTIME,dtime);
intnCount=pList->GetItemCount();
if(riqi==""&&checi==""&&qishizhan==""&&zhongdianzhan==""&&ktime==""&&dtime=="")
{
AfxMessageBox("请输入一定量的查询信息!
");
return;
}
while(nCount--)
{
pList->DeleteItem(nCount);
}
inti=0;
UpdateData(false);
while(file>>_riqi>>_checi>>_qishizhan>>_zhongdianzhan>>_ktime>>_dtime)
{
if(_qishizhan==qishizhan.GetBuffer(0)&&_zhongdianzhan==zhongdianzhan.GetBuffer(0))
{
intnCount=pList->GetItemCount();
pList->InsertItem(nCount,_riqi.c_str());
pList->SetItemText(i,1,_checi.c_str());
pList->SetItemText(i,2,_qishizhan.c_str());
pList->SetItemText(i,3,_zhongdianzhan.c_str());
pList->SetItemText(i,4,_ktime.c_str());
pList->SetItemText(i,5,_dtime.c_str());
i++;
}
}
file.close();
}
删除界面代码
voidCGuanliyuandlg:
:
OnShanchu()
{
CStringriqi,checi,qishizhan,zhongdianzhan,ktime,dtime;
string_riqi,_checi,_qishizhan,_zhongdianzhan,_ktime,_dtime;
CListCtrl*pList=(CListCtrl*)GetDlgItem(IDC_LIST);
if(pList->GetSelectedCount()<1)//获取所选项目
{
AfxMessageBox("请选择要删除的数据!
");
return;
}
ofstreamoutfile("信息.txt",ios:
:
trunc);
intsCount=pList->GetSelectionMark();
pList->DeleteItem(sCount);
intnCount=pList->GetItemCount();
inti=0;
while(i{
riqi=pList->GetItemText(i,0);
checi=pList->GetItemText(i,1);
qishizhan=pList->GetItemText(i,2);
zhongdianzhan=pList->GetItemText(i,3);
ktime=pList->GetItemText(i,4);
dtime=pList->GetItemText(i,5);
outfile<i++;
}
outfile.close();
}voidCChangeDlg:
:
OnBnClickedButton2()
{CTrainInfoTrainSet;
CStringstrSQL;
UpdateData(TRUE);
strSQL.Format(_T("select*fromTrainInfowhere班次号='%s'"),m_Edit1);
if(!
TrainSet.Open(CRecordset:
:
dynamic,strSQL))
{
MessageBox(_T("打开数据库失败"));
return;
}
else
{
if(TrainSet.GetRecordCount()==0)
{
MessageBox(_T("无此班次记录!
"));
TrainSet.Close();
}
else
{
TrainSet.Edit();
TrainSet.column1=m_Edit1;
TrainSet.column2=m_Edit2;
TrainSet.column3=m_Edit3;
TrainSet.column4=m_Edit4;
TrainSet.column5=m_Edit5;
TrainSet.column6=m_Edit6;
TrainSet.column7=m_Edit7;
TrainSet.column8=m_Edit8;
TrainSet.column9=m_Edit9;
TrainSet.Update();
TrainSet.Requery();
MessageBox(_T("修改该班次信息成功|!
"));
UpdateData(FALSE);
TrainSet.Close();
}
}
}
增加界面代码
voidCGuanliyuandlg:
:
OnLuru()
{
CStringriqi,checi,qishizhan,zhongdianzhan,ktime,dtime;
string_riqi,_checi,_qishizhan,_zhongdianzhan,_ktime,_dtime;
ofstreamoutfile("信息.txt",ios:
:
app);
UpdateData(true);
GetDlgItemText(IDC_RIQI,riqi);
GetDlgItemText(IDC_CHECI,checi);
GetDlgItemText(IDC_QISHIZHAN,qishizhan);
GetDlgItemText(IDC_ZHONGDIANZHAN,zhongdianzhan);
GetDlgItemText(IDC_KTINE,ktime);
GetDlgItemText(IDC_DTIME,dtime);
if(riqi==""||checi==""||qishizhan==""||zhongdianzhan==""||ktime==""||dtime=="")
{
AfxMessageBox("请输入完整的添加信息!
");
return;
}
ifstreaminfile("信息.txt",ios:
:
in);
while(infile>>_riqi>>_checi>>_qishizhan>>_zhongdianzhan>>_ktime>>_dtime)
{
if(_riqi==riqi.GetBuffer(0)&&_checi==checi.GetBuffer(0)&&_ktime==ktime.GetBuffer(0)&&_dtime==dtime.GetBuffer(0)&&_qishizhan==qishizhan.GetBuffer(0)&&_zhongdianzhan==zhongdianzhan.GetBuffer(0))
{
AfxMessageBox("请不要添加相同的信息!
");
return;
}
}
outfile<outfile.close();
CListCtrl*pList=(CListCtrl*)GetDlgItem(IDC_LIST);
intnCount=pList->GetItemCount();
pList->InsertItem(nCount,riqi);
pList->SetItemText(nCount,1,checi);
pList->SetItemText(nCount,2,qishizhan);
pList->SetItemText(nCount,3,zhongdianzhan);
pList->SetItemText(nCount,4,ktime);
pList->SetItemText(nCount,5,dtime);
AfxMessageBox("添加成功!
");
}
5总结
刚开始拿到课程设计的题目时我感觉这个东西已经超出了我能接受的范围,感觉自己做这个程序还很有难度,毕竟功能与数据比较多,随便一处出错误都会很麻烦,但是由于平时扎实的C++基础知识,我还是一步步的慢慢将这个程序不段的完善和修改,当整个程序的基本功能都实现的时候我心里还是蛮开心的,想想也没那么难。
所以通过这次课程设计,我还是学到很多东西。
自己本身就是要静下心来慢慢解决问题,不懂的东西通过看书和问老师也一步步的解决了。
感觉也是收获蛮大的。
6参考文献
[1]吕风翥.c++语言程序设计.北京:
电子工业出版社.2011
[2]张晓民.VC++2010应用开发技术.北京:
机械工业出版社.2013
[3]张海蕃.软件工程导论.北京:
清华大学出版社,2008
[4]杨正甫.面向对象分析与设计.北京:
中国铁道出版社,2004
课程设计评分表
评分标准:
1.学生是否严格遵守课程设计纪律,按照规定时间完成设计任务(占30%)
2.课程设计报告书质量:
(占40%)
(1)是否采用了良好的设计方法,独立完成课程设计。
(2)课程设计各分段的任务是否按时完成及完成的质量。
(3)是否完成课程设计任务书指定的全部要求。
3.课程设计报告书的撰写规范(占30%)
课程设计报告书的撰写规范要求与毕业设计(论文)的要求相同。
教师评分:
1.学生出勤得分:
_________
2.内容质量得分:
_________
3.