C 语言职工信息管理系统课程设计

469860999

贡献于2012-06-29

字数:21450 关键词: C/C++开发

C语言课程设计 姓名:郭得峰 班级:193092 学号:20091001339 专业:网络工程 指导老师:张冬梅 课程题目:职工信息管理系统 完成时间:2010年6月26日 目录 一、 课程方案报告正文 二、 运行与测试 三、 完整程序 四、 课后感想 课程方案报告正文 Ⅰ:标题要求: 职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工还不重复)。试设计一职工信息管理信息系统,使之能完成一下功能: (1) 系统以菜单方式工作。 (2) 职工信息录入功能(职工信息用文件保存)。 (3) 职工信息浏览功能。 (4) 职工信息查询功能,查询方式可按职工号或学历查询。 (5) 职工信息删除、修改功能(可选项) 【提示】建立信息结构体,结构体成员包括职工号、姓名、性别、年龄、学历、工资、住址、电话。 Ⅱ:要求分析 根据标题要求,由于职工信息是存放在文件中,所以应该提供文件的输入、输出等菜单;在措施中须要阅读职工的信息,应提供呈现、查找、排序等菜单;别的还应提供键盘式选择菜单实现作用选择。 Ⅲ:总体方案 根据上面的需求分析,可以将这个系统计分别为以下模块:系统菜单、数据录入、数据浏览、数据修改、数据删除、数据输出。 系统作用模块如下: 1、系统菜单 void menu() /*菜单函数*/ { printf(" ☆☆☆中国地质大学(武汉)网络工程系☆☆☆\n"); printf("\n"); printf(" ∮193092班 郭得峰∮\n"); printf("\n"); printf(" ******************职工信息管理****************\n"); printf(" \t 1.录入职工信息 \t\t\t\t\n"); printf(" \t 2.浏览职工信息 \t\t\t\t\n"); printf(" \t 3.查询职工信息 \t\t\t\t\n"); printf(" \t 4.删除职工信息 \t\t\t\t\n"); printf(" \t 5.添加职工信息 \t\t\t\t\n"); printf(" \t 6.修改职工信息 \t\t\t\t\n"); printf(" \t 7.退出 \t\t\t\t\n"); printf(" ********************谢谢使用******************\n"); printf("\n"); printf("\n"); }、 2、数据录入 void input() /*录入函数*/ { int i,m; printf("请输入需要创建信息的职工人数(1--100):\n"); scanf("%d",&m); for (i=0;i=1&&t<=4) { flag=1; break; } else { flag=0; printf("您输入有误,请重新选择!"); } } while(flag==0); while(flag==1) { switch(t) { case 1:printf("按职工号查询\n");search_num();break; case 2:printf("按学历查询\n");search_xueli();break; case 3:printf("按电话号码查询\n");search_tel();break; case 4:main();break; default:break; } } } void search_num() { int num; int i,t; int m=load(); printf("请输入要查找的职工号(20001111---20009999):\n"); scanf("%d",&num); for(i=0;i8||c<1) printf("\n选择错误,请重新选择!\n"); } flag=0; } } if(flag==1) printf("\n对不起,查无此人!\n"); do { switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/ { case 1:printf("职工号改为: "); scanf("%d",&num); em[i-1].num=num; break; case 2:printf("姓名改为: "); scanf("%s",name); strcpy(em[i-1].name,name); break; case 3:printf("性别改为: "); getchar(); scanf("%c",&sex); em[i-1].sex=sex; break; case 4:printf("年龄改为: "); scanf("%d",&age); em[i-1].age=age; break; case 5:printf("学历改为: "); scanf("%s",xueli); strcpy(em[i-1].xueli,xueli); break; case 6:printf("工资改为: "); scanf("%d",&wage); break; case 7:printf("住址改为: "); scanf("%s",addr); strcpy(em[i-1].addr,addr); break; case 8:printf("电话改为: "); scanf("%ld",&tel); em[i-1].tel=tel; break; } printf("\n"); printf("\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2: \n"); scanf("%d",&b); } while(b==2); printf("\n浏览修改后的所有职工信息:\n"); printf("\n"); save(m); display(); printf("\n继续修改请按1,不再修改请按0\n"); scanf("%d",&t); switch(t) { case 1:modify();break; case 0:break; default :break; } getchar(); } 运行与测试 1、系统菜单 void menu() /*菜单函数*/ { printf(" ☆☆☆中国地质大学(武汉)网络工程系☆☆☆\n"); printf("\n"); printf(" ∮193092班 郭得峰∮\n"); printf("\n"); printf(" ******************职工信息管理****************\n"); printf(" \t 1.录入职工信息 \t\t\t\t\n"); printf(" \t 2.浏览职工信息 \t\t\t\t\n"); printf(" \t 3.查询职工信息 \t\t\t\t\n"); printf(" \t 4.删除职工信息 \t\t\t\t\n"); printf(" \t 5.添加职工信息 \t\t\t\t\n"); printf(" \t 6.修改职工信息 \t\t\t\t\n"); printf(" \t 7.退出 \t\t\t\t\n"); printf(" ********************谢谢使用******************\n"); printf("\n"); printf("\n"); } 2、数据录入 void input() /*录入函数*/ { int i,m; printf("请输入需要创建信息的职工人数(1--100):\n"); scanf("%d",&m); for (i=0;i=1&&t<=4) { flag=1; break; } else { flag=0; printf("您输入有误,请重新选择!"); } } while(flag==0); while(flag==1) { switch(t) { case 1:printf("按职工号查询\n");search_num();break; case 2:printf("按学历查询\n");search_xueli();break; case 3:printf("按电话号码查询\n");search_tel();break; case 4:main();break; default:break; } } } void search_num() { int num; int i,t; int m=load(); printf("请输入要查找的职工号(20001111---20009999):\n"); scanf("%d",&num); for(i=0;i8||c<1) printf("\n选择错误,请重新选择!\n"); } flag=0; } } if(flag==1) printf("\n对不起,查无此人!\n"); do { switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/ { case 1:printf("职工号改为: "); scanf("%d",&num); em[i-1].num=num; break; case 2:printf("姓名改为: "); scanf("%s",name); strcpy(em[i-1].name,name); break; case 3:printf("性别改为: "); getchar(); scanf("%c",&sex); em[i-1].sex=sex; break; case 4:printf("年龄改为: "); scanf("%d",&age); em[i-1].age=age; break; case 5:printf("学历改为: "); scanf("%s",xueli); strcpy(em[i-1].xueli,xueli); break; case 6:printf("工资改为: "); scanf("%d",&wage); break; case 7:printf("住址改为: "); scanf("%s",addr); strcpy(em[i-1].addr,addr); break; case 8:printf("电话改为: "); scanf("%ld",&tel); em[i-1].tel=tel; break; } printf("\n"); printf("\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2: \n"); scanf("%d",&b); } while(b==2); printf("\n浏览修改后的所有职工信息:\n"); printf("\n"); save(m); display(); printf("\n继续修改请按1,不再修改请按0\n"); scanf("%d",&t); switch(t) { case 1:modify();break; case 0:break; default :break; } getchar(); } 职工信息管理系统完整程序 #include #include #include #include #define N 100 struct employee { int num; char name[10]; char sex; int age; char xueli[30]; int wage; char addr[30]; long int tel; }em[100]; /*定义一个结构体*/ void menu(); void input(); void save(int); void display(); void del(); void add(); void search(); void search_num(); void search_xueli(); void search_tel(); void modify(); /*定义各函数*/ void menu() /*菜单函数*/ { printf(" ☆☆☆中国地质大学(武汉)网络工程系☆☆☆\n"); printf("\n"); printf(" ∮193092班 郭得峰∮\n"); printf("\n"); printf(" ******************职工信息管理****************\n"); printf(" \t 1.录入职工信息 \t\t\t\t\n"); printf(" \t 2.浏览职工信息 \t\t\t\t\n"); printf(" \t 3.查询职工信息 \t\t\t\t\n"); printf(" \t 4.删除职工信息 \t\t\t\t\n"); printf(" \t 5.添加职工信息 \t\t\t\t\n"); printf(" \t 6.修改职工信息 \t\t\t\t\n"); printf(" \t 7.退出 \t\t\t\t\n"); printf(" ********************谢谢使用******************\n"); printf("\n"); printf("\n"); } void main() { int n,flag; char a; menu(); /*调用菜单函数*/// 这几个调换一下顺序就可以了,记住声明变量的代码要在前面 do { printf("请选择你需要操作的步骤(1————7):\n"); scanf("%d",&n); if(n>=1&&n<=7) { flag=1; break; } else { flag=0; printf("您输入有误,请重新选择!"); } } while(flag==0); while(flag==1) { switch(n) { case 1:printf(" ◆◆◆ 输入职工信息 ◆◆◆\n");printf("\n");input();break; case 2:printf(" ◆◆◆ 浏览职工信息 ◆◆◆\n");printf("\n");display();break; case 3:printf(" ◆◆◆ 按职工号查询职工信息◆◆◆\n");printf("\n");search();break; case 4:printf(" ◆◆◆ 删除职工信息 ◆◆◆\n");printf("\n");del();break; case 5:printf(" ◆◆◆ 添加职工信息 ◆◆◆\n");printf("\n");add();break; case 6:printf(" ◆◆◆ 修改职工信息 ◆◆◆\n");printf("\n");modify();break; case 7:exit(0);break; default :break; } getchar(); printf("\n"); printf("是否继续进行(Y or N):\n"); scanf("%c",&a); if(a=='y') { flag=1; system("cls"); /*清屏*/ menu(); /*调用菜单函数*/ printf("请再次选择你需要操作的步骤(1--6):\n"); scanf("%d",&n); printf("\n"); } else exit(0); } } void input() /*录入函数*/ { int i,m; printf("请输入需要创建信息的职工人数(1--100):\n"); scanf("%d",&m); for (i=0;i=1&&t<=4) { flag=1; break; } else { flag=0; printf("您输入有误,请重新选择!"); } } while(flag==0); while(flag==1) { switch(t) { case 1:printf("按职工号查询\n");search_num();break; case 2:printf("按学历查询\n");search_xueli();break; case 3:printf("按电话号码查询\n");search_tel();break; case 4:main();break; default:break; } } } void search_num() { int num; int i,t; int m=load(); printf("请输入要查找的职工号(20001111---20009999):\n"); scanf("%d",&num); for(i=0;i8||c<1) printf("\n选择错误,请重新选择!\n"); } flag=0; } } if(flag==1) printf("\n对不起,查无此人!\n"); do { switch(c) /*因为当找到第i个职工时,for语句后i自加了1,所以下面的应该把改后的信息赋值给第i-1个人*/ { case 1:printf("职工号改为: "); scanf("%d",&num); em[i-1].num=num; break; case 2:printf("姓名改为: "); scanf("%s",name); strcpy(em[i-1].name,name); break; case 3:printf("性别改为: "); getchar(); scanf("%c",&sex); em[i-1].sex=sex; break; case 4:printf("年龄改为: "); scanf("%d",&age); em[i-1].age=age; break; case 5:printf("学历改为: "); scanf("%s",xueli); strcpy(em[i-1].xueli,xueli); break; case 6:printf("工资改为: "); scanf("%d",&wage); break; case 7:printf("住址改为: "); scanf("%s",addr); strcpy(em[i-1].addr,addr); break; case 8:printf("电话改为: "); scanf("%ld",&tel); em[i-1].tel=tel; break; } printf("\n"); printf("\n是否确定所修改的信息?\n 是 请按1 ; 不,重新修改 请按2: \n"); scanf("%d",&b); } while(b==2); printf("\n浏览修改后的所有职工信息:\n"); printf("\n"); save(m); display(); printf("\n继续修改请按1,不再修改请按0\n"); scanf("%d",&t); switch(t) { case 1:modify();break; case 0:break; default :break; } getchar(); } 课后感想 现代科学的飞速发展,改变了世界,也改变了人类的生活。作为新世纪的大学生,应当站在时代发展的前沿,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求,而C语言又是计算机行业的重要工具,所以新世纪的我们应该努力学好每一门语言,做好随时为国家和人民服务的准备。通过这学期对C语言的学习,我对IT行业产生了浓厚的兴趣,对自己的专业更加热爱。C语言是人和机器交流的重要桥梁,是每个大学生有必要掌握的一门课。 通过这次的课程设计,我收获了很多。在设计的过程中,我对课本的内容有了进一步的了解,编程及调试程序的能力都得到了较大的提高。 最后,感谢张冬梅老师的辛勤栽培和指导!

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 5 金币 [ 分享文档获得金币 ]
1 人已下载

下载文档

相关文档