C语言课程设计—职工管理系统
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].aw if(strcmp(b,staff[i].num)==0)//检测输入名与存储名是否相同 { if(staff[i].y==10000) { printf("\n该行数据已被删除。\n");
2 .increase() 3. void show() 4. void found() 5.show2() 6. void print2(int y) 7. void print3()
主函数
文件输入函数 操作界面显示函数 查找函数 显示函数 删除函数 修改信息函数
五、算法描述或流程图
1:found( )函数 :流程图描述: 开始 输入j的值 判断j的值 j=1 编号 j=3 工资范围 j=2 姓名 输入编号 输入姓名 输入工资范围 i=0 i=0 i=0 i<1000 i<1000
i<1000 检测输入号与存储号是否相同 检测输入名与存储名是否相同 检测是否在工资范围内 是否被删除 是否被删除 是否被删除 是 是 是 i增大1位 i增大1位 i增大1位 是 是 是 否 否 否 否 否 否 否 否 否
2:increase ()函数 结束 是 是 数据被删除 数据被删除 数据被删除 输出符合要求的数据 输出符合要求的数据 输出符合要求的数据 \n 是 流程图描述 开始 z<1000 结束 是 否 输入i2 判断i2的值 是 否 输入要添加教师的编号,姓名,年龄,工资,奖金 z=0
//=============================================================== void show()//显示操作界面 { printf("* 欢迎使用职工工资管理程序
*\n");
printf("=========================================================== printf("* 1:添加信息 *\n"); printf("* 2:删除信息 *\n"); printf("* 3:查询信息 *\n"); printf("* 4:修改信息 *\n"); printf("* 5:显示信息 *\n"); printf("* 6:退出系统 *\n");
二、上机环境
操作系统:Windows7旗舰版 开发工具:Codeblocks
三、函数调用关系图
Main()
show()
显示操作界面
increase ()
添加数据信息
found()
查找符合查找条件的数据
S源自文库ow2 ()
显示数据信息
print2()
删除数据信息
Print3()
修改数据信息
四、各函数功能说明 1.main()
printf("%s\t%s\t\t%d\t%.0lf\t%.0lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i]
printf("=========================================================== } } } printf("\n");break; default://不在查找范围内的情况 printf("\n结束该项操作。\n");
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].aw if(strcmp(c,staff[i].name)==0) { if(staff[i].y==10000) { printf("\n该行数据已被删除。\n");
printf("=========================================================== break; } fclose(fp); } void print2()//删除函数 {
int s,i; FILE *fp; if((fp=fopen("design.txt","r"))==NULL) { printf("Can not open a file.\n"); exit(0); } for(i=0;i<N;i++) {
printf("===========================================================
printf("请输入您要选择的操作序号,按回车键确认。\n"); } void found() { int j; FILE *fp; printf("1:按教师编号查询\n2:按教师姓名查询\n3:按工资范围查询\n"); printf("请输入数字:"); scanf("%d",&j); char b[X],c[X],b1[X],c1[X]; double n1,m1; if((fp=fopen("design.txt","r"))==NULL)//打开文件 { printf("Can not open a file.\n"); exit(1); } switch(j)//输入数字选择要查找的条件 { case 1://按编号查找的情况 printf("\n请输入要查找的教师编号:"); scanf("%s",b); for(i=0;i<N;i++) {
fscanf(fp,"%s%s%d%lf%lf",staff[i].num,staff[i].name,&staff[i].y,&staff[i].m,&staff[i].aw if(staff[i].m>=n1&&staff[i].m<=m1) { if(staff[i].y==10000) { continue; } else { printf("\n编号\t姓名\t\t年龄\t工资\t奖金\n");
六、程序运行效果图
1:打开界面
2:查询信息 (1):按编号查询
(2):按姓名查询
(3):按工资范围查询
3:添加信息
4:修改信息
5:删除信息
七、总结
通过本次课设,不仅成功的完成了项目,复习了一个学期 来所学过的知识要点,还极大的提高了自己的动手能力,受益 匪浅。通过整日含辛茹苦的编码,第一次体验到了未来本专业 工作岗位上的不易,也切身感受到了一位程序员的辛苦。其 次,本次,通过本次课设,进一步提高了自己对本专业的兴 趣,利于之后的学习乃至将来的工作,以及未来的方向。最重 要的是,提高了独立分析,解决问题的能力。另一方面,这次 动手实践操作,也暴露出自己在对专业知识学习上的一些漏 洞。要点记得不踏实,重点知识未理解透彻,导致在写程序时 捉襟见肘。但这也是经验,之后的学习要引以为鉴。
printf("请输入教师的编号:");//输入教师信息 scanf("%s",num); printf("请输入教师的姓名:"); scanf("%s",name); printf("请输入教师的年龄:"); scanf("%d",&y); printf("请输入教师的工资:"); scanf("%lf",&m); printf("请输入教师的奖金:"); scanf("%lf",&award); fprintf(fp,"%s %s %d %lf %lf\n",num,name,y,m,award); printf("是否结束输入:\n1:继续输入:\n0:结束输入:\n"); scanf("%d",&i2); if(i2==0) break; else if(i2==1) continue; } printf("输入结束。\n\n"); fclose(fp);//关闭文件 }
printf("=========================================================== } } } printf("\n");break; case 2://按姓名查找的情况 printf("请输入要查找的教师的姓名:"); scanf("%s",c); for(i=0;i<N;i++) {
八、参考文献
1:李春葆 曾平 喻丹丹 .《C语言程序设计教程》 , 清华大学 出版社 , 2011 2:梁力 .《程序设计与C语言》 , 西安交通大学出 版社 , 2010
九、程序清单
#include"stdio.h" #include"string.h" #include"stdlib.h" #include"math.h" #define N 1000 #define X 100 int i; struct worker//定义结构体变量 { char num[X]; char name[X]; int y; double m; double award; }staff[N]; //===============================函数线 =============================== void increase()//输入函数 { int i,i2,k; FILE *fp;//定义文件指针 char num[X],name[X]; int y; double m,award; if((fp=fopen("design.txt","a"))==NULL)//打开文件 { printf("Can not open a file.\n"); exit(0); } for(i=0;i<N;i++) {
printf("=========================================================== break; } else { printf("\n编号\t姓名\t\t年龄\t工资\t奖金\n");
printf("%s\t%s\t\t%d\t%.0lf\t%.0lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i]
青岛理工大学
《C语言程序设计》
题目
职工工资管理程序
指导教师: XXX 姓名: XXX 学号: XXXXX 班级: XXXXX 专业: 软件工程 地点: 计算机工程学院机房 时间: 2014.6.30 至 2014.7.4
一、内容
本系统实现了职工工资的管理与查询,具有输入信息,查 询信息,添加信息,删除信息以及修改信息等功能。打开本系 统后,将需要输入的信息输入,便可以进入操作界面。按照操 作界面的提示进行操作。
printf("=========================================================== break; } else {
printf("\n编号\t姓名\t\t年龄\t工资\t奖金\n");
printf("%s\t%s\t\t%d\t%.0lf\t%.0lf\n",staff[i].num,staff[i].name,staff[i].y,staff[i].m,staff[i]
printf("=========================================================== } } } printf("\n");break;
case 3://按工资范围查找的情况 printf("\n请输入工资范围:"); scanf("%lf,%lf",&n1,&m1); for(i=0;i<N;i++) {
3:void print2(int y)函数 : 流程图描述 开始 i=0 i<y 结束 i的值是否等于职工号减1 否 是 输入职工号 将该职工的年龄设为10000 i的值增大1位 将i职工号对应的数据写入文件中。 是 否 4:void print3()函数 流程图描述 开始 输入修改的职工号
职工号不为零 输入的职工号是否为零 结束 是 否 数据是否被删除 是 否 该行数据已被删除 输出该职工的编号,姓名,年龄,工资,奖金 输入需要修改的选项 判断选项 输入修改后的编号 输入修改后的姓名 输入修改后的年龄 输入修改后的工资 输入修改后的奖金 编号 姓名 年龄 工资 奖金 结束 输入职工号 判断职工号 职工号为零 输入结束