课程设计
课程名称 C++课程设计
题目名称 公司人事管理系统
学生学院 自动化
专业班级 网络工程一班
学 号 3110001347
学生姓名 卢会军
指导教师 张小波
20##年10月 6日
广东工业大学课程设计任务书
一、课程设计的内容
1、项目介绍:公司人事管理系统。
2、功能介绍:
(a)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
(b)程序对所有人员有提升级别的功能
(e)能按姓名或者编号寻找、删除、更 新、显示各类人员的信息
公司人事管理系统的基本框架,界面业已完成,具体功能尚需完善。
3、系统实现概述:
顶层:
第一层:
第二层:
第三层:
4、关键技术:(函数)
void MainWindow::open() //定义open函数
{
QString path=QFileDialog::getOpenFileName(this,tr("Open")); //QFileDialog是Qt中用于文件打开和保存的对话框
if(path.length()==0)
{
QMessageBox::information(this,tr("Path"),tr("You didn't select any files."));
}
else
{
QMessageBox::information(this,tr("Path"),tr("You selected"));
}
}
void MainWindow::add_show()
{
add1.resize(400,50);
add1.show();
}
void MainWindow::find_show()
{
find1.resize(300,50);
find1.show();
}
void MainWindow::change_show()
{
change1.resize(400,50);
change1.show();
}
void MainWindow::table_show()
{
//表格的设置
centralWidget = new QWidget(this);
QHBoxLayout *horizontalLayout = new QHBoxLayout(centralWidget);
tableWidget = new QTableWidget(10,4,centralWidget);
horizontalLayout->addWidget(tableWidget);
this->setCentralWidget(centralWidget);
QStringList header;
header<<"Name"<<"Position"<<"Salary"<<"Description"; //设定行标题
tableWidget->setHorizontalHeaderLabels(header); //把行标题放进表格
tableWidget->setItem(0,0,new QTableWidgetItem("One"));
tableWidget->setItem(1,0,new QTableWidgetItem("Two"));
tableWidget->setItem(2,0,new QTableWidgetItem("Three"));
tableWidget->setItem(3,0,new QTableWidgetItem("Four"));
tableWidget->setItem(0,1,new QTableWidgetItem("Manager"));
tableWidget->setItem(1,1,new QTableWidgetItem("Part-time technical staff"));
tableWidget->setItem(2,1,new QTableWidgetItem("Sales Manager"));
tableWidget->setItem(3,1,new QTableWidgetItem("Part-time salesman"));
tableWidget->setItem(0,2,new QTableWidgetItem("8000"));
tableWidget->setItem(1,2,new QTableWidgetItem("7000"));
tableWidget->setItem(2,2,new QTableWidgetItem("8000"));
tableWidget->setItem(3,2,new QTableWidgetItem("7000"));
tableWidget->setColumnWidth(1,145); //设置第2列的列宽
tableWidget->setColumnWidth(3,450); //设置第4列的列宽
tableWidget->setItem(0,3,new QTableWidgetItem("Fixed monthly salary"));
tableWidget->setItem(1,3,new QTableWidgetItem("Receive a monthly salary by the number of hours worked"));
tableWidget->setItem(2,3,new QTableWidgetItem("Commission sales, according to the salesman month"));
tableWidget->setItem(3,3,new QTableWidgetItem("Both get a fixed monthly salary and receive sales commission"));
tableWidget->setEditTriggers(QTableWidget::NoEditTriggers); //设置表格内容不能直接编辑
connect(tableWidget,SIGNAL(cellPressed(int,int)),this,SLOT(delete_enable(int,int)));
}
void MainWindow::resizeEvent(QResizeEvent *) //主页图片的大小设置
{
int w,h;
w = width();
h = height();
label->setGeometry(9,9,w-18,h-130);
}
void MainWindow::homepage_show()
{
centralWidget = new QWidget(this);
label=new QLabel;
label->setStyleSheet("border-image: url(:/cpms.jpg)"); //设置主页图片
QGridLayout *horizontalLayout = new QGridLayout(centralWidget);
horizontalLayout->addWidget(label);
this->setCentralWidget(centralWidget);
}
void MainWindow::row_del()
{
tableWidget->removeRow(tableWidget->currentRow());
}
void MainWindow::delete_enable(int row,int col)
{
if(tableWidget->item(row,col))
Delete->setEnabled(true);
else
Delete->setEnabled(false);
}
5、进一步设想:尚未链接数据库。链接数据库后就能存储需要储存的数据,成为一个真正的公司人事管理系统。
二、课程设计的要求与数据
利用面向对象的编程思想以及C++的编程方法完成系统的设计
三、课程设计应完成的工作
完成设计的具体内容:
某小公司,主要有四类人员:经理、兼职技术人员、销售经理和兼职推销员。需要存储这些人员的姓名、编号、级别、当月薪水,计算月薪总额并显示全部信息。实现:
(a)人员编号在生成人员信息时同时生成,每输入一个人员信息编号顺序加1。
(b)程序对所有人员有提升级别的功能
(c)月薪的计算方法是:经理拿固定月薪,兼职技术人员按工作小时数领取月薪,兼职推销员的报酬按该推销员当月销售额提成
(d)销售经理既拿固定月薪也领取销售提成。
(e)能按姓名或者编号寻找、删除、更新、显示各类人员的信息
四、课程设计进程安排
五、应收集的资料及主要参考文献
C++ GUI Qt4 编程(第二版)
Qt教程(百度电子书)、Qt自学之路(百度电子书)。
发出任务书日期: 年 月 日 指导教师签名:
计划完成日期: 年 月 日 基层教学单位责任人签章:
主管院长签章:
第二篇:课程设计报告参考格式
课程设计报告
题 目
课 程 名 称 面向对象程序设计课程设计
院 部 名 称
专 业
班 级
学 生 姓 名
学 号
课程设计地点
课程设计学时 80学时
指 导 教 师 李景仙
金陵科技学院教务处制
一、课程设计的目的和要求
此处至少300字以上.
2、系统需求分析
例如:
编写一个学籍信息管理程序,以一个班级为例。学籍信息的组成部分为:学号、姓名、性别、出生日期、政治面貌和家庭住址等。
此学籍信息管理主要利用类和单链表实现,完成的功能主要有如下五大功能模块组成。
(1)增加学生信息模块
该模块主要由单链表和类来完成,比较简单,在菜单栏里选择1,进入增加界面。根据提示信息,输入相应的学生信息。
(2)删除学生信息模块
该模块完成根据学号删除指定学生信息,它分两部分完成。第一步,根据输入的学号调用search_number(),判断该学生是否存在。第二步,若不存在,输出No student exist!,若存在,删除该学生全部信息。
(3)修改学生信息模块
该模块完成根据学号修改指定学生信息,它也分两部分完成。第一步,根据输入的学号调用search_number(),判断该学生是否存在。第二步,若不存在,输出No student exist!,若存在,修改该学生信息。
(4)查询学生信息模块
该模块比较复杂,里面又分了四个小模块,分别是根据学号查询,根据姓名查询,根据出生日期查询,根据家庭住址查询。
由主菜单进入查询界面后,再根据查询菜单,选择自己所需要的内容。
(5)显示学生信息模块
由主菜单进入显示界面,显示已经输入的全部学生信息。
三、总体设计
此处介绍出于什么思考、原因,得出什么样的总体设计结构,并将总体结构框架图画出来。
并简要介绍所设计类的结构,简要介绍类中各成员函数的功能(文字介绍)。
4、详细设计
对总体设计中各模块功能作文字介绍,对各功能模块中各函数功能做详细介绍,并附相应的一段代码。(注意代码只要显示关键语句即可)。
五、测试、调试过程
1 此处介绍课题完成的过程中所遇到的问题,并说明自己的解决方法。
2 每个功能的完成结果,将界面或者屏幕显示结果记录下来。
6、结论与体会
此处至少300字。
七、参考文献
格式按照下面例子:
[1](美)戴特尔(Deitel,H.M.).C++大学基础教程(第五版)[M].北京:电子工业出版社,2007.6
[2] 谭浩强.C++程序设计[M]. 北京:清华大学出版社,2006
。。。。。。
附录:源程序