数据结构课程设计员工信息管理系统.doc

合集下载

数据结构课程设计-职工管理系统

数据结构课程设计-职工管理系统

目录一、前言—--——--—-——-———-—————-———-——-———-—————---—-——————-—--————————-————————2二、需求分析—-———-—---—-——————————-———--——-—--——-————-—--——————————---—----—3 三、概要设计—-——-——-—————-———-—-—————————--——-----—--—--————--——-—---—-—————4四、详细设计—-———-———————--—-—-————-—-—————-—-—-———————-——-——-—-----————-—-—5五、调试分析————-————————-—————-——-————--—-——-——--——--—--—---—--——---—--—-——6六、用户使用说明—--——————-————-————-—-—-—-—--—————————-—————-—-———————-——-7 七、测试结果——————-—--—---——--——————--—-———----———--——-—-—-————————---—-———-8八、总结—-———---—-—--———-———-—--—---——--—————--—-—--—————--————————---—----—-11九、主要参考文献和附录—--——-——-—-————--——-——-—--———---—————-——-———————12前言员工管理系统是一个工作单位不可缺少的管理工具,它管理的数据对于公司的决策者和管理者来说都至关重要,所以员工管理系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来各个公司基本上都是靠传统的人工方式来管理员工信息,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于信息的查找、更新和维护都带来了不少的困难。

管理信息系统课程设计(终版)精选全文完整版

管理信息系统课程设计(终版)精选全文完整版

可编辑修改精选全文完整版管理信息系统课程设计(终版)1.1 系统名称本文介绍的系统名称为“企业信息管理系统”。

1.2 系统开发背景随着信息技术的发展,企业管理越来越重视信息化建设。

为了提高企业信息管理的效率和准确性,本系统应运而生。

1.3 选题说明本系统旨在帮助企业实现信息化管理,包括信息管理和财务管理两个方面。

1.4 系统目标本系统的目标是提高企业管理的效率和准确性,降低管理成本,提高企业竞争力。

1.5 系统主要功能本系统主要包括信息管理和财务管理两个方面。

信息管理包括员工信息管理、客户信息管理、供应商信息管理等;财务管理包括财务报表管理、成本管理、收支管理等。

1.6 可行性分析1.6.1 可行性研究的前提在进行可行性研究之前,需要对企业的发展状况、市场竞争情况、管理需求等进行全面分析。

1.6.2 系统的可行性研究通过市场调研和用户需求分析,本系统的开发是可行的。

同时,本系统的开发也符合企业的发展战略和管理需求。

2.1 信息管理信息管理是本系统的核心功能之一,包括员工信息管理、客户信息管理、供应商信息管理等。

通过对信息的集中管理,可以提高信息的准确性和及时性,为企业管理提供有力支持。

2.2 财务管理财务管理是企业管理的重要组成部分,也是本系统的主要功能之一。

通过对财务数据的集中管理和分析,可以帮助企业实现成本控制、收支管理等目标。

3.1 系统功能结构为了更好地了解系统的功能结构,本文进行了功能结构调查和组织结构调查。

通过调查分析,得出了系统的功能结构图。

3.2 业务流程分析业务流程分析是系统设计的重要组成部分,通过对业务流程的分析,可以更好地设计系统的功能和流程。

本文对系统的业务流程进行了详细的分析,并绘制了业务流程图。

3.3 数据流程分析数据流程分析是系统设计的另一个重要组成部分,通过对数据流程的分析,可以更好地设计系统的数据结构和流程。

本文对系统的数据流程进行了详细的分析,并绘制了数据流程图。

《员工信息管理系统》详细设计说明书.1.doc

《员工信息管理系统》详细设计说明书.1.doc

《员工信息管理系统》详细设计说明书.1 《员工信息管理系统详细设计说明书》一、引言1.1编写目的根据需求规格说明书、概要设计说明书,在仔细考虑讨论之后,我们对员工信息管理系统软件功能的划分、数据结构、软件总体结构的实现有了进一步的想法。

本说明书的预期读者是与员工信息管理系统软件开发有联系的决策人,开发组成人员,扶助开发者,支持本项目的领导和公司人员,软件验证者。

1.2背景利用先进的管理手段,提高人事信息的管理水平,是每一现代公司所面临的重要课题。

为了解决这一重要课题,就必须有一套科学,高效,严密,实用的人事信息管理系统。

现代公司的人事信息管理都是在计算机上实现的,采用现代计算机管理系统来进行管理,提供规范,统一的服务,它在管理系统中的应用不仅可以简化,规范各机构的日常操作,而且可以使企业人事信息管理更加方便,简单,快捷,清晰,从而减轻工作人员的劳动强度,减少企业的财政消耗。

1.3定义SQL Server:所用的数据库管理系统VS 2010:所用的开发软件二、程序(一)设计说明2.1程序描述主模块2.2功能建立与数据库连接获取系统设置能够跳转至子模块:登陆、注册等模块。

2.3输入、输出项用户鼠标点击登陆、注册按钮跳转至相应模块界面2.5流程逻辑选择项登陆系统注册系统查询系统管理系统2.6界面设计2.7功能实现方法'跳转登陆页面Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As EventArgs) HandleslbtnLogin.ClickIf Request.Cookies("UserName") Is Nothing ThenResponse.Redirect("Login.aspx")ElsePage.ClientScript.RegisterStartupScript(Page.GetType(), "", "alert('您已成功登陆);")End IfEnd Sub'跳转注册页面Protected Sub lbtnRegister_Click(ByVal sender As Object, ByVal e As EventArgs) Handles lbtnRegister.ClickResponse.Redirect("Register.aspx")End Sub三、程序(二)设计说明3.1程序描述登陆模块3.2功能实现管理员账号登陆,以便继续后面操作3.3输人项输入:管理员账号、密码。

人事管理系统(数据库课程设计)

人事管理系统(数据库课程设计)

人事管理系统08网络工程1班张宁目录1 系统概述····················2 系统数据流程图和数据字典············2。

1 用户需求调查················2.2 系统数据流程图················2。

3 系统数据字典················3 数据库结构设计·················3。

1 概念结构设计················3.2 逻辑结构设计·················3。

数据结构课程设计模板(DOC)

数据结构课程设计模板(DOC)

数据结构与算法课程设计报告题目:学院:专业班级:学生姓名:指导教师:2016 年06 月2 9日目录一、课程设计目的 (3)二、课程设计步骤 (3)三、课程设计内容 (5)四、课程设计报告...................................................................... 错误!未定义书签。

五、提交材料 (6)六、考核方式与评分标准 (7)七、参考文献 (9)附录1 齐齐哈尔大学软件工程系课程设计说明书(报告)撰写规范 (10)一、课程设计目的及要求《数据结构与算法分析》课程设计培养计算机专业的学生的算法程序设计能力。

通过上机实验,可以培养学生程序设计的方法和技巧,提高学生编制清晰、合理、可读性好的系统程序的能力,加深对数据结构课程和算法的理解。

使学生更好地掌握数据结构的基本概念、基本原理、及基本算法,具有分析算法、设计算法、构造和开发较复杂算法的基本能力。

要求学生能综合运用《数据结构与算法分析》的相关知识,培养学生上机解决一些与实际应用结合紧密的、规模较大的问题的能力,通过分析、设计、编码、调试等各环节的训练,使学生深刻理解、牢固掌握数据结构和算法设计技术,掌握分析实际问题的能力并提高C语言编程技巧,培养良好的编程风格。

课程设计要求独立完成,题目自选(参考题目见三,也可自拟),但需要老师确认(6月16日前定题),一人一题,要求程序有能采用交互式工作方式的界面进行功能的选择,只能用文件存储数据和处理数据不能使用数据库。

要求在教学周的第18周前完成。

二、课程设计步骤随着计算机性能的提高,它所面临的软件开发的复杂度也日趋增加。

