




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 需求分析采用vc+设计一款学生学籍管理软件,采用视窗程序,能够对学生的信息,如:学号、姓名、性别、民族、出生年月、政治面貌、生源地、籍贯、班级、专业、系别等进行操作。操作包括从excel导入、新增、并且能够将内容保存到excel文件中去。1、数据结构设计记录所有的耗材信息,采用结构体如下所示:struct data0cstring data11;datas255;int datanum;其中 datanum记录当前学生的数量结构体中每个项目data表示具体的内容,比如某个学生的姓名等情况。1、 测试情况:采用测试的excel文件,用户导入内容,显示如下:图 1 excel文件内容2. 程
2、序设计1、 程序函数说明(1) 从外部excel文件载入信息void cmydlg:onload() /从excel载入信息(2) 整体函数的初始化void cmydlg:initial()/初始化(3) 在列表框中显示所有的内容void cmydlg:initial()/初始化(4) 点击显示详细内容的按钮,进行详细内容的显示void cmydlg:onshowdetail()/查看详细信息(5) 点击新增内容按钮,新增一个内容void cmydlg:onaddnew() /新增信息(6) 点击保存按钮,将当前内容保存到excel文件中void cmydlg:onsavedata() /保存
3、信息2、 程序流程图如下所示初始化从excel导入显示显示所有的内容打开对话框显示详细内容新增内容显示保存按钮选择保存的excel保存图 2 程序流程图3. 调试分析1、 遇到问题主要遇到的问题包括如何打开excel文件。一般的文件读写方式,是直接读写,通过用户输入文件名进行读、写。但是当数据文件和程序文件不在一起的时候,就需要写入全部的地址,造成了整个程序友好性有限。通过学习发现了一个cfile的函数,可以方便的打开某个界面,选择某个文件,并且获取全部路径,方便了读写的操作,大大加强了使用的方便性。4. 使用说明1、 运行软件,显示如下图所示:图 3 程序初始界面2、点击载入信息按钮,弹出选
4、择excel文件对话框图 4 载入excel内容3、载入后显示图 5 载入内容后显示2、 点击某个项目 图 6 显示详细内容点击按钮,显示详细信息图 7 显示详细内容3、 点击新增按钮,显示新增对话框图 8 显示详细信息4、 确定后,显示内容在列表框中图 9 新增后显示5、 保存信息到excel文件中图 10 保存excel图 11 保存成功则excel文件中如下所示:图 12 保存在excel中内容5. 测试结果测试结果中,外部excel文件如下图所示:图 13 excel中内容导入后显示到程序中如下所示:图 14 载入后程序内容可见导入excel文件正常在程序内部输入如下所示:图 15 新
5、增内容成功导入如下所示:图 16 成功导入后内容新增内容运行正常。6. 心得体会通过此次程序的完成,基本掌握了vc+小型程序的制作方法,了解了如何完成一个数据库类型的软件的方法。并且通过独立的学习,克服了种种困难,这种经历是难得的,会为我以后的学习与工作打下良好的基础。 7. 附录1、 主函数 学籍管理软件dlg.cpp内容void cmydlg:onload() /从excel载入信息cfiledialog dlg(true,xls,null,ofn_hidereadonly |ofn_overwriteprompt,rad file(*.xls)|*.xls|);/打开文件夹cstring
6、array rows, column;int i,j,num1;if(dlg.domodal()=idok)cspreadsheet ss(dlg.getpathname(), sheet1);cstringarray rows,column;/将数据存储到全局数组里面num1=ss.gettotalrows()-1;datanum=num1;for (i = 0; i 0)for(j=0;j11;j+)datasi-1.dataj=rows.getat(j);datasi-1.data0=datasi-1.data0.left(10);showall();void cmydlg:initia
7、l()/初始化datanum=0;m_list.insertcolumn(0,学号,lvcfmt_left,100,0);m_list.insertcolumn(1,姓名,lvcfmt_left,70,0);m_list.setextendedstyle(lvs_ex_fullrowselect);void cmydlg:showall()/显示所有内容int i,j;m_list.deleteallitems();cstring str;for(i=0;idatanum;i+)m_list.insertitem(i,);m_list.setitemtext(i,0,datasi.data0)
8、;m_list.setitemtext(i,1,datasi.data1);void cmydlg:onshowdetail()/查看详细信息 showdetails dlg;position pos;int num,i;pos=m_list.getfirstselecteditemposition();num=(int)m_list.getnextselecteditem(pos);for(i=0;i11;i+)dlg.wordsi=datasnum.datai;dlg.sin=1;dlg.domodal();void cmydlg:onaddnew() /新增信息showdetails d
9、lg;dlg.sin=0;dlg.domodal();if(dlg.sure=1)int i;for(i=0;i11;i+)datasdatanum.datai=dlg.wordsi;datanum+;showall();void cmydlg:onsavedata() /保存信息cfiledialog dlg(false,xls,null,ofn_hidereadonly |ofn_overwriteprompt,rad file(*.xls)|*.xls|);/打开文件夹cstringarray rows, column;int i,j,num1;if(dlg.domodal()=idok
10、)cspreadsheet ss(dlg.getpathname(), sheet1);cstringarray samplearray, testrow;samplearray.removeall();samplearray.add(学号);samplearray.add(姓名);samplearray.add(性别);samplearray.add(民族);samplearray.add(出生年月);samplearray.add(政治面貌);samplearray.add(生源地);samplearray.add(籍贯);samplearray.add(班级);samplearray.a
11、dd(专业);samplearray.add(系别);ss.addheaders(samplearray);for(i=0;idatanum;i+)samplearray.removeall();for(j=0;j11;j+)samplearray.add(datasi.dataj);ss.addrow(samplearray);ss.commit();messagebox(保存成功);2、 新增内容 函数内容 showdetail.cppvoid showdetails:onok() sure=1;m_1.getwindowtext(words0);m_2.getwindowtext(wor
12、ds1);m_3.getwindowtext(words2);m_4.getwindowtext(words3);m_5.getwindowtext(words4);m_6.getwindowtext(words5);m_7.getwindowtext(words6);m_8.getwindowtext(words7);m_9.getwindowtext(words8);m_10.getwindowtext(words9);m_11.getwindowtext(words10);oncancel();void showdetails:oncan() sure=0;oncancel();void
13、 showdetails:initial()/初始化if(sin=1)m_1.setsel(0,-1);m_1.replacesel(words0); m_2.setsel(0,-1);m_2.replacesel(words1); m_3.setsel(0,-1);m_3.replacesel(words2); m_4.setsel(0,-1);m_4.replacesel(words3); m_5.setsel(0,-1);m_5.replacesel(words4); m_6.setsel(0,-1);m_6.replacesel(words5); m_7.setsel(0,-1);m_7.replacesel(words6); m_8.setsel(0,-1);m_8.replacesel(words7); m_9.setsel(0,-1);m_9.replacesel(words8); m_10.setsel(0,-1);m_10.replacesel(words9); m_11.setsel(0,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 内墙乳胶漆粉刷合同
- 2024年标准离婚协议
- 采购订单状态更新表
- 环境监测与控制表格
- 《初中物理电学实验指导教案》
- 安全办公用品表格化记录
- 商铺返租合同返租商铺协议
- PROTAC-BTK-Degrader-12-生命科学试剂-MCE
- JNK-1-IN-5-生命科学试剂-MCE
- DMANI-生命科学试剂-MCE
- 寺院管理框架结构图PPT课件
- 单考单招数学公式总结
- 2019第五版新版PFMEA 注塑实例
- 职业技能鉴定质量督导报告
- 钣金k因子和折弯扣除参照表
- 海图图标说明(共13页)
- 首都机场集团公司固定资产实物分类指导规则20140901(终稿)
- 钒电池项目财务数据分析(范文模板)
- 易经(拼音版)
- 工业锅炉水处理系统调试报告
- (砌筑工)砌筑工安全教育考试试题含答案
评论
0/150
提交评论