vc++学籍管理系统报告.docx
- 文档编号:2808663
- 上传时间:2022-11-15
- 格式:DOCX
- 页数:15
- 大小:353.96KB
vc++学籍管理系统报告.docx
《vc++学籍管理系统报告.docx》由会员分享,可在线阅读,更多相关《vc++学籍管理系统报告.docx(15页珍藏版)》请在冰豆网上搜索。
vc++学籍管理系统报告
1.需求分析
采用VC++设计一款学生学籍管理软件,采用视窗程序,能够对学生的信息,如:
学号、姓名、性别、民族、出生年月、政治面貌、生源地、籍贯、班级、专业、系别等进行操作。
操作包括从Excel导入、新增、并且能够将内容保存到Excel文件中去。
1、数据结构设计
记录所有的耗材信息,采用结构体如下所示:
structdata0
{
CStringdata[11];
}datas[255];
intdatanum;
其中datanum记录当前学生的数量
结构体中每个项目data表示具体的内容,比如某个学生的姓名等情况。
1、测试情况:
采用测试的excel文件,用户导入内容,显示如下:
图1Excel文件内容
2.程序设计
1、程序函数说明
(1)从外部excel文件载入信息
voidCMyDlg:
:
OnLoad()//从excel载入信息
(2)整体函数的初始化
voidCMyDlg:
:
initial()//初始化
(3)在列表框中显示所有的内容
voidCMyDlg:
:
initial()//初始化
(4)点击显示详细内容的按钮,进行详细内容的显示
voidCMyDlg:
:
Onshowdetail()//查看详细信息
(5)点击新增内容按钮,新增一个内容
voidCMyDlg:
:
Onaddnew()//新增信息
(6)点击保存按钮,将当前内容保存到excel文件中
voidCMyDlg:
:
OnSavedata()//保存信息
2、程序流程图如下所示
图2程序流程图
3.调试分析
1、遇到问题
主要遇到的问题包括如何打开excel文件。
一般的文件读写方式,是直接读写,通过用户输入文件名进行读、写。
但是当数据文件和程序文件不在一起的时候,就需要写入全部的地址,造成了整个程序友好性有限。
通过学习发现了一个CFile的函数,可以方便的打开某个界面,选择某个文件,并且获取全部路径,方便了读写的操作,大大加强了使用的方便性。
4.使用说明
1、运行软件,显示如下图所示:
图3程序初始界面
2、点击载入信息按钮,弹出选择excel文件对话框
图4载入Excel内容
3、载入后显示
图5载入内容后显示
2、点击某个项目
图6显示详细内容
点击按钮,显示详细信息
图7显示详细内容
3、点击新增按钮,显示新增对话框
图8显示详细信息
4、确定后,显示内容在列表框中
图9新增后显示
5、保存信息到Excel文件中
图10保存Excel
图11保存成功
则Excel文件中如下所示:
图12保存在Excel中内容
5.测试结果
测试结果中,外部excel文件如下图所示:
图13Excel中内容
导入后显示到程序中如下所示:
图14载入后程序内容
可见导入excel文件正常
在程序内部输入如下所示:
图15新增内容
成功导入如下所示:
图16成功导入后内容
新增内容运行正常。
6.心得体会
通过此次程序的完成,基本掌握了VC++小型程序的制作方法,了解了如何完成一个数据库类型的软件的方法。
并且通过独立的学习,克服了种种困难,这种经历是难得的,会为我以后的学习与工作打下良好的基础。
7.附录
1、主函数学籍管理软件Dlg.cpp内容
voidCMyDlg:
:
OnLoad()//从excel载入信息
{
CFileDialogdlg(TRUE,"xls",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"RadFile(*.xls)|*.xls||");//打开文件夹
CStringArrayRows,Column;
inti,j,num1;
if(dlg.DoModal()==IDOK)
{
CSpreadSheetSS(dlg.GetPathName(),"Sheet1");
CStringArrayRows,Column;//将数据存储到全局数组里面
num1=SS.GetTotalRows()-1;
datanum=num1;
for(i=0;i<=SS.GetTotalRows();i++)
{
SS.ReadRow(Rows,i+1);
if(i>0)
{
for(j=0;j<11;j++)
{
datas[i-1].data[j]=Rows.GetAt(j);
}
datas[i-1].data[0]=datas[i-1].data[0].Left(10);
}
}
showall();
}
}
voidCMyDlg:
:
initial()//初始化
{
datanum=0;
m_list.InsertColumn(0,"学号",LVCFMT_LEFT,100,0);
m_list.InsertColumn(1,"姓名",LVCFMT_LEFT,70,0);
m_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
}
voidCMyDlg:
:
showall()//显示所有内容
{
inti,j;
m_list.DeleteAllItems();
CStringstr;
for(i=0;i { m_list.InsertItem(i,""); m_list.SetItemText(i,0,datas[i].data[0]); m_list.SetItemText(i,1,datas[i].data[1]); } } voidCMyDlg: : Onshowdetail()//查看详细信息 { showdetailsdlg; POSITIONpos; intnum,i; pos=m_list.GetFirstSelectedItemPosition(); num=(int)m_list.GetNextSelectedItem(pos); for(i=0;i<11;i++) { dlg.words[i]=datas[num].data[i]; } dlg.SIN=1; dlg.DoModal(); } voidCMyDlg: : Onaddnew()//新增信息 { showdetailsdlg; dlg.SIN=0; dlg.DoModal(); if(dlg.SURE==1) { inti; for(i=0;i<11;i++) { datas[datanum].data[i]=dlg.words[i]; } datanum++; showall(); } } voidCMyDlg: : OnSavedata()//保存信息 { CFileDialogdlg(FALSE,"xls",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"RadFile(*.xls)|*.xls||");//打开文件夹 CStringArrayRows,Column; inti,j,num1; if(dlg.DoModal()==IDOK) { CSpreadSheetSS(dlg.GetPathName(),"Sheet1"); CStringArraysampleArray,testRow; sampleArray.RemoveAll(); sampleArray.Add("学号"); sampleArray.Add("姓名"); sampleArray.Add("性别"); sampleArray.Add("民族"); sampleArray.Add("出生年月"); sampleArray.Add("政治面貌"); sampleArray.Add("生源地"); sampleArray.Add("籍贯"); sampleArray.Add("班级"); sampleArray.Add("专业"); sampleArray.Add("系别"); SS.AddHeaders(sampleArray); for(i=0;i { sampleArray.RemoveAll(); for(j=0;j<11;j++) { sampleArray.Add(datas[i].data[j]); } SS.AddRow(sampleArray); } SS.Commit(); MessageBox("保存成功");; } } 2、新增内容函数内容showdetail.cpp voidshowdetails: : OnOK() { SURE=1; m_1.GetWindowText(words[0]); m_2.GetWindowText(words[1]); m_3.GetWindowText(words[2]); m_4.GetWindowText(words[3]); m_5.GetWindowText(words[4]); m_6.GetWindowText(words[5]); m_7.GetWindowText(words[6]); m_8.GetWindowText(words[7]); m_9.GetWindowText(words[8]); m_10.GetWindowText(words[9]); m_11.GetWindowText(words[10]); OnCancel(); } voidshowdetails: : OnCan() { SURE=0; OnCancel(); } voidshowdetails: : initial()//初始化 { if(SIN==1) { m_1.SetSel(0,-1); m_1.ReplaceSel(words[0]); m_2.SetSel(0,-1); m_2.ReplaceSel(words[1]); m_3.SetSel(0,-1); m_3.ReplaceSel(words[2]); m_4.SetSel(0,-1); m_4.ReplaceSel(words[3]); m_5.SetSel(0,-1); m_5.ReplaceSel(words[4]); m_6.SetSel(0,-1); m_6.ReplaceSel(words[5]); m_7.SetSel(0,-1); m_7.ReplaceSel(words[6]); m_8.SetSel(0,-1); m_8.ReplaceSel(words[7]); m_9.SetSel(0,-1); m_9.ReplaceSel(word
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vc 学籍 管理 系统 报告