- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《C语言课程设计职工信息管理系统程序设计》
C语言课程设计报告
设计题目:职工信息管理系统程序设计
课程设计评语 2
目 录 3
1.课程论文题目 4
2.程序设计思路 4
3.功能模块图 5
4.数据结构设计 5
5.算法设计 6
6.程序代码 13
7.程序运行结果 22
8.编程中遇到的困难及解决方法 25
9.总结心得及良好建议 26
10.致谢 26
课程论文题目
职工信息管理系统程序设计
题目要求
职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:
系统以菜单的方式工作。
职工信息录入功能 (职工信息用文件保存)。
职工浏览功能。
职工信息查询功能,查询方式可按学历查询或者工号查询。
职工信息的删除、修改功能(可选项)。
2.程序设计思路
1、设计思路
(1)根据题目要求,应该把职工工资信息用结构体形式输入,在定义一个全局变量和文件指针进行整个程序的运行,然后把职工工资信息送到文件中,所以应该提供一个结构体和文件的输入输出等操作;
(2)在程序中需实现职工工资浏览、查询、统计等功能的操作,所以需要建立相应的功能模块来实现;
(3)另外还需要提供键盘式选择菜单实现功能,在运行时达到所要的目的。
3.功能模块图
5.算法设计
1.主函数提供输入、处理和输出部分的函数调用,各功能模块采用菜单方式选择。
N
Y
2浏览模块
【分析】
该模块的功能是浏览职工的全部信息
3排序模块
N
Y
1 2
1
2
4查询模块
【分析】
该模块的功能是根据输入的职工按照工号和学历查找对应的记录,找到以后,可进行继续查找或修改信息的操作。流程图如下:
5修改模块
【分析】
该模块的功能是显示所有职工的信息,考虑到记录较多,建议采用分屏显示。显示完所有记录后,输入要修改的职工的工号,根据工号查到职工的记录,并提示用户修改该记录的哪部分信息,根据用户做的选择修改相应信息。流程图如下:
Y
6.程序代码
#includestdio.h
#define N 50
struct 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;in;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;kn;k++) //比较到第N个职工
if(k!=istrcmp(worker[k].id,worker[i].id)==0) //判断职工号是否有雷同
您可能关注的文档
- x外国语大学附属外国语学校高三上学期期中考试数学试题无答案.doc
- X射线衍射的基本原理 燕山大学材料综合实验教学示范中心.ppt
- X小学校本研修实施方案.doc
- X射线安全检查设备 安检X光机.doc
- X线拍照技巧部分.doc
- x省广雅中学学年高一上学期期中考试历史试题合集.doc
- X线拍照的临床应用.doc
- X线拍照技巧介入.doc
- ZJ桩基建筑工程施工技术资料管理规程.doc
- zara时装店店铺摆设技巧.pptx
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)