然而,编制一个10000行的程序的难度绝不仅仅是一个5000行的程序的两倍,因此软件开发需要系统的方法。

一种常用的软件开发方法,是将软件开发过程分为分析、设计、实现和维护四个阶段。

虽然数据结构课程中的课程设计的复杂度远不如(从实际问题中提出来的)一个“真正的”软件,但为了培养一个软件工作者所应具备的科学工作的方法和作风,完成课程设计的应有如下的5个步骤:1.问题分析和任务定义通常,课程设计题目的陈述比较简洁,或者说是有模棱两可的含义。

数据结构课程设计学生管理系统

数据结构课程设计学生管理系统

#include<stdio.h>#include <malloc.h>#include<string.h>#include<stdlib.h>#include <io.h>//建立结构体struct student{long num;//学号char name[10];//姓名char sex[10];//性别char id[20];//身份证号char adress[80];//家庭地址long tel; //电话号码struct student * next;};/*此学生信息管理系统一共分为八个模块,分别为信息录入、信息浏览、信息查询、信息删除、信息修改、信息插入、信息保存、信息读取,其中信息保存和信息读取为隐藏模块。

系统界面清晰,操作简单,用户输入密码之后就可进入进行各种操作。

*/FILE *fp;//文件指针int count=0;//记录学生数量struct student *head;//学生信息录入struct student *input(){struct student *head=NULL; //定义头指针struct student *p1,*p2; //定义结点while(1){int choice;printf(" |------------------| \n");printf(" | 【1】录入学生信息| \n");printf(" | 【0】退出| \n");printf(" |------------------| \n");printf(" 请输入你的选择:");scanf("%d",&choice);if(choice==1){printf(" *****学生信息录入模块***** \n");p1=(struct student *)malloc(sizeof(struct student));//开辟一个新结点printf(" 请输入学号: ");scanf("%ld",&p1->num);printf(" 请输入姓名: ");scanf("%s",p1->name);printf(" 请输入性别:");scanf("%s",p1->sex);printf(" 请输入身份证号:");scanf("%s",&p1->id);printf(" 请输入家庭住址:");scanf("%s",p1->adress);printf(" 请输入手机号:");scanf("%ld",&p1->tel );count++;if(head==NULL){head=p1;}elsep2->next=p1;//p1指向下一个结点p2=p1;}else if(choice==0)break;elseprintf(" 选择错误!请重新选择!\n");}p1->next=NULL;return head;}//学生信息浏览void displayall(struct student *head){struct student *p1=head;if(head==NULL){printf("无学生信息!\n");return;}else{printf("总共有%d个学生!\n",count);printf(" 所有学生信息为:\n");printf("***************************************************************\n");while(p1!=NULL){printf("\n学号:%ld\n姓名:%s\n性别:%s\n身份证号:%s\n家庭住址:%s\n手机号:%ld\n\n", p1->num, p1->name,p1->sex,p1->id,p1->adress,p1->tel);p1=p1->next;}}}void display(struct student *p1){{printf(" 该学生信息为:\n");printf("***************************************************************\n");printf(" \n学号\t姓名\t性别\t身份证号\t家庭住址\t手机号\n");printf("%ld\t%s\t%s\t%s\t\t%s\t\t%ld\n", p1->num,p1->name,p1->sex,p1->id,p1->adress,p1->tel); }}//查询学生信息struct student *query(struct student *head){ struct student *p1;int choice;int num;char name[10];if(head==NULL) {printf("链表为空或无学生记录!\n");return head;}while(1){printf(" |---------------|\n");printf(" |【1】按学号查询|\n");printf(" |【2】按姓名查询|\n");printf(" |【0】退出|\n");printf(" |---------------|\n");printf(" 请输入你的选择:");scanf("%d",&choice);if(choice==1){printf(" 请输入要查询学生的学号:"); scanf("%ld", &num);p1=head;while(1){if(num == p1->num) {printf(" *****找到该学生信息*****\n"); display(p1);break;}if(p1->next==NULL){printf(" 没有学号为%d的学生信息!\n",num); break;}else p1=p1->next;}}else if(choice==2){printf(" 请输入要查询学生的姓名:"); scanf("%s", name);p1=head;if(strcmp(name, p1->name)==0){printf(" *****找到该学生信息*****\n");}else{while((strcmp(name, p1->name)!=0)&& p1->next!=NULL) { p1=p1->next;if(strcmp(name, p1->name)==0){printf(" *****找到该学生信息*****\n");display(p1);break;}elseprintf(" 没有姓名为%s的学生!\n",name);}}}else if(choice==0)break;elseprintf(" 选择错误!\n");}return (p1);} //删除学生信息struct student *del(struct student *head){struct student * p1, * p2;int num,choice;if(head==NULL){printf(" 链表为空或无学生记录!\n");return head;}printf(" 请输入要删除的学生学号:");scanf("%ld",&num);p1=head;while(1){if(num == p1->num) {printf(" ****找到该学生信息****\n");display(p1);break;}if(p1->next==NULL){printf(" 没有学号为%d的学生信息!\n",num);return head;}else{p2=p1;}}printf(" |-------------|\n");printf(" |【1】确认删除|\n");printf(" |【0】返回|\n");printf(" |-------------|\n");printf(" 请输入你的选择:");scanf("%d",&choice);if(choice==1){count--;if(p1 == head)head=p1->next;elsep2->next=p1->next;free(p1);printf(" 该学生信息已删除!\n");}else if(choice==0)return head;elseprintf("无效选择,请重新输入!");return head;}//修改学生信息struct student *change(struct student *head){ struct student *p1,*p2;int choice;long num;int flog;if(head==NULL){printf(" 链表为空或无学生记录!\n"); return head;}printf(" 请输入要修改的学生的学号:"); scanf("%ld",&num);p1=head;while(1){if(num == p1->num) {flog=1;break;}if(p1->next==NULL){flog=0;break;}else{p2=p1;p1=p1->next;}}if(flog==0){printf(" 没有学号为%d的学生信息!\n",num); }else if(flog==1){printf(" ****找到该学生信息****\n"); display(p1);while(1){printf(" |**********************|\n");printf(" |【1】修改姓名|\n");printf(" |【2】修改性别|\n");printf(" |【3】修改身份证号|\n");printf(" |【4】修改家庭住址|\n");printf(" |【5】修改电话号码|\n");printf(" |【0】退出|\n");printf(" |**********************|\n");printf(" 请输入你的选择:");scanf("%d",&choice);switch(choice){case 1:{printf(" 请输入修改后的姓名:");scanf("%s",p1->name);break;}case 2:{printf(" 请输入修改后的性别:");scanf("%s",p1->sex);break;}case 3:{printf(" 请输入修改后的身份证号:"); scanf("%s",&p1->id);break;}case 4:{printf(" 请输入修改后的家庭住址:"); scanf("%s",p1->adress);break;}case 5:{printf(" 请输入修改后的电话号码:");scanf("%ld",&p1->tel);break;}case 0:return head;default:printf(" 无效选择,请重新输入!\n");}}}return head;}//插入一个学生信息struct student *insert(struct student *head){struct student *p1,*p2,*insertstu;int place,choice,mark=0,num=0;if(head==NULL){printf(" 信息为空请选择信息录入!\n");return head;}while(1){printf(" |-------------|\n");printf(" |【1】继续|\n");printf(" |【0】退出|\n");printf(" |-------------|\n");printf(" 请输入你的选择:");scanf("%d",&choice);if(choice==1){insertstu=(struct student *)malloc(sizeof(struct student));displayall(head);printf(" 请输入要插入的位置:");scanf("%d",&place);if(place==1){mark=1;insertstu->next=head;head=insertstu;}else{for(p2=p1=head,num=1;p1->next !=NULL;p2=p1,p1=p1->next,num++){ if(num==place){mark=1;insertstu->next=p1;p2->next=insertstu;break;}}if(place==num){mark=1;insertstu->next=p1;p2->next=insertstu;}else if(place==num+1){mark=1;p1->next=insertstu;insertstu->next=NULL;}else if(place>num+1){printf(" 超出插入范围,请核对!\n"); continue;}}if(mark==1){printf(" 请输入要插入的学生信息!\n"); printf(" 请输入学号:");scanf("%ld",&insertstu->num);printf(" 请输入姓名:");scanf("%s",insertstu->name);printf(" 请输入性别:");scanf("%s",insertstu->sex);printf(" 请输入身份证号:");scanf("%s",&insertstu->id);printf(" 请输入家庭住址:");scanf("%s",insertstu->adress);printf(" 请输入手机号:");scanf("%ld",&insertstu->tel );count++;display(insertstu);}}else if(choice==0)break;elseprintf("无效选择,请重新输入!\n");}return head;}//学生信息保存int SaveStudent(struct student *head){struct student *p1;p1=head;if((fp=fopen("student.txt","w+"))==NULL){printf("文件打开失败!\n");exit(0);}fprintf(fp,"%d\n",count);fprintf(fp,"学号\t姓名\t性别\t身份证号\t家庭住址\t手机号\n");while(p1!=NULL){fprintf(fp,"%ld\t%s\t%s\t%s\t\t%s\t\t%ld\n", p1->num, p1->name,p1->sex,p1->id,p1->adress,p1->tel);p1=p1->next;}return 1;fclose(fp);}void freeAll(struct student *head){struct student *p1, *p2;p1=p2=head;while(p1){p2=p1->next;free(p1);p1=p2;}}struct student *LoadStudent(){struct student *head;struct student *p1, *p2;fp = fopen("student.txt", "r+");if (!fp){printf("文件打开错误!\n");exit(0);}fscanf(fp,"%d\n", &count);fscanf(fp, "学号\t姓名\t性别\t身份证号\t家庭住址\t手机号\n");head=p1=p2=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%ld%s%s%s%s%ld\n", &p1->num, p1->name,p1->sex,&p1->id,p1->adress,&p1->tel); while(!feof(fp)){p1=(struct student *)malloc(sizeof(struct student));fscanf(fp,"%ld%s%s%s%s%ld\n", &p1->num, p1->name,p1->sex,&p1->id,p1->adress,&p1->tel); p2->next=p1;p2=p1;}p2->next = NULL;fclose(fp);return head;}//主菜单void menu(struct student *head){int n;while(1){int choice;printf(" |*****学生信息系统*****|\n");printf(" |**********************|\n");printf(" |【1】录入学生信息|\n");printf(" |【2】浏览学生信息|\n");printf(" |【3】查询学生信息|\n");printf(" |【4】删除学生信息|\n");printf(" |【5】修改学生信息|\n");printf(" |【6】插入学生信息|\n");printf(" |【0】退出系统|\n");printf(" |**********************|\n");printf(" 请输入你的选择:");scanf("%d",&choice);switch(choice){case 1:{if(head==NULL){head=input();}else{head=insert(head);}break;}case 2:{displayall(head);break;}case 3:{query(head);break;}head=del(head);break;}case 5:{change(head);break;}case 6:{head=insert(head);break;}case 0:{n=SaveStudent(head);freeAll(head);printf("信息已成功保存!\n");return;}default:printf("无效选项,请重新输入!\n");}}}//欢迎界面void welcome(){int choice;printf(" ************************\n"); printf(" * *\n");printf(" * 欢迎使用学生信息系统*\n"); printf(" * *\n");printf(" ************************\n"); printf(" * *\n");printf(" ************************\n"); printf(" |【1】继续|\n");printf(" |【0】退出|\n");printf(" |------------|\n");printf(" 请输入你的选择:");scanf("%d",&choice);system("cls");if(choice==1){if((fp=fopen("student.txt","r+"))==NULL){ menu(head);}head=LoadStudent();menu(head);}}else{return;}}//程序入口void main(){char userName[9];char userPWD[7];int i;for(i=0;i<3;i++){printf("\n\n\n\n\n\n\n");printf("\n请输入您的用户名:");scanf("%s", userName);printf("\n请输入您的密码:");scanf("%s", userPWD);if ((strcmp(userName,"123")==0) && (strcmp(userPWD,"123")==0)){ printf("用户名和密码输入正确!\n");system("cls");//用户名和密码正确,显示欢迎菜单welcome();break;}else{if(i<2){system("cls");//用户名或密码错误,提示用户重新输入printf("用户名或密码错误,请重新输入!");}else{system("cls");//连续3次输错用户名或密码,退出系统。

