小型公司管理系统C++课程设计(含源代码)

合集下载

员工信息管理系统(含附源代码)03

员工信息管理系统(含附源代码)03
printf("\n\t请输入员工姓名:");
scanf("%s",work[i].name);
printf("\n\t请输入员工身份证号:");
scanf("%s",work[i].ID);
printf("\n\t请输入员工性别:");
scanf("%s",work[i].sex);
printf("\n\t请输入员工出生日期(yyyy-mm-dd):");
开始选择更新内容i结束开始选择查询内容i结束按性别统计年龄查询函数isum判断两工作号相等isumworkiworki1sumflag1是否继续输入工作号退出删除结束开始输出信息结束开始开始isum输入年龄输出信息结束判断员工的年龄段变量自加开始输入年龄chisum存在员工输出员工信息继续查询退出查询结束身份证排序
scanf("%s",work[i].sex);
printf("\n\t请输入员工出生日期(yyyy-mm-dd):");
scanf("%d-%d-%d",&work[i].birthday.year,&work[i].birthday.month,&work[i].birthday.day);
printf("\n\t请输入员工年龄:");
printf("\t **输入'e'退出列表**\n");
ch=getche();
if(ch=='e')
break;
clrscr();
printf("\t *****员工基本信息列表*****\n");

小型公司管理系统C++课程设计(含源代码)

小型公司管理系统C++课程设计(含源代码)

C++程序设计课程设计报告课题:小型公司工资管理系统专业班级:学号:姓名:指导教师:评阅意见:评定成绩:指导老师签名:目录1.设计系统的目的意义 (1)2.系统需求、功能分析 (2)3. 数据结构表 (3)4。

数据测试表 (5)5. 运行和调试 (7)6。

课程心得体会 (16)参考书目 (17)附录 (18)课程设计报告内容:1、设计系统的目的意义本次课程设计所编辑的C++程序是为了建立“小型公司工资管理系统”。

通过对该系统的建立进一步掌握面向过程和面面相对象程序的设计的几本方法和编程技巧,巩固所学理论知识,是理论与实践相结合,提高分析问题、解决问题的能力。

具体一点主要是为了进一步熟悉C++中类的概念、类的继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容的实现方式.了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程;逐步熟悉程序设计的方法,并养成良好的编程习惯。

2、系统需求、功能分析A、公司主要有四类雇员:经理、技术人员、销售人员、销售经理.要求储存雇员的编号、姓名、性别、所在部门、级别等信息,并进行工资计算.B、工资的计算方法(1)经理:领取固定月薪,固定月薪5000元;(2)技术人员:按小时领取月薪,工作时间*小时工资(80元/小时); (3)销售人员:按巩固销售额领取月薪,0。

33*销售额;(4)销售经理:既拿固定月薪也领取销售提成,0。

33*销售额+固定月薪(5000元)。

C、功能分析(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

软件工程课程设计-小型超市管理系统

软件工程课程设计-小型超市管理系统

软件工程课程设计题目:小型超市管理系统设计者:**、**学号:**********专业班级:网络**班指导教师:***所属系部:计算机与信息科学系20**年**月**日-20**年**月**日一项目开发的准备工作一.系统开发目的1.大大提高超市的运作效率;2.通过全面的信息采集和处理,辅助提高超市的决策水平;3.使用本系统,可以迅速提升超市的管理水平,为降低经营成本,提高效益,增强超市扩张力, 提供有效的技术保障.二.背景说明21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争。

技术的提升和管理的升级是超市业的竞争核心.零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存。

如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市营业者努力追求的目标。

三.项目确立针对超市的特点,为了帮助超市解决现在面临的问题,提高小型超市的竞争力,我们将开发以下系统:前台POS销售系统、后台管理系统,其中这两个子系统又包含其它一些子功能。

四.应用范围本系统适应于各种超市。

五.定义1商品条形码:每种商品具有唯一的条形码,对于某些价格一样的商品,可以使用自定义条形码。

2 交易清单:包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号.3 商品积压:在一定时期内,远无法完成销售计划的商品会造成积压。

4 促销:在一定时期内,某些商品会按低于原价的促销价格销售.库存告警提示:当商品的库存数量低于库存报警数量时发出提示.5 盘点:计算出库存、销售额、盈利等经营指标。

六.可行性研究1.管理可行性分析超市的经营者大多具备电脑基本操作知识,对于必要的专业操作经短期培训即可;管理基础工作和各项管理制度比较健全,执行严格,原始数据采集完整,保存良好.2.经济可行性分析超市管理系统的投入,能够提高工作效率,减少工作人员,从而减少人力资本的投入,根据核算,系统投入三个月后,就能够基本收回开发系统的投资,从经济角度来说,本系统开发完全必要。

企业ERP财务管理系统带源代码.doc

企业ERP财务管理系统带源代码.doc

基于和多种ORM技术实现的企业ERP财务管理系统开发视频教程1 - 56教学大纲第1讲ERP系统项目介绍及框架搭建一、导入a)通过本节主要对本课程的项目有个大体的了解,以及搭建项目。

二、学习目标:a)掌握核心组件b)系统架构三、教学过程描述:a)项目介绍ERP简介ERP系统财务管理相关子系统介绍本课程涉及技术要点本课程预期目标b)ERP简介ERP是Enterprise Resource Planning(企业资源计划)的简称。

财务管理相关子系统介绍本课程涉及技术要点系统架构四、练习与作业:1.认识ERP系统2.搭建三层架构五、小结:a)项目介绍b)系统架构第2讲利用封装数据访问层一、导入a)通过本节主要掌握核心组件,利用组件封装常用的CRUD方法。

二、学习目标:a)掌握核心组件b)利用组件封装常用的CRUD方法三、教学过程描述:a)掌握核心组件b)利用组件封装常用的CRUD方法四、练习与作业:1.认识Connection对象2.熟练掌握Command对象3.根据本节所讲内容,实现封装通用的更改数据的方法。

五、小结:a)掌握核心组件b)利用组件封装常用的CRUD方法第3讲利用封装数据访问层1.2一、导入a)通过本节主要掌握根据封装常用的查询数据的方法。

二、学习目标:a)根据封装常用的查询数据的方法三、教学过程描述:a)DataAdapter对象填充数据集b)封装查询数据库常用方法四、练习与作业:1.认识DataAdapter对象2.熟练掌握DataReader对象3.根据本节所讲内容,实现封装通用的查询数据的方法。

五、小结:a)根据封装常用的查询数据的方法第4讲搭建后台管理平台一、导入a)通过本节主要掌握后台平台搭建,ERP登录页面设计及验证码功能设计。

二、学习目标:a)后台平台搭建b)ERP登录页面设计及验证码功能设计三、教学过程描述:a)后台平台搭建b)数据库设计C)登录设计及验证码功能设计四、练习与作业:1.搭建后台管理平台。

计算机操作系统课程设计源代码《生产者---消费者问题源代码》

计算机操作系统课程设计源代码《生产者---消费者问题源代码》

