C语言课程设计-人员管理系统.doc

上传人:聆听****声音 文档编号:8965393 上传时间:2023-05-16 格式:DOC 页数:40 大小:246.50KB
下载 相关 举报
C语言课程设计-人员管理系统.doc_第1页
第1页 / 共40页
C语言课程设计-人员管理系统.doc_第2页
第2页 / 共40页
C语言课程设计-人员管理系统.doc_第3页
第3页 / 共40页
C语言课程设计-人员管理系统.doc_第4页
第4页 / 共40页
C语言课程设计-人员管理系统.doc_第5页
第5页 / 共40页
C语言课程设计-人员管理系统.doc_第6页
第6页 / 共40页
C语言课程设计-人员管理系统.doc_第7页
第7页 / 共40页
C语言课程设计-人员管理系统.doc_第8页
第8页 / 共40页
C语言课程设计-人员管理系统.doc_第9页
第9页 / 共40页
C语言课程设计-人员管理系统.doc_第10页
第10页 / 共40页
C语言课程设计-人员管理系统.doc_第11页
第11页 / 共40页
C语言课程设计-人员管理系统.doc_第12页
第12页 / 共40页
C语言课程设计-人员管理系统.doc_第13页
第13页 / 共40页
C语言课程设计-人员管理系统.doc_第14页
第14页 / 共40页
C语言课程设计-人员管理系统.doc_第15页
第15页 / 共40页
C语言课程设计-人员管理系统.doc_第16页
第16页 / 共40页
C语言课程设计-人员管理系统.doc_第17页
第17页 / 共40页
C语言课程设计-人员管理系统.doc_第18页
第18页 / 共40页
C语言课程设计-人员管理系统.doc_第19页
第19页 / 共40页
C语言课程设计-人员管理系统.doc_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言课程设计-人员管理系统.doc

《C语言课程设计-人员管理系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计-人员管理系统.doc(40页珍藏版)》请在冰点文库上搜索。

C语言课程设计-人员管理系统.doc

内蒙古科技大学课程设计论文

内蒙古科技大学

本科生课程设计说明书

题目:

C语言课程设计

——人员管理系统

学生姓名:

学号:

专业:

班级:

指导教师:

日期:

40

内蒙古科技大学课程设计任务书

课程名称

C语言课程设计

设计题目

人员管理系统

指导教师

时间

一、教学要求

1.巩固和加深学生对C语言课程的基本知识的理解和掌握

2.掌握C语言编程和程序调试的基本技能

3.利用C语言进行基本的软件设计

4.掌握书写程序设计说明文档的能力

5.提高运用C语言解决实际问题的能力

二、设计资料及参数

每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。

人员管理系统

现有一批人员的数椐,要求输入计算机并存放在内存中,然后增加若干个新人员的记录,并可输出人员清单,实现文件存盘和读入文件进行修改的功能。

人员的基本信息包括姓名,性别,年龄,身份证号和简历(80个字符以内)。

要求设计菜单来调用其各功能模块:

v新建文件、打开文件

v输入记录、输出记录

v查询记录(至少具有两种查询方式,例如以姓名查询和以身份证号查询)

v修改、插入和删除记录

v保存文件、退出

三、设计要求及成果

1.分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)

2.写出详细设计说明(至少包括功能实现分析和模块流程图)

3.编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号)

4.设计完成的软件要便于操作和使用

5.设计完成后提交课程设计报告(请严格按照模板进行排版)

四、进度安排

第一天 选择课程设计题目,分析课题的要求

第二天 编程

第三天 编程及调试

第四天 写课程设计报告

第五天 提交课程设计报告(打印稿及电子稿)

五、评分标准

1.根据平时上机考勤、表现和进度,教师将每天点名和检查

2.根据课程设计完成情况,必须有可运行的软件。

3.根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。

六、建议参考资料

1.《C语言程序设计》,谭浩强,清华大学出版社2.《C语言程序设计课程设计》,刘振安,机械工业出版社

目录

内蒙古科技大学课程设计任务书 II

目录 III

第一章需求分析 4

1.1 引言 4

1.2 任务概述 4

1.3 数据描述 4

1.4 功能需求 4

1.5 任务计划 5

第二章 概要设计 6

2.1 总体设计 6