员工信息管理系统课程设计

员工信息管理系统课程设计

《信息系统设计》软件工程课程设计课题名称:员工信息管理系统姓名:兰朝仁学号: 080一五3035 学院:继续教育学院专业:计算机科学与技术年级:2008级(夜大专升本)指导教师:陈郞钦完成日期:2010年10月11日目录【摘要】本文从员工信息管理系统规划、需求分析、系统设计、系统实现及系统测试等多个方面,分别叙述系统研发的整个实现过程,简述采用 7编程工具及数据库实现系统应用的设计要点,重点阐述系统实现过程中的重点和难点问题的分析及其解决方案,解决企业对员工的计算机管理。

【关键词】员工、人事、工资、管理、数据库引言随着我国国民经济建设的蓬勃发展和社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系无论是在行政职能、企业管理水平以及优质服务上都提出更高的要求。

建设一个科学高效的信息管理系统是解决这一问题的必由之路。

员工信息管理作为企业内部的一种员工基本档案管理也是如此,由于企业的人数较多,每一位员工的具体实际情况也不尽相同,如果没有一个完整的员工信息管理系统去完成,将使工作变得复杂,并且对于工作的效率也将使一个致命的打击,使无论如何也无法适应现代社的需要。

另外,目前部分企业使用的员工信息管理系统只有信息的录入,修改和删除的功能,而不具有信息查询的功能,这对于企业的信息管理工作来说是一个很遗憾的事情。

因此,开发一套功能完整,设计合理,使用方便的企业员工信息管理系统成为很有必要的事情。

企业员工信息管理系统的内容功能对于企业的决策者和管理者来说都至关重要,所以企业员工信息管理系统应该能够为管理者提供充足的信息和快捷的查询与管理手段。

作为计算机应用的一部分,使用计算机对企业员工信息进行管理,具有手工管理所无法比拟的优点.例如:查询迅速、查找方便、可靠性高、存储量大、BaoMi性好、寿命长、成本低等。

这些优点能够降低员工管理工作的成本,减轻企业管理人员的负担,方便员工信息的更新、维护和查询,增加数据的可靠性;从而提高企业员工信息管理的效率,开拓企业员工管理工作的新局面,提高管理水平,是企业管理的科学化、正规化、信息化管理,与世界接轨的重要条件。

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.编程中遇到的困难及解决方法温故而知新,可以为师矣。

数据结构课程设计 简单的职工管理系统

数据结构课程设计 简单的职工管理系统

数据结构课程设计简单的职工管理系统简单的职工管理系统设计1. 引言本文旨在设计一个简单的职工管理系统,用于匡助管理者进行职工信息的录入、查询、修改和删除等操作。

该系统基于数据结构的相关知识,通过合理的数据结构设计和算法实现,实现对职工信息的高效管理。

2. 功能需求2.1 职工信息录入系统提供一个录入界面,管理者可以输入职工的基本信息,包括职工编号、姓名、性别、年龄、职位等。

系统应该能够对输入的信息进行合法性验证,并将信息存储到合适的数据结构中。

2.2 职工信息查询系统提供一个查询界面,管理者可以根据职工的编号、姓名、职位等条件进行查询。