《生产者---消费者问题源代码》#include<stdio.h>#include<stdlib.h>#include<string.h>#include<pthread.h>#include<semaphore.h>#include<sys/types.h>#include<errno.h>#include<unistd.h>#include<signal.h>#include<time.h>#define NUM_THREADS_P 5 /*定义数据为生产者*/#define NUM_THREADS_C 5 /*定义数据为消费者*/#define MAX_BUFFER 20 /*定义数据为缓存区*/#define RUN_TIME 20 /*定义运行时间*/int buffer[MAX_BUFFER]; /*定义最大缓存区*/int produce_pointer=0,consume_pointer=0; /*定义指针*/sem_t producer_semaphore,consumer_semaphore,buffer_mutex; /*定义信号量,互斥*/pthread_t threads_p[NUM_THREADS_P]; /*声明生产者线程*/pthread_t threads_c[NUM_THREADS_C]; /*声明消费者线程*/FILE* fd;void *producer_thread(void *tid); /*声明生产者线程*/void *consumer_thread(void *tid); /*声明消费者线程*/void showbuf(); /*声明showbuf方法*/void handler(){int i; /*定义i*/for(i=0;i<NUM_THREADS_P;i++)pthread_cancel(threads_p[i]);/*for循环,如果i<NUM_THREADS_P,则pthread_cancel(threads_p[i]);并且i++*/ for(i=0;i<NUM_THREADS_C;i++)pthread_cancel(threads_c[i]);/*for循环,如果i<NUM_THREADS_C,则pthread_cancel(threads_c[i]);并且i++*/}int main(){int i; /*定义i*/signal(SIGALRM,handler); /*定义信号量*/fd=fopen("output.txt","w"); /*打开一个文件用来保存结果*/sem_init(&producer_semaphore,0,MAX_BUFFER); /*放一个值给信号灯*/sem_init(&consumer_semaphore,0,0);sem_init(&buffer_mutex,0,1);for(i=0;i<MAX_BUFFER;i++)buffer[i]=0; /*引发缓冲*//*创建线程*/for(i=0;i<NUM_THREADS_P;i++)pthread_create(&threads_p[i],NULL,(void*)producer_thread,(void*)(i+1)); /*创建线程*/for(i=0;i<NUM_THREADS_C;i++)pthread_create(&threads_c[i],NULL,(void*)consumer_thread,(void *)(i+1));alarm(RUN_TIME);for(i=0;i<NUM_THREADS_P;i++)pthread_join(threads_p[i],NULL);/*等待线程退出*/for(i=0;i<NUM_THREADS_C;i++)pthread_join(threads_c[i],NULL);/*等待线程退出*/sem_destroy(&producer_semaphore);/*清除信号灯*/sem_destroy(&consumer_semaphore);/*清除信号灯*/sem_destroy(&buffer_mutex);/*清除缓存区*/fclose(fd); /*关闭文件*/return 0;}void *producer_thread(void *tid){pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);/* 设置状态,PTHREAD_CANCEL_ENABLE是正常处理cancel信号*/ while(1){sem_wait(&producer_semaphore); /*等待,需要生存*/srand((int)time(NULL)*(int)tid);sleep(rand()%2+1); /*一个或两个需要生产*/while((produce_pointer+1)%20==consume_pointer); /*指针位置*/sem_wait(&buffer_mutex); /*缓存区*/buffer[produce_pointer]=rand()%20+1; /*指针位置*/produce_pointer=(produce_pointer+1)%20; /*指针位置*//*判断*/if(produce_pointer==0){printf("生产者:%d 指针指向:%2d 生产产品号:%2d\n",(int)tid,19,buffer[19]); /*输出生产者,指针,缓存区*/fprintf(fd,"生产者:%d 指针指向:%2d 生产产品号:%2d\n",(int)tid,19,buffer[19]); /*输出生产者,指针,缓存区*/}else{printf("生产者:%d 指针指向:%2d 生产产品号:%2d\n",(int)tid,produce_pointer-1,buffer[produce_pointer-1]);/*输出生产者,指针,缓存区*/fprintf(fd,"生产者:%d 指针指向:%2d 生产产品号:%2d\n",(int)tid,produce_pointer-1,buffer[produce_pointer-1]);/*输出生产者,指针,缓存区*/}showbuf();sem_post(&buffer_mutex);sem_post(&consumer_semaphore); /*通知消费者缓冲区不是空的*/srand((int)time(NULL)*(int)tid);sleep(rand()%5+1); /*等待几秒钟,然后继续生产*/}return ((void*)0);}void *consumer_thread(void *tid){/*可以被其他线程使用*/pthread_setcancelstate(PTHREAD_CANCEL_ENABLE,NULL);/* 设置状态,PTHREAD_CANCEL_ENABLE是忽略cancel信号*/while(1){sem_wait(&consumer_semaphore); /*通知消费者消费*/srand((int)time(NULL)*(int)tid);sleep(rand()%2+1); /*一个或两个来消费*/sem_wait(&buffer_mutex);printf("消费者:%d 指针指向:%2d 消费产品号:%2d\n",(int)tid,consume_pointer,buffer[consume_pointer]);/*输出消费者,消费者指针,缓存区*/fprintf(fd,"消费者:%d 指针指向:%2d 消费产品号:%2d\n",(int)tid,consume_pointer,buffer[consume_pointer]);/*输出消费者,消费者指针,缓存区*/buffer[consume_pointer]=0; /*消费者指针指向0*/consume_pointer=(consume_pointer+1)%20;showbuf();sem_post(&buffer_mutex);sem_post(&producer_semaphore); /*通知生产者缓冲区不是空的*/srand((int)time(NULL)*(int)tid);sleep(rand()%5+1); /*等待几秒钟,然后继续消费*/}return ((void*)0);}/*查看缓冲区内容*/void showbuf(){int i; /*定义i*/printf("buffer:"); /*输出缓存区*/fprintf(fd,"buffer:"); /*输出缓存区*/for(i=0;i<MAX_BUFFER;i++){printf("%2d ",buffer[i]);/*输出缓存区i*/fprintf(fd,"%2d ",buffer[i]); /*输出缓存区i*/ }printf("\n\n"); /*换行*/fprintf(fd,"\n\n"); /*换行*/}。

c语言课程设计+报告+源代码

c语言课程设计+报告+源代码

西安郵電大學C语言课程设计报告题目: 职工工资管理系统院系名称: 计算机学院专业名称: 软件工程班级:学生姓名:学号(8位):指导教师:设计起止时间: 2013年06月03日~2013年06月12日一.设计目的1.通过本课程设计, 强化上机动手能力, 使学生在理论和实践的基础上进一步巩固《c语言程序设计》课程学习的内容, 掌握工程软件设计的基本方法.2.学会将知识应用于实际的方法, 提高分析和解决问题的能力, 增加综合能力.3.为后续各门计算机课程的学习打下坚实基础; 为毕业设计和以后工作打下必要基础。

二.设计内容本设计主要包括了用户登录和主菜单,其中用户登录包括了一下几个功能1.新用户的注.2.用户登.3。

用户密码的修改。

而主菜单包括: 1.职工信息的录.2.职工信息的修.3.选择性排.4.统计人数和工.5. 输出现有的信.6.自定义查询信息。

三. 概要设计1. 功能模块图;1.2. 各个模块详细的功能描述。