2.2 数据类型设计(或数据结构设计) 6

2.3 接口设计 6

2.4 运行界面设计 7

第三章 详细设计 11

3.1 输入模块设计 11

3.2 输出模块设计 12

3.3 查找模块设计 13

3.4 修改模块设计 15

3.5删除模块设计 18

3.6保存及读取模块设计 21

第四章 测试分析 22

4.1 测试程序执行情况 22

4.2 出现的问题和解决的方法 22

第五章 用户手册(可选) 23

5.1 使用说明 23

5.2 运行说明 23

第六章 课程设计总结 24

附录:

程序代码 25

参考文献 40

致谢 40

第一章需求分析

1.1引言

将人员信息进行统一的管理,方便进行查找,并进行修改。

一个简易的人员信息管理系统可以解决一些简单的问题

1.2任务概述

1.能查看所有人员信息

2.能增加人员信息,增加的简历字数不大于80字,性别为男女、身份证号不多于18位

3.能查找人员

4.能修改人员信息

5.能删除人员信息

6.能保存人员信息

7.能退出

1.3数据描述

charname[60];

charsex[2];

intage;

charIDnumber[18];

charresume[80];

人员信息用结构体记录,包括姓名(字符数组)、性别(字符数组)、

年龄(整形)、身份证号(字符数组)、简历(字符数组)

1.4功能需求

1.能查看所有人员信息

2.能增加人员信息

3.能查找人员

4.能修改人员信息

5.能删除人员信息

6.能保存人员信息

7.能退出

1.5任务计划

1.先编出主函数

2.各各功能分成一个一个的子函数进行编辑

3.最后进行整合

第二章概要设计

2.1总体设计

1.确定界面,使用户可选择操作项目(

(1)查看人员信息、

(2)增加人员信息、(3)查找人员、(4)修改人员信息、(5)删除记录、

(6)保存数据、(7)关于作者、(8)退出系统)

2.查看功能:

输出已经保存的数据

3.增加人员信息功能:

使用结构体,要求用户输入姓名、性别、年龄、

身份证号、个人简历,并写入文件

4.查找人员功能:

使用户输入姓名、身份证号其中一项可以进行查找

5.修改人员信息功能:

使用户输入姓名、身份证号其中一项可以进行查找,并进行修改

6.删除记录功能:

使用户输入姓名、身份证号其中一项可以进行查找,并进行删除

7.保存数据功能:

将增加的数据保存到文档中

8.关于作者功能:

输出作者信息

9.退出系统:

将文件关闭,退出程序

2.2数据类型设计(或数据结构设计)

charname[60];

charsex[2];

intage;

charIDnumber[18];

charresume[80];

人员信息用结构体记录,包括姓名(字符数组)、性别(字符数组)、

年龄(整形)、身份证号(字符数组)、简历(字符数组)

2.3接口设计

函数名

函数格式

函数功能

fh()

voidfh();

输出字符串:

===>按Enter键返回主菜单

shouye()

voidshouye();

输出首页

select()

voidselect();

查看人员信息

add()

voidadd();

增加人员信息

chazhao()

voidchazhao();

查找人员

findname()

voidfindname();

通过名字查找人员信息

findIDnumber()

voidfindIDnumber();

通过身份证号查找人员信息

change()

voidchange();

更改人员信息

changebyname()

voidchangebyname();

通过查找名字更改人员信息

changebyIDnumber()

voidchangebyIDnumber();

通过查找身份证号更改人员信息

del()

voiddel();

删除人员信息

delbyname()

voiddelbyname();

通过查找名字删除人员信息

delbyIDnumber()

voiddelbyIDnumber();

通过查找身份证号删除人员信息

save()

voidsave();

保存数据

writer()

voidwriter();

编者信息

dq(structstudentst[])

intdq(structstudentst[]);

读取数据

bc(structstudent*st)

voidbc(structstudent*st);

保存数据

2.4运行界面设计

1.初始界面

2.查看界面

3.增加界面

4.查找界面

5.修改界面

6.删除界面

7.保存界面

8.作者界面

9.退出界面

第三章详细设计

3.1输入模块设计

voidadd()//增加人员信息