系统应该能够根据查询条件从数据结构中快速定位到符合条件的职工信息,并将结果展示给管理者。

2.3 职工信息修改系统提供一个修改界面,管理者可以根据职工的编号或者姓名等条件选择一个职工信息进行修改。

系统应该能够根据选择的职工信息,提供可修改的字段,并对输入的修改信息进行合法性验证,并更新数据结构中对应的职工信息。

2.4 职工信息删除系统提供一个删除界面,管理者可以根据职工的编号或者姓名等条件选择一个职工信息进行删除。

系统应该能够根据选择的职工信息,从数据结构中删除对应的职工信息,并给出相应的提示。

3. 数据结构设计为了高效地管理职工信息,我们可以采用链表作为基本的数据结构。

每一个节点表示一个职工信息,包括职工编号、姓名、性别、年龄、职位等字段。

节点之间通过指针进行连接,形成一个链表结构。

3.1 链表节点设计每一个链表节点包含以下字段:- 职工编号(int)- 姓名(string)- 性别(string)- 年龄(int)- 职位(string)- 指向下一个节点的指针(Node*)3.2 链表操作设计- 初始化链表:创建一个空链表,并初始化头节点指针为NULL。

- 添加节点:根据输入的职工信息创建一个新节点,并将其插入到链表的合适位置。

- 删除节点:根据职工的编号或者姓名等条件,找到对应的节点,并将其从链表中删除。

c语言课程设计职工信息管理系统

c语言课程设计职工信息管理系统

c语言课程设计职工信息管理系统一、教学目标本课程的教学目标是使学生掌握C语言职工信息管理系统的基本概念、设计和实现方法。

通过本课程的学习,学生应能理解职工信息管理系统的需求分析、系统设计、编码实现和测试评估等环节,掌握C语言编程的基本技能,并培养解决实际问题的能力。

具体来说,知识目标包括:掌握职工信息管理系统的功能模块及其相互关系;理解C语言的数据类型、运算符、控制结构、函数等基本语法;了解软件工程的基本原理和方法。

技能目标包括:能够使用C语言独立完成职工信息管理系统的设计和实现;具备基本的调试和优化代码的能力;能够进行团队合作,合理分工,共同完成项目。

情感态度价值观目标包括:培养学生对计算机科学的兴趣和热情,提高他们对编程学习的自信心;培养学生具备良好的编程习惯和团队协作精神,增强他们的责任感和使命感。

二、教学内容本课程的教学内容主要包括以下几个部分:1.职工信息管理系统的基本概念和架构:介绍职工信息管理系统的功能模块,如职工信息录入、查询、修改和删除等,以及各模块之间的关系。

2.C语言基础知识:讲解C语言的数据类型、运算符、控制结构、函数等基本语法。

3.软件工程方法:介绍需求分析、系统设计、编码实现、测试评估等软件工程基本原理和方法。

4.职工信息管理系统的实现:通过实际编码,讲解如何使用C语言实现职工信息管理系统的各个功能模块。

5.调试与优化:教授如何使用调试工具对代码进行调试,以及如何对代码进行优化,提高系统性能。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:讲解C语言的基本语法和职工信息管理系统的设计原理。

2.案例分析法:分析实际案例,使学生更好地理解职工信息管理系统的实现过程。

3.实验法:安排实验课程,让学生亲自动手编写代码,实现职工信息管理系统。

4.小组讨论法:学生进行小组讨论,分享学习心得,互相答疑解惑。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C语言程序设计》等。

软件课程设计-员工信息管理系统

软件课程设计-员工信息管理系统

枣庄学院信息科学与工程学院课程设计任务书题目: 企业员工信息管理系统学生1: 贺佳学生2:安新学生3:武艳飞学生4:区丽君专业:计算机科学与技术课程: 软件工程指导教师: 姜振凤职称:讲师完成时间: 2013年5 月--—-2013 年6月枣庄学院信息科学与工程学院制2013年6月30日课程设计任务书及成绩评定目录1 概述 (1)1。

1 设计目的 (1)1.2 设计背景 (1)1.3开发环境 (2)1。

4小组分工 (2)2 可行性分析 (2)2。

1技术可行性分析 (2)2.2社会可行性分析 (2)2。

3经济可行性分析 (2)2。

4操作可行性分析 (3)3需求分析 (3)3。

1需分析的任务求 (3)3.1.1界面要求 (3)3。

1。

2功能要求 (3)3。

2子功能需求 (3)3。

3数据流图DFD (5)3。

3。

1顶层数据流图 (5)3.3.2一层数据流图 (5)3.3.3二层数据流图 (6)3。

4数据字典 (7)3。

4。

1数据源点描述: (7)3。

4.2加工逻辑词条描述 (7)3。

4.3数据流名词条描述: (7)3.4.4数据文件词条描述: (8)4。

软件设计 (8)4。

1概要设计 (8)4.1。

1 系统层次结构图 (8)4.1。

2系统IPO图 (8)4。

2 详细设计 (10)4。

2.1登录模块 (10)4。

2。

2 人事管理模块 (11)4.2。

3 工资管理模块 (12)4.2。

4系统管理模块 (13)4.3数据库设计 (14)5 软件实现 (14)5。

1登陆界面 (14)5。

2添加员工基本信息 (15)5.3修改员工基本信息 (16)5。

4 查询员工基本信息 (17)6 软件测试报告 (17)6。

1.测试方案 (17)6.2. 测试条目 (17)6.3设计测试用例 (18)6。

4。

测试结论 (19)7 总结 (19)参考文献 (20)1 概述自上个世纪90年代以来,计算机技术的迅猛发展和推广普及,为各行各业突飞猛进的发展带来了新生的动力,推动了各个行业向更高的层次进步.当今时代是飞速发展的信息时代。

数据结构课程设计---学分管理系统

数据结构课程设计---学分管理系统

2015-2016学年第一学期《数据结构程序设计》课程设计报告题目:学分管理系统专业:计算机科学与技术班级:14级(2)班**:**指导教师:***成绩:计算机学院2015年12月1日目录1 需求分析..................................................... (2)2 总体设计..................................................... (3)3 详细设计..................................................... (4)4 小结..................................................... . (10)致谢..................................................... .. (10)参考文献..................................................... (10)源代码..................................................... . (11)1 需求分析学生学分管理系统是运行于计算机系统下的应用软件,主要用于对学生的学号、姓名以及各项学科学分进行录入、删除、修改、查询、排序、统计、存盘等操作,为学校的教师和学生提供了一个对学生学分进行管理和查看的平台,给用户提供了一个简单友好的用户接口,主要任务如下:1.1查看所有学生信息根据菜单提示,选择该功能,能够逐条显示全部学生学分记录1.2输入学生记录用户根据菜单提示选择输入学生记录选项,进行有关学生的学号、姓名、班级、基础课学分、专业课学分、选修课学分、人文类课学分以及实验课学分的录入。

可一次性输入多条学生的学分信息记录。

1.3删除学生记录根据提示,用户输入要进行删除学生的学号,如果在不存在该学号,则显示没有找到该学生;如果在文件中有该学号的信息存在,则将该学号所对应的姓名、学号、班级、各科学分等在对应文件中加以删除。

数据结构课程设计

数据结构课程设计