2.修改密码的时候, 需要输入原密码, 并且输入两次新的密码必须相同才能完成密码的修改。

3.用户登录: 需要输入用户名和密码, 如果用户名不存在或密码错误会给出相应的提醒, 当输入正确的时候会进入主菜单。

4.新用户注册:需要输入注册的用户和密码, 如果用户明已被注册过会给出相应的提醒。

5.职工信息的输入:是从无开始输入职工的信息, 同样也会给出输入内容的提醒, 当输入最后一次职工的信息为零时结束输入, 同是会将输入的信息写入到文件里。

6.修改职工信息其中包括a.添加职工信息和输入职工信息相同在添加完会提醒是否继续添加。

b.修改员工信息: 此时会出现选择性修改职工的哪项信息,先进行选择再进行修改。

C.删除员工信息: 需要输入所要删除员工的姓名或id进行删除!如果删除不成功或者删除者不存在会给出相应的提醒。

7.统计信息: 会自动的统计现有员工的总人数和现有员工的总工资。

8.输出现有职工的信息: 会显示现在记录的职工的各项信息。

c语言课程设计及源代码

c语言课程设计及源代码

c语言课程设计及源代码一、教学目标本课程旨在让学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的程序设计能力。

通过本课程的学习,学生将能够:1.理解C语言的基本语法和编程规则;2.熟练使用C语言进行简单的程序设计;3.掌握常用的数据结构和算法;4.培养良好的编程习惯和问题解决能力。

二、教学内容教学内容将按照教材的章节进行,主要包括:1.C语言的基本语法和编程规则;2.数据类型的定义和运算;3.控制语句和函数的使用;4.常用的数据结构和算法;5.指针和内存管理;6.文件操作和编程实践。

三、教学方法为了激发学生的学习兴趣和主动性,将采用多种教学方法:1.讲授法:通过讲解和演示,让学生掌握C语言的基本语法和编程规则;2.讨论法:通过小组讨论和实践,让学生深入理解和运用数据结构和算法;3.案例分析法:通过分析实际案例,让学生学会解决实际编程问题;4.实验法:通过上机实验,让学生动手实践,巩固所学知识。

四、教学资源为了支持教学内容和教学方法的实施,将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供相关的参考书籍,供学生自主学习;3.多媒体资料:制作PPT和教学视频,辅助讲解和演示;4.实验设备:提供计算机实验室,让学生进行上机实验。

通过以上教学设计,相信学生能够顺利完成本课程的学习,掌握C语言编程的基本技能。

五、教学评估为了全面、客观、公正地评估学生的学习成果,将采用多种评估方式:1.平时表现:通过课堂参与、提问和讨论,评估学生的学习态度和理解程度;2.作业:布置适量的作业,评估学生的编程能力和实践能力;3.考试:进行期中和期末考试,评估学生对课程知识的掌握程度;4.项目实践:课程项目,让学生综合运用所学知识解决问题,评估学生的综合能力。

六、教学安排教学安排将根据课程内容和学生的实际情况进行设计:1.教学进度:按照教材的章节顺序,合理安排每一节课的教学内容;2.教学时间:根据学生的作息时间,选择合适的时间段进行授课;3.教学地点:选择适宜的教室或实验室,保证教学环境的舒适和设施的齐全;4.教学活动:结合学生的兴趣爱好,安排一些实践活动,提高学生的学习积极性。

C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)

C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)

C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。

学生可按要求(如总学分不能少于20学分)选课。

课程信息维护,如录入、修改、删除等,课程信息用文件保存。

课程信息浏览?输出。

学生选课功能。

查询功能包括:按学分、课程性质、学生等查询。

统计功能。

统计各门课程的选修人数。

本系统要有通用性、界面美观、操作方便。

要考虑系统安全。

课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。

管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。

输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。

北大青鸟 软件工程师 4.0 教学PPT和源代码

北大青鸟 软件工程师 4.0 教学PPT和源代码

北大青鸟软件工程师 4.0 教学PPT和源代码一、A CCP4.0简介:ACCP(Aptech Certified Computer Professional)是印度最早从事IT职业教育的APTECH计算机教育公司推出的培养软件程序设计人员的课程体系,作为一种面向大众的求职系列教育产品,同时整合了北京大学的教育资源,ACCP4.0的课程开发采用了全球同步机制,每18个月更新一次内容。

以“教育改变生活”为教学理念,主要将学员培养为JA V A工程师、.NET 工程师、J2EE工程师、ORACLE数据库开发工程师、数据库开发工程师、系统分析设计工程师等高级别的软件IT人才。

二、课程体系:1、第一学期(S1)课程:ACCP 4.0第一学期的学习目标为:程序设计的基本逻辑、面向对象程序设计方法、网页编程的基本技能、数据库的基本概念和基本操作、编程技术、JA V A面向对象程序设计、数据库应用开发、网页制作和网页的客户端脚本程序编写、技术应用、网站页面设计、使用Java技术进行简单的C/S架构应用系统开发、职业素质、增强自我表达能力.同时,第一学期为继续在计算机程序设计方面需要提高的学员提供基本的技能和学习能力,为继续ACCP 4.0第二学期、第二学年的学习打下良好的基础。

2、第二学期课程(S2):ACCP 4.0第二学期的学习目标为:WEB应用程序设计的基本思想、使用JSP和Servlet进行B/S架构应用程序开发、基本的数据库设计和实施能力、.NET平台及C#语言的使用、使用WINFORMS进行C/S架构应用程序开发、商务网站建设、使用.NET技术进行C/S架构应用系统开发、关系数据库设计和实施、提升沟通及团队合作意识。

同时,第二学期在第一学期的基础上,要求学员进一步加强代码编写和调试能力、了解软件测试与质量保证的基本过程和基本方法。

3、第二学年课程(Y2):ACCP 4.0第二学年的学习目标为:运用.NET平台上的XML、WEBSERVICE、等核心技术构建高效和可伸缩的WEB 服务;运用J2EE框架技术实现J2EE企业级应用开发和部署;ORACLE数据库的基本维护和管理,并运用PL/SQL设计和应用ORACLE数据库;使用和维护LINUX操作平台,构筑和部署J2EE应用程序;熟悉软件工程师的工作环境,掌握软件工程师的工作方法,并理解项目管理的相关知识;掌握求职简历的编写方法,培养和提高面试能力.同时,第二学年在第一学期和第二学期的基础上,强调了面向对象分析和设计能力的培养,并增加了基于软件开发项目管理方面的基础内容。

基于javaEE技术的课程设计管理系统设计与实现-毕业设计(含源文件)

基于javaEE技术的课程设计管理系统设计与实现-毕业设计(含源文件)

目录1 绪论 (1)1.1 提出和现状 (1)1.2 产生和环境 (1)2 可行性分析 (2)2。

1 项目意义 (2)2。

2 项目需求 (2)2。

2.1 业务问题 (2)2。

2.2 问题分析 (2)2.2。

3 问题解决 (3)2.2.4 角色用例 (3)2。

2 主要功能 (3)3 项目规划 (4)3。

1 项目总体周期 (4)3.2 项目组织结构 (4)3。

3 项目管理 (4)4 需求分析 (5)4。

1 外围接口 (5)4。

