确实很着急!!课程设计 销售管理系统
这是我以前做过的课程设计,现贴出来给你参考下~
高校工资管理系统的设计方法和基本原理
高校工资管理系统的设计方法和基本原理
高校工资管理系统的设计方法和基本原理
-------------------------------------------
(一)、课程设计题目: 高校工资管理系统
(二)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;
(3)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
(三)、设计方法和基本原理:
1、功能要求
问题的描述(功能要求):
现一高校有五类职工:教师,实验员,行政人员,教师实验员,行政人员教师。为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。同时注意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除动作。
相关信息:
每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算机,则本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:
其中工资的基本构成如下:
教师: 基本工资+课时费;
实验员: 基本工资+实验室补助;
行政人员: 基本工资+行政补贴;
教师实验员: 基本工资+课时费+实验室补助;
行政人员教师:基本工资+行政补贴+课时费;
(其中:
(1).课时费:教师每一学期的基本工作量为120,实验员每学期基本工作量为70,行政人员没有基本工作量,每节课时费为20元;课时费=(上学期工作量-基本工作量)20;
注意:如果上学期基本工作量没完成,则其(上学期工作量-基本工作量)20为负值。
(2).基本工资:教师800元,实验员650元,行政人员750元。
(3).行政补贴:元。
(4).实验室补助:150元。
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
a) 写出需求分析(该程序要实现什么什么样的功能)
b) 分析系统中的各个实体之间的关系及其属性和行为;
c) 根据问题描述,设计系统的类层次;
d) 完成类层次中各个类的描述(包括属性和方法);
e) 完成类中各个成员函数的定义;
f) 用户界面的设计
g) 分析系统功能模块(系统流程图)
h) 代码编写
i) 功能调试;
j) 完成系统总结报告以及系统使用说明书
源程序代码如下:内容到剪贴板代码:
#include
#include
class Person //人员类(抽象类)
{protected:
int No; //编号
char Name[20]; //姓名
int Duty; //人员类别标志(0-教师,1-实验员,2-行政人员,3-教师兼实验员,4-行政兼教师)
double Salary; //基本工资
Person next; //指针域
public:
Person() //基类构造
{next=0; //指针域设置为空
}virtual ~Person() //基类虚析构
{}
virtual void Input()=0; //从键盘输入数据
virtual void Input(ifstream& ifs)=0; //从文件输入数据
virtual void Output()=0; //向屏幕输出数据
virtual void Output(ofstream& ofs)=0; //向文件输出数据
virtual double Incoming()=0; //计算收入
friend class College;
};
class Teacher:virtual public Person //教师类
{protected:
int Hours; //教师课时
public:
//为对象设置数据分为两种途径,通过1)构造函数,2)一般成员函数
//分开可以使得程序中应用更加灵活
//本程序采用:缺省构造+Input()
Teacher() //构造函数,初始化部分数据
{Duty=0;
Salary=800;
}void Input() //键盘补充输入其它数据
{cout<<"编号:"; cin>>No;
cout<<"姓名:"; cin>>Name;
cout<<"教师上学期课时:"; cin>>Hours;
}void Input(ifstream& ifs)
{ifs>>No>>Name>>Duty>>Hours;
}void Output()
{cout< }void Output(ofstream& ofs) {ofs< }double Incoming() {return Salary+(Hours-120)20; }}; class Assistant:virtual public Person //实验员 {protected: int Allowance; int Hours; public: Assistant() {Duty=1; Salary=650; Allowance=150; }void Input() {cout<<"编号:"; cin>>No; cout<<"姓名:"; cin>>Name; cout<<"实验员上学期实验课时:"; cin>>Hours; }void Input(ifstream& ifs) {ifs>>No>>Name>>Duty>>Hours; }void Output() {cout< }void Output(ofstream& ofs) {ofs< }double Incoming() {return Salary+Allowance+(Hours-70)20; }}; class Mar:virtual public Person //行政人员 {protected: int Allowance; public: Mar() {Duty=2; Salary=750; Allowance=; }void Input() {cout<<"编号:"; cin>>No; cout<<"姓名:"; cin>>Name; }void Input(ifstream& ifs) {ifs>>No>>Name>>Duty; }void Output() {cout< }void Output(ofstream& ofs) {ofs< }double Incoming() {return Salary+Allowance; }}; class Teacher_Assistant:public Teacher,public Assistant //教师兼实验员 {public: Teacher_Assistant() {Duty=3; Teacher::Salary=800; }void Input() {cout<<"编号:"; cin>>No; cout<<"姓名:"; cin>>Name; cout<<"教师上学期课时:"; cin>>Teacher::Hours; cout<<"教师实验员上学期实验课时:"; cin>>Assistant::Hours; }void Input(ifstream& ifs) {ifs>>No>>Name>>Duty>>Teacher::Hours>>Assistant::Hours; }void Output() {cout< < }void Output(ofstream& ofs) {ofs< < }double Incoming() {return Salary+(Teacher::Hours-120)20 +Allowance+(Assistant::Hours-70)20; }}; class Mar_Teacher:public Mar,public Teacher //行政人员兼教师 {public: Mar_Teacher() {Duty=4; Mar::Salary=750; }void Input() {cout<<"编号:"; cin>>No; cout<<"姓名:"; cin>>Name; cout<<"行政人员教师上学期课时:"; cin>>Hours; }void Input(ifstream& ifs) {ifs>>No>>Name>>Duty>>Hours; }void Output() {cout< }void Output(ofstream& ofs) {ofs< }double Incoming() {return Salary+Allowance+Hours20; }}; class College {private: Person PL; void Clear(); int College::Find(int ID,Person p1,Person p2); public: College(); //构造 ~College(); //析构 void Add(); //增加职工 void Delete(); //删除职工 void Modify(); //修改职工 void Print(); //输出职工信息 void Se(); //职工信息存盘 void Load(); //职工信息装入 }; College::College() //构造函数(创建1个头结点的链表) {Person p=new Teacher; PL=p; cout<<"自动装入数据...n"; Load(); }College::~College() //析构函数(仅保留1个头结点) {Person p=PL; while(p) //逐个删除结点,包括头结点 {PL=p->next; delete p; p=PL; }PL=0; }void College::Add() //增加职工 {cout<<"n 增加职工 n"; //查找尾结点 Person p=PL; while(p->next)p=p->next; int ch; cout<<"输入职工分类码[0-教师,1-实验员,2-行政人员,3-教师兼实验员,4-行政兼教师]:"; cin>>ch; //创建新结点,录入数据,连接到链表 Teacher pt; Assistant pa; Mar pm; Teacher_Assistant pta; Mar_Teacher pmt; switch(ch) {case 0: pt=new Teacher; pt->Input(); p->next=pt; break; case 1: pa=new Assistant; pa->Input(); p->next=pa; break; case 2: pm=new Mar; pm->Input(); p->next=pm; break; case 3: pta=new Teacher_Assistant; pta->Input(); p->next=pta; break; case 4: pmt=new Mar_Teacher; pmt->Input(); p->next=pmt; break; default: return; }} void College::Clear() //清除所有的职工结点(仅保留头结点) {Person p=PL->next; while(p) {PL->next=p->next; delete p; p=PL->next; }} //查找职工结点(返回1-找到,0-未找到.结点指针由p1返回,p2为前看指针) int College::Find(int ID,Person p1,Person p2) {p1=PL->next; p2=PL; while(p1) {if((p1)->No==ID) break; //找到 else {p2=p1; //继续查找 p1=(p1)->next; }} return p1?1:0; }void College:elete() //删除职工 {cout<<"n 删除职工 n"; int No; Person p1,p2; cout<<"编号:"; cin>>No; if(!Find(No,&p1,&p2)) {cout<<"指定的人员没有找到!n"; }else {p2->next=p1->next; //连接 delete p1; cout<<"正确删除!n"; }} void College::Modify() //修改职工 {cout<<"n 修改职工 n"; int No; Person p1,p2; cout<<"编号:"; cin>>No; if(!Find(No,&p1,&p2)) {cout<<"指定的人员没有找到!n"; }else {p1->Output(); //输出原来的职工信息(做提示) p1->Input(); //输入新的职工信息(更新) cout<<"修改完成!n"; }} void College:rint() //输出职工信息 {cout<<"n 职工信息表 n"; cout<<"编号 姓名 岗位 其它 收入情况n"; Person p=PL->next; if(!p) {cout<<"无职工记录!n"; return; }while(p) //遍历链表,输出职工信息 {p->Output(); p=p->next; }} void College::Se() //职工信息存盘 {ofstream f("erson.dat",ios:ut); //打开文件 //遍历输出至文件 Person p=PL->next; while(p) {p->Output(f); p=p->next; }f.close(); //关闭文件 cout<<"职工信息已经保存在Person.dat.n"; }void Collegead() //职工信息装入 {char buf[81]; //临时空间 int Duty; //人员类型 Person p2; //新建结点的指针 long t; //读写位置 //清除现有结点(保留头结点) Clear(); //打开文件 ifstream f("erson.dat",ios::in); //建立结点,读数据 Person p=PL; //尾结点指针 while(1) {//读取人员类型 t=f.lg(); f>>buf>>buf>>Duty; if(f) {//根据人员类型创建新结点 switch(Duty) {case 0: p2=new Teacher; break; case 1: p2=new Assistant; break; case 2: p2=new Mar; break; case 3: p2=new Teacher_Assistant; break; case 4: p2=new Mar_Teacher; break; default: f.close(); return; }p->next=p2; p=p->next; f.seekg(t); p->Input(f); }else break; }//关闭文件 f.close(); }void main() {char ch; College c; //定义大学对象 //显示主菜单,接受选择,并分支调用大学类的相应功能的成员函数 do {cout<<"n☆☆ 高校工资管理系统 ☆☆n"; cout<<"1-增加职工n"; cout<<"2-删除职工n"; cout<<"3-修改职工n"; cout<<"4-输出职工信息(工资)n"; cout<<"5-数据存盘n"; cout<<"6-数据装入n"; cout<<"7-退出t请选择(1-7):"; cin>>ch; switch(ch) {case '1': c.Add(); break; case '2': c.Delete();break; case '3': c.Modify();break; case '4': c.Print(); break; case '5': c.Se(); break; case '6': c.Load(); break; }}while(ch!='7'); } 目前,大量的中小企业中,存在这样的现象:分散的、不连贯的客户信息使企业管理者或企业相关人员无法看到客户的全部资料及相关资料,信息的分散使得产生的结果也无法保持一致性和完整性,造成中小企业在销售管理上存如下问题: 无法分类统计客户信息(对客户分类极为混乱)? 无法准确全面掌握各业务进展状态? 对立项的销售业务没有有效的安排及推建业务进程和管理,一直处被动销售局面? 对销售人员工作过程掌握不够? 无法准确快速考核销售人员业绩? 业务人员对产品没有一定认识? 无法有效地同服务部人员沟通? 销售及市场流程不清析,流程变动较大? 对市场信息、竞争对手的资讯掌握不完善? 无结构统一的销售及市场情况报表? 基本销售及市场费用统计较不完备? 销售人员辞职时失单现象? ...... 加之,现在客户的期望值越来越高,客户需要更好的服务(产品的质量及个性化服务)。企业的竞争已逐渐从产品的竞争转变为服务的竞争,因此中小企业要发展就必须进一步优化业务流程以提高企业竞争能力。Sales mament 就是针对中小企业的销售、服务和营销体系进行规范化管理,以解决困饶中小企业的一系列问题,提高效率、降低成本。 企业销售管理系统(Sales mament )通过对客户关系、销售行动、销售过程等环节记录、管理与分析,使销售管理从经验走向科学、从个人主导走向企业主导,针对中小企业销售管理中存在的诸多问题,从中小企业的销售管理的主要需求出发,充分“以客户为中心”,为中小企业建立弹性化和灵活性的业务流程。 ...... 目录 目 录 章 引言 第二章 系统分析 第三章 系统设计 第四章 系统实现 参考资料 [1] Microsoft公司编著·Visual Basic 6.0中文程序员指南·希望电子出版社·1998.9 [2] Microsoft公司编著·Visual Basic控件参考手册· 希望电子出版社·1999.3 [3] Microsoft公司编著·Visual Basic 6.0组件工具指南·希望电子出版社·1999.3 [4] 张海藩 编著·软件工程·邮电出社·2003.11 [5] 刘萌等编著·Visual Basic企业办公系统开发实例导航·邮电出社·2004.1 [6] 高春艳等编著·Visual Basic数据库开发关键技术与实例应用·邮电出版社· 2004.5 [7] Stn Jordan 牛力等编著· Visual Basic 6.0编程宝典·电子工业出版社· 2005.1 简单介绍 [摘要] 随着经济的不断发展,经济信息化已成为世界经济发展的一大趋势,是生产力发展到一定阶段的必然产物。信息是制定政策、进行宏观调控,企业从事日常事务处理、生产控制、生产决策的重要战略资源,是国民经济各部门和整个生活领域中的“倍增剂”,是当代发展的最新生产力,它正从总体上着世界经济和发展的进程。可以这样说,谁能够充分利用信息,谁就能在竞争及经济发展中求得生存。信息系统的开发实际上是一项庞大的系统工程,即信息系统工程。本文论述了在可视化开发环境Visual Basic 6.0下分析、设计、开发的企业销售管理系统。其开发主要包括后台数据库的建立及前端应用程序的开发两个方面,对于前者要求建立起数据一致性和完整性强、数据安全性好的数据库,但要求处理的信息量并不大,所以我采用了Microsoft Access 2000, 而对于后者则要求应用程序功能完备,易使用等特点,鉴于本系统开发周期比较短,我使用了Visual Basic 6.0。该系统基本满足了在中小企业销售管理方面的需求,用户界面友好,功能强大,大大减少了人力资源,增加了信息分析的准确性。作为销售管理系统,可以对商品进行查询,浏览,入库出库,对提高工作效率有重要意义。 []:企业,销售管理系统,战略资源,信息管理。 楼上贴代码的大哥,少拿你的课程设计来给别人,..看清楚人家的要求: 设计系统主界面,主界面上包括系统功能菜单; 界面友好,作方便。环境是TC,你用TC能画出友好的界面吗?? 注意别用windows函数,除了画界面,还要作,这些你会吗?? 会的话能否教教小弟,先谢过了.. 一要是用C的!!才大1还用不到VB!!!用来交作业的,能运行就可以! 实现有点困难 ,是否用数据库,没有指出 一定要TC吗 #include #include #define max 155 struct goods {int p_num; int num; int g_num; } s[max]; struct persons {int num[7]; }p[6],w; /主函数/ int n;/全局变量/ main() {int input(), output1(),output2(),output3(),output4(); int arg(),mulu(); int se(); printf(" nnn ttt 销售管理系统nnn"); printf("请输入销售信息 :(按-1结束)nn销售员代号<4 产品代号<5 销售额n"); for(n=0;n {scanf("%d",&s[n].p_num); if(s[n].p_num==(-1)) break; else scanf("%d%d",&s[n].g_num,&s[n].num); }mulu(); }/目录/ int mulu() { int cho; arg(); do {printf(" nnn ttt 销售管理系统nnn"); printf(" 1.计算上个月每个人每种产品的销售额nn"); printf(" 2.按销售额对销售员进行排序,输出排序结果(销售员代号)nn"); printf(" 3.统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果nn"); printf(" 4.输出统计报表nn"); printf(" 0.退出系统nn"); printf(" 请选择(0-4):"); scanf("%d",&cho); switch(cho) {case 1: output1();break; case 2: output2();break; case 3: output3();break; case 4: output4();break; case 0: exit(0); }}while(cho!=0); }int arg() { int k,a,j; for(k=1;k<=5;k++) { p[0].num[k]=k; for(a=1;a<=6;a++) p[k].num[a]=0; }for(k=1;k<=4;k++) p[k].num[0]=k; for(k=1;k<=4;k++) for(a=1;a<=5;a++) for(j=0;j if(s[j].p_num==k && s[j].g_num==a) p[k].num[a]+=s[j].num; /每种产品的销售额/ for(a=1;a<=5;a++) for(k=1;k<=4;k++) p[5].num[a]+=p[k].num[a]; / 每个人的销售额/ for(k=1;k<=5;k++) for(a=1;a<=5;a++) p[k].num[6]+=p[k].num[a]; }int output1() { int i,k; printf("上个月每个人销售情况如下:nn"); printf(" 产品代码 n销售员码"); for(k=1;k<=5;k++) printf("%dt",p[0].num[k]); printf("nn"); for(i=1;i<=4;i++) {for(k=0;k<=5;k++) printf("%dt",p[i].num[k]); printf("nn"); }mulu(); }/按销售额对销售员进行排序,输出排序结果(销售员代号)/ int output2() {int i,r,j; /按销售额排序/ for(i=1;i<4;++i) {r=i; for(j=i+1;j<=4;j++) if(p[r].num[6] r=j; if(r!=i) { w=p[i]; p[i]=p[r]; p[r]=w; }} printf("按销售额对销售员排序情况如下nn"); printf("销售员代码 t销售总额 n"); for(i=1;i<=4;i++) printf(" %dtt%dn",p[i].num[0],p[i].num[6]); mulu(); }/统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果 / int output3() {int k,i,r,t; for(k=1;k<5;k++) {r=k; for(t=k+1;t<=5;t++) if(p[5].num[r] if(r!=k) for(i=0;i<=5;i++) { p[i].num[6]=p[i].num[k]; p[i].num[k]=p[i].num[r]; p[i].num[r]=p[i].num[6]; }} printf("每种产品的总销售额顺序情况如下nn"); printf(" 产品代码 总销售额n"); for(k=1;k<=5;k++) printf(" %dtt%d n",p[0].num[k],p[5].num[k]); mulu(); }/ 输出统计报表/ int output4() { int i,k; int flage=0; printf("tt销售统计报表nnn"); printf(" 产品代号 n销售员码1t2t3t4t5t销售之和nn"); for(i=1;i<=4;i++) { for(k=0;k<=6;k++) printf("%dt",p[i].num[k]); printf("nn"); }printf("总和t"); for(k=1;k<=6;k++) printf("%dt",p[5].num[k]); if(flage==0)/保证只存一次/ { se(); flage=1; printf("nn信息已成功保存!_(文件名:goods_rmationt)"); }mulu(); }int se() {FILE fp; int i,k; if((fp=fopen("c://goods_rmation.txt","wt"))==NULL) {printf("不能打开文件,按任意键退出!"); getch(); exit(1); }fprintf(fp," 产品代号 n销售员码1t2t3t4t5t销售之和nn"); for(i=1;i<=4;i++) { for(k=0;k<=6;k++) fprintf(fp,"%dt",p[i].num[k]); fprintf(fp,"nn"); }fprintf(fp,"总和 "); for(k=1;k<=6;k++) fprintf(fp,"%dt",p[5].num[k]); fclose(fp); } 课程设计报告主要包括以下几个方面. 1.封面(根据自己的个性设计)2.目录3.主界面(介绍这次设计的课题、人员、目标、任务、人员分工)4.主要过程(要告诉别人你的这个作品该怎么用)5.程序流程图(用图来表示主要过程)6.核心源程序(你觉得这个作品它具备的主要功能是什么,就将实现这个功能的代码给COPY下来)7.主要函数(你程序代码里用的函数中你觉得重要的或是难的)8.心得9.附录(你完成这次课程设计参考的书,这个可以多写一点,以示用心认真) 我次做课程设计时写报告就是这么写的.你参考参考.希望能对你有些帮助 很荣幸为你答题!谢谢采纳! vf的学生信息管理,可以在线联系。 structhead;这句改成structsalerhead;你程序中,head=p1;这句的作需要两边变量的类型一致 这个可以的, 这个可以写的商品销售管理系统
求VFP课程设计(教师工资管理系统)的报告......急20
C语言课程设计销售管理系统 1,销售员信息输入 2,销售员信息输出 3,