人事档案管理系统

更新时间:2023-06-04 10:30:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于c语言设计的人事档案管理系统

程 设 计 报 告

课程名称 C语言程序设计 课题名称 人事档案管理系统 专 业 电气工程及其自动化 班 级 学 号 姓 名 指导教师

2009年6月20日

基于c语言设计的人事档案管理系统

湖南工程学院 课 程 设 计 任 务 书

课程名称 课 题

专业班级 学生姓名 学 号 指导老师 审 批

任务书下达日期 2009年 6月 12日 任务完成日期 2009年 6月 20日

基于c语言设计的人事档案管理系统

目 录

目的 ............................................................................................................................... 3 需求分析 ....................................................................................................................... 5

1、问题描述: ........................................................................................ 5 2、功能要求: ........................................................................................ 5 概要设计 ....................................................................................................................... 5

1) 程序的模块组成: ................................................................................. 5

2) 各个函数的主要功能: .................................................................... 6

总体框架: ............................................................................................. 7 详细设计 ....................................................................................................................... 8

主要功能的实现 ...................................................................................... 8 函数明细: ..................................................................................................... 8

主函数 main() ................................................................................................ 8 菜单函数 void meun() ………………………………………………… .7

输入函数 void input()…………………………………………………. ..8

主要源程序代码 ......................................................................... 错误!未定义书签。 调试分析过程描述 ..................................................................... 错误!未定义书签。

调试: ................................................................. 错误!未定义书签。 部分截图 .............................................................. 错误!未定义书签。 总结 ............................................................................................................................. 27 计算机科学与技术系课程设计评分表 ..................................................................... 29

基于c语言设计的人事档案管理系统

一、设计内容与设计要求

1、设计内容

(1)、问题描述:

对一个有N个 员工的公司, 通过该系统实现对员工学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。 (2)、功能要求:

1.本系统采用一个包含N个数据的结构体数组,每个数据的结构应包括:序号、姓名、性别、年龄、备注等。 2、本系统显示这样的菜单: 请选择系统功能项:

a.员工基本信息录入 b. 员工基本信息显示 c. 员工基本信息保存 d. 员工基本信息删除

e. 员工基本信息修改(要求先输入密码) f. 员工基本信息查询 (1)按序号查询 (2)按姓名查询 (3)按性别查询 (4)按年龄查询 g.退出系统

3、执行一个具体的功能之后,程序将重新显示菜单。 4、将员工基本信息保存到文件中。 5、进入系统之前要先输入密码。 (3)、算法提示:

1、数据结构:结构体类型数组。

2、数据库结构:下表构成该系统的基本数据库。

基于c语言设计的人事档案管理系统

(4)、测试数据: 员工人数=10

(5).选题

所选题目根据学生学号确定,学号模4加1,即(学号%4+1)。如你的学号为17,则所选题目号为:17%4+1==(题目2)。

(6).成绩评定

程序设计方案是否合理;程序设计是否正确;调试结果;设计说明书的质量高低;答辩时回答问题情况;课程设计周表现情况;总评成绩记入“课程设计成绩评分表”。

2.设计要求:

1).设计正确,方案合理。 2).界面友好,使用方便。 3).程序精炼,结构清晰。

4).设计报告5000字以上,含程序设计说明,用户使用说明,源程序清单及程序框图。

5).上机演示。

目的

全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。

基于c语言设计的人事档案管理系统

需求分析

1、问题描述:

对一个有N个员工的公司, 该系统能对 该公司员工基本信息进行录入、显示、修改 、删除、保存等操作。并且能够对该公司员工基本信息按序号、姓名、性别、年龄进行查询。 2、功能要求:

1. 每一条记录包括一个员工的序号、姓名、性别、年龄。 2、输入功能:可以一次完成无数条记录的输入。 3、显示功能:完成全部员工记录的显示。

4、查找功能:完成按姓名、序号、性别、年龄、查找 员工记录,并显示。 5、保存功能:将员工记录保存在任何自定义的文件中,

6、读取功能:将保存在文件中的 员工记录读取出来。 7、有一个清晰美观界面来调用各个功能。

概要设计

人事档案管理系统有14种功能。把这14个功能做成14个子函数。在主函当

数中设计一个菜单对这14个子数进行管理。来实现对整个系统的操作。根据课题的要求。包括每一个员工的姓名(char)、 序号(char)、 性别(char).再加上系统功能上的要求每一员工的信息还要总分和名次等。所以自然的想到要用结构体来定义每一个员工信息查询的信息结构。然后用链表把它们组成一个有序的整体。用对链表的操作来实现对所有员工信息的统一管理(年龄、姓名、性别等)。最后为了以后按照处理后的顺序保存到文件中,并且得输入密码

进行修改。

1)程序的模块组成:

基于c语言设计的人事档案管理系统

主 函 数: main()

输入函数 :void input() 显示函数: void display() 删除函数: int del() 查找函数:int query()

管理函数:void manage() 修改函数: void change()

菜单函数:void menu()

2) 各个函数的主要功能:

输入函数: 随时输入数据。

显示函数: 显示所有员工的信息。 删除函数: 删除某员工的信息。 查找函数:按姓名查找某职工的信息。 管理函数:对员工信息进行管理。

修改函数: 对某员工的信息进行修改。

菜单函数:显示菜单栏以便进行功能选择。

基于c语言设计的人事档案管理系统

总体框架:

基于c语言设计的人事档案管理系统

详细设计 主要功能的实现 函数明细:

整个系统除了主函数外,另外还有13个函数,实现九大功能:输入功能、显示功能、查找功能、排序功能、插入功能、保存功能、读取功能、修改功能。各个函数的详细设计说明分别如下:

主函数 main()

利用无限次循环while()和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。

菜单选择函数 void menu()_

这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的九大功能,根据每个功能前面的序号进行选择。等执行完每一个函数功能后,再自行返回该函数。

输入函数 void input()这是一个无参函数,用来执行第员工基本信息记

录的输入,当员工为@时停止输入,函数结束后,带回一个指链表头的指针向

基于c语言设计的人事档案管理系统

主要源程序代码

#include<stdio.h>

struct employee {

基于c语言设计的人事档案管理系统

long int num; char name[10]; int sex;

int age; int cult;

} em[10]; int i=0;

int changecult(); int del(); int query();

void input(); void display(); void change(); void menu(); void manage(); main() {

char password[7]="123456"; char s[7],c,z; int flag=0, n=1,i=0;

printf("\t\t\t欢迎登陆人事档案管理系统\n请输入密码:\n"); do

基于c语言设计的人事档案管理系统

{

while((s[i]=getch())!=13&&i<7) {

while(s[i]==8) {

printf("\b \b"); i--; s[i]=getch(); } i++;

printf("*"); }

s[i]='\0'; i=0; if(!strcmp(s,password)) {

printf("\n恭喜你成功登陆:\n\n\n"); flag=1; break; } else {

printf("\n输入错误请重新输入密码:\n"); n++; }

}while(n<=3); if(!flag) exit(0);

基于c语言设计的人事档案管理系统

menu(); }

void menu() { int chioce; do {

printf("*************************************************************************\n");

printf("\t\t^o^欢迎进入人事档案管理系统中文版^o^\n");

printf("制作人:贺亚楠\t\t班级:机设0805\t\t学号:200802010517\n"); printf("联系地址:湖南工程学院\n");

printf("*************************************************************************\n\n\n");

printf("\t\t\t\t请选择操作类型\n");

printf("\t\t==============\t\t\t==============\n"); printf("\t\t\t\t1进入管理系统模块\n"); printf("\t\t\t\t2进入查询系统模块\n"); printf("\t\t\t\t0退出系统\n");

printf("\t\t==============\t\t\t==============\n\n\n"); printf("说明:版权归作者所有违者必究\n\n");

scanf("%d",&chioce);

switch(chioce) {

case 1:manage();break; case 2:query();break;

case 0:printf("谢谢使用\n");exit(0);

default:printf("!你输入的信息有误,请重新选择!\n");

基于c语言设计的人事档案管理系统

} }

while(1); }

void manage() { char choice='y'; int choicemagage;

printf("\t\t欢迎进入管理模块\n");

while(choice=='y'||choice=='Y') {

printf("====================\t====================\n"); printf("\t\t1输入职工信息\n"); printf("\t\t2显现职工信息\n"); printf("\t\t3修改职工信息\n"); printf("\t\t4删除一个职工信息\n"); printf("\t\t5查询员工信息\n"); printf("\t\t6返回\n");

printf("====================\t====================\n"); { scanf("%d",&choicemagage);

switch(choicemagage) {

case 1:input(); break; case 2:display();break; case 3:change();break; case 4:del();break; case 5:query();break; case 6:menu();

基于c语言设计的人事档案管理系统

default:printf("你输入的信息有误,请您重新使用\n"); }

printf("是否继续输入?(y/n)\n"); } scanf("%s",&choice); }

if(choice=='y') printf("欢迎\n");

{ if(choice=='n') printf("\n") ;

printf("谢谢使用"); exit(0); } }