2 业务模型 (6)4.3 整体要求 (6)4。

4 概要设计 (7)4.4。

1 课题管理模型范围 (8)4。

5 用例图 (9)5 系统设计 (11)5.1 开发技术 (11)5。

1。

1 开发环境 (11)5。

1.2 J2EE开发框架简介 (11)5。

1.3 JSP,Myeclipse简介 (12)5。

1.4 SQL Sever简介 (12)5.1.5 Tomcat服务器简介 (12)5.2 数据库设计 (13)5.3 系统框架设计 (14)6 编码实现 (16)6。

1 前台设计 (16)6。

2 数据库连接 (18)6。

3 数据处理 (20)7 总结 (22)参考文献 (23)致谢 (24)1 绪论1。

1 提出和现状在我国高校实践教学改革的形势下,课程实践教学前景广阔。

在国外,有些高校已经具有了根据本校实际教学情况而自己开发的实训教学平台,或者购买专业商家开发的相类似软件。

而国内高校针对软件教学,实训教学平台建设相对起步较晚,一些相关教学软件并不完善,而且需要花大价钱购买,因此,开发适合本校、本专业自己的实训教学平台是非常有必要的[1]。

该项目是中北大学软件学院根据发展的长远战略,并围绕软件学院实训基地建设的要求,体现“面向未来”的设计思想,建设一个行业示范、大方合理、有现代感、功能完备、安全可靠、可持续发展、设施先进、绿色环保、投资合理的现代化实训示范基地,以培养规范化的、适合工程化项目的、具备专业技术技能的实用型人才为目标,实现测评、人才培养、企业扶植等功能.切实为中北大学软件学院发展提供一个高品质的运行环境,为学生实习提供方便、快捷、舒适的学习环境,并为管理人员提供安全、高效的管理手段。

C语言课程设计任务书(18份)详细版

C语言课程设计任务书(18份)详细版

C语言课程设计任务书详细版(18份)C语言课程设计任务书1题目:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。

2、输入功能:可以一次完成若干条记录的输入。

3、显示功能:完成全部教师记录的显示。

4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。

5、排序功能:按职工号或教学效果综合评分进行排序。

6、插入功能:按教学效果综合评分高低插入一条教师记录。

7、将教师记录存在文件中。

8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。

课程设计的最后成果是实验报告一份,内容包括:1、预习报告(题目、流程图、程序的设计思想等);2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书2题目:酒店房间登记与计费管理系统功能:1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。

2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。

3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。

3、进一步要求:完成计费和费用查询功能。

要求:1、用C语言实现系统;2、函数功能要划分好(结构化程序设计);3、界面友好(良好的人机交互),加必要的注释;4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

数据结构课程设计-职工信息管理系统-单链表实现程序源代码

数据结构课程设计-职工信息管理系统-单链表实现程序源代码