{

intnumberTemp=0;

inti=0;

structstudenttemp;

printf("请输入要增加的人员信息数量:

");

scanf("%d",&numberTemp);

for(i=0;i

{

printf("输入第%d个人员信息\n",i+1);

printf("姓名:

");

scanf("%s",temp.name);

printf("性别:

");

scanf("%s",temp.sex);

printf("年龄:

");

scanf("%d",&temp.age);

printf("身份证号:

");

scanf("%s",temp.IDnumber);

printf("简历:

");

scanf("%s",temp.resume);

st[Number++]=temp;//将刚添加的写入到数组

bc(&temp);//将刚添加的写入到文件

}

printf("添加成功\n");

}

3.2输出模块设计

voidselect()

{

inti=0;

printf("以下是全部人员信息\n");

printf("\t姓名\t性别\t年龄\t身份证号\t简历\n");

for(i=0;i

{

printf("\t%s\t%s\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].age,st[i].IDnumber,st[i].resume);

}

}

3.3查找模块设计

voidchazhao()//查找人员

{

intn=0;

printf("1按姓名查找\n");

printf("2按身份证号查找\n");

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

{

case1:

findname();

break;

case2:

findIDnumber();

break;

default:

printf("输入有误,结束!

\n");

break;

}

}

voidfindname()//按姓名查找

{

charname[7];

inti=0;

printf("请输入要查找的人员姓名:

");

scanf("%s",name);

system("cls");

printf("\t姓名\t性别\t年龄\t身份证号\t简历\n");

for(i=0;i

{

if(strcmp(name,st[i].name)==0)

{

printf("\t%s\t%s\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].age,st[i].IDnumber,st[i].resume);

}

}

}

voidfindIDnumber()//按身份证号查找

{

charIDnumber[18];

inti=0;

printf("请输入要查找人员的身份证号:

");

scanf("%s",IDnumber);

system("cls");

printf("\t姓名\t性别\t年龄\t身份证号\t简历\n");

for(i=0;i

{

if(strcmp(IDnumber,st[i].IDnumber)==0)

{

printf("\t%s\t%s\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].age,st[i].IDnumber,st[i].resume);

}

}

}

3.4修改模块设计

voidchange()

{

intway=0;

printf("请选择修改查找方式\n");

printf("1通过姓名查找修改\n");

printf("2通过身份证号查找修改\n");

scanf("%d",&way);

switch(way)

{

case1:

changebyname();

break;

case2:

changebyIDnumber();

break;

default:

printf("输入有误,结束!

\n");

break;

}

}

voidchangebyname()

{

FILE*fp=NULL;

charname[60];

inti=0;

intchangeIndex=0;

intindex=0;

printf("请输入要修改的人员姓名:

\n");

scanf("%s",name);

for(i=0;i

{

if(strcmp(name,st[i].name)==0)

{

changeIndex=i+1;

break;

}

}

if(!

changeIndex)

return;

changeIndex--;

printf("\t姓名\t性别\t年龄\t身份证号\t简历\n");

printf("\t%s\t%s\t%d\t%s\t%s\n",st[changeIndex].name,st[changeIndex].sex,st[changeIndex].age,st[changeIndex].IDnumber,st[changeIndex].resume);

printf("请重新输入该人员信息");

printf("姓名:

");

scanf("%s",st[changeIndex].name);

printf("性别:

");

scanf("%s",st[changeIndex].sex);

printf("年龄:

");

scanf("%d",&st[changeIndex].age);

printf("身份证号:

");

scanf("%s",st[changeIndex].IDnumber);

printf("简历:

");

scanf("%s",st[changeIndex].resume);

fp=fopen("C:

//student.dat","wb");

for(i=0;i

{

fwrite(&st[i],sizeof(structstudent),1,fp);

}

fclose(fp);

}

voidchangebyIDnumber()

{

FILE*fp=NULL;

charIDnumber[18];

inti=0;

intchangeIndex=0;

intindex=0;

printf("请输入要修改的人员身份证号:

\n");

scanf("%s",IDnumber);

for(i=0;i

{

if(strcmp(IDnumber,st[i].IDnumber)==0)

{

changeIndex=i+1;

break;

}

}

if(!

changeIndex)

return;

changeIndex--;

printf("\t姓名\t性别\t年龄\t身份证号\t简历\n");

printf("\t%s\t%s\t%d\t%s\t%s\n",st[changeIndex].name,st[changeIndex].sex,st[changeIndex].age,st[changeIndex].IDnumber,st[changeIndex].resume);

printf("请重新输入该人员信息");

printf("姓名:

");

scanf("%s",st[changeIndex].name);

printf("性别:

");

scanf("%s",st[changeIndex].sex);

printf("年龄:

");

scanf("%d",&st[changeIndex].age);

printf("身份证号:

");

scanf("%s",st[changeIndex].IDnumber);

printf("简历:

");

scanf("%s",st[changeIndex].resume);

fp=fopen("C:

//student.dat","wb");

for(i=0;i

{

fwrite(&st[i],sizeof(structstudent),1,fp);

}

fclose(fp);

printf("\t=======>修改成功\n");

}

3.5删除模块设计

voiddel()//删除

{

intn=0;

printf("1按姓名删除\n");

printf("2按身份证号删除\n");

scanf("%d",&n);

switch(n)

{

case1:

delbyname();

break;

case2:

delbyIDnumber();

break;

}

}

voiddelbyname()//按姓名删除

{

FILE*fp=NULL;

charname[60];

inti=0;

intj=0;

printf("请输入要删除的人员的名字:

");

scanf("%s",name);

for(i=0;i

{

if(strcmp(name,st[i].name)==0)//如果查找到就删除

{

for(j=i;j

{

st[j]=st[j+1];

}

Number--;

}

}//将剩余数据写入文件重新一写的方式打开文件把以前的数据擦除了

fp=fopen("C:

//student.dat","wb");

for(i=0;i

{

fwrite(&st[i],sizeof(structstudent),1,fp);

}

fclose(fp);

printf("删除成功;\n");

}

voiddelbyIDnumber()//按学号删除

{

FILE*fp=NULL;

charIDnumber[60];

inti=0;

intj=0;

printf("请输入要删除的人员的身份证号:

");

scanf("%s",IDnumber);

for(i=0;i

{

if(strcmp(IDnumber,st[i].IDnumber)==0)//如果查找到就删除

{

for(j=i;j

{

st[j]=st[j+1];

}Number--;

}

}//将剩余数据写入文件重新一写的方式打开文件把以前的数据擦除了

fp=fopen("C:

//student.dat","wb");

for(i=0;i

{

fwrite(&st[i],sizeof(structstudent),1,fp);

}

fclose(fp);

printf("删除成功;\n");

}

3.6保存及读取模块设计

intdq(structstudentst[])//读取

{

FILE*fp=NULL;

inti=0;

fp=fopen("C:

//student.dat","rb");

while(fread(&st[i],sizeof(structstudent),1,fp))

i++;

fclose(fp);

returni;

}

voidbc(structstudent*st)//保存

{

FILE*fp=NULL;

fp=fopen("C:

//student.dat","ab+");

fwrite(st,sizeof(structstudent),1,fp);

fclose(fp);

}

第四章测试分析

4.1测试程序执行情况

能按照正确操作实现已加入的各个功能。

程序无大错。

4.2出现的问题和解决的方法

1.文件的打开储存出现了问题,通过问老师和查书找出了问题的解决方法

2.出现了死循环,问同学找出咯问题的所在

第五章用户手册(可选)

5.1使用说明

按提示输入就行,但是应注意信息的输入是有条件的,性别的输入只有两种情况,简历不能多于80字

5.2运行说明

按提示输入即可

第六章课程设计总结

1.主函数的思路清晰

2.结构简单

3.但是在查找是会出现一些问题,如果两个人重名将会输出两个人的名字

4.下次再做的时候一定要将各各情况都考虑清楚

附录:

程序代码

#include

#include

#include

structstudent

{

charname[60];

charsex[2];

intage;

charIDnumber[18];

charresume[80];

};

voidfh();

voidshouye();

voidselect();

voidadd();

voidchazhao();

voidfindname();

voidfindIDnumber();

voidchange();

voidchangebyname();

voidchangebyIDnumber();

voiddel();

voiddelbyname();

voiddelbyIDnumber();

voidsave();

voidwriter();

intdq(structstudentst[]);

voidbc(structstudent*st);

structstudentst[300];

intNumber=0;

intmain()

{

intchoose

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2