-
C++课程设计大作业_学生管理系统(含源代码+实验报告)
这个C++作业主要是编写一个学生成绩管理系统,资料中包括了实验文档报告和项目源代码,项目代码并不多,对学习有帮助。
1.设计目的:用计算机完成对学生成绩的管理。包括对计算机所储存信息的查询、修改、删除、统计等。利用简单容易操作的菜单界面,方便学校、教师等利用计算机的高效、智能化以及存储的便捷性对学生成绩进行管理,可以节省人力时间,安全便捷。
2.总体设计:学生成绩管理系统提供三大模块,即学生成绩信息维护,学生成绩信息查询,学生成绩统计。其中信息维护包括对学生信息的修改,删除和增加,信息查询实现通过学生学号或姓名查询成绩的功能。学生成绩统计则对不同科目不同分数段的学生进行统计,方便用户对学生成绩获得总体的了解和把握。
3.详细设计:首先为用户提供方便的菜单,利用数据输入输出流和规范化输出等实现。再由控制结构实现用户选择与系统功能的对应。利用文件输入输出使C++程序与其数据的存储所在得txt文件联系起来,并进行读写操作。利用2个string类型的数组存储学生姓名和学号,再利用3个int类型数组用来存储学生的三科成绩。
函数实现系统的功能。首先,通过一个getRow函数获得系统中目前存储的学生人数。再通过一个getID函数,将txt文件中的学生信息录入到之前声明的五个数组中。然后即可对学生数据进行操作。searchGrade可实现用户对学生成绩的查询,changeGrade可帮助用户修改学生的各项信息,addGrade可以向计算机存储中增加新的学生信息,countGrade可统计不同科目不同分数段的学生分布情况。另外,enterChoice函数用来帮助信息维护的用户对不同的维护选项进行选择,而saveResult则在用户对数据进行维护后进行文件的保存,完成C++程序与txt文件的数据交流。main函数主要进行控制结构的安排和变量的声明。
在全部功能实现并正常编译后,对程序进行了新的修改。在countGrade中提供了更多学生信息,完善了错误反馈机制。并对菜单进行了美化调整。对几个函数的位置作了调整。
经调试,程序能够快速准确的执行设计目的中的各项要求和期望,达到设计初衷。
所有这些资料,你都可以通过压缩包中的课程设计报告.doc文档来了解。
- 2022-02-09 18:24:25下载
- 积分:1
-
VC 多种进制转换 二进制 十六进制等
VC++ 进制转换,可完成以下转换:转换十进制数,转换二进制数,转换十六进制数,转换十六进制为二进制,转换一位十六进制数为十进制,转换二进制为十六进制,位数不是四的倍数时补齐,每四位二进制数转换为一十六进制数,转换十进制为二进制,转换二进制为十进制等。
- 2022-01-25 23:55:04下载
- 积分:1
-
VC++ 使用CDib类实现显示与保存BMP文件
VC++ 使用CDib类实现显示与保存BMP文件,可以通过文件菜单打开BMP文件,并显示,也可实现存储BMP文件!代码中涉及到了判断DIB是否为空、获取DIB宽度和高度,程序中调用ConstructPalette来创建调色板。相关设置代码如下:
m_hDIB=m_dib.LoadFile(file);//调用ReadDIBFile()读取图像
if(m_hDIB==NULL)
{
AfxMessageBox("图像格式不正确!");// 提示出错
return FALSE;
}
SetDib();// 初始化DIB
if (m_hDIB == NULL)// 判断读取文件是否成功
{
AfxMessageBox("读取图像时出错");// 提示出错
return FALSE;// 返回FALSE
}
SetPathName(lpszPathName);// 设置文件名称
SetModifiedFlag(FALSE);// 初始化脏标记为FALSE
return TRUE;// 返回TRUE
- 2022-02-26 00:19:37下载
- 积分:1
-
VC++ 演示Excel文件的导入导出操作
VC++ 演示Excel文件的导入导出操作,一共完成了两种功能,一种是生成Excel文件,另一种是从Excel文件导入,这两种功能对于编写一些信息管理系统非常有用,我们经常需要将系统内的数据导出为Excle文件,或都从Excel中向系统导入数据,本实例将演示一些基础的功能实现,可提供一些参考。
- 2022-03-22 12:27:55下载
- 积分:1
-
VC++ 使用自定义消息进行线程间的通信
VC++ 使用自定义消息进行线程间的通信,在本例子中,当计数到17的整数倍时,工作线程通过自定义消息与主线程通信。最后会弹出消息框:当前计数器的计数为17的整数倍。计数器有几个选项:高速计数、低速计数,相关参数设置如下:
SpeedControl=1;
GetDlgItem(IDC_RADIO1)->EnableWindow(true);//单选按钮生效
GetDlgItem(IDC_RADIO2)->EnableWindow(true);
GetDlgItem(IDC_RADIO3)->EnableWindow(true);
GetDlgItem(IDC_STAR)->EnableWindow(false);//开始按钮无效
numinfo.pedit=&m_Num;
numinfo.hwnd=GetSafeHwnd();//获取主线程窗口指针
CWinThread* pThread=AfxBeginThread(ThreadFunc,&numinfo);//创建新的线程并开始执行
- 2023-03-13 15:00:04下载
- 积分:1
-
C语言写的超强悍音乐播放器
这是一款用C写的播放器,超强超漂亮,C语言写的超强悍音乐播放器源代码,先来看运行截图,播放器的界面那可是相当漂亮吧。而且播放功能也很强大。程序主界面经过了美化,运行后在Windows托盘处显示图标,这个程序是大家学习C多媒体编程绝佳的范例,对C感兴趣的不要错过哦。
- 2022-02-15 07:45:57下载
- 积分:1
-
VC++ 设置打印图形的位置
VC++ 6.0 设置打印图形的位置,实现所见即所得的打印功能。
if(pDC->IsPrinting())//判断是否因打印或打印预览而调用OnPrepareDC()函数
{
pDC->SetViewportOrg(250,400);//设置视口坐标原点
}
//以下为显示和打印的内容
pDC->TextOut(10,10,"实现所见即所得的打印");
pDC->SetBkMode(TRANSPARENT);
pDC->Rectangle(10,40,310,350);
pDC->Ellipse(50,50,210,220);
pDC->Ellipse(70,240,280,320)
//设置映射模式
pDC->SetMapMode(MM_ANISOTROPIC);
CSize winSize = CSize(1024,768);
pDC->SetWindowExt(winSize); //设定窗口大小
//得到实际设备每逻辑英寸的像素数量
int xLogPixPerInch,yLogPixPerInch;
xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);
yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);
//得到设备坐标和逻辑坐标的比例
以下是实现打印:
int xExt,yExt;
xExt=winSize.cx*600/xLogPixPerInch; //按照打印机扩大视口
yExt=winSize.cy*600/yLogPixPerInch;
pDC->SetViewportExt(xExt,yExt); //设定视口大小
- 2022-01-27 16:52:24下载
- 积分:1
-
vc++windows大作业源码-猜数字游戏
VC++ Windows课程设计源码作品:传统的猜数字游戏,编程学院大作业完整源代码。本游戏步骤:
分别在四个文本框内输入四个不同的四位数
按猜数字键猜测,得到结果,点答案键出答案,当4个文本框内的数字和位置都正确游戏胜利,自动进入下一轮答题,技巧:
玩家可以根据提示推断数字:
例 正确2个错误2个 说明有2个数字和位置都正确,2个数字正确但位置不正确
正确0个错误4个 说明有0个数字和位置都正确,4个数字正确但位置不正确
特色: 机器可以根据猜测的命中率不同显示不同的话
看完答案再答题会怎样呢? 试试就知道了~
- 2023-06-14 23:05:04下载
- 积分:1
-
VC++演示如何使用insert语句批量向数据库插入数据
VC++演示如何使用insert语句批量向数据库插入数据,这个我感觉挺有用处吧,一般情况下,我们录入都是一条一条的,但信息量较大的时候,就需要批量插入数据了,我们可以先读取外部指定格式的文件,然后将数据转换为可插入的格式,然后使用insert批量向数据库中插入数据,有效提升工作效率。本示例测试前请先准备好数据库并连接上,否则会报错。
- 2022-02-26 09:24:35下载
- 积分:1
-
VC++ DAO 操作Access的测试例子
VC++ DAO 操作Access的测试例子,本演示是VC++使用DAO连接Access数据库的一个测试程序,学习如何使用DAO操作Access,通过添加一个数据库记录来演示添加、删除、插入数据的例子,比较简单,面向VC++初学者的一个例子。部分代码分享如下:
// 取得被选择记录的索引
nIndexInFieldList = m_listctrlInfo.GetNextSelectedItem(pos);
// 高亮被的选择记录
m_listctrlInfo.SetFocus();
// 从文件中把当前行记录删除
// 获取数据库文件
m_csDatebaseFile = GetDatabaseFile();
// 判断数据库是否已经打开
if (!m_bIsOpenDB)
{
db.Open(m_csDatebaseFile);
// 判断数据集是否已经打开
if (!m_bIsOpenDSN)
{
RecSet.Open(AFX_DAO_USE_DEFAULT_TYPE,"SELECT * FROM PositionTable",NULL);
}
}
m_nTotal = m_listctrlInfo.GetItemCount();
m_nCurrentIndex = ConvertIndex(nIndexInFieldList,m_nTotal - 1);
RecSet.MoveFirst();
RecSet.Move(long(m_nCurrentIndex));
RecSet.Delete();
ClearContent();
// 删除被的选择记录
m_listctrlInfo.DeleteItem( nIndexInFieldList );
// 显示删除数据成功的信息
GetDlgItem(IDC_STATIC_INFO)->SetWindowText(_T("删除数据成功!"));
// 再次取得第一条记录的位置
POSITION pos = m_listctrlInfo.GetFirstSelectedItemPosition();
UINT flag = LVIS_SELECTED|LVIS_FOCUSED;
- 2022-04-28 15:09:11下载
- 积分:1