职工信息管理系统(C语言)
员工信息管理系统(含附源代码)03
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 语言课设题目信息管理系统:1、 要求实现信息录入2、 能实现信息查询3、 信息排序4、 删除信息5、 修改信息6、 显不所有7、 插入信息 &设置界面 具体代码如下: #include<stdio.h> #in clude<stri ng ・h> #include<stdlib.h> struct student{char name[20]; char phone[20];char email[20]; char QQ[20];};void menu(void)printf("\n\n\n ------ 欢迎使用通讯录系统一 -An");printf("+■An");printf(" 1、信息录入 \n“); printf(" 2、信息查询 \n");printf(" 3、信息排序 \n“);printf(" 4、删除信息\n");printf(" 5、修改信息 \n“);printf(" 6、显Z5所有 \n“);printf(" 7、插入信息 \n");printf(" &退出系统 \n");printf(“+■An"); printff 1'请输入你的选择:\rT);〃菜单程序〃int input(struct student stu[]) 〃输入程序〃{int i,n=O;printf("请输入录入条数\n");scanf(l,%d l,/&n);for(i=0;i<n;i++){printf("请输入第%(1个成员的姓名,电话,邮箱,QQ号\n“,i+l);scanf("%s:stu[i].name);scanf(”%s 蔦stu[i].phone);scanf(”%s 蔦stu[i].email);scanf(”%s 蔦stu[i]・QQ);}return n;}void find(struct student stu[]z int n) 〃查询程序〃{int i;char ch[16];printff"输入查询条件:姓名或电话\n“);scanf(l,%s,,/ch);for(i=0;i<n;i++){if(!strcmp(ch,stu[i].name)| | !strcmp(ch,stu[i].phone)){printf("查询到姓名为%s 的同学:\n“,stu[i].name);printf("信息如下\n”);printf("姓名: %s 电话: %s 邮箱: %s QQ 号码:%s^stu[i]・name,stu[i]・phone,stu[i]・email,stu[i]・QQ);return;}}printff"未找到相关记录”);void output(struct stud ent stu[],i nt n){int i;if(n==O)printf ("通讯录中空无一物\n“);else{printfC'ifi 讯录所有记录如下\n''); for(i=0;i<n;i++)/ tprintf"姓名:%s^); printf)"电话:%sn z stu[i].phone); printf"邮箱:%s,l /stu[i].email); printf(H QQ : %s “,stu[i].QQ);printf(II \n N );}}} int dele(struct stud ent stu[]Jnt n){int i,j;char mark[20];printf ("输入要删除记录的人名或电话号码\n");scanf(,,%s ,,/mark);if(n==O){printf ("通讯录中空无一物\n");return 0;}else{for(i=0;i<=n;i++) if(!strcmp(mark,stu[i].name)| | !strcmp(mark,stu[i].phone))〃显不程序〃 〃删除程序〃printf(u以下是您要删除的记录'n”);printf("姓名:%s 电话:%s 邮箱:%s 码:%s\n:stu[i]・name,stu[i]・phone,stu[i]・email,stu[i]・QQ);for(j=i;j<n-l;j++)stu[j]=stu[j+l];printf(“删除成功\n“);n=n-l;return n;}}printf("未查询到该条记录\n");return n;}}int in sert(struct stud ent stu[]z int n){int i,x;printf("请输入插入记录条数\n");scanf("%cT:&x);for(i=n;i<n+x;i++){printf(''请输入插入的第%d个成员的姓名,电话,邮箱,QQ号\n"J-n+l); scanf(,,%s,,/stu[i].name);scanf(,,%s,,/stu[i].phone);scanf(,,%s,,/stu[i].email);scanf(,,%s,,/stu[i].QQ);}printf(“插入完成\n“);n=x+n;return n;} void change(struct student stu[],int n) 序〃int i;char x[20];printf("请输入需要修改的记录:姓名或电话\n");scanf("%s 蔦x);for(i=0;i<n;i++){if(!strcmp(x,stu[i].name)| | !strcmp(x,stu[i].phone))QQ 号〃插入程序〃〃修改程{p r i ntf ("查询到可修改记录\n");printfC*请输入修改后的名字,电话,邮箱,QQ 号码\n“); scanf(ll %s ,,/stu[i].name);scanf(ll %s ,,/stu[i].phone);scanf(,,%s ,,/stu[i].email);scanf(ll %s ,,/stu[i].QQ);printf ("修改记录成功\n");return;}}printf("未查找到相关记录\n");}void sort(struct student stu[],int n){int ij ;struct student tmp;for(i=0;i<n-l;i++){for(j=i;j<n-l;j++) if(strcmp(stu[j]. name,stu[j+l]・name)<0) tmp=stu[j]/stu[j]=stu[j+l],stu[j+l]=tmp; }printf (”排序后的记录如下:\n H );for(i=0;i<n;i++){printf ("名字:%s ,l /stu[i].name);printf("电话:%s n z stu[i].phone);printf("邮箱:%s n z stu[i].email);printfC'QQ : %s printff'Xn");}} void main(void){struct stud ent stu[35];int n ,c;while(l)〃排序算法〃蔦 stu[i]・QQ);{menu();scanf(,,%d,,/&c);switch(c){case 1:n二input(stu); break; case 2:find(stu,n);break;case 3:sort(stu,n);break;case 4:n=dele(stu,n); break; case 5:cha nge(stu, n); break; case 6:output(stu,n); break; case 7:n=insert(stu,n);break;case &exit(O);。
c语言程序设计课程设计选题 (1)
《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。
20.2、图书基本信息的查询。
21.3、对撤消图书信息的删除。
22.4、为借书人办理注册。
23.5、办理借书手续。
24.6、办理还书手续25.要求:使用文件方式存储数据。
26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。
34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。
c语言职工信息管理系统设计
c语言职工信息管理系统设计C语言职工信息管理系统是一种方便、高效的职工信息管理工具,设计该系统主要是为了提高人力资源管理效率,减轻人事部门的工作量。
下面将从系统设计流程,系统功能和系统操作流程三个方面来详细介绍该系统的设计。
一、系统设计流程1.需求分析:系统的需求分析是设计中非常关键的一步,必须充分考虑到职工管理的基本需求和功能要求,以适应各种企业规模和管理水平的要求。
系统需要提供职工个人信息和考勤、绩效管理查询和修改、新员工入职登记等基本功能。
2.系统设计:系统需要根据需求来设计相应的数据结构和数据库。
需要设计合适的数据表,包括职工基本信息表、考勤记录表、工资记录表等。
3.系统实现:实现系统的功能,包括录入人员信息、修改人员信息、考勤登记、绩效考评、新员工入职登记等操作。
4.系统维护:制定系统的维护计划,保证系统正常、稳定的运行。
二、系统功能1.基本信息管理:包括职工基本信息的录入和修改,如姓名、性别、出生年月、联系方式等。
2.考勤管理:包括考勤记录的登记和查询,如请假、加班、迟到、早退等记录。
3.工资管理:包括工资记录的录入和查询,能够根据考勤和绩效等因素计算职工应发工资和实际发放工资。
4.绩效管理:包括绩效考核的记录和查询,能够根据职工绩效考核记录、已发工资等因素,生成人员绩效考核报表。
三、系统操作流程1.登录系统:用户登录系统,输入用户名和密码。
2.菜单:系统进入主菜单,包括基本信息管理、考勤管理、工资管理、绩效管理、系统设置等功能。
3.信息录入:在基本信息管理中,根据职工基本信息表的格式,输入职工的个人信息。
4.考勤登记:在考勤管理中,根据考勤记录表的格式,输入职工的考勤记录,包括请假、加班、迟到、早退等情况。
5.工资录入:在工资管理中,根据工资记录表的格式,输入职工的实际工资和应发工资情况。
6.绩效评估:在绩效管理中,根据绩效考核表的格式,输入职工绩效考核情况,系统将自动生成用于绩效考评的报表。
C语言程序设计实验报告范文.doc
C语言程序设计实验报告范文实验名称计算出1000以内10个素数之和实验目的1、熟练掌握if、if…else、if…else if语句和witch语句格式及使用方法,掌握if语句中的嵌套关系和匹配原则,利用if语句和switch语句实现分支选择结构。
2、熟练掌握while语句、do…while语句和for语句格式及使用方法,掌握三种循环控制语句的循环过程以及循环结构的嵌套,利用循环语句实现循环结构。
3、掌握简单、常用的算法,并在编程过程中体验各种算法的编程技巧。
进一步学习调试程序,掌握语法错误和逻辑错误的检查方法。
实验内容计算并输出1000以内的10个素数以及它们的和。
要求:在程序内部加必要的注释。
由于偶数不是素数,可以不考虑对偶数的处理。
虽然在1000以内的素数超过10个,但是要对1000以内不够10个素数的情况进行处理。
输出形式为:素数1+素数2+素数3+…+素数10=总和值。
算法描述流程图Main函数:判断素数:源程序#include#includeint sushu(int n)/* 判断素数的函数*/{int t,i;t=sqrt(n);for(i=2;i1;i-=2)/* x为奇数时,做函数计算*/{n=sushu(i); /* 做判断素数的函数调用*/( 励志天下 )if(n!=0)/* 对素数的处理*/{a[j]=n;/* 把素数由大至小存入数组a[ ]中*/j++;C语言程序设计-职工信息管理系统1C语言课程设计C语言课程设计任务书一、题目:职工信息管理系统二、目的和要求目的:要求熟练掌握C语言的基本知识和编辑技能;基本掌握结构化程序设计的基本思路和方法。
要求:设计一个职工信息管理系统,使之能提供以下功能:1、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!2、输入功能:职工信息录入(职工信息用文件保存),可以一次完成若干条记录的输入。
3、浏览功能:完成对全部职工信息的显示。
C语言在信息管理系统中的应用
( 5 ) 职工信息删除、 修改功能等功能。 使用链表记录或记录数组存储数据 , 进行插入 , 删 除 和查看 与查 询 。
系统的函数组成 : ( 1 ) 录入信息并将信息存入 文件 当 中。( 2 ) 输出信息 。( 3 ) 查询 。分为 : 职工号查询 、 工资查 询 。( 4 ) 删除信息 。( 5 ) 修 改函数 : 1 ) 插入一个职工信息 ;
设计具体任务是企业职员信息管理系统软件 , 由
计 算机 替代 人 工 执行 一 系 列 诸 如增 加 新 进 职 员信 息 、 变更职 员信 息 、 删除 离职 职员信 息 、 职员 信息 的工 资统 计 发放 并 打 印工 资凭 条 、 查 询 及 打 印 等操 作 。使 工
作 人员 可 以轻松 快捷 地 完 成 管 理任 务 , 实 现企 业 职 员
随后 将程 序模 块化 , 在 主函数 中调用 各个 函数 。 所 编写 的 职 工 信 息 管 理 系 统 设 计 , 主 要 需 要 实
计算机专业毕业设计参考题目
计算机专业毕业设计参考题目目录ASP。
NET类计算机专业毕业设计题目 (1)第1-50个题目 (1)第51—100个题目 (3)第101-150个题目 (4)JAVA类计算机专业毕业设计题目 (5)第1-51个题目 (5)JSP类计算机专业毕业设计题目 (6)第1-50个题目 (6)第50—100个题目 (7)第101—150个题目 (8)PHP类计算机专业毕业设计题目 (9)C#类计算机专业毕业设计题目 (9)第1-100个题目 (9)第101-200个题目 (11)第201—300个题目 (14)类计算机专业毕业设计题目 (16)VC类计算机专业毕业设计题目 (17)第1-50个题目 (17)第51-100个题目 (18)网络类题目 (18)自选题目 (18)类计算机专业毕业设计题目第1-50个题目1。
城市公交查询系统2.电子邮件客户端软件(C#)3.图书管理系统(C#)4。
网上书店系统5。
图的遍历动态演示程序(C#)6.网上选课系统7。
职工信息管理系统8.题库专家系统9。
视频点播系统10.校园新闻发布管理系统11.客户管理系统12.车间管理系统13。
停车管理系统14。
毕业设计管理系统15。
教师评定管理系统16.基于PowerDesigner的合同管理系统17。
校园新闻发布系统18。
知识库管理系统19。
网上数码商店20.网上宠物店21。
库存管理系统22.电子商务网站23.JAVA语言考试系统的设计与实现24。
课程教学网站25.留言板(版)管理系统26。
学生选课系统27。
应用ASP。
NET开发和制作网络课程28。
书店图书管理系统29。
火车站管理系统30。
基于B/S结构的车辆管理系统31.基于WEB的新闻管理系统32。
基于Web的网络论坛系统33。
旅游网站(信息平台)研究与实现34。
学生管理系统35.学生选课系统36.同学录校友录37。
在线答疑系统38.图书馆管理系统39。
作业批改系统40。
房产管理系统41.选课系统42.校友录43.购物网站的设计与实现44。
职工信息管理系统
1 绪论1.1 课题背景及目的公司的扩张和人员的变动都需要处理相应职工的信息,凭借人力很难用最短的时间整理出需要的职工信息。
运用计算机系统对职工档案进行管理,能够提高管理效率、节约时间、方便管理人员管理信息。
因此需要设计一个职工信息管理系统,系统以菜单的方式工作,可以录入、查询、删除等。
职工的信息包括工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不可重复),使查询职工信息变得又快又简单。
1.2课题的研究方法本系统主要的设计思想是实现对职工信息的录入、删除、排序、查询等主要功能。
职工信息以文件的形式存储,这要用到文件存储数据结构。
数据结构的构造类型包括结构体变量、结构体数组、结构体指针等。
基本类型有整形字符型,其中字符型用来定义职工编号、姓名、工资、电话、地址等。
一维数组struct worker work[]用于定义员工的总人数,结构体struct worker用于存放员工的资料。
系统的人机接口采用简单的字符界面进行交互。
系统的设计方法是结构化设计方法,采用C语言进行开发。
软件开发平台采用Visual C++6.0。
[1]第1页 /共 30页2 概要设计2.1软件模块结构图职工信息管理系统可以分为显示员工资料、录入员工资料、查询员工信息、删除员工信息、对员工信息进行排序、退出信息系统。
图2.1 职工信息管理系统模块结构图第2页 /共 30页3 详细设计3.1数据结构设计定义一维数组struct worker work[50];用于定义员工的总人数,当员工总人数超过50后便不能再录入员工资料。
[1]结构体struct worker用于存放存放员工的资料,包括员工的基本信息:工号,姓名,年龄,学历,工资,住址,电话号码。
struct worker{int num; 工号char name[15]; 名字char xingbie; 性别int age; 年龄char exp[6]; 学历int wage; 工资char address[20]; 住址char tel[12]; 电话号码};int count=0; 当前工人个数int sort_type=0; 当前排序类型第3页 /共 30页3.2界面设计3.2.1 登录主界面设置用户名和密码,输入正确方可进入主界面。
C语言实训题及参考答案
printf("\t\t *** choose function ************\n\n"); printf("\t\t *** 1 Enter new data ************\n\n"); printf("\t\t *** 2 Modify data ************\n\n"); printf("\t\t *** 3 Search by people.xueli and num*****\n\n");
# include <stdio.h>
enter() { int i,n; printf("How many people(0-%d)?:",N-1); scanf("%d",&n); printf("\n Enter data now\n\n"); for(i=0;i<n;i++) { printf("\n Input %dth people record.\n",i+1); input(i); } if(i!=0)save(n); printf_back(); }
c语言职工信息录入课程设计
c语言职工信息录入课程设计一、课程目标知识目标:1. 理解C语言中基本数据类型、变量定义和输入输出函数的使用;2. 学会使用C语言进行简单的职工信息录入,包括姓名、工号、年龄等基本信息的存储和读取;3. 掌握利用循环和分支结构实现职工信息的循环录入和查询功能。
技能目标:1. 能够运用所学知识,独立设计并编写一个简单的职工信息录入系统;2. 培养学生解决实际问题的编程能力,学会调试和修改程序中的错误;3. 学会使用C语言中的文件操作,实现职工信息的保存和读取。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发学生主动探索和实践的精神;2. 培养学生团队合作意识,学会在团队中沟通交流,共同解决问题;3. 培养学生严谨、细心的编程态度,提高代码质量。
分析课程性质、学生特点和教学要求,本课程目标旨在让学生掌握C语言的基本知识,通过职工信息录入的实践,培养学生的编程能力和实际应用能力。
同时,注重情感态度价值观的培养,使学生在学习过程中形成积极向上的心态,为今后的学习和工作打下坚实基础。
通过本课程的学习,学生将能够具备独立设计和实现简单信息管理系统的基础能力。
二、教学内容1. C语言基本数据类型和变量定义:回顾C语言中的整型、字符型、浮点型等基本数据类型,以及变量的定义和初始化方法。
2. 输入输出函数:学习使用printf()和scanf()函数进行控制台输入输出操作,为职工信息录入提供基础支持。
3. 循环结构:通过for循环和while循环,实现职工信息的循环录入和查询功能。
4. 分支结构:利用if-else语句,实现职工信息的条件查询和分类输出。
5. 文件操作:学习文件打开、读写和关闭等基本操作,实现职工信息的保存和读取。
6. 结构体:引入结构体概念,定义职工信息结构体,实现不同职工信息的组织和存储。
教学内容安排和进度:第一课时:回顾C语言基本数据类型和变量定义,学习输入输出函数。
第二课时:学习循环结构和分支结构,设计职工信息录入和查询功能。
C语言课程设计报告:职工信息管理系统程序设计
1.课程论文题目职工信息管理系统程序设计一、题目要求职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:(1)系统以菜单的方式工作。
(2)职工信息录入功能(职工信息用文件保存)。
(3)职工浏览功能。
(4)职工信息查询功能,查询方式可按学历查询或者工号查询。
(5)职工信息的删除、修改功能(可选项)。
2.程序设计思路1、设计思路(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图5.算法设计1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
2浏览模块【分析】该模块的功能是浏览职工的全部信息3排序模块4查询模块【分析】该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。
流程图如下:5修改模块【分析】该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。
显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。
流程图如下:6.程序代码#include<stdio.h>#define N 50struct worker{char id[50];char name[20];char sex[10];char age[10];char edu[20];char salary[10];char address[20];char tel[20];}worker[N];void save(int n) //保存函数,保存n个记录{ FILE *fp;int i;if((fp=fopen("worker.txt","wb"))==NULL) //以只写方式为输出打开一个二进制文件{ printf("\nCannot open file\n");}for(i=0;i<n;i++)if(fwrite(&worker[i],sizeof(struct worker),1,fp)!=1)printf("file write error\n");fclose(fp);}int load() //加载函数{ FILE *fp;int i;if((fp=fopen("worker.txt","rb"))==NULL){printf("\nCannot open file\n");return NULL;}for(i=0;!feof(fp);i++)fread(&worker[i],sizeof(struct worker),1,fp);fclose(fp);return(i-1);}void no_input(int i,int n) //工号输入函数,i表示第i个职工的信息,n 表示比较到第n个职工{ int j,k,w1;do{w1=0;printf("工号:");scanf("%s",worker[i].id);for(j=0;worker[i].id[j]!='\0';j++)if(worker[i].id[j]<'0'||worker[i].id[j]>'9') //判断工号是否为数字{puts("请重新输入!\n");w1=1;break;}if(w1!=1)for(k=0;k<n;k++) //比较到第N个职工if(k!=i&&strcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同{puts("请重新输入!\n");w1=1;break;}}while(w1==1);}void input(int i) //输入一个记录的函数{ no_input(i,i);printf("姓名:");scanf("%s",worker[i].name);printf("性别:");scanf(" %s",&worker[i].sex);printf("年龄:");scanf("%s",&worker[i].age);printf("工资:");scanf("%s",worker[i].salary);printf("学历:");scanf("%s",&worker[i].edu);printf("住址:");scanf("%s",worker[i].address);printf("电话:");scanf("%s",worker[i].tel);}void printf_one(int i) //显示一个记录的函数{printf("%10s %10s %5s %5s %8s %6s %10s %10s\n",worker[i].id,worker[i].name,worker[i].sex,worker[i].age,worker[i].salary,worker[i].edu,worker[i].address,worker[i].tel); }void printf_back() //一个任务结束后选择是好似浏览还是返回{ int k,w;printf("\n\n\tSuccessful^-^.\n\n");printf("接下来做什么?\n\n\t1).浏览全部\t2).返回: [ ]\b\b");scanf("%d",&w);if(w==1)browse();else menu();}modify_data(int i,int n) //修改函数{ int c,w1;do{puts("\nmodify by=>\n\n 1).工号 2).姓名 3).性别 4).年龄 5).工资6).学历 7).地址 8).电话 9).取消");printf("请选择?:[ ]\b\b");scanf("%d",&c);if(c>9||c<1){puts("\nChoice error!please again!");getchar();}}while(c>9||c<1);do{switch(c){case 1:no_input(i,n);break;case 2:printf("name:");scanf("%s",worker[i].name);break;case 3:printf("sex:");scanf("%s",worker[i].sex);break;case 4:printf("age:");scanf("%s",worker[i].age);break;case 5:printf("salary:");scanf("%s",worker[i].salary);break;case 6:printf("edu:");scanf("%s",worker[i].edu);break;case 7:printf("address:");scanf("%s",worker[i].address);break;case 8:printf("tel:");scanf("%s",worker[i].tel);break;case 9:menu();break;}puts("\nNow:\n");printf_face();printf_one(i);printf("\n确定?\n\n\t1).是2).否,重新修改3).不保存退出[ ]\b\b");scanf("%d",&w1);if(w1==1)save(n);}while(w1==2);return(w1);}printf_face() //显示数据结构项目{ printf("\n\t工号姓名性别年龄工资学历地址电话号码\n"); }void enter() //输入模块{ int i,n;printf("输入多少个职工信息(0-%d):",N-1);scanf("%d",&n);printf("\n 请输入职工信息\n\n");for(i=0;i<n;i++)input(i);if(i!=0)save(n);printf_back();}browse() //浏览模块{ int i,j,n;n=load();printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)){printf("\n\n按任意键显示下一页...");getch();puts("\n\n");}printf_one(i);}printf("\t这里有 %d 条记录.\n",n);printf("\n按任意键返回...");getch();menu();}modify() //修改模块{struct worker s;FILE *fp;int i,n,k,w0=1,w1,w2=0;n=load();do{k=-1;printf_face();for(i=0;i<n;i++){if((i!=0)&&(i%10==0)) //目的是分屏显示{printf("\n\n记住要修改的工号.按任意键显示下一页");getch();puts("\n\n");}printf_one(i); //调用显示一个记录的函数}do{printf("\n\n输入要修改的职工工号! 工号:");scanf("%s",s.id); //输入要修改的IDfor(i=0;i<n;i++) //查找要修改的数据if(strcmp(s.id,worker[i].id)==0){k=i; //找到要修改的记录s=worker[i]; //把worker[i]备份,以便恢复}if(k==-1)printf("\n\n未找到请重输");}while(k==-1); //当k=-1表示没有找到printf_face(); //调用显示数据结构项目的函数printf_one(k); //调用显示一个记录的函数w1=modify_data(k,n); //修改记录并返回保存控制值w1,w1=1表示用户已确认修改if(w1==1){printf("\Successful^_^.\n\n修改另一个?\n\n\t1).是 2).否,保存退出\t[ ]\b\b");scanf("%d",&w0);w2=1; //用来控制保存,使w2=1是标记已有过修改}else{w0=0;if(w2==1)worker[k]=s;}if(w0!=1&&w2==1)save(n);}while(w0==1);menu();}search() //查询模块{ int c,w1;do{puts("\nsearch by=>\n\n1).工号 2}.学历 3).取消并返回"); printf("Which you needed?:[ ]\b\b");scanf("%d",&c);if(c>3||c<1){ puts("\nchoice error!please again!");getchar();}}while(c>3||c<1);{switch(c){case 1:search1();break;case 2:search2();break;case 3:menu();break;}}}search1() //按工号查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n输入要查询的工号! id:");scanf("%s",s.id);printf_face();for(i=0;i<n;i++)if(strcmp(s.id,worker[i].id)==0){k=i;printf_one(k);break;}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search1();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}search2() //按学历查询模块{int i,n,k,w1=1,w2,w3,w4;struct worker s;n=load();do{do{k=-1;printf("\n\n请输入你要查询的学历:\n");scanf("%s",);printf_face();for(i=0;i<n;i++)if(strcmp(,worker[i].edu)==0){k=i;printf_one(k);}if(k==-1){printf("\n\nNo exit!please");printf("\n\n继续查找?\n\t1).是 2).否,返回 [ ]\b\b");scanf("%d",&w1);if(w1==2) menu();}}while(k==-1&&w1==1);w4=0;w3=0;if(k!=-1){printf("\n\n接下来干什么?\n\t1).查找另一个 2).修改 3).返回菜单[ ]\b\b");scanf("%d",&w2);switch(w2){case 1:search2();break;case 2:w3=modify_data(k,n);break;case 3:{menu();break;}}}}while(w2==1);menu();}menu(){int n,w1;do{puts("\t\t*******************菜单*******************\n\n");puts("\t\t\t\t1.录入职工信息");puts("\t\t\t\t2.浏览职工信息");puts("\t\t\t\t3.查询职工信息");puts("\t\t\t\t4.修改职工信息");puts("\t\t\t\t5.退出");puts("\t\t****************************************\n\n");printf("请选择(1~5): [ ]\b\b");scanf("%d",&n);if(n<1||n>5) //对选择的数字作判断{w1=1;getchar();}else w1=0;} while(w1==1);switch(n){case 1:enter();break; //录入 case 2:browse();break; //浏览 case 3:search();break; //查询 case 4:modify();break; //修改 case 5:exit(0); //退出}}main(){menu();}7.程序运行结果下面是各个模块的的界面截图(1)、主菜单(2)、输入模块(3)、浏览模块(3)、查找模块(4)、修改模块8.编程中遇到的困难及解决方法温故而知新,可以为师矣。
员工信息管理系统含附源代码.doc
西安郵電學院高级语言课程设计报告题目:员工信息管理系统系部名称:电子与信息工程专业名称:电子科学与技术班级:科技 0701班内序号:03学生姓名:刘力源指导教师:黄茹时间:2008年6月9日至2008年6月20日实验题目: 员工信息管理系统一、实验目的1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if语句及switch语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while、 do-while.、for 的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
二.实验内容1.编写程序并进行调试运行。
2.输入员工资料,并保存于文件。
每个员工包含信息:工作证号、姓名、性别、年龄、担任职务,工资等信息。
3.对已存入的员工信息进行更新操作,包括添加一个员工信息、删除某个员工信息和修改某个员工信息。
4.通过输入姓名、工作证号,年龄的方式查询员工信息。
5.最后输出学生信息,供需要时打印。
二、需求分析1.该程序可用于对员工的雇佣情况基本信息的存储、更新、查询、输出等操作,以实现对员工的管理。
2.其中更新功能包括:添加信息、删除信息、修改信息,可根据需要添加一个或多个员工信息,也可对个别员工信息进行适当的删除或修改,以便随时更新员工信息。
3.程序中设计的查询功能可根据需要从若干数据中查询某个员工信息,并且可根据三种不同的方法查询:按工作证号查询,按年龄查询和按姓名查询。
以满足不同的需要。
四、概要设计1.模块功能说明对各个模块进行功能的描述(1).输入模块:录入需要管理的学生信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
(2).添加模块:可添加一个或多个员工信息,并将所添加员工信息保存,方便查找。
(3).删除模块:可对辞职或被解雇的员工信息做删除处理。
(4).修改模块:可根据需要对多个员工信息进行修改,也可随时对个别项进行修改。
C语言在企业信息系统中的应用
C语言在企业信息系统中的应用企业信息系统是现代企业管理不可或缺的一部分,而C语言作为一种高效、灵活的编程语言,也在企业信息系统开发中发挥着重要作用。
本文将讨论C语言在企业信息系统中的应用,并探讨其优势和挑战。
一、C语言概述C语言是一种通用的、面向过程的程序设计语言,它具有跨平台、高效性、可移植性等特点,因此在企业信息系统的开发中被广泛应用。
C语言不仅可以操作底层硬件资源,还可以方便地调用外部库函数,因而成为许多企业信息系统的首选。
二、C语言在企业信息系统中的优势1. 高效性:C语言以其高效的执行速度而闻名,这对于处理大规模数据、繁琐的计算和复杂的业务逻辑非常重要。
在企业信息系统中,高效性可以大幅提升系统的响应速度和处理能力。
2. 可移植性:C语言具有较强的可移植性,可以在不同的操作系统和硬件平台上运行。
这一特点使企业能够轻松实现跨平台部署,降低了系统开发和维护的成本。
3. 丰富的库函数:C语言拥有大量的标准库函数和第三方库函数,这些函数可以帮助开发人员快速实现各种功能。
在企业信息系统中,开发人员可以利用这些函数来处理文件、网络通信、数据结构等,提高开发效率。
4. 与硬件的紧密结合:C语言具有直接访问内存和硬件寄存器的特性,这使得企业信息系统可以更好地与底层硬件交互。
例如,可以利用C语言编写驱动程序,控制外设设备,实现与硬件的高效通信。
三、C语言在企业信息系统开发中的应用案例1. 数据库管理系统:企业信息系统中的数据库管理是一个核心部分,而C语言的高效性和可移植性使其成为开发数据库管理系统的理想选择。
C语言可以实现对数据库的连接、查询、事务处理等功能,并提供良好的性能和可靠性。
2. 企业资源计划系统(ERP):ERP系统是企业信息系统中的重要组成部分,它涉及到企业的各个方面,包括财务、人力资源、供应链等。
C语言可以通过编写模块化的、可重用的代码来实现ERP系统的开发,提供灵活、高效的业务逻辑处理和数据管理能力。
自己用C语言做的职工信息管理系统
这是主函数部分是个头文件#include <string.h>#include <malloc.h>#include <stdlib.h>#include <stdio.h>#define ALLMAX 100#include "zhigong.h"int main(){char key[100]="xxyyzz";char s[100];int count=0;while (true){if (count>2) return(0);printf("请输入登录口令:\n");gets(s)if(!strcmp(key,s)){printf("你是合法用户!\n");break;}else{printf("你是非法用户!\n");count++;}}DataType x;SLNode *head;int i,n;FILE *fp;ListInitiate(&head);printf("请输入职工人数n:\n");scanf("%d",&n);printf("请输入职工信息:姓名、性别、出生年、工作年、学历、职务、住址、电话\n"); for(i=0;i<n;i++){scanf("%s %s %d %d %s %s %s %d",,&x.sex,&x.chusheng,&x.gongzuo,x.xueli,x.zhiwu,x .zhuzhi,&x.dianhua);head=ListInsert(head,x);}if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}printf("0.结束系统\n1.新增一名职工\n2.删除一名职工\n3.查询职工信息\n4.修改职工信息\n5.对职工信息进行排序\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){printf("请输入职工信息:姓名、性别、出生年、工作年、学历、职务、住址、电话\n");scanf("%s %s %d %d %s %s %s %d",,&x.sex,&x.chusheng,&x.gongzuo,x.xueli,x.zhiwu,x .zhuzhi,&x.dianhua);head=ListInsert(head,x);printf("新增成功!请继续操作!\n");put(head,fp);}if(i==2){ListDelete(head);if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}if(i==3)Listfind(*head);if(i==4){Listxiugai(head);if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n");exit(0);}put(head,fp);if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}if(i==5){SLNode *p=head;Listpaixu(p);}if(i!=0 && i!=1 && i!=2 && i!=3 && i!=4 && i!=5)printf("输入出错!请再次输入!\n");}}还要个头文件zhigong.h这个要另外写成个头文件typedef struct Node{int chusheng,gongzuo,dianhua;charsex,name[ALLMAX],xueli[ALLMAX],zh iwu[ALLMAX],zhuzhi[ALLMAX]; struct Node *next;}SLNode;typedef struct{int chusheng,gongzuo,dianhua;charname[ALLMAX],sex,xueli[ALLMAX],zhiwu[ALLMAX],zhuzhi[ALLMAX];}DataType;void ListInitiate(SLNode **head){if((*head=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);(*head)->next=NULL;}SLNode *ListInsert(SLNode *head,DataType x){SLNode *p,*q,*s;p=head->next;if((q=(SLNode*)malloc(sizeof(SLNode)))==NULL)exit(1);q->chusheng=x.chusheng;q->gongzuo=x.gongzuo;q->dianhua=x.dianhua;strcpy(q->name,);q->sex=x.sex; strcpy(q->xueli,x.xueli);strcpy(q->zhiwu,x.zhiwu);strcpy(q->zhuzhi,x.zhuzhi);if(head->next==NULL){head->next=q;head->next->next=NULL;}else{for(;p;p=p->next){if(p->next!=NULL){if(strcmp(p->name,)<0&&strcmp(p ->next->name,)>0){s=p->next;p->next=q;q->next=s;break;}}elseif(strcmp(p->name,)<0&&p->next ==NULL){p->next=q;q->next=NULL;break;}if(strcmp(p->name,)>0){s=head->next;head->next=q;q->next=s;break;}}}return head;}void ListDelete(SLNode *head){SLNode *p,*s;char x[20];s=head;p=head->next;if(head->next==NULL){printf("名单中无职工信息,无须删除!\n");return;}printf("请输入要删除职工的姓名:\n"); scanf("%s",x);for(p;p;p=p->next){if(strcmp(p->name,x)==0){s->next=p->next;free(p);printf("删除成功!请继续操作!\n");break;}s=p;}if(p==NULL){printf("名单中无职工信息,无须删除!\n");}}void Listxiugai(SLNode *head){DataType x;SLNode *p;p=head->next;if(p==NULL){printf("职工名单无职工信息,无须修改!\n");return;}printf("请输入要修改的职工姓名:\n"); scanf("%s",);printf("依次写入该职工的信息:\n"); for(;p;p=p->next){if(strcmp(,p->name)==0){ scanf("%s %c %d %d %s %s %s %d",p-> name,&p->sex,&p->chusheng,&p->gongz uo,p->xueli,p->zhiwu,p->zhuzhi,&p->dian hua);break;}}if(p==NULL)printf("此职工不存在,无法修改其信息!\n");printf("修改成功!请继续操作!\n"); }void put(SLNode *head,FILE *fp){SLNode *p;if((fp=fopen("职工名单.txt","w"))==NULL){printf("无法打开‘职工名单.txt’!\n"); exit(0);}for(p=head->next;p;p=p->next){fprintf(fp,"%s %c %d %d %s %s %s %d\n ",p->name,p->sex,p->chusheng,p->gongzu o,p->xueli,p->zhiwu,p->zhuzhi,p->dianhu a);}if(fclose(fp)){printf("无法关闭‘职工名单.txt’!\n"); exit(0);}}void Listfind(SLNode head){int i;SLNode *p;DataType x;if(head.next==NULL){printf("名单中无职工信息,无法查询!\n");return;}printf("0.退出查询系统,回到主菜单\n1.对姓名进行查询\n2.对出生年月进行查询\n3.对工作年月进行查询\n4.对学历进行查询\n5.对职务进行查询\n6.对住址进行查询\n7.对电话号码进行查询\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){p=head.next;printf("请输入姓名:");scanf("%s",);i=0;for(p;p;p=p->next){if(strcmp(p->name,)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中不存在此人!\n");else printf("查询成功!请继续操作!\n");}if(i==2){p=head.next;printf("请输入出生年月:");scanf("%d",&x.chusheng);i=0;for(p;p;p=p->next){if(p->chusheng==x.chusheng){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这个时间出生的!\n");else printf("查询成功!请继续操作!\n");}if(i==3){p=head.next;printf("请输入工作年月:");scanf("%d",&x.gongzuo);i=0;for(p;p;p=p->next){if(p->gongzuo==x.gongzuo){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这个时间工作的!\n");else printf("查询成功!请继续操作!\n");}if(i==4){p=head.next;printf("请输入学历:");scanf("%s",x.xueli);i=0;for(p;p;p=p->next){if(strcmp(p->xueli,x.xueli)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这种学历的!\n");else printf("查询成功!请继续操作!\n");}if(i==5){p=head.next;printf("请输入职务:");scanf("%s",x.zhiwu);i=0;for(p;p;p=p->next){if(strcmp(p->zhiwu,x.zhiwu)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有这种职务的!\n");else printf("查询成功!请继续操作!\n");}if(i==6){p=head.next;printf("请输入住址:");scanf("%s",x.zhuzhi);i=0;for(p;p;p=p->next){if(strcmp(p->zhuzhi,x.zhuzhi)==0){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没有住这的!\n");else printf("查询成功!请继续操作!\n");}if(i==7){p=head.next;printf("请输入电话:");scanf("%d",&x.dianhua);i=0;for(p;p;p=p->next){if(p->dianhua==x.dianhua){++i;printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua);}}if(i==0)printf("职工名单中没人用这个号码!\n");else printf("查询成功!请继续操作!\n");}if(i!=0 && i!=1 && i!=2 && i!=3 && i!=4 && i!=5 && i!=6 && i!=7)printf("输入出错!请再次输入!\n"); }}void print(SLNode *head){for(SLNode *p=head->next;p;p=p->next) printf("%s %c %d %d %s %s %s %d\n",p->name,p->sex,p->chusheng,p->gongzuo,p ->xueli,p->zhiwu,p->zhuzhi,p->dianhua); }void Listpaixu(SLNode *head){int i,n=0,m,flag=1;SLNode *p,*q,*s;if(head->next==NULL){printf("名单中无职工信息,无法排序!\n");return;}printf("0.退出排序系统,回到主菜单\n1.对性别进行排序\n2.对出生年月进行排序\n3.对工作年月进行排序\n");for(;;){scanf("%d",&i);if(i==0)break;if(i==1){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->sex>q->sex){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n");print(head);}if(i==2){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->chusheng>q->chusheng){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n"); print(head);}if(i==3){n=0,m,flag=1;for(p=head;NULL!=p;p=p->next)n++;for(m=1;flag&&m<=n;n++){flag=0;for(q=head->next,p=head,s=p;q;s=p,p=q,q =q->next){if(p->gongzuo>q->gongzuo){if(head==p){head->next=q->next;head=q;q->next=p;q=head->next;p=head;}else{p->next=q->next;q->next=p;s->next=q;p=q;q=p->next;}flag=1;}}}printf("排好序的信息如下:\n");print(head);}if(i!=0&&i!=1&&i!=2&&i!=3)printf("输入出错!请再次输入!\n"); }}。
《C语言程序设计课程设计》-课程教学大纲
《C语言程序课程设计》课程教学大纲一、课程基本信息二、实验性质、地位和任务《C语言程序课程设计》是一门实用性和实践性很强的课程,所以本课程的课程设计环节占有非常重要的地位。
它是电子信息工程专业在C语言程序设计结束后的一门重要实践性课程,是为加强学生用程序设计的思想分析和解决问题的能力。
三、实验目的和要求1、实验目的在全面掌握《C语言程序设计》课程知识点的前提下,培养学生分析实际问题的能力。
设计的主要目的和任务为:(1)巩固和加深学生对C语言程序设计课程的基本知识的理解和掌握;(2)利用C语言进行简单软件设计的基本思路和方法;(3)掌握程序项目开发的一般步骤;(4)掌握书写程序设计说明文档的能力。
2、实验要求(1)作好实验前准备工作,对讨论的课程设计问题应事先进行初步设计与算法设计,以提高上机效率。
(2)上机实验时一人一机,独立上机。
对程序调试过程中出现的问题应尽量独立解决,以训练学生分析问题和解决问题的能力。
(3)应按时完成课程设计任务。
(4)课程设计完成后应分析实验结果,找出存在的问题,寻找出解决问题的办法并解决问题,从而提高程序设计的能力。
四、实验项目和学时分配1、问题分析和任务定义(4学时)(1)内容:根据设计题目的要求,充分分析和理解问题,明确问题要求做什么,限制条件是什么。
(2)要求:掌握问题分析的方法,以无歧义的陈述说明程序设计的任务;了解以用例图来明确系统功能的方法。
(3)重难点:以无歧义的陈述说明程序设计的任务;对问题作透彻分析,避免出现需求分析错误。
(4)说明:本阶段是解决“做什么”的问题,就是要全面理解用户的各项要求,并准确表达所接受的用户需求。
2、逻辑设计和数据结构的选择(4学时)(1)内容:为操作对象定义相应的数据结构,以结构化程序设计的思想方法为原则划分各个模块,定义数据的抽象数据类型。
(2)要求:掌握逻辑设计和数据结构选择的方法。
(3)重难点:逻辑设计和数据结构选择。
程序设计基础课程设计报告(c语言实现附源码)(员工工资管理系统)
《程序设计基础》课程设计报告题目: 员工工资管理系统院(系): 信息科学与工程学院专业班级:学生姓名:学号:指导教师:20 16 年 12 月 12 日至20 16 年 12 月 23 日武昌首义学院制程序设计基础课程设计任务书目录1需求与总体设计 (1)2详细设计 (1)3编码实现 (4)4运行结果 (21)总结 (24)1需求与总体设计1.1需求描述设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、年月、岗位工资、奖金、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据以及重组文件的功能。
1。
2总体设计先以登陆函数登陆,再进入主菜单,菜单中显示各个要实现的操作,以菜单将各个函数联系起来,对菜单操作以实现系统的目的.1。
3数据结构struct user //登陆者信息{char un[10];char up[10];}us[3] = { "aaa","111",”bbb”,”222",”ccc",”333" };struct yg //员工结构体{short zt; //数据状态long bh; //编号char name[20]; //名字char time[11]; //时间long money; //基本工资long jj; //奖金long kk; //扣款long sf; //实发工资};整个程序只运用了结构体的数据结构,结构体运用于登陆者信息和员工信息,将员工信息封装在一个结构体里,再创建结构体数组,将多个员工信息储存在结构体数组中。
2详细设计2.1 系统功能设计主函数和子函数:系统包含一个主函数,和子函数,分别有登陆子函数,菜单子函数,增加数据子函数,更新数据子函数,查询数据子函数,删除数据子函数,统计数据子函数,重组文件子函数,排序数据子函数,最后两个分别是读取文件和写入文件子函数。
C语言程序设计-职工信息管理系统
河南理工大学计算机科学与技术学院课程设计报告20 12 — 20 13 学年第二学期设计名称职工信息管理系统设计上机地点上机日期学生姓名学号专业班级指导教师年月日一.设计目的:通过亲自设计程序,可以令我们熟悉c语言操作,更熟练的掌握c语句。
初步体会编程的过程,为将来的程序深入学习打下基础和培养兴趣。
二.总体设计:三.详细设计:(一). 为了方便使用结构此系统结构均为全局类型定义struct employee //定义一个职工信息的结构体{int num;char name[10];char sex;int age;char xueli[30];int wage;char addr[30];char tel[20];}em[100];(二).各模块的功能和实现1.菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void menu()函数来实现。
2.输入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的void input()函数来实现。
3.保存模块:将内存中职工的信息输出到磁盘文件中,可以通过自己定义的void save(int)函数来实现。
4.浏览模块:浏览所有职工的相关信息,通过自己定义的void display()函数来实现。
5.删除模块:删除需要删除的职工的所有信息,通过自己定义的void del()函数来实现。
6.添加模块:添加需要添加的职工的相关信息,通过自己定义的void add()函数来实现。
7.按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的void search_num()函数来实现。
8.按职工的的学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的void search_xuelil函数来实现。
9.按职工的电话号码查询模块:可以按职工的电话来查询职工的相关信息,通过自己定义的void search_tel函数来实现。
面向对象课程设计——职工信息管理系统
《面向对象技术》课程设计ﻩ题目:职工信息管理系统专业: 计算机科学与技术学号:姓名:指导老师:完成日期:2013-6-2目录1 前言ﻩ错误!未定义书签。
2需求分析ﻩ错误!未定义书签。
2.1要求ﻩ错误!未定义书签。
2.2任务ﻩ错误!未定义书签。
2.3运行环境ﻩ错误!未定义书签。
2.4开发工具ﻩ错误!未定义书签。
3 概要设计与详细设计......................... 错误!未定义书签。
3.1系统流程图ﻩ错误!未定义书签。
3.2运行结果举例ﻩ错误!未定义书签。
4 编码与实现ﻩ错误!未定义书签。
4.1分析................................. 错误!未定义书签。
4.2具体代码实现ﻩ错误!未定义书签。
5 课程设计总结ﻩ1错误!未定义书签。
参考文献..................................... 错误!未定义书签。
1 前言编写一个程序来管理职工信息。
通过一个结构体数组来存放输入的每一位职工的记录(包括职工号、姓名、性别、年龄、学历、工资、住址、电话等),然后将其信息保存到文件中。
通过几个函数来创建新职工号,并对职工信息进行删除及修改,输入一个职工号查询该职工的信息,并显示在屏幕上。
2 需求分析2.1要求(1)只能使用C++语言实现程序设计;(2)源程序要有适当的注释,使程序容易阅读;(3)画出查询模块的流程图;利用结构体进行相关信息处理;(4)系统的各个功能模块要求用函数的形式实现;(5)运行界面清晰,功能明确。
2.2任务(1)定义一个结构体类型数组,输入每一位职工的信息(包括职工号、姓名、性别、年龄、学历、工资、住址、电话等),将其信息存入文件中;(2)输入职工号查询该职工的信息,并显示在屏幕上;(3)画出所有模块的流程图;(4)编写代码;(5)程序分析与调试。
2.3运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境,VC6.02.4开发工具C++语言3 概要设计与详细设计3.1系统流程图如图3.1所示。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计(论文)题目名称职工信息管理系统课程名称C语言程序课程设计学生姓名刘丹学号1241302028系、专业信息工程系、计算机科学与技术专业指导教师黄磊2013年6月 6 日目录1 前言 (1)2 需求分析 (1)2.1 课程设计目的 (1)2.2 课程设计任务 (2)2.3 设计环境 (2)2.4 开发语言 (2)3 分析和设计 (3)3.1 模块设计 (4)3.2 系统流程图 (4)3.3 主要模块的流程图 (5)4 具体代码实现 (7)5 课程设计总结 (9)5.1程序运行结果/ 预期运行结果 (9)5.2 课程设计体会 (13)参考文献 (14)致谢 (14)1 前言编写一个程序来处理职工信息管理系统。
通过结构体数组来存放输入的每一位职工的记录(包括工号、姓名、性别、年龄、学历、工资、住址、电话等),然后将其录入的职工信息以文件形式保存。
然后输入名字、工号、学历查询该同学的信息,并且对其进行浏览、查询、修改、删除等基本操作,建立职工信息管理的文件。
2 需求分析1、程序结构合理2、界面比较美观3、最好使用结构、体指针4、输入时有提示,输出美观,整齐职工信息由工号、姓名、性别、年龄、学历、工资、住址、电话等构成。
功能要求:(1)系统以菜单方式工作(2)职工信息录入功能(职工信息用文件保存)——输入(3)职工信息浏览功能——输出(4)查询和排序功能:(至少一种查询方式)——算法(5)按职工号查询(6)按学历查询等(7)职工信息删除、添加功能2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。
通过课程设计(论文),将课本上的理论知识和实际有机结合起来,提高学生的分析解决实际问题的能力;加强学生适应实际,实践编程的能力;锻炼使用文献资料及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。
2.2 课程设计任务设计一个职工信息管理系统,使之能提供职工信息录入功能、职工信息浏览功能、查询功能:按姓名查询,职工信息包括职工号,姓名,性别,年龄,学历,工资,住址,电话等。
实现菜单设计,使用数据文件保存和修改, 应用结构体和指针等内容。
1、查阅相关文献资料;2、按时完成系统的设计并且能够运行;3、要求程序正确,功能可靠;操作简单,使用方便;4、课程设计交流:认真写课程设计日志,每2天指导老师审查,通过邮件、电话,或者面谈与导师沟通汇报情况。
5、按课程设计(论文)要求,写课程设计论文。
2.3 设计环境(1)WINDOWS 2000/2003/XP/7/Vista系统(2)Visual C++或TC集成开发环境2.4 开发语言C语言3分析设计职工信息管理系统编程的作用是将职工的信息存放在文件中,然后在程序中可以浏览、查询、删除、添加职工的信息,好方便了解职工信息,同时能够及时刷新职工信息。
职工信息管理系统可以按功能进行以下划分,如下图所示:1.菜单选择是职工信息管理的入口,进行的各种操作均需要这里进行选择。
2.信息输入是将职工的信息输入到文件中,包括工号、姓名、性别、年龄、学历、工资、住址、电话等。
3.信息浏览是将已经输入的职工信息的显示出来。
4.信息查询是用来查询职工的信息,查询方式有按工号查询和姓名查询还有按学历查询三种方式。
5.信息删除是删除职工一些信息。
6.信息添加是增加一些职工信息。
3.1 模块设计定义结构体类型struct employee 表示职工信息(包括:工号、姓名、联系电话、性别、工资、学历、年龄、地址),定义一个结构体数组em[N],用来存放N个学生的信息,假设N为3。
如下所示:#define Nstruct employee{ int number;int age;int wage;char name[20];char sex[10];char address[30];char xuelil[20];long int telephone;}em[N];定义函数input(),用来输入若干职工信息存入em数组中。
定义函数save(),用来把结构体数组中的信息写入文件bbb.txt中。
在save 函数中先用写的方式保存到文件bbb.txt,然后以读的方式打开文件bbb,指针变量fp,打开文件bbb失败就退出。
定义函数search(),用来在文件中查找某职工的信息。
定义函数display(),用来显示某职工的信息。
定义函数del(),用来删除某职工的信息。
定义函数add(),用来添加某职工的信息。
3.2 系统流程图系统流程图如下:图3.1系统流程图3.3 主要模块的流程图主函数模块流程图如下:图3.2 主函数流程图1、主函数switch根具体程序如下:main() /*主函数*/{int n;printf("\n");printf(" ******************职工信息管理****************\n");printf("\n");printf(" 1.录入职工信息\n");printf(" 2.浏览职工信息\n");printf(" 3.查询职工信息\n");printf(" 4.删除职工信息\n");printf(" 5.添加职工信息\n");printf(" 6.退出\n");printf("\n");scanf("%d",&n);switch(n){case 1:printf(" 输入职工信息\n");printf("\n");input();main();break;case 2:printf(" 浏览职工信息\n");printf("\n");display(*p);main();break;case 3:printf(" 查询职工信息\n");printf("\n");search();break;case 4:printf(" 删除职工信息\n");printf("\n");del(p);break;case 5:printf(" 添加职工信息\n");printf("\n");add(p);break;case 6:exit(0);break;default :break;}}输入函数模块流程图如下:工号历输入的内容,接着用scanf语句输入相应的内容。
输入完毕后套用保存save[N]将所输入的信息写入指定文件。
具体程序如下:void input() /*录入函数*/{int i;for(i=0;i<N;i++) /*输入*/{printf("请输入职工号:");scanf("%3d",&em[i].number);getchar(); /*输入职工工号*/printf("请输入姓名: ");scanf("%s",em[i].name); /*输入职工姓名*/printf("请输入性别: ");scanf("%s",em[i].sex);getchar(); /*输入职工性别*/printf("请输入年龄: ");scanf("%d",&em[i].age);getchar(); /*输入职工年龄*/printf("请输入学历: ");scanf("%s",em[i].xueli); /*输入职工学历*/printf("请输入工资: ");scanf("%d",&em[i].wage);getchar(); /*输入职工工资*/printf("请输入住址: ");scanf("%s",em[i].address); /*输入职工家庭地址*/printf("请输入电话: ");scanf("%d",&em[i].telephone);getchar(); /*输入职工联系号码*/printf("\n");}printf("\n创建完毕!\n");save(N);}4 具体代码实现#include<stdio.h> /*标准I/Q函数*/#include <string.h>#define N 2struct employee /*定义一个职工信息结构体*/{int numbe; /*职工号*/int age; /*年龄*/int wage; /*工资*/char name[20]; /*姓名*/char sex[10]; /*性别*/char address[30]; /*家庭地址*/char xueli[10]; /*学历*/long int telephone; /*联系电话* /}em[N];void search(); /*查询*/void search_name(); /*按名字查询*/void search_xueli(); /*按学历查询*/void search_number(); /*按工号查询*/void load(); /*装载信息文件*/void display(); /*显示职工信息*/void del(); /*删除职工信息*/void input(); /*录入职工信息*/void add(); /*添加职工信息*/void save(); /*保存信息文件*/int a=N;int *p=&a;main() /*主函数*/{int n;printf("\n");printf(" ******************职工信息管理****************\n");printf("\n");printf(" 1.录入职工信息\n");printf(" 2.浏览职工信息\n");printf(" 3.查询职工信息\n");printf(" 4.删除职工信息\n");printf(" 5.添加职工信息\n");printf(" 6.退出\n");printf("\n");scanf("%d",&n);switch(n){case 1:printf(" 输入职工信息\n");printf("\n");input();main();break;case 2:printf(" 浏览职工信息\n");printf("\n");display(*p);main();break;case 3:printf(" 查询职工信息\n");printf("\n");search();break;case 4:printf(" 删除职工信息\n");printf("\n");del(p);break;case 5:printf(" 添加职工信息\n");printf("\n");add(p);break;case 6:exit(0);break;default :break;}void input() /*录入函数*/{int i;for(i=0;i<N;i++) /*输入*/{printf("请输入职工号:");scanf("%3d",&em[i].number);getchar(); /*输入职工工号*/printf("请输入姓名: ");scanf("%s",em[i].name); /*输入职工姓名*/printf("请输入性别: ");scanf("%s",em[i].sex);getchar(); /*输入职工性别*/printf("请输入年龄: ");scanf("%d",&em[i].age);getchar(); /*输入职工年龄*/printf("请输入学历: ");scanf("%s",em[i].xueli); /*输入职工学历*/printf("请输入工资: ");scanf("%d",&em[i].wage);getchar(); /*输入职工工资*/printf("请输入住址: ");scanf("%s",em[i].address); /*输入职工家庭地址*/printf("请输入电话: ");scanf("%d",&em[i].telephone);getchar(); /*输入职工联系号码printf("\n");}printf("\n创建完毕!\n");save(N);}void save(int m) /*保存文件函数*/{int i;FILE*fp; /*指向文件指针*/if(!(fp=fopen("c://bbb.txt","w"))) /*写方式打开文件bbb,指针变量fp指向该文件*/{printf("打开失败");exit(0); /正常退出程序/}for(i=0;i<m;i++)fprintf(fp,"%d %8s %s %d %8s %d %s %d\n",em[i].number,e m[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].address, em[i].telephone);fclose(fp); /*fp是用fope n函数打开文件时所带回的指针*/void load(int b) /*导入函数*/{int i;FILE*fp;if(!(fp=fopen("c://bbb.txt","r"))) /*读方式打开文件bbb,指针变量fp指向该文件*/{printf("打开失败");exit(0);}elsefor(i=0;i<b;i++)fscanf(fp,"%3d %8s %s %2d %8s %4d %s %8d\n",&em[i].num ber,em[i].name,em[i].sex,&em[i].age,em[i].xueli,&em[i].wage,em[i]. address,&em[i].telephone);fclose(fp); /*关闭文件*/}void display(int a) /*浏览函数*/{int i,b=a;load(b);printf("\n职工号\t 姓名\t性别\t年龄\t 学历\t 工资\t 住址\t 电话\n");for(i=0;i<a;i++)printf("%d\t%8s\t%s\t%d\t%8s %d\t%s\t%d\n",em[i].nu mber,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].a ddress,em[i].telephone);printf("\n");}void search(){int t;printf("\n按职工号查询按1\n按姓名查询请按2");printf("\n按学历查询请按3\n返回主菜单请按4\n");scanf("%d",&t);switch(t){case 1:printf("\n按职工号查询\n");search_number();break;case 2:printf("\n按姓名查询\n");search_name();break;case 3:printf("\n按学历查询\n");search_xueli();break;case 4:main();break;default :printf("输入错误,请重新输入!\n");search();break;}}void search_number() /*按工号查找职工信息*/ {int i,number;load(*p);printf("\n请输入要查询的职工号:");scanf("%d",&number);for(i=0;i<*p;i++)if(number==em[i].number){printf("\n该职工信息如下:\n");printf("\n职工号\t 姓名\t性别\t年龄\t 学历\t 工资\t 住址\t电话\n");printf("\n%d\t%8s\t%s\t %d\t%8s %d\t%s\t%d\n",em[i] .number,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[ i].address,em[i].telephone);printf("\n");break;}if(i==*p)printf("\n查无此人\n");search();}void search_name() /*按姓名查找职工信息*/{int i;char name[20];load(*p);printf("\n请输入要查询的姓名:");scanf("%s",name);for(i=0;i<*p;i++)if(!strcmp(em[i].name,name)){printf("\n该职工信息如下:\n");printf("\n职工号\t 姓名\t性别\t年龄\t 学历\t 工资\t 住址\t电话\n");printf("\n%d\t%8s\t%s\t %d\t%8s %d\t%s\t%d\n",em[i] .number,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[ i].address,em[i].telephone);printf("\n");break;}if(i==*p)printf("\n查无此人\n");search();}void search_xueli() /*按学历查找职工信息*/{int i,k=0;char xueli[20];load(*p);printf("\n请输入要查询的学历:");scanf("%s",xueli);for(i=0;i<*p;i++)if(!strcmp(em[i].xueli,xueli)){printf("\n职工号\t 姓名\t性别\t年龄\t 学历\t 工资\t 住址\t电话\n");printf("%d\t%8s\t%s\t %d\t%8s %d\t%s\t%d\n",em[i].n umber,em[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i]. address,em[i].telephone);}for(i=0;i<*p;i++){if(!strcmp(em[i].xueli,xueli))break;else k++;}if(k==*p)printf("\n查无此人\n");search();}void del(int *b) /*删除函数*/{int i,t,j,m;int a=*b;char name[20];printf("\n所有职工信息:\n");display(a);printf("\n请输入要删除职工的名字:");scanf("%s",name);for(i=0;i<a;i++){if(!strcmp(em[i].name,name)){printf("\n确认删除请按1\n取消请按2\n");scanf("%d",&t);if(t==1){for(j=i;j<a-1;j++){em[j].age=em[j+1].age;em[j].wage=em[j+1].wage;em[j].number=em[j+1].number;em[j].telephone=em[j+1].telephone;strcpy(em[j].xueli,em[j+1].xueli);strcpy(em[j].name,em[j+1].name);strcpy(em[j].address,em[j+1].address);strcpy(em[j].sex,em[j+1].sex);}a--;save(j);break;}if(t==2)break;}}if(i==a)printf("\n输入错误,无此人\n");*b=a;printf("\n继续删除请按1\n浏览信息请按2\n返回主菜单请按3\n"); scanf("%d",&m);switch(m){case 1:del(p);break;case 2:display(*b);main();break;case 3:main();break;default:break;}}void add(int *a) /*添加函数*/ {int i,n,m;FILE*fp;if(!(fp=fopen("c://bbb.txt","a"))){printf("打开失败");exit(0);}printf("\n请输入想添加的人数:\n");scanf("%d",&n);for(i=*a;i<n+(*a);i++){printf("请输入职工号:");scanf("%d",&em[i].number);printf("请输入姓名: ");scanf("%s",em[i].name);printf("请输入性别: ");scanf("%s",em[i].sex);printf("请输入年龄: ");scanf("%d",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%d",&em[i].wage);printf("请输入住址: ");scanf("%s",em[i].address);printf("请输入电话: ");scanf("%d",&em[i].telephone);printf("\n");}printf("\n添加完毕\n");for(i=*a;i<n+(*a);i++)fprintf(fp,"%d %8s %s %d %8s %d %s %d\n",em[i].number,e m[i].name,em[i].sex,em[i].age,em[i].xueli,em[i].wage,em[i].address, em[i].telephone);fclose(fp);*a=*a+n;printf("\n浏览新信息请按1\n返回主菜单请按2\n");scanf("%d",&m);switch(m){case 1:display(*a);main();break;case 2:main();break;default:break;}}5 课程设计总结5.1 程序运行结果/ 预期运行结果运行与测试结果如下:1.运行程序进入职工信息管理系统的主菜单。