数据结构课程设计(学生信息管理系统)(总17页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--1需求分析设计任务要求通讯录系统主要包含以下要求:(1)设计一个学生通讯录管理系统,每个学生数据信息包括:姓名、电话号码、qq、邮编和地址;(2)创建学生数据类型为结构体并以磁盘文件保存;(3)能读取磁盘文件并显示输出学生的相关信息;(4)能按姓名或电话等多种方式进行学生信息查询;(5)能查询、添加、修改和删除学生通讯录。

系统功能需求分析系统主要包含以下主要功能:(1)查询通讯录记录;(2)添加通讯录记录;(3)修改通讯录记录;(4)删除通讯录记录;(5)关闭通讯录。

2 概要设计数据类型本系统中所有变量都定义为字符串型,学生通讯录数据类型定义为结构体类型。

然而为了更加方便,添加了抽象数据类型类book,再私有继承了以结构体存储的学生数据。

主程序及各程序层次关系以下是系统功能模块关系图,主要包含查询、添加、修改、删除联系人和关闭系统等功能。

另外还提供了键盘式选择菜单实现功能选择。

图系统功能模块关系图查询联系人:可以选择用姓名和电话两种方式查询添加联系人:可以添加通讯录记录,依次输入姓名、电话、qq、邮编和地址修改联系人:输入欲修改联系人姓名后,再依次输入修改姓名、电话、qq、邮编和地址即可完成修改删除联系人:输入欲删除联系人的姓名后,会自动删除该联系人的记录内容关闭系统:选择相关操作进行系统正常关闭,保存有效数据记录3 详细设计实现数据类型(1)以字符串类型定义通讯录中学生数据信息变量:string name;程序的调试过程中遇上了文件存储数据的正确读取错误,但经过不断查问和查阅相关书籍后,根据调试提示错误,解决了所有错误。

通过文件存储学生数据信息,使得读取信息操作更加方便、省事;2.在执行操作时,是根据文件搜索算法,去获取学生数据信息。

使得在时间和空间上读取数据都要更加快捷、省事。

数据结构课程设计学生信息管理系统

数据结构课程设计学生信息管理系统

数据结构课程设计学生信息管理系统一、引言学生信息管理系统是一种常见的信息管理系统,它可以方便地对学生的基本信息进行管理和查询。

在数据结构课程设计中,我们需要设计一个学生信息管理系统,使用数据结构来存储和处理学生的信息。

二、需求分析1. 功能需求(1)录入学生基本信息:包括姓名、性别、年龄、专业等;(2)查询学生基本信息:可以按照姓名、年龄、专业等条件进行查询;(3)修改学生基本信息:可以修改学生的姓名、年龄、专业等;(4)删除学生基本信息:可以按照姓名或者其他条件进行删除操作;(5)统计学生人数:可以统计当前系统中的学生总人数。

2. 性能需求要求系统能够快速响应用户的操作请求,同时具备较高的稳定性和可靠性。

三、概要设计1. 数据结构选择我们选择使用链表作为存储和处理数据的数据结构。

链表具有插入和删除元素方便,而且不需要预先分配内存空间。

2. 数据结构定义我们定义了一个名为“Student”的结构体,包括以下成员变量: typedef struct Student {char name[20]; // 学生姓名char gender[10]; // 学生性别int age; // 学生年龄char major[20]; // 学生专业struct Student *next; // 指向下一个学生的指针} Student;我们还定义了一个头指针,用于指向链表的头节点:Student *head = NULL;3. 系统流程设计(1)录入学生基本信息:用户输入学生的姓名、性别、年龄、专业等信息,然后将这些信息存储到一个新的Student结构体中,最后将该结构体插入到链表中。

(2)查询学生基本信息:用户输入查询条件(如姓名、年龄、专业等),然后遍历整个链表,找到符合条件的学生并输出其基本信息。

(3)修改学生基本信息:用户输入要修改的学生姓名,然后找到该学生在链表中对应的结点,再让用户输入新的信息进行修改。

职工信息包括职工号

职工信息包括职工号

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。

试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作职工信息录入功能(职工信息用文件保存)--输入职工信息浏览功能--输出查询和排序功能:--算法按工资查询按学历查询等职工信息删除、修改功能(任选项)课程设计内容2.2课程设计整体设计说明2.2.1课程设计内容2.2.2系统功能模块结构图2.2.3数据结构设计及用法说明2.2.4程序结构(画流程图)2.2.5各模块的功能2.3程序源代码及注释第3章课程设计总结参考资料问题补充:着急啊``求求啦```马上就交了``我来帮他解答程序:#include<iostream>#include<string>#include<fstream>using namespace std;const N=50; // 定义系统可录入的员工最大数值string Ename[N];long Enum[N];char Esex[N];int Eage[N];char Emarriage[N];int Edepart[N];int Eposition[N];int Edegree[50];int Eworktime[N];float Epay[N];class Employee{public:string Employeename;long Employeenum;char Employeesex;int Employeeage;char Employeemarriage;int Employeedepart;int Employeeposition;int Employeedegree;int Employeeworktime;float Employeepay;static long EmployeeMaxNum; static float EmployeeBasePay;void NewInfo();void ShowInfo();void showall();void showdepart(int depart); void showdegree(int degree); void showage(int min,int max); void shownum(long number); void RefreshInfo();void DeleteInfo();float Pay(int Employeegrade); static int MaxNum();};class DBOperate{public:string Employeename;long Employeenum;char Employeesex;int Employeeage;char Employeemarriage;int Employeedepart;int Employeeposition;int Employeedegree;int Employeeworktime;float Employeepay;static long EmployeeMaxNum;static float EmployeeBasePay;void WriteIn(int iflag);void ReadOut();void RefreshMaxNum(int iflag); //i=1 or -1 or 0};long Employee::EmployeeMaxNum = 1000;float Employee::EmployeeBasePay = 1500;int Employee::MaxNum() //返回系统已经存储的人数{int MN = 0;ifstream myf;myf.open("EmployeeMaxNum.txt");myf>>MN;cout<<MN<<endl;myf.close();return MN;}void Employee::NewInfo() //添加新成员函数{cout<<"新员工姓名: ";cin>>Employee::Employeename;Employee::Employeenum = EmployeeMaxNum + Employee::MaxNum()+1;cout<<"新员工性别(F为女性,M为男性): ";cin>>Employee::Employeesex;cout<<"新员工年龄: ";cin>>Employee::Employeeage;cout<<"新员工婚姻状况(Y为已婚,N为未婚): ";cin>>Employee::Employeemarriage;cout<<"新员工学历,请输入相应学历的序号: "<<endl;cout<<" [1:初中2:高中3:本科4:硕士5:博士] ";cin>>Employee::Employeedegree;while(Employee::Employeedegree !=1&&Employee::Employeedegree !=2&&E mployee::Employeedegree !=3&&Employee::Employeedegree !=4&&Employe e::Employeedegree !=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:初中2:高中3:本科4:硕士5:博士]";cin>>Employee::Employeedegree;}cout<<"新员工所在部门,请输入相应部门的序号:"<<endl;cout<<" [1:董事会2:市场部3:公关部4:客服中心5:信息中心] ";cin>>Employee::Employeedepart;while(Employee::Employeedepart !=1&&Employee::Employeedepart !=2&&E mployee::Employeedepart !=3&&Employee::Employeedepart !=4&&Employee ::Employeedepart!=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:董事会2:市场部3:公关部4:客服中心5:信息中心] ";cin>>Employee::Employeedepart;}cout<<"新员工职位, 请输入相应职位的序号: "<<endl;cout<<" [1:临时职员2: 正式职员3:主任4:部门经理5:董事长] ";cin>>Employee::Employeeposition;while(Employee::Employeeposition !=1&&Employee::Employeeposition !=2&& Employee::Employeeposition !=3&&Employee::Employeeposition !=4&&Empl oyee::Employeeposition !=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:临时职员2: 正式职员3:主任4:部门经理5:董事长] ";cin>>Employee::Employeeposition;}cout<<"新员工的工作时(不需要输入单位): ";cin>>Employee::Employeeworktime;Employee::Employeepay = Employee::Pay(Employee::Employeeposition);DBOperate dbo;dbo.ReadOut();int MaxNum = Employee::MaxNum();Enum[MaxNum] = Employee::Employeenum;Ename[MaxNum] = Employee::Employeename;Esex[MaxNum] = Employee::Employeesex;Eage[MaxNum] = Employee::Employeeage;Emarriage[MaxNum] = Employee::Employeemarriage;Edegree[MaxNum] = Employee::Employeedegree;Edepart[MaxNum] = Employee::Employeedepart;Eposition[MaxNum] = Employee::Employeeposition;Eworktime[MaxNum] = Employee::Employeeworktime;Epay[MaxNum] = Employee::Employeepay;dbo.WriteIn(1);cout<<" 添加新成员成功!"<<endl;return;}void Employee::ShowInfo() //程序主体数据输出函数{int choice1,choice2,min,max;long searchnum;Employee e;cout<<" 请选择查询方式:"<<endl;cout<<"******************************************"<<endl;cout<<"* 输出全体职工信息--------------------- 1"<<endl;cout<<"* 按职工部门输出----------------------- 2"<<endl;cout<<"* 按职工学历输出----------------------- 3"<<endl;cout<<"* 按职工年龄输出----------------------- 4"<<endl;cout<<"* 按职工编号输出----------------------- 5"<<endl;cout<<"******************************************"<<endl;cin>>choice1;switch(choice1){case 1: showall();break;case 2: cout<<"请输入要查询职工的部门编号: [1:董事会2:市场部3:公关部4:客服中心5:信息中心] " ;cin>>choice2;e.showdepart(choice2);break;case 3: cout<<"请输入要查询职工的学历编号: [1:初中2:高中3:本科4:硕士5:博士] ";cin>>choice2;e.showdegree(choice2);break;case 4: cout<<"请输入要查询的年龄范围: ";cout<<"最小值: ";cin>>min;cout<<"最大值: ";cin>>max;e.showage(min,max);break;case 5: cout<<"请输入要查询的员工号: ";cin>>searchnum;e.shownum(searchnum);break;default: cout<<"出错啦! "<<endl;break;}}void Employee::showall() //全体员工输出函数{ int i;long number;for(i=0;i<Employee::MaxNum();i++)number = Enum[i];shownum(number);}}void Employee::showdepart(int depart) //按员工所在部门输出函数{int i;switch(depart){case 1: cout<<"董事会的成员有: >"<<endl; break;case 2: cout<<"市场部的成员有: >"<<endl; break;case 3: cout<<"公关部的成员有: >"<<endl; break;case 4: cout<<"客服中心成员有: >"<<endl; break;case 5: cout<<"信息中心成员有: >"<<endl; break;default: cout<<"输入错误!>"<<endl; break;}for(i=0;i<Employee::MaxNum();i++){if(Edepart[i] == depart){long number = Enum[i];shownum(number);} else continue;}}void Employee::showdegree(int degree) //按员工学历输出函数{int i;switch(degree){case 1:cout<<"初中学历的员工有:"<<endl;break;case 2:cout<<"高中学历的员工有:"<<endl;break;case 3:cout<<"本科学历的员工有:"<<endl;break;case 4:cout<<"硕士学位的员工有:"<<endl;break;case 5:cout<<"博士学位的员工有:"<<endl;break;}for(i=0;i<Employee::MaxNum();i++){if(Edegree[i] == degree){long number = Enum[i];shownum(number);} else continue;}}void Employee::showage(int min,int max) //按员工年龄段输出函数{int i;for(i=0;i<Employee::MaxNum();i++){if(Eage[i]>=min&&Eage[i]<=max){long number = Enum[i];shownum(number);}else continue;}}void Employee::shownum(long number) //按员工编号输出函数{int i;for(i=0;i<Employee::MaxNum();i++){if(Enum[i] == number){cout<<"**********************************"<<endl;cout<<"员工编号>"<<Enum[i]<<endl;cout<<"姓名>"<<Ename[i]<<endl;cout<<"性别>";if(Esex[i]=='F') cout<<"女"<<endl;else if(Esex[i]=='M') cout<<"男"<<endl;cout<<"年龄>"<<Eage[i]<<"岁"<<endl;cout<<"婚姻情况>";if(Emarriage[i]=='Y') cout<<"已婚"<<endl;else if(Emarriage[i]=='N') cout<<"未婚"<<endl; cout<<"学历>";switch (Edegree[i]){case 1:cout<<"初中"<<endl;break;case 2:cout<<"高中"<<endl;break;case 3:cout<<"本科"<<endl;break;case 4:cout<<"硕士"<<endl;break;case 5:cout<<"博士"<<endl;break;}cout<<"所在部门>";switch (Edepart[i]){case 1:cout<<"董事会"<<endl;break;case 2:cout<<"市场部"<<endl;break;case 3:cout<<"公关部"<<endl;break;case 4:cout<<"客服中心"<<endl;break;case 5:cout<<"信息中心"<<endl;break;}cout<<"所任职务>";switch (Eposition[i]){case 1:cout<<"临时成员"<<endl;break;case 2:cout<<"正式员工"<<endl;break;case 3:cout<<"主任"<<endl;break;case 4:cout<<"部门经理"<<endl;break;case 5:cout<<"董事长"<<endl;break;}cout<<"工作时长>"<<Eworktime[i]<<"小时"<<endl; cout<<"额定工资>"<<Epay[i]<<"元"<<endl;cout<<"**********************************"<<endl;}else continue;}}void Employee::RefreshInfo() //修改员工信息的函数{int cNum = 1000;DBOperate dbo;dbo.ReadOut();void Employee::shownum(long number);cout<<"请输入您要修改的员工编号:>";cin>>cNum;int MN;MN = Employee::MaxNum();for(int i=0;i<MN;i++) //遍历数据文件,查找要修改的员工数据{if(Enum[i] == cNum){Employee::shownum(cNum);cout<<"请输入该员工的新信息: "<<endl;cout<<"新员工姓名: "; //录入员工的新的数据,员工号保持不变cin>>Employee::Employeename;Ename[i] = Employee::Employeename;cout<<"新员工性别: [F为女性,M为男性]: ";cin>>Employee::Employeesex;Esex[i] = Employee::Employeesex;cout<<"新员工年龄: ";cin>>Employee::Employeeage;Eage[i] = Employee::Employeeage;cout<<"新员工婚姻状况(Y为已婚,N为未婚): ";cin>>Employee::Employeemarriage;Emarriage[i] = Employee::Employeemarriage;cout<<"新员工学历,请输入相应学历的序号:"<<endl;cout<<" [1:初中2:高中3:本科4:硕士5:博士] ";cin>>Employee::Employeedegree;while(Employee::Employeedegree !=1&&Employee::Employeedegree !=2&&E mployee::Employeedegree !=3&&Employee::Employeedegree !=4&&Employe e::Employeedegree !=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:初中2:高中3:本科4:硕士5:博士] ";cin>>Employee::Employeedegree;}Edegree[i] = Employee::Employeedegree;cout<<"新员工所在部门,请输入相应部门的序号: "<<endl;cout<<" [1:董事会2:市场部3:公关部4:客服中心5:信息中心] ";cin>>Employee::Employeedepart;while(Employee::Employeedepart !=1&&Employee::Employeedepart !=2&&E mployee::Employeedepart !=3&&Employee::Employeedepart !=4&&Employee ::Employeedepart!=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:董事会2:市场部3:公关部4:客服中心5:信息中心] ";cin>>Employee::Employeedepart;}Edepart[i] = Employee::Employeedepart;cout<<"新员工职位,请输入相应职位的序号:"<<endl;cout<<" [1:临时职员2: 正式职员3:主任4:部门经理5:董事长] ";cin>>Employee::Employeeposition;while(Employee::Employeeposition !=1&&Employee::Employeeposition !=2&& Employee::Employeeposition !=3&&Employee::Employeeposition !=4&&Empl oyee::Employeeposition !=5){cout<<"输入有误,请重新输入:"<<endl;cout<<" [1:临时职员2: 正式职员3:主任4:部门经理5:董事长] ";cin>>Employee::Employeeposition;}Eposition[i] = Employee::Employeeposition;cout<<"新员工的工作时(不需要输入单位): ";cin>>Employee::Employeeworktime;Eworktime[i] = Employee::Employeeworktime;Epay[i] = Employee::Pay(Employee::Employeeposition);break;}}dbo.WriteIn(0);}void Employee::DeleteInfo() //删除员工数据的函数{ char tmp;int cNum = 1000;DBOperate dbo;dbo.ReadOut();void Employee::shownum(long number);cout<<"请输入您要修改的员工编号>:";cin>>cNum;int MN;MN = Employee::MaxNum();for(int i=0;i<MN;i++) //遍历数据文件,查找要删除的员工{if(Enum[i] == cNum)Employee::shownum(cNum);}cout<<"确认要删除该员工信息?(Y为确认N为放弃):"; cin>>tmp;if(tmp=='Y'){if(i==MN-1)dbo.WriteIn(-1);else{for(int j=i;j<MN-1;j++){ Enum[j] = Enum[j+1]; }dbo.WriteIn(-1);}cout<<" 删除操作成功! "<<endl;}}float Employee::Pay(int Employeeposition) //根据员工职位计算工资的函数{float tmpPay;tmpPay = Employee::EmployeeBasePay + Employee::Employeeposition * Employee::EmployeeBasePay;return tmpPay;}void DBOperate::WriteIn(int iflag) //数据操作函数写入{DBOperate::RefreshMaxNum(iflag);ofstream myf("Employee.txt");Employee e;int MN;MN = e.MaxNum();for(int i=0;i<MN;i++){myf<<Enum[i]<<'\n'<<Ename[i]<<'\n'<<Esex[i]<<'\n'<<Eage[i]<<'\n'<<Emarriag e[i]<<'\n'<<Edegree[i]<<'\n'<<Edepart[i]<<'\n'<<Eposition[i]<<'\n'<<Eworktime[i ]<<'\n'<<Epay[i]<<'\n';}myf.close();return;}void DBOperate::ReadOut() //数据操作函数读出{ifstream myf("Employee.txt");Employee e;int MN;MN = e.MaxNum();for(int i=0 ;i<MN;i++){myf>>DBOperate::Employeenum>>DBOperate::Employeename>>DBOperate ::Employeesex>>DBOperate::Employeeage>>DBOperate::Employeemarriage >>DBOperate::Employeedegree>>DBOperate::Employeedepart>>DBOperate ::Employeeposition>>DBOperate::Employeeworktime>>DBOperate::Employe epay;Enum[i] = DBOperate::Employeenum;Ename[i] = DBOperate::Employeename;Esex[i] = DBOperate::Employeesex;Eage[i] = DBOperate::Employeeage;Emarriage[i] = DBOperate::Employeemarriage;Edegree[i] = DBOperate::Employeedegree;Edepart[i] = DBOperate::Employeedepart;Eposition[i] = DBOperate::Employeeposition;Eworktime[i] = DBOperate::Employeeworktime;Epay[i] = DBOperate::Employeepay;}myf.close();}void DBOperate::RefreshMaxNum(int iflag) //更新系统中员工计数文件的函数{int MaxNum = 0;ifstream myif("EmployeeMaxNum.txt");myif>>MaxNum;myif.close();MaxNum = MaxNum+iflag;ofstream myof("EmployeeMaxNum.txt");myof<<MaxNum;myof.close();}int main() //主函数{system("color 06f"); //设置当前窗口的背景色和前景色0 = 黑色8 = 灰色// 1 = 蓝色9 = 淡蓝色// 2 = 绿色A = 淡绿色// 3 = 浅绿色B = 淡浅绿色// 4 = 红色C = 淡红色// 5 = 紫色D = 淡紫色// 6 = 黄色E = 淡黄色// 7 = 白色F = 亮白色int select = 0;while(select!=5){cout<<" ╭————————————《主菜单》———————————╮"<<endl;cout<<" ∣请选择功能∣"<<endl;cout<<" ├————————————————————————————┤"<<endl; cout<<" ∣1.新建并输入职工数据∣"<<endl;cout<<" ∣2.按条件输出职工数据∣"<<endl;cout<<" ∣3.修改指定职工的数据∣"<<endl;cout<<" ∣4.删除数据∣"<<endl;cout<<" ∣5.退出∣"<<endl;cout<<" ╰————————————————————————————╯"<<endl;cout<<" ——————————————————————————————"<<endl; cout<<" 请选择您要服务的类别: " ;cin>>select;Employee e;DBOperate dbo;switch(select){case 1:e.NewInfo(); break;case 2:dbo.ReadOut();e.ShowInfo(); break;case 3:e.RefreshInfo(); break;case 4:e.DeleteInfo(); break;case 5: break;default:cout<<"命令错误!"<<endl; }if(select == 5)break;}exit(1);return 0;}。

数据结构信息管理系统详细设计说明书

数据结构信息管理系统详细设计说明书

数据结构信息管理系统详细设计说明书数据结构信息管理系统详细设计说明书1、引言1.1 编写目的本文档旨在对数据结构信息管理系统进行详细的设计说明,包括系统的功能需求、数据结构设计、模块划分、接口设计等内容,以便开发人员能够根据本文档进行系统的具体实现。

1.2 读者对象本文档的主要读者对象为系统开发人员和项目管理人员,他们需要了解该系统的详细设计方案,以便进行系统的实现和管理。

2、系统概述2.1 项目背景数据结构信息管理系统是一个用于管理和查询各种数据结构的系统。

通过该系统,用户可以方便地创建、修改和查询各种数据结构,并进行相关操作。

2.2 功能需求2.2.1 数据结构管理系统提供对数据结构的管理功能,包括创建数据结构、修改数据结构、删除数据结构和查询数据结构等。

2.2.2 数据操作系统提供对数据的操作功能,包括插入数据、删除数据、更新数据和查询数据等。

2.2.3 数据可视化系统提供对数据结构的可视化功能,用户可以通过图形界面直观地查看数据结构的组织形式和数据变化过程。

3、数据结构设计3.1 数据结构定义系统将支持多种常见数据结构,包括栈、队列、链表、树等。

3.2 数据结构实现3.2.1 栈栈是一种先进后出的数据结构,系统将使用数组作为栈的实现方式。

3.2.2 队列队列是一种先进先出的数据结构,系统将使用链表作为队列的实现方式。

3.2.3 链表链表是一种由节点组成的数据结构,系统将使用指针作为链表的实现方式。

3.2.4 树树是一种由节点组成的层次结构,系统将使用递归方式实现树的操作。

4、模块划分4.1 用户管理模块该模块负责用户的注册、登录和权限管理等功能。

4.2 数据结构管理模块该模块负责数据结构的创建、修改、删除和查询等功能。

4.3 数据操作模块该模块负责对数据进行插入、删除、更新和查询等操作。

4.4 可视化模块该模块负责对数据结构进行可视化展示,用户可以通过图形界面直观地查看数据结构的组织和变化过程。

人事(人力资源)管理信息系统课程设计报告

人事(人力资源)管理信息系统课程设计报告

目录1 引言 (1)2 系统调查与可行性研究 (3)2.1 初步调查 (3)2.2 可行性研究 (6)3 系统分析 (8)3.1 业务流程分析 (8)3.2 数据流程分析 (8)3.3 数据字典 (11)4 系统设计 (19)4.1 功能结构设计 (19)4.2 数据库设计 (19)4.3 代码设计 (28)4.4 输入输出设计 (29)4.5 系统配置设计 (30)5 结束语...............................................................38参考文献 (47)附录 (48)1 引言随着计算机技术的飞速发展,计算机在各种单位机构管理中应用的普及,管理信息系统的开发在强调管理、强调信息的现代社会中也显得越来越重要。

因此,利用计算机支持单位高效率地完成人事管理的日常事务,是适应现代各种单位机构制度要求、推动各种单位机构人事管理走向科学化、规范化的必要条件。

在当今的信息社会,随着信息的不断增长和企业对信息的要求,信息管理技术随之出现。

企业人事管理信息系统是一个现代化的企业在竞争中立于不败之地的必要部分,它能够为查询人事信息提供充足的信息和快捷的查询手段[1]。

一直以来使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难,而且容易丢失。

自20世纪50年代将计算机引入数据处理以来,历经管理信息系统发展的各个阶段。

一方面是信息技术应用的迅猛发展,另一方面,许多管理信息系统在耗费了大量的人力、物力、财力之后夭折了,或者根本没有实现原系统的开发目标,而把计算机用作了打字机。

这是长期以来困惑人们的一大问题[2]。

现在人们日益深刻认识到,把信息技术应用与应用环境分离是办不到的。

管理信息系统根本不仅是技术系统,而且是社会系统。

使用计算机对企业人事信息进行管理,具有手工管理所无法比拟的优点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

12信计2013-2014(一)数据结构课程设计设计题目员工信息管理系统设计时间2014.1.6~2014.1.10学生姓名葛考学生学号20120402127所在班级12精算指导教师刘风华徐州工程学院数学与物理科学学院题目员工信息管理系统一、需求分析员工信息管理系统设计,具体功能如下:1、系统以菜单方式工作,应为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中的输入异常情况。

2、员工信息录入系统(员工信息用文件保存),注意员工按员工编号进行区分,即每个员工的员工编号都是唯一的,不允许出现两个员工或员工编号相同的情况。

3、可对员工信息进行查询,具体分为:按姓名查询、按员工号查询、按生日查询;4、可对员工信息进行删除;5、可对员工信息进行修改,但应注意员工号不能修改,修改应逐个进行,一个员工记录的更改不应影响其他的员工记录;6、可对全部的员工信息进行显示v(员工信息浏览),注意员工信息的显示规范;员工信息应包括姓名、员工编号、性别、年龄、生日、学历、职务、联系电话、住址。

二、概要设计2.1、抽象数据类型ADT List{数据对象:D={ai|ai∈ElemSet,i=1,2,······,n,n>=0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=1,2,······,n}基本操作:Init List(&L);操作结果:构造一个空的线性表L。

DestroyList(&L);初始条件:线性表L存在。

操作结果:销毁线性表L。

LocateElem(L,I,&e);初始条件:线性表L存在,1<i<Listlength(L)。

操作结果:用e返回线性表L中第i个数据元素的值。

ClearList(&L);初始条件:线性表L存在。

操作结果:将线性表L重置为空表。

}ADT Graph2.2、程序流程系统的执行从菜单的选择开始,依据用户的选择进行相应的处理,直到用户选择退出系统为止。

其间应对用户的选择做出判断及异常处理。

系统的流程如图1所示:图1 员工信息管理系统流程图三、详细设计3.1函数构成(1)主函数:void main();(2)文件读入函数:void read data();(3)文件写入函数:void write data();(4)菜单函数函数原型:void Menu()功能:此函数的功能为依据用户选择的功能来进行相应的处理,直到用户选择退出系统为止,包括员工信息的查询、更新、列表及退出管理;(5)信息查询函数函数原型:void chaxun()功能:该函数的功能是按照用户的选择进行不同方式的查找,本程序实现了按三种方式进行查找,包括按编号、姓名、生日查找;(6)信息更新函数函数原型:void gengxin()功能:此函数的功能为使用户修改记录。

首先判断用户要修改的记录是否存在,因为只有员工编号是唯一的,所以根据员工编号进行查找。

若存在则用用户输入的新的信息替换原信息;若不存在则函数结束。

在此函数中要注意的是文件的打开方式应为”rb+”,因为在这个函数中不仅要读文件,还要向文件中写入数据,所以要用读写的方式打开二进制文件;(7)信息一览函数函数原型:void liebiao()功能:此函数的功能为从文件中依次取出每条记录并将其显示出来。

因为只需读文件不需要向文件中写入数据,所以文件的打开方式是只读。

3.2模块程序清单(详细程序见附录)1、员工信息的结构体:Typedef struct emp{long int num; //编号char name[20]; //姓名int age; //年龄char sex[4]; //性别char birthday[10]; //生日char tel[15]; //电话char edu[8]; //学历char pos[20]; //职务char add[30]; //住址struct emp *next;};2、菜单函数:void menu(void){ char i,lj[100]; int flog;time_t T;struct tm * timenow;time ( &T );timenow = localtime ( &T );flog=0;while(1){system("cls"); printf("\n\n\n\n\n");printf(" ┏━━━━━━━━━员工信息管理系统━━━━━━━━━┓\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃ 1.员工信息查询┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃ 2.员工信息更新┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃ 3.员工信息列表┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃0.退出管理系统┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┃┃\n");printf(" ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf(" %s", asctime (timenow) );printf("请输入您的选择(数字0-3):\n");scanf("%c",&i);gets(lj); if(lj[0])i='a';switch(i){ case '1':chaxun();break;case '2':gengxin();break;case '3':liebiao();break;case '0':flog=1;break;default:printf("输入有误,请按回车键重新输入\n");gets(lj);break;}if(flog)break;}}3、信息查询函数:void chaxun(){char i,lj[100]; int flog; time_t T; struct tm * timenow;time ( &T );timenow = localtime ( &T ); flog=0;while(1){system("cls"); printf("\n\n\n\n\n");printf("┏━━━━━━━━━员工信息查询系统━━━━━━━━━┓\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃ 1.按照编号查询┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃ 2.按照姓名查询┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃ 3.按照生日查询┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃0.退出管理系统┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf("%s", asctime (timenow) );printf("请输入您的选择(数字0-3):\n");scanf("%c",&i);gets(lj); if(lj[0])i='a';switch(i){case '1':bianhao();break; case '2':xingming();break;case '3':shengri();break; case '0':flog=1;break;default:printf("输入有误,请重新输入\n");gets(lj);break;}if(flog)break;}}4、信息更新函数:void gengxin(){char i,lj[100];time_t T;int flog;struct tm * timenow;time ( &T );timenow = localtime ( &T );flog=0;while(1){system("cls");printf("\n\n\n\n\n");printf("┏━━━━━━━━员工信息更新系统━━━━━━━━━┓\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃ 1.员工信息添加┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃ 2.员工信息删除┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃ 3.员工信息修改┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃0.退出管理系统┃\n");printf("┃┃\n");printf("┃┃\n");printf("┃┃\n");printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");printf(" %s",asctime (timenow) );printf("请输入您的选择(数字0-3):\n");scanf("%c",&i);gets(lj);if(lj[0])i='a';switch(i){ case '1':tianjia();break;case '2':shanchu();break;case '3':xiugai();break;case '0':flog=1;break;default:printf("输入有误,请重新输入\n");gets(lj);break;}if(flog)break;}}5、信息一览函数:void liebiao(){char lj[100]; struct emp *p; p=head; system("cls");if(head==NULL){printf("查找不到信息\n");menu();}printf("━━━━━━━━━━━员工信息列表━━━━━━━━━━━\n");printf("编号\t\t姓名\t\t年龄\t\t性别\t\t出生年月\t\t电话\t\t学历\t\t职务\t\t住址:\n");if(head!=NULL){while(p!=NULL){display(p);p=p->next;} }printf("\n按回车键返回主菜单\n");gets(lj);}四、调试分析4.1、时间复杂度分析在源程序的各个模块,时间复杂读为()O n,并且随着输入信息量的增加,从而时间复杂度也逐渐增加。

相关文档
最新文档