C语言课程设计——小型公司系统管理
昆明理工大学
课 程 设 计
课程名称: 程序设计语言课程设计 设计
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目: 小型公司系统管理 学 院: 信息工程与自动化 专 业: 计算机科学与技术 年 级: 092 学生姓名: 徐兴繁 指导教师: 李英娜 日 期:
教 务 处 制
课程设计(
论文
政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载
)任务书
信息工程与自动化 学院 计算机科学与技术 专业 2009 级
学生姓名(学号): 徐兴繁(200910405214 )
课程设计目的:
通过设计一个较为简单的管理系统,进一步熟悉C++中类的概念、类的封装、
继承的实现方式。了解系统开发的需求分析、类层次设计、模块分析、编码测试、
模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐
步熟悉程序设计的
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
,并养成良好的编程习惯。
目 录
1( 系统功能要求 --------------------------------------1 2( 系统功能分析和设计思路、----------------------2-5
3 程序 --------------------------------------------------5-18 4 .运行结果----------------------------------------------18-22 5 系统流程图-------------------------------------------22-23 6 总结、心得与体会 ---------------------------------23-24 6 参考书目----------------------------------------------24
课程设计(论文)题目及具体内容:
1题目
1、公司主要有4类人员:经理、技术员、销售员、销售经理。要求存储这些
人的职工号、姓名、月工资、岗位、年龄、性别等信息。
2、工资的计算方法:
A、经理:固定月薪为8000;
B、技术员:工作时间*小时工资(100元每小时);
C、销售员:销售额*4%提成;
D、销售经理:底薪(5000)+所辖部门销售额总额*0.5%;
3、注册新职工,添加新职工的详细信息,如:职工号,姓名,出生年份,性
别,职称,部门工资等;
4、按姓名,部门等条件进行查询;
5、修改和删除职工信息;
6、按工资高低进行排序;
7、把各项纪录存储在文本文件中。
2.系统功能分析和设计思路
我们使用面向对象程序设计方法的思路进行分析,首先是公司雇员这一个大基类,其它诸如经理等的类应该由此类派生;再有、为了方便实现各类信息以文件方式的储存以及实现各种功能和界面,我们决定再创建一个系统类。所以我们接下来所要做的一切工作都要围绕这两个类
,1,公司雇员类 employee:可以说这是本系统的一个“总基类”,我们按照预期的设计及要求由它派生出了经理类 ,技术员类、销售员类 以及销售经理类 。由于考虑到各个小的分类之间在形式下差不多,为了不出现“二义性”的问题,我们主要在各个类之间采取定义虚基类以及纯虚函数的思路进行调用。另外、
由于我们对链表的运用以及链表的掌握还不是很熟练,再加上为了使各个类方便不系统类进行直接连接,我们遂决定采用对象数组存放文件中读入戒读出的各类公司人员信息。
,2,系统类 :由于这个系统涉及到了文件的应用,所以系统类 是必不可少的。我们对问题分析、讨论以后决定,系统类 的主要成员函数要包括:提供输入各类数据的 信息、添加各类信息的 ,用于各类查询。
,3,由于考虑到这应该是一个完整的管理系统,加上我们希望这个系统的界面能够做到清晰、明了,我们经讨论后决定采用一个总操作界面,三个分操作界面。
总操作界面应该包括 ,分别对应 1.输入信息 ,2统计信息3. 打印信息 4.信息查询5.退出,
输入信息界面中又因该包括 1.经理类 2.技术员类3.销售员类 4.销售经理类 5.退出。
查询信息并显示界面中又应该包括 1.经理类 2.技术员类 3.销售员类 5.退出。
计算总工资并显示界面中又应该包括 1.经理类 2.技术员类 3.销售员类 4.销售经理类 5.退出。
3.使用说明
进入主菜单后
选1-1为输入经理类的信息;1-2为输入技术员类的信息;1-3为输入销售员类的记录;1-4为输入销售经理类的记录;1-5为退出此界面并返回到主界面。
选2-1为经理类的信息记录;2-2为技术员类信息的记录;2-3为销售员类
信息的记录;2-4销售经理类信息的记录;2-5为退出此界面并返回到主界面。以上操作的详绅流程请参照流程图3。
选3-1为计算经理类数据打印;3-2为计算技术员类的数据打印;3-3为计算销售员类数据打印;3-4为计算销售经理类数据打印;3-5为退出此界面并返回到主界面。。
选4为查询数据
选5退出系统,返回上一级
4.程序如下
#include
#include
#include
#include
#include
using namespace std;
const int n1=2,n2=2,n3=4,n4=2;
const double m_salary=8000; const double hourpay=100; const double basicpay=5000; const double s_proportion=4.0/100; const double sm_proportion=0.5/100; void menu();
void menu2();
void menu3();
void data_input();
void data_print();
void charthead1();
void charthead2();
void chartend();
void statistics();
double sm_salary();
void sm_print();
void data_find();
void data_save();
ofstream outfile;
string f_name;
class Employee {
public:
void input()
{
cout<<"编号:";
cin>>num;
cout<<"其姓名:";
cin>>name;
cout<<"性别(m/w):";
cin>>sex;
cout<<"年龄:";
cin>>age;
}
void print()
{
cout<<" "<>worktime;
}
void print()
{ pay=worktime*hourpay;
Employee::print();
}
void find()
{
Employee::find();
}
void save()
{ pay=worktime*hourpay;
Employee::save();
}
protected:
double worktime; };
class Manager:public Employee
{
public:
void input()
{
cout<<"经理的";
Employee::input();
}
void print()
{ pay=m_salary;
Employee::print();
}
void find()
{
Employee::find();
}
void save()
{ pay=m_salary;
Employee::save();
}
};
class Sell_manager:public Employee
{
public:
void input()
{ cout<<"销售经理的";
Employee::input();
}
int sm_number()
{
return num;
}
string sm_name()
{
return name;
}
void print()
{
cout<<" "<>sold_amount;
cout<<"所属销售经理的编号:";
cin>>nu;
}
void grade()
{
cout<<" "<>n;
switch(n)
{
case'1':
cout<>f_name;
cout<>n;
if(n=='y')
{ cout<<'\n'<<"....请按任意键退出系统...."<>p;
if(p=='5') break;
else
{
switch(p)
{
case'1':
for(i=0;i>p;
if(p=='5') break;
else
{
switch(p)
{case'1':
cout<
手册
华为质量管理手册 下载焊接手册下载团建手册下载团建手册下载ld手册下载
》 认真的学完,并从中找
到与之相类似的列子,我就慢慢的编出了这个程序,一开始有几十个错误,后面我通过问老师最终把这个程序调试正确。
分析函数我都是从main()函数入手。Main 函数是C和c++源程序编译的开始。从main 函数中可以将其它函数的功能理解更透彻。在做程序时先列框架将程序要达到的目的分析出来,选择正确的函数表达出来,把基础学好不一定能把程序编好,但基础知识不好,一定编不出好程序。编程最主要是思路清晰,只要你把思路理顺了,就有利于你在编程的过程中少走弯路。认真对待每一个程序的编写 ,做好对每一个所编程序的总结 ,写程序尽量要规范、严谨,效率尽量要高 ,养成自我测试的习惯 5多看一些别人编的程序,把好的思路和方法记下来,以备不时之需
参考教材
1.C++面向对象程序设计/E Balagurusamy著 清华大学出版
2. C++程序设计教程/钱能主编:清华大学出版社,2000.11 3. Visual C++程序设计基础/戴锋编著:清华大学出版社,2001.4 4.
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
C++程序设计教程/林丽闽主编:电子工业出版社,2003.6 5. C++程序设计/谭浩强主编:清华大学出版社,2004.6
贪吃蛇程序
#include /*图形头文件*/
#include /*包含rand等函数*/
#include /*包含bios函数*/
#define LEFT 0x4b00/*光标左键值*/
#define RIGHT 0x4d00/*光标右键值*/ #define DOWN 0x5000/*光标下键值*/ #define UP 0x4800/*光标上键值*/ #define ESC 0x011b/*ESC的ASCII码*/ #define N 200
int i,key;/*图形坐标变量及按键变量*/ int score=0;/*得分*/
int gamespeed=10000;/*游戏速度自己调整*/ struct Food
{
int x;/*食物的横坐标*/
int y;/*食物的纵坐标*/
int yes;/*判断是否要出现食物的变量*/ }food;/*食物的结构体*/
struct Snake
{
int x[];/*蛇的横坐标*/
int y[];/*蛇的纵坐标*/
int node;/*蛇的节数*/
int direction;/*蛇移动方向*/
int life;/* 蛇的生命,0活着,1死亡*/ }snake;
void Init(void);/*图形驱动*/
void Close(void);/*图形结束*/
void DrawK(void);/*画界面函数*/ void GameOver(void);/*结束游戏*/
void GamePlay(void);/*玩游戏具体过程*/ void PrScore(void);/*输出成绩*/ void main(void)/*主函数*/
void main(void)/*主函数*/
{
Init();/*图形驱动*/
DrawK();/*开始画面*/
GamePlay();/*玩游戏具体过程*/
Close();/*图形结束*/
}
void Init(void)/*图形驱动*/
{
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc"); /*第一个参数表示图形适配器的类型,第二
个为在该类型下图形的显示模式,第三个参数指定驱动程序所在目录。*/
cleardevice();
}
。
void DrawK(void)/*开始画面,左上角坐标为(50,40),右下角坐标为(610,
460)的围墙*/
{
setbkcolor(0);/*设置当前背景颜色*/
setcolor(YELLOW);/*设置当前画线颜色*/
setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设置线型*/
for(i=50;i<=600;i+=10)/*画围墙*/
{
rectangle(i,40,i+10,49); /*上边*/
rectangle(i,451,i+10,460);/*下边*/
}
for(i=40;i<=450;i+=10)
{
rectangle(50,i,59,i+10); /*左边*/
rectangle(601,i,610,i+10);/*右边*/
}
}
void GamePlay(void)/*玩游戏具体过程*/ {
randomize();/*随机数发生器*/
food.yes=1;/*1表示需要出现新食物,0表示已经存在食物*/
snake.life=0;/*活着*/
snake.direction=1;/*方向往右*/
snake.x[0]=100;snake.y[0]=100;/*蛇头*/
snake.x[1]=110;snake.y[1]=100;/*蛇第二节*/
snake.node=2;/*节数*/
PrScore();/*输出得分*/
while(1)/*可以重复玩游戏,压ESC键结束*/
{
while(!kbhit())/*在没有按键的情况下,蛇自己移动身体*/
{
if(food.yes==1)/*需要出现新食物*/
{
food.x=rand()%400+60;
food.y=rand()%350+60;
while(food.x%10!=0)/*食物随机出现后必须让食物能够在整格内,这样才可以让蛇吃到*/
food.x++;
while(food.y%10!=0)
food.y++;
food.yes=0;/*画面上有食物了*/
}
if(food.yes==0)/*画面上有食物了就要显示*/
{
setcolor(GREEN);/*食物的颜色*/
rectangle(food.x,food.y,food.x+10,food.y-10);
}
for(i=snake.node-1;i>0;i--)/*蛇的每个环节往前移动,贪吃蛇的关键算法*/
{
snake.x[i]=snake.x[i-1];
snake.y[i]=snake.y[i-1];
}
switch(snake.direction) /*定义1,2,3,4表示右,左,上,下四个方向,通过这个判断来移动蛇头*/
{
case 1:snake.x[0]+=10;break;
case 2: snake.x[0]-=10;break;
case 3: snake.y[0]-=10;break;
case 4: snake.y[0]+=10;break;
}
for(i=3;i595||snake.y[0]<55||snake.y[0]>455)/*蛇是否撞到墙壁*/
{
GameOver();/*本次游戏结束*/
snake.life=1; /*蛇死*/
}
if(snake.life==1)/*以上两种判断以后,如果蛇死就跳出内循环,重新开始*/
break;
if(snake.x[0]==food.x&&snake.y[0]==food.y)/*吃到食物以后*/
{
setcolor(0);/*把画面上的食物东西去掉*/
rectangle(food.x,food.y,food.x+10,food.y-10);
snake.x[snake.node]=-20;snake.y[snake.node]=-20; /*-20表示尾巴长一节*/
/*新的一节先放在看不见的位置,下次循环就取前一节的位置*/
snake.node++;/*蛇的身体长一节*/
food.yes=1;/*画面上需要出现新的食物*/
score+=10;
PrScore();/*输出新得分*/
}
setcolor(4);
for(i=0;i
本文档为【C语言课程设计——小型公司系统管理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。