void input() {

FILE*fp;

char choiceinput='Y';

if((fp=fopen("employee.txt","a"))==NULL)

return;

while(choiceinput=='y'||choiceinput=='Y') {

基于c语言设计的人事档案管理系统

i++;

printf("第%d个职工\n",i); printf("\n");

printf("请你输入公号:\n"); scanf("%ld",&em[i].num); printf("\n");

printf("请输入姓名:\n"); scanf("%s",em[i].name); printf("\n");

printf("请您输入性别 1为男 2为女 :\n"); scanf("%d",&em[i].sex); printf("\n");

printf("请输入年龄:\n");

scanf("%d",&em[i].age);

printf("\n");

printf("请你输入备注文化程度:\n");

printf("1为专家 2为博士 3为硕士 4为学士 5为其他\n"); scanf("%d",&em[i].cult); printf("\n");

printf("是否继续输入?(y/n)\n"); scanf("%s",&choiceinput);

fwrite(&em[i],sizeof(struct employee),1,fp);

}

if(toupper(choiceinput)=='N') {

fclose(fp);

printf("输入完毕,任意键返回\n\n");

getch();

基于c语言设计的人事档案管理系统

return; } }

void display() { FILE*fp; int i;

if((fp=fopen("employee.txt","r"))==NULL) return;

printf("输出结果:\n");

for(i=0;fread(&em[i],sizeof(struct employee),1,fp)!=0;i++) {

printf("≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡\n"); printf("工号:%d\n",em[i].num); printf("姓名为:%s\n",em[i].name); printf("姓别为:",em[i].sex); switch(em[i].sex)

{ case 1:printf("男\n");break; case 2:printf("女\n");break;

default:printf("你输入的信息错误,请重新选择\n"); }

printf("年龄为:%d\n",em[i].age); printf("备注为:",em[i].cult);

基于c语言设计的人事档案管理系统

switch(em[i].cult)

{ case 1:printf("专家\n");break; case 2:printf("博士\n");break; case 3:printf("硕士\n");break; case 4:printf("学士\n");break; case 5:printf("其他\n");break; default:

printf("你输入的信息错误,请重新选择\n"); } }

printf("完毕按任意键返回\n"); getch(); fclose(fp); return; }

void change()

{ FILE *fp;

struct employee emp1,empd,*temp;

int i,n=0;

int choicechange; int seek;int chnum;

printf("==============================\n"); printf("1)请输入要修改的人的姓名\n"); printf("2)请输入要修改的人的工号\n"); printf("3)返回\n");

基于c语言设计的人事档案管理系统

printf("------------------------------\n"); scanf("%d",&seek);

printf("------------------------------\n"); switch(seek) {case 1:

scanf("%s",&);break; case 2:

scanf("%d",&chnum);break; case 3: return; default:

printf("你的输入有误!请重新输入!\n"); }

printf("==============================\n"); if((fp=fopen("employee.txt","rb"))==NULL) {printf("不能够打开这个文件\n"); return;}

while(fread(&empd,sizeof(struct employee),1,fp)) {

if(strcmp(,)==0||strcmp(chnum,empd.num)==0) {

printf("这是你要修改的人的信息\n");

printf("---------------------------------------------------\n"); printf("工号:%ld\n姓名:%s\n",empd.num,); printf("姓别为:"); switch(empd.sex)

{ case 1:printf("男\n");break; case 2:printf("女\n");break; default:

printf("你输入的信息错误,请重新选择\n");

基于c语言设计的人事档案管理系统

}

printf("备注为:"); switch(empd.cult)

{ case 1:printf("专家\n");break; case 2:printf("博士\n");break; case 3:printf("硕士\n");break; case 4:printf("学士\n");break; case 5:printf("其他\n");break; default:

printf("你输入的信息错误请重新选择\n"); }

printf("----------------------------------------------------\n"); printf("请输入你要修改的部分:\n"); printf("==========================\n"); printf("1修改性别\n"); printf("2修改备注\n"); printf("3修改年龄\n"); printf("0返回\n");

printf("==========================\n"); printf("请选择\n"); emp1=empd;

scanf("%d",&choicechange); switch(choicechange)

{case 1:emp1.sex=changesex();break; case 2:emp1.cult=changecult();break; case 3:emp1.age=changeage();break; case 0:return; default:

printf("输入有误\n"); }

rewind(fp);

基于c语言设计的人事档案管理系统

while(fread(&empd,sizeof(struct employee),1,fp)) { n++; }

temp=(struct employee)));

rewind(fp);

fread(temp,sizeof(struct employee),n,fp); fclose(fp);

if((fp=fopen("employee.txt","w"))==NULL) {printf("Error Create new telefon.dat file"); return; } else {

fclose(fp);

fp=fopen("employee.txt","a"); for(i=0;i<n;i++) {

if (strcmp(temp[i].name,)==0) fwrite(&emp1,sizeof(struct employee),1,fp); else

fwrite(&temp[i],sizeof(struct employee),1,fp); } } } }

fclose(fp);

printf("操作完成按任意键返回\n");

employee

*)malloc(n*(sizeof(struct

本文来源:https://www.bwwdw.com/article/wnl1.html

Top