语c言课程设计人员管理系统大学论文.docx

上传人:b****8 文档编号:29681048 上传时间:2023-07-26 格式:DOCX 页数:41 大小:155.35KB
下载 相关 举报
语c言课程设计人员管理系统大学论文.docx_第1页
第1页 / 共41页
语c言课程设计人员管理系统大学论文.docx_第2页
第2页 / 共41页
语c言课程设计人员管理系统大学论文.docx_第3页
第3页 / 共41页
语c言课程设计人员管理系统大学论文.docx_第4页
第4页 / 共41页
语c言课程设计人员管理系统大学论文.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

语c言课程设计人员管理系统大学论文.docx

《语c言课程设计人员管理系统大学论文.docx》由会员分享,可在线阅读,更多相关《语c言课程设计人员管理系统大学论文.docx(41页珍藏版)》请在冰豆网上搜索。

语c言课程设计人员管理系统大学论文.docx

语c言课程设计人员管理系统大学论文

 

内蒙古科技大学

本科生课程设计说明书

 

题目:

C语言课程设计

——人员管理系统

学生姓名:

学号:

专业:

软件工程

班级:

15-1班

指导教师:

日期:

2016年1月6日

 

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

课程名称

C语言课程设计

设计题目

人员管理系统

指导教师

时间

2015.12.15~2016.1.5

一、教学要求

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语言程序设计课程设计》,刘振安,机械工业出版社

第一章需求分析

1.1引言

随着管理人数的增加,手动管理人员将会显得不方便。

这时就需要使用软件来实施人性化的管理。

1.2任务概述

做一个程序对人员信息实现:

新建文件、打开文件、输入记录、输出记录、查询记录、修改、插入和删除记录、保存文件、退出功能并且有系统密码。

1.3数据描述

采用结构体来储存人员信息。

人员信息包括姓名、性别、年龄、身份证号、个人简历。

姓名长度输入时不能超过10的字符型数据。

性别输入时只能输入一个字符w/m。

身份证长度输入时不能超过20字符。

个人简历长度输入时不能超过120字符。

1.4功能需求

新建文件、打开文件

输入记录、输出记录

查询记录(至少具有三种查询方式,例如以姓名,年龄,身份证号查询)修改、插入和删除记录

保存文件、退出

进入系统需要密码

可以修改系统密码

 

1.5任务计划

1.定义结构体

2.列好需要实现的功能

3.按功能构造函数

4.编写主函数

5.对接函数接口

第二章概要设计

2.1总体设计

 

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

typedefstructstudent

{

charname[M];//姓名

charsex;//性别

intyear;//年龄

charnum[20];//身份证号

charjian[120];//个人简历

}stu;//结构体储存

 

2.3接口设计

表2.1:

函数列表

函数名

函数格式//即函数首部

函数功能

mima

voidmima(chara[])

验证密码

menu

intmenu(void)

用户菜单

read

intread(stust[])

添加人员信息

xieru

voidxieru(stust[],intn)

写入信息到文件

duqu

intduqu(stust[])

从文件读取信息

nianling

voidnianling(stust[],intn)

按年龄查找信息

print

voidprint(stust[],intn)

输出信息

shenfenzheng

voidshenfenzheng(stust[],intn)

按身份证查找信息

xingming

voidxingming(stust[],intn)

按姓名查找

xiugai

voidxiugai(stust[],intn)

修改信息

charu

intcharu(stust[],intn)

插入信息

shanchu

voidshanchu(stust[],intn)

删除信息

gaimima

voidgaimima(chara[])

修改密码

 

2.4运行界面设计

 

第三章详细设计

3.1输入模块设计

intread(stust[])