printf(”请你输入要查找的工号:");
scanf(”%s",findmess);
p=Locate(l,findmess,”num”);
if(p)

printf(”\t\t\t\t查找结果\n”);
printstart(); //打印横线
printc(); //打印各学科标题
printe(p); //打印p结点各个数据成员的值
printf(”\t* [7] 排序 [8] 保存职工信息 *\n");
printf(”\t* [9] 显示数据 [0] 退出系统 *\n”);
printf(”\t* *\n”);
printf("\t*****************************************************************\n”);

void Wrong()

printf("\n=====>提示:输入错误!\n");

void Nofind()

printf("\n=====〉提示:没有找到该职工!\n”);

void printc() /* 本函数用于输出中文 */
{
printf(" 工号\t 姓名 性别 部门 职称 工资 总工资 平均工资\n");
Node *p,*r; /*实现删除操作的临时的结构体指针变量*/
char findmess[20];
if(!l—〉next) //当list无后继结点时,提示和结束返回del()

printf("\n=====>提示:没有记录可以删除!\n");

web课程设计源代码

web课程设计源代码

web课程设计源代码在Web课程设计中,源代码是实现网页功能和交互的关键要素之一。

以下是一个简单的Web课程设计的源代码示例,用于创建一个基本的学生课程管理系统。

```html<!DOCTYPE html><html><head><title>学生课程管理系统</title><style>/* CSS 样式表 */table {border-collapse: collapse;width: 100%;}th, td {text-align: left;padding: 8px;}tr:nth-child(even) {background-color: #f2f2f2;}th {background-color: #4CAF50;color: white;}</style></head><body><h1>学生课程管理系统</h1><h2>添加学生信息</h2><form><label for="name"姓名:</label><input type="text" id="name" name="name"br><br><label for="course"课程:</label><input type="text" id="course" name="course"br><br> <input type="submit" value="提交" </form><h2>学生列表</h2><table><tr><th>姓名</th><th>课程</th></tr><tr><td>John Doe</td><td>计算机科学</td></tr><tr><td>Jane Smith</td><td>数学</td></tr></table></body></html>```这段源代码创建了一个简单的学生课程管理系统的网页。

c语言课程设计报告 职工工资管理系统

c语言课程设计报告 职工工资管理系统

一.设计需求说明一、职工工资管理系统功能设计要求1. 输入记录:将每一个职工的姓名、ID 号以及基本工资、职务工资、岗位津贴、医疗保险、公积金的数据作为一个记录。

•该软件能建立一个新的数据文件或给已建立好的数据文件增加记录。

2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资。

3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示。

4.查找记录:可以对数据文件的任意记录的数据进行查找并在查找前后对记录内容进行显示。

5. 删除记录:可删除数据文件中的任一记录。

6.恢复记录:能恢复被删除的任一记录。

7. 统计: (A) 计算各项工资平均工资及总工资, (B)•统计符合指定条件(如职工工资前三项之和在2000 元以上、2000~1500 元、1500~1000 元) 以内的工资职工人数及占总职工人数的百分比。

(C)按字符表格形式打印全部职工工资信息表及平均工资(•包括各项总的平均工资)。

8.保存数据文件功能。

9.打开数据文件功能。

经过逐层逐块、不断细化、求精过程,编写程序并进行测试、验证,可以逐个模块地分开调试,并通过文件包含或用工程文件的形式进行逐步联合调试。

程序运行结果如下表所示(记录个数至少8 个)。

二.模块设计分析系统功能模块图:工作程序分析①输入:输入职工工资资料通过结构体的数组来进行操作,先头定义数组em[],先输入需要输入的职工人数m,然后进入循环,每次循环将各项输入结构体数组对应项的对应成员中,当循环次数等于人数时,完成全部员工的资料输入,退出循环。

同时将数据储存在ckerk_list文件中并自动保存至磁盘。

注:如首次使用,尚未输入数据,请先输入数据。

输入的数据将自动保存。

再次选择输入功能时原数据将被覆盖。

②保存:将输入的资料存入磁盘读取文件clerk_list,若文件不存在,打印“打开失败并退出。

若存在,则通过循环语句将输入到结构体数组的数据逐个输入磁盘。

毕业设计课题集锦

毕业设计课题集锦

毕业设计课题集锦如果选做毕业设计论文为毕业实践报告,计算机应用技术专业、计算机信息管理专业毕业设计选题侧重于MIS类和网站建设类;计算机网络技术专业毕业设计选题侧重于网站建设类、网络管理类、网络工程类。

课题类型序号毕业设计参考题目设计要求MIS 类1 小型图书管理系统系统是以Access/SQLserver为后台数据服务的单机、C/S、B/S 模式均可,C#/VB/DELPHI/ASP作为前台应用程序开发工具。

1.系统调查与分析:包括初步调查(组织概况、环境、现行信息管理概况、资源情况)、可行性分析、详细调查(包括组织结构图、业务流程图、数据流图DFD、基本数据项属性表、数据流属性表、数据存储属性表、数据处理功能分析表等),要求进行实地调查后进行需求分析。

2.系统设计:包括系统的总体设计(系统功能结构的划分、系统环境的配置、主要模块勾画出大致的计算机处理流程)、系统的详细设计(代码设计、输出设计、输入设计、数据库设计、其他设计)3.系统实施:包括系统环境的实施、程序设计(要有注解;要求程序正确、功能可靠、操作简单、较好的容错性能、足够快的响应速度、方便维护与扩充、对数据的安全保护)、系统调试运行。

2 学籍管理系统3 实验室设备管理信息系统4 人事管理系统5 宾馆管理信息系统6 物业管理信息系统7 定单管理系统8 商品进销存管理系统9 影碟租赁管理系统网站建设类10 XX学院计算机系网站;设计一个B/S(浏览器/服务器)交互式动态网站。

要求网站不要脱离数据库而独立存在,要体现出交互性,比如说要有用户注册、登录、不同的用户授予不同的权限、聊天室、留言板、论坛、搜索引擎等其中的几项内容,并能够在网络上发布。

11 XX精品课程宣传网站12 XX公司或企事业单位的宣传网站。

13 XX学院学生档案管理网站14 XX企业网上留言管理网站15 XX学校网上查分网站16 XX学校教育论坛网站17 XX学校同学录管理网站18 XX企业合同管理网站一、(MIS类)类型:单机、C/S、B/S开发模式:小组协作(5—8人)要求设备:能联网的PC多台、数码相机、扫描仪等目的要求:选题不求大和具有很好的市场及实用价值,主要目的是通过课题项目的实施将大学所学专业课程的知识与实践相结合,加深对相关知识的理解与掌握,培养学生将程序设计、数据结构与算法理论、数据库、计算机网络、软件工程等课程知识的综合运用能力;学习并掌握某一流行开发工具的使用,进一步理解软件开发的基本流程与要求,增强动手能力。

教学课件:《C语言程序设计》(第4版)苏小红

教学课件:《C语言程序设计》(第4版)苏小红

#include <stdio.h> int main()
{
printf("%d\n", 1+1);
return 0;
}
既非英语,也非机器语言,但更像英语 高级语言程序必须通过编译器或解释器翻译成机器语言形
式的目标代码,才能被计算机识别和执行 易学、易用、易读、易懂、强大、可移植
21/37
高级语言的 发展历程
00000101
00000001
00000000
17/37
问题12:如何让程序员远离二进
制?
Both learn a third-party language
用助记符代表机器指令的操作码
– 用一个汇编器(Assembler)将这些符号翻译成机器可识
别、可执行的二进制指令——汇编过程
汇编语言(Assembly Language)
– 奥秘:高速的检索演算能力及其海量的存储能力 (200万棋谱)
年6月底,在英国著名的布莱切利庄园举 行了一场国际人工智能机器测试竞赛
– 由俄罗斯专家设计的“叶甫根尼”电脑程序脱颖而 出
– 其29.2%的回答均成功“骗过”了测试者,被视为 目前世界上最接近人工智能的机器
• 机器语言(Machine Language)
– 用机器语言编写的一组机器指令的集合,称为 机器代码(Machine Code),简称机器码
– 用一系列二进制0和1组成的二进制代码代表不
同的机器指令
– 机器语言编写的1+1程序——犹如天书计!算机的母语
10111000 00000001
是什么?
00000000
眼睛和耳朵
大脑
11/37
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++程序设计课程设计报告课题: 小型公司工资管理系统专业班级:学号:姓名:指导教师:评阅意见:评定成绩:指导老师签名:目录1.设计系统的目的意义 (1)2.系统需求、功能分析 (2)3. 数据结构表 (3)4. 数据测试表 (5)5. 运行和调试 (7)6. 课程心得体会 (16)参考书目 (17)附录 (18)课程设计报告内容:1、设计系统的目的意义本次课程设计所编辑的C++程序是为了建立“小型公司工资管理系统”。

通过对该系统的建立进一步掌握面向过程和面面相对象程序的设计的几本方法和编程技巧,巩固所学理论知识,是理论与实践相结合,提高分析问题、解决问题的能力。

具体一点主要是为了进一步熟悉C++中类的概念、类的继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容的实现方式。

了解系统开发的需求分析、类层次设计、模块分析、编码测试、模块组装与整体调试的全过程;逐步熟悉程序设计的方法,并养成良好的编程习惯。

2、系统需求、功能分析A、公司主要有四类雇员:经理、技术人员、销售人员、销售经理。

要求储存雇员的编号、姓名、性别、所在部门、级别等信息,并进行工资计算。

B、工资的计算方法(1)经理:领取固定月薪,固定月薪5000元;(2)技术人员:按小时领取月薪,工作时间*小时工资(80元/小时);(3)销售人员:按巩固销售额领取月薪,0.33*销售额;(4)销售经理:既拿固定月薪也领取销售提成,0.33*销售额+固定月薪(5000元)。

C、功能分析(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息;(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:主要实现对已添加的人员记录进行删除。

如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。

(6)统计功能:能根据多种参数进行人员的统计。

例如,统计四类人员数量以及总数,或者统计男、女员工的数量,或者统计平均工资、最高工资、最低工资等信息。

(7)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。

(8) 退出功能:退出程序。

3、数据结构表4、数据测试表添加后的数据:编辑后的数据:按编号删除后的数据:按姓名删除后的数据:5、运行和调试(1)添加功能说明:输入1,选择添加功能说明:输入1,选择添加经理说明:输入2,添加技术人员说明:输入3,添加销售人员说明:输入4,添加销售经理(2)查询功能说明:输入2,选择查询功能说明:输入1,编号查询说明:输入2,姓名查询(3)显示功能说明:输入3,选择显示功能(4)编辑功能说明:输入4,选择编辑功能说明:编辑后读取数据(5)删除功能说明:输入5,选择删除功能说明:输入1,编号删除说明:输入2,姓名删除(6)统计功能说明:输入6,选择统计功能(7)读取功能说明:输入7,选择读取功能(8)退出功能说明:输入8,选择退出功能6、课程设计的心得通过这次课程设计,加深了对类与派生的理解。

类与派生类之间的关系,通过上机实践得到了进一步的深化。

从数据成员的继承到派生类对象对基类成员函数的调用。

对于类的保护成员只能被本身的成员函数使用,而不能直接从类外通过对象直接调用,所以如果想单独调用对象内的被保护的数据成员或私有的数据成员时,应该通过友元函数来实现。

在编辑程序是应该多敲回车将花括号单列一行,一行只写一条语句如此可使程序看起来非常有层次感,检查错误的时候也会非常方便,最大可能的减轻了单个花括号不易检查的问题的难度。

解决花括号不配对问题更好的方法是将程序分装打包成函数,放于主函数外,不过要注意定义在调用前的话,可以直接进行函数的调用,否则要先声明该函数,然后才能调用该函数。

虽然有了一年的上机课,但在课程设计这一段时间,使我收获了很多在上机课上无法学习到的知识,尤其是C++的流类库与输入输出。

因为这一部分知识的不熟练,在程序设计过程中遇到了不少困难,但通过老师的指导和一次又一次的改写、调试,将这些困难都解决了,心中的喜悦感油然而生。

为了能使程序更加的完善,我也利用了不少的课余时间,查找了各方面的资料,当看到程序从一个头文件名到一个900多行的程序,到最后的成功运行,感觉自己这段时间的付出是非常值得的,也使我对C++产生了更浓厚的兴趣,对自己的学习以及将来的工作都是有很大的帮助的。

整个实习过程让我的C++知识得到了应用,体验了程序员编程时的喜怒哀乐,知识、心智,得到全方位提升,收获颇丰。

参考书目[1]林小茶、陈维兴,《C++面向对象课程设计教程》,清华大学出版社,2009年[2]谭浩强,《C语言程序设计》,清华大学出版社,2008年附录#include<iostream>#include<string>#include<fstream>#include<stdlib.h>using namespace std;class employee //雇员类{protected:int number; //编号char name[10]; //姓名char sex[3]; //性别char department[20]; //部门char grade; //级别int pay; //工资employee *next;public:friend istream &operator>>(istream &input,employee &ob) //运算符">>"重载为友元函数{input>>>>ob.sex>>ob.department;return input;}friend ostream &operator<<(ostream &output,employee &ob) //运算符"<<"重载为友元函数{output<<ob.number<<'\t'<<<<'\t'<<ob.sex<<'\t'<<ob.department<<'\t'<<ob.grad e<<'\t'<<ob.pay<<endl;return output;}friend void tianjia();//添加功能friend void chaxun_number();friend void chaxun_name();friend void chaxun();//查询功能friend void xianshi();//显示功能friend void bianji();//编辑功能friend void shanchu_number();friend void shanchu_name();friend void shanchu();//删除功能friend void tongji();//统计功能friend void duqu();//读取功能friend int getnumber();//获取编号};class manager:virtual public employee//经理类固定工资{public:void get(){grade='A';pay=5000;number=getnumber();}};void tianjia_manager()//经理数据添加{while(1){ofstream ofs("d:\\file1.txt",ios::app);manager ma;char gra,ch;cout<<"请根据提示依次输入该经理的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>ma;ma.get();gra='A';ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));ofs.close();cout<<"是否还要添加数据:?Y OR N:\n";cin>>ch;if(ch=='Y')continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}class artisan:public employee//技术人员类按小时领月薪{public:void get(){int per,hour;cout<<"请输入工作时间,按回车键完成输入:"<<endl;cin>>hour;per=80; //每小时工资80grade='B';pay=per*hour;number=getnumber();}};void tianjia_artisan()//技术人员数据添加{while(1){ofstream ofs("d:\\file1.txt",ios::app);artisan ar;char gra,ch;cout<<"请根据提示依次输入该技术人员的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>ar;ar.get();gra='B';ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));ofs.close();cout<<"是否还要添加数据:?Y OR N:\n";cin>>ch;if(ch=='Y')continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}class salesman:virtual public employee//销售人员类当月销售提成{public:void get(){int score;cout<<"请输入员工当月销售额,按回车键完成输入:";cin>>score;grade='C';pay=0.33*score;number=getnumber();}};void tianjia_salesman()//销售人员数据添加{while(1){ofstream ofs("d:\\file1.txt",ios::app);salesman sa;char gra,ch;cout<<"请根据提示依次输入该销售人员的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>sa;sa.get();gra='C';ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));ofs.close();cout<<"是否还要添加数据:?Y OR N:\n";cin>>ch;if(ch=='Y')continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}class sales_manager:public manager,public salesman//销售经理类当月销售提成+固定工资{public:void get(){int score;cout<<"请输入员工当月销售额,按回车键完成输入:";cin>>score;grade='D';pay=0.33*score+5000;number=getnumber();}};void tianjia_sales_manager()//销售经理数据添加{while(1){ofstream ofs("d:\\file1.txt",ios::app);sales_manager sam;char gra,ch;cout<<"请根据提示依次输入该销售经理的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>sam;sam.get();gra='D';ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sam,sizeof(sales_manager));ofs.close();cout<<"是否还要添加数据:?Y OR N:\n";cin>>ch;if(ch=='Y')continue;elsecout<<"添加成功!"<<endl;system("pause");break;}}int getnumber(){ifstream ifs("d:\\file1.txt");char gra;int n,max=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra=='A'){manager ma;ifs.read((char*)&ma,sizeof(manager));n=ma.number;}else if(gra=='B'){artisan ar;ifs.read((char*)&ar,sizeof(artisan));n=ar.number;}else if(gra=='C'){salesman sa;ifs.read((char*)&sa,sizeof(salesman));n=sa.number;}else if(gra=='D'){sales_manager sam;ifs.read((char*)&sam,sizeof(sales_manager));n=sam.number;}if(max<n) max=n;ifs.read((char*)&gra,1);}ifs.close();return max+1;}void tianjia()//添加功能函数定义{system("cls");cout<<"\t\t--------------------------------------------------------"<<endl;cout<<"\t\t|-----------------小型公司工资管理系统-----------------|"<<endl;cout<<"\t\t|--------------------1.经理数据添加--------------------|"<<endl;cout<<"\t\t|--------------------2.技术人员添加--------------------|"<<endl;cout<<"\t\t|--------------------3.销售人员添加--------------------|"<<endl;cout<<"\t\t|--------------------4.销售经理添加--------------------|"<<endl;cout<<"\t\t|--------------------5.返回上一层----------------------|"<<endl;cout<<"\t\t--------------------------------------------------------"<<endl;cout<<"请输入1-5选择相应添加:";int se;cin>>se;switch(se){case 1:tianjia_manager(); break;case 2:tianjia_artisan(); break;case 3:tianjia_salesman();break;case 4:tianjia_sales_manager();break;case 5:return;}}void chaxun_number(){int nu;cout<<"请输入编号:"<<endl;cin>>nu;ifstream ifs("d:\\file1.txt");if(!ifs){cout<<"文件打开失败!";system("pause");return;}char gra;int flag=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra=='A')manager ma;ifs.read((char*)&ma,sizeof(manager));if(ma.number==nu){cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;cout<<ma;flag=1;}}else if(gra=='B'){artisan ar;ifs.read((char*)&ar,sizeof(artisan));if(ar.number==nu){cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;cout<<ar;flag=1;}}else if(gra=='C'){salesman sa;ifs.read((char*)&sa,sizeof(salesman));if(sa.number==nu){cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;cout<<sa;flag=1;}else if(gra=='D'){sales_manager sam;ifs.read((char*)&sam,sizeof(sales_manager));if(sam.number==nu){cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;cout<<sam;flag=1;}}ifs.read((char*)&gra,1);}if(!flag)cout<<"没有找到要查询的编号"<<endl;ifs.close();system("pause");}void chaxun_name(){char na[10];cout<<"请输入姓名:"<<endl;cin>>na;ifstream ifs("d:\\file1.txt");if(!ifs){cout<<"文件打开失败!";system("pause");return;}char gra;int flag=0;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra=='A'){manager ma;ifs.read((char*)&ma,sizeof(manager));if(strcmp(,na)==0){cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;cout<<ma;flag=1;}}else if(gra=='B'){artisan ar;ifs.read((char*)&ar,sizeof(artisan));if(strcmp(,na)==0){cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;cout<<ar;flag=1;}}else if(gra=='C'){salesman sa;ifs.read((char*)&sa,sizeof(salesman));if(strcmp(,na)==0){cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;cout<<sa;flag=1;}}else if(gra=='D'){sales_manager sam;ifs.read((char*)&sam,sizeof(sales_manager));if(strcmp(,na)==0){cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;cout<<sam;flag=1;}}ifs.read((char*)&gra,1);}if(!flag)cout<<"没有找到要查询的姓名"<<endl;ifs.close();system("pause");}void chaxun()//查询功能函数定义{system("cls");cout<<"\t\t----------------------------------------------------"<<endl;cout<<"\t\t|---------------小型公司工资管理系统---------------|"<<endl;cout<<"\t\t|--------------------1.编号查找--------------------|"<<endl;cout<<"\t\t|--------------------2.姓名查找--------------------|"<<endl;cout<<"\t\t|--------------------3.返回上层--------------------|"<<endl;cout<<"\t\t----------------------------------------------------"<<endl;cout<<"请输入1-3选择相应查询:";int se;cin>>se;switch(se){case 1: chaxun_number(); break;case 2: chaxun_name();break;case 3:return;}}void xianshi()//显示功能函数定义{system("cls");cout<<"\t\t----------------------------------------------------"<<endl;cout<<"\t\t|---------------小型公司工资管理系统---------------|"<<endl;cout<<"\t\t|--------------------1.添加功能--------------------|"<<endl;cout<<"\t\t|--------------------2.查询功能--------------------|"<<endl;cout<<"\t\t|--------------------3.显示功能--------------------|"<<endl;cout<<"\t\t|--------------------4.编辑功能--------------------|"<<endl;cout<<"\t\t|--------------------5.删除功能--------------------|"<<endl;cout<<"\t\t|--------------------6.统计功能--------------------|"<<endl;cout<<"\t\t|--------------------7.读取功能--------------------|"<<endl;cout<<"\t\t|--------------------8.退出功能--------------------|"<<endl; cout<<"\t\t----------------------------------------------------"<<endl;cout<<"请输入1-8选择相应功能:";int se;cin>>se;while(se>8||se<1){cout<<"输入数据无效,请重新输入:";cin>>se;}cout<<endl;switch(se){case 1:tianjia();break;case 2:chaxun();break;case 3:xianshi();break;case 4:bianji();break;case 5:shanchu();break;case 6:tongji();break;case 7:duqu();break;case 8:exit(0);}}void bianji()//编辑功能函数定义{char na[10];int z=0;cout<<"请输入需编辑者的姓名:"<<endl;cin>>na;fstream mystream("d:\\file1.txt",ios::in|ios::out);if(!mystream){cout<<"文件打开失败!";system("pause");return;}char gra;int flag=0;mystream.read((char*)&gra,1);while(!mystream.eof()){if(gra=='A'){manager ma;mystream.read((char*)&ma,sizeof(manager));if(strcmp(,na)==0){cout<<ma;cout<<"请根据提示依次输入该经理的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>ma;mystream.seekp(-sizeof(manager),ios::cur);mystream.write((char*)&ma,sizeof(manager));flag=1;mystream.seekg(sizeof(manager),ios::cur);}}else if(gra=='B'){artisan ar;mystream.read((char*)&ar,sizeof(artisan));if(strcmp(,na)==0){cout<<ar;cout<<"请根据提示依次输入该技术人员的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>ar;mystream.seekp(-sizeof(artisan),ios::cur);mystream.write((char*)&ar,sizeof(artisan));flag=1;mystream.seekg(sizeof(artisan),ios::cur);}}else if(gra=='C'){salesman sa;mystream.read((char*)&sa,sizeof(salesman));if(strcmp(,na)==0){cout<<sa;cout<<"请根据提示依次输入该销售人员的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>sa;mystream.seekp(-sizeof(salesman),ios::cur);mystream.write((char*)&sa,sizeof(salesman));flag=1;mystream.seekg(sizeof(salesman),ios::cur);}}else if(gra=='D'){sales_manager sam;mystream.read((char*)&sam,sizeof(sales_manager));if(strcmp(,na)==0){ cout<<sam;cout<<"请根据提示依次输入该销售经理的姓名,性别,部门,并按下回车确认完成输入:"<<endl;cin>>sam;mystream.seekp(-sizeof(sales_manager),ios::cur);mystream.write((char*)&sam,sizeof(sales_manager));flag=1;mystream.seekg(sizeof(sales_manager),ios::cur);}}mystream.read((char*)&gra,1);}if(!flag) cout<<"没有找到要修改的姓名"<<endl;mystream.close();system("pause");}void shanchu_number()//编号删除功能函数定义{ifstream ifs("d:\\file1.txt");if(!ifs){cout<<"打开文件失败!";system("pause");return ;}int nu;cout<<"请输入你要删除人员的编号:"<<endl; cin>>nu;int flag;int flag2=0;employee *head=NULL,*p,*tail=NULL;char gra;ifs.read((char*)&gra,1);while(!ifs.eof()){flag=0;if(gra=='A'){manager *p1;p1=new manager;ifs.read((char*)p1,sizeof(manager));if(p1->number!=nu){flag=1;flag2=1;}p=p1;}else if(gra=='B'){artisan *p2;p2=new artisan;ifs.read((char*)p2,sizeof(artisan));if(p2->number!=nu){flag=1;flag2=1;}p=p2;}else if(gra=='C'){salesman *p3;p3=new salesman;ifs.read((char*)p3,sizeof(salesman));if(p3->number!=nu){flag=1;flag2=1;}p=p3;}else if(gra=='D'){sales_manager *p4;p4=new sales_manager;ifs.read((char*)p4,sizeof(sales_manager));if(p4->number!=nu){flag=1;flag2=1;}p=p4;}if(flag){if(head==NULL)head=p;elsetail->next=p;tail=p;tail->next=NULL;}ifs.read((char*)&gra,sizeof(char));}ifs.close();if(!flag2){cout<<"没有找到要删除的信息!";return ;}cout<<"显示删除后剩下人员的信息!"<<endl;p=head;while(p!=NULL){cout<<*p;p=p->next;}cout<<"是否确定要删除该人员的基本数据?,如果是则输入:Y"<<endl; char chw;cin>>chw;if(chw=='Y'){ofstream ofs("d:\\file1.txt",ios::out);if(!ofs){cout<<"打开文件失败!";system("pause");return;}p=head;while(p!=NULL){if(p->grade=='A'){char gra='A';manager ma;ma.number=p->number;strcpy(,p->name);strcpy(ma.sex,p->sex);strcpy(ma.department,p->department);ma.grade=p->grade;ma.pay=p->pay;ma.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));}else if(p->grade=='B'){char gra='B';artisan ar;ar.number=p->number;strcpy(,p->name);strcpy(ar.sex,p->sex);strcpy(ar.department,p->department);ar.grade=p->grade;ar.pay=p->pay;ar.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));}else if(p->grade=='C'){char gra='C';salesman sa;sa.number=p->number;strcpy(,p->name);strcpy(sa.sex,p->sex);strcpy(sa.department,p->department);sa.grade=p->grade;sa.pay=p->pay;sa.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));}else if(p->grade=='D'){char gra='D';sales_manager sam;sam.number=p->number;strcpy(,p->name);strcpy(sam.sex,p->sex);strcpy(sam.department,p->department);sam.grade=p->grade;sam.pay=p->pay;sam.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sam,sizeof(sales_manager));}p=p->next;}cout<<"删除完毕!"<<endl;ofs.close();}system("pause");}void shanchu_name()//姓名删除功能函数定义{ifstream ifs("d:\\file1.txt");if(!ifs){cout<<"打开文件失败!";system("pause");return ;}char na[10];cout<<"请输入你要删除人员的姓名:\n";cin>>na;int flag=0;int flag2=0;employee *head=NULL,*p,*tail=NULL;char gra;ifs.read((char*)&gra,1);while(!ifs.eof()){flag=0;if(gra=='A'){manager *p1;p1=new manager;ifs.read((char*)p1,sizeof(manager));if(strcmp(p1->name,na)!=0){flag=1;flag2=1;}p=p1;}else if(gra=='B'){artisan *p2;p2=new artisan;ifs.read((char*)p2,sizeof(artisan));if(strcmp(p2->name,na)!=0){flag=1;flag2=1;}p=p2;}else if(gra=='C'){salesman *p3;p3=new salesman;ifs.read((char*)p3,sizeof(salesman));if(strcmp(p3->name,na)!=0){flag=1;flag2=1;}p=p3;}else if(gra=='D'){sales_manager *p4;p4=new sales_manager;ifs.read((char*)p4,sizeof(sales_manager));if(strcmp(p4->name,na)!=0){flag=1;flag2=1;}p=p4;}if(flag){p->next=NULL;if(head==NULL)head=p;elsetail->next=p;tail=p;tail->next=NULL;}ifs.read((char*)&gra,sizeof(char));}ifs.close();if(!flag2){cout<<"没有找到要删除的信息!";return ;}cout<<"显示删除后剩下人员的信息!"<<endl;p=head;while(p!=NULL){cout<<*p;p=p->next;}cout<<"是否确定要删除该人员的基本数据?,如果是则输入:Y"<<endl; char chw;cin>>chw;if(chw=='Y'){ofstream ofs("d:\\file1.txt",ios::out);if(!ofs){cout<<"打开文件失败!";system("pause");return;}p=head;while(p!=NULL){if(p->grade=='A'){char gra='A';manager ma;ma.number=p->number;strcpy(,p->name);strcpy(ma.sex,p->sex);strcpy(ma.department,p->department);ma.grade=p->grade;ma.pay=p->pay;ma.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ma,sizeof(manager));}else if(p->grade=='B'){char gra='B';artisan ar;ar.number=p->number;strcpy(,p->name);strcpy(ar.sex,p->sex);strcpy(ar.department,p->department);ar.grade=p->grade;ar.pay=p->pay;ar.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&ar,sizeof(artisan));}else if(p->grade=='C'){char gra='C';salesman sa;sa.number=p->number;strcpy(,p->name);strcpy(sa.sex,p->sex);strcpy(sa.department,p->department);sa.grade=p->grade;sa.pay=p->pay;sa.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sa,sizeof(salesman));}else if(p->grade=='D'){char gra='D';sales_manager sam;sam.number=p->number;strcpy(,p->name);strcpy(sam.sex,p->sex);strcpy(sam.department,p->department);sam.grade=p->grade;sam.pay=p->pay;sam.next=p->next;ofs.write((char*)&gra,sizeof(char));ofs.write((char*)&sam,sizeof(sales_manager));}p=p->next;}cout<<"删除完毕!"<<endl;ofs.close();}system("pause");}void shanchu()//删除功能函数定义{system("cls");cout<<"\t\t----------------------------------------------------"<<endl;cout<<"\t\t|---------------小型公司工资管理系统---------------|"<<endl;cout<<"\t\t|--------------------1.编号删除--------------------|"<<endl;cout<<"\t\t|--------------------2.姓名删除--------------------|"<<endl;cout<<"\t\t|--------------------3.返回上层--------------------|"<<endl;cout<<"\t\t----------------------------------------------------"<<endl;cout<<"请输入1-3选择相应查询:";int se;cin>>se;switch(se){case 1: shanchu_number(); break;case 2: shanchu_name();break;case 3:return;}}void tongji()//统计功能函数定义{ifstream ifs("d:\\file1.txt");if(!ifs){cout<<"打开文件失败!";system("pause");return ;}int i=0,j=0,k=0,m=0;int sum=0;char gra;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra=='A'){manager ma;ifs.read((char*)&ma,sizeof(manager));i++;}else if(gra=='B'){artisan ar;ifs.read((char*)&ar,sizeof(artisan));j++;}else if(gra=='C'){salesman sa;ifs.read((char*)&sa,sizeof(salesman));k++;}else if(gra=='D'){sales_manager sam;ifs.read((char*)&sam,sizeof(sales_manager));m++;}sum++;ifs.read((char*)&gra,1);}ifs.close();cout<<"经理:"<<i<<"人"<<endl;cout<<"技术人员:"<<j<<"人"<<endl;cout<<"销售人员:"<<k<<"人"<<endl;cout<<"销售经理:"<<m<<"人"<<endl;cout<<"总人数:"<<sum<<"人"<<endl;ifs.close();system("pause");}void duqu()//读取功能函数定义{ifstream ifs("d:\\file1.txt");char gra;cout<<"等级grade:A:经理、B:技术人员、C:销售人员、D.销售经理"<<endl;if(!ifs){cout<<"文件打开失败!";system("pause");return;}cout<<"编号"<<'\t'<<"姓名"<<'\t'<<"性别"<<'\t'<<"部门"<<'\t'<<"级别"<<'\t'<<"工资"<<endl;ifs.read((char*)&gra,1);while(!ifs.eof()){if(gra=='A'){manager ma;ifs.read((char*)&ma,sizeof(manager));cout<<ma;}else if(gra=='B'){artisan ar;ifs.read((char*)&ar,sizeof(artisan));cout<<ar;}else if(gra=='C'){salesman sa;ifs.read((char*)&sa,sizeof(salesman));cout<<sa;}else if(gra=='D'){sales_manager sam;ifs.read((char*)&sam,sizeof(sales_manager));cout<<sam;}elsecout<<"信息错误"<<endl;ifs.read((char*)&gra,1);}ifs.close();system("pause");}void main(){system("color 3F");while(1){xianshi();}}。

相关文档
最新文档