{

inti=-1;

system("cls");

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

printf("\t\t*1.更新信息*\n");

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

chara;

do{

i++;

printf("请输入姓名:

\n");

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

printf("请输入性别(w/m):

\n");

scanf("%c",&st[i].sex);

printf("请输入年龄:

\n");

scanf("%d",&st[i].year);

printf("请输入身份证号:

\n");

scanf("%s",&st[i].num);

printf("请输入简历:

\n");

scanf("%s",&st[i].jian);

printf("\n编号%d数据添加成功!

\n",i+1);

printf("是否继续新增?

(y/n)\n");

scanf("%c",&a);

}while(a=='y'||a=='Y');

printf("\n--------------------------------------------------------------------\n");

printf("数据更新成功!

\n");

system("pause");

returni+1;

}

3.2输出模块设计

voidprint(stust[],intn)

{

inti;

system("cls");

printf("\n--------------------------------------------------------------------\n");

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

for(i=0;i

{

printf("%d\t%s\t%c\t%d\t%-24s%s\n",i+1,st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian);

}

}

3.3查找模块设计

1.选择用什么方式查找,位于主函数。

case2:

intb;

system("cls");//清屏

printf("\t******************人员管理系统*******************\n");

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

printf("\t*1.按身份证查找2.按年龄查找3.按姓名查找*\n");

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

b=menu();

switch(b)

{

case1:

shenfenzheng(ren,n);

break;

case2:

nianling(ren,n);

break;

case3:

xingming(ren,n);

break;

default:

printf("输入错误!

请输入0-3的数字!

\n");

system("pause");

break;

}

break;

2.按身份证查找

voidshenfenzheng(stust[],intn)

{

charx[20];

inti;

system("cls");

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

printf("\t\t*1.身份证号查找*\n");

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

system("pause");

printf("输入你要查询的身份证号:

");

scanf("%s",x);

for(i=0;i

{

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

{

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

printf("%s\t%c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian);

printf("\n--------------------------------------------------------------------\n");

system("pause");

return;

}

}

printf("未找到!

");

printf("\n--------------------------------------------------------------------\n");

system("pause");

}

3.按年龄查找

voidnianling(stust[],intn)

{

intx;

inti;

system("cls");

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

printf("\t\t*3.按年龄查找*\n");

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

printf("输入你要查询的年龄:

");

scanf("%d",&x);

x=x+1;

for(i=0;i

{

if((x==st[i].year)==0)

{

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

printf("%s\t%c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian);

printf("\n--------------------------------------------------------------------\n");

system("pause");

return;

}

}

printf("未找到!

");

printf("\n--------------------------------------------------------------------\n");

system("pause");

}

4.按姓名查找

voidxingming(stust[],intn)

{

charx[10];

inti;

system("cls");

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

printf("\t\t*2.姓名查找*\n");

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

printf("输入你要查询的姓名:

");

scanf("%s",x);

for(i=0;i

{

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

{

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

printf("%s\t%c\t%d\t%s\t%s\n",st[i].name,st[i].sex,st[i].year,st[i].num,st[i].jian);

printf("\n--------------------------------------------------------------------\n");

system("pause");

return;

}

}

printf("未找到!

");

printf("\n--------------------------------------------------------------------\n");

system("pause");

}

3.4保存及读取模块设计

voidxieru(stust[],intn)

{

FILE*fp;

if((fp=fopen("人员数据.txt","w"))==NULL)

{

printf("\t保存文件失败!

\n");

return;

}

fwrite(st,sizeof(stu),n,fp);

printf("\t保存成功!

\n");

fclose(fp);

system("pause");

}

intduqu(stust[])

{

FILE*fp;

inti;

if((fp=fopen("人员数据.txt","r"))==NULL)

{

printf("\t文件不存在!

打开失败!

\n");

system("pause");

return0;

}

for(i=0;!

feof(fp);i++)

{

fread(&st[i],sizeof(stu),1,fp);

}

fclose(fp);

printf("读取成功!

\n");

system("pause");

returni-1;

}

4.5密码及密码修改

voidmima(chara[])

{

system("color0A");//修改颜色

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

printf("\t*请输入密码:

(默认为123456)*\n");

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

charb[10];

charc[10]="123456";

FILE*fp;

if((fp=fopen("密码.txt","r"))==NULL)

{

strcpy(b,c);

}

else

{

fgets(b,10,fp);

}

MIMA:

printf("\t密码:

");

scanf("%s",a);

if(strcmp(a,b)==0)

{

printf("\t输入密码正确!

\n");

printf("\t按任意键进入人员管理系统!

");

getchar();

getchar();

}

else

{

printf("\t输入密码错误!

请重新输入:

\n");

gotoMIMA;

}

}

voidgaimima(chara[])

{

printf("\t请输入新密码:

(10位以内)");

scanf("%s",a);

FILE*fp;

if((fp=fopen("密码.txt","w"))==NULL)

{

printf("\t修改密码失败!

");

}

fputs(a,fp);

fclose(fp);

printf("\t修改密码成功!

");

system("pause");

}

第四章测试分析

4.1测试程序执行情况

 

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

问题:

密码再运行时不能保存

方法:

修改密码时把密码存入一个文件中,再次进入系统时如果文件中有密码则取出。

第五章用户手册(可选)

5.1使用说明

运行程序会显示菜单根据菜单输入编号实现相应功能:

1.更新人员信息

2.查找信息

1.按身份证查找

2.按年龄查找

3.按姓名查找

3.修改密码

4.修改信息

1.修改姓名

2.修改性别

3.修改年龄

4.修改身份证号

5.修改简历

6.退出

5.插入信息

6.删除信息

7.输出信息

8.保存文件

9.读取文件

0.退出

 

5.2运行说明

只有退出程序时保存文件。

下次运行按读取才能读取成功!

更新人员信息会覆盖到当前的人员信息需要注意。

修改的密码只能是10位以内。

修改时编号不得超出已有编号。

插入默认编号为下一个。

 

第六章课程设计总结

全部模块化设计。

未定义全局变量做干扰。

采用结构体。

不足之处,身份证长度未做限定,有些不足。

需要改善的有数据存储方式。

改成链式存可能会更佳。

还可以进一步优化程序使其实现分级菜单。

实现真正意义上的新建文件,读取文件。

所遇到的问题是如何给每个数据的储存文件取不同名字。

如何把每个文件名读取进来。

通这次的课程设计,我们对C语言这门课程有了深一步的理解。

它是计算机程序设计的重要理论技术基础,在我们计算机专业的学习中占据十分重要的地位,同时也使我们知道要学习这门课程,仅学习书本上的知识是不够的,还要有较高的实践能力。

因为我们学习知识就是为了实践,而只有实践多编写程序才能更好的理解与掌握书本上的东西。

通过本课题,进一步熟悉了C语言的基本东西。

我们还要学会分析题目的已知与未知,学会中合起来考虑问题,在逐步的展开思想,特别是碰到大问题时要细细的分解成为许多小的问题来解决。

同时我还学到了课外的知识,碰到难题是不要逃避,而是要迎难而上,反复的实验调试结果后,再错的基础上做修改。

谈到错是成功之母,说明我们在莫一件事上要多次吸取经验教训。

这次课程设计,让我对于以往上课不理解、不太清楚的问题,通过亲身实践弄懂了许多,同时因为程序是在老师及同学的帮主下完成的,当中有很多程序都是几个同学一起讨论出来的,让我体会到了集体的力量是无限的,当然更让我坚定了以后要好好掌握C语言这一门课程的决心!

附录:

程序代码

#include

#include

#include//字符串操作

#defineN30//人数

#defineM10//名字长度

typedefstructstudent

{

charname[M];

charsex;

intyear;

charnum[20];

charjian[120];

}stu;

voidmima(chara[]);//验证密码

intmenu(void);//用户菜单

intread(stust[]);//添加人员信息

voidxieru(stust[],intn);//写入信息到文件

intduqu(stust[]);//从文件读取信息

voidprint(stust[],intn);//输出信息

voidnianling(stust[],intn);//按年龄查找信息

voidshenfenzheng(stust[],intn);//按身份证查找信息

voidxingming(stust[],intn);//按姓名查找

voidxiugai(stust[],intn);//修改信息

intcharu(stust[],intn);//插入信息

voidshanchu(stust[],intn);//删除信息

voidgaimima(chara[]);//修改密码

voidmain()

{

charq[10];

mima(q);

inta,n;

sturen[N];

while

(1)

{

system("cls");//清屏

printf("\n");

printf("\n");

printf("\n");

printf("\t******************人员管理系统*******************\n");

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

printf("\t*1.更新信息2.查找信息3.修改密码*\n");

printf("\t*4.修改信息5.插入信息6.删除信息*\n");

printf("\t*7.输出信息8.保存文件9.读取文件*\n");

printf("\t*0.退出*\n");

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

a=menu();

switch(a)

{

case1:

n=read(ren);

break;

case2:

intb;

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

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1