中国地质大学(武汉)课程设计报告题目 c语言程序设计姓名学号专业统计学所在院系经济管理学院指导老师江俊君日期 2016/6/11目录目录..................................................... 错误!未定义书签。
1.课程论文题目 ........................................... 错误!未定义书签。
2.程序设计思路 ........................................... 错误!未定义书签。
3.功能模块图............................................. 错误!未定义书签。
4.数据结构设计 ........................................... 错误!未定义书签。
5.算法设计............................................... 错误!未定义书签。
6.程序代码............................................... 错误!未定义书签。
7.程序运行结果 ........................................... 错误!未定义书签。
8.编程中遇到的困难及解决方法 ............................. 错误!未定义书签。
9.总结心得及良好建议 ..................................... 错误!未定义书签。
10.致谢.................................................. 错误!未定义书签。
1.课程论文题目职工信息管理系统内容:[要求]职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
功能:实现简单的职工工资信息管理,职工工资的基本信息包括编号、姓名、基本工资、奖金、工资总额等1. 系统以菜单方式工作。
2. 职工信息录入功能(职工信息用文件保存)。
3. 职工信息浏览功能。
4.职工信息查询功能。
查询方式。
(1)按学历查询。
(2)按工号查询。
2.程序设计思路(1)需求分析系统要以菜单方式工作,因而根据题目要求,提供键盘式选择菜单实现功能选择,职工信息采用文件保存,所以应提供文件的输入、输出等操作;在程序中需要浏览职工的信息,应提供显示、查找、等操作;要实现职工信息的查询,则要提供查找功能(包括按学历查询和按工号查询两种查询方式);要实现职工信息的删除、修改,则要提供文件记录的删除、修改功能。
(2)总体设计根据上面的需求分析,可以将这个系统设计分为以下模块:职工信息输入模块、职工信息浏览模块、职工信息查询模块、职工信息删除与修改模块(3)数据信息建立职工信息结构体,结构体成员包括工号、姓名、性别、年龄、学历、工资、住址和电话。
Struct employee{char num[20];char name[8];char sex[10];char age[10];char xueli[30];char wanges[10];char tel[15];char addr[50];}em[N]3.功能模块图4. 数据结构设计建立职工信息结构体,结构体成员包括工号、姓名、性别、年龄、学历、工资、住址和电话。
Struct employee{char num[20];入模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的void append()函数来实现。
2.浏览模块:浏览所有职工的相关信息,通过自己定义的void display()函数来实现。
3. 按职工号查询模块:可以按职工号来查询职工的相关信息,通过自己定义的void search_num()函数来实现。
8.按职工的的学历查询模块:可以按职工的学历来查询职工的相关信息,通过自己定义的void search_xuelil函数来实现。
4.退出模块:退出职工信息管理系统,通过头文件中的exit(0)函数来实现。
1.录入模块void append(){i nt i,n;F ILE*fp;f p=fopen("employee_list","wb");um); printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女 m--男): ");scanf("%s",&em[i].sex);printf("请输入年龄: ");scanf("%s",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%s",&em[i].wanges);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%s",em[i].tel);printf("\n");}s ave(n);}2.浏览模块void display(){i nt i;int m=load();p rintf(" 职工号\t姓名\t\t性别\t\t年龄\n");p rintf(" 学历\t\t工资\t\t住址\t\t电话\n");f or(i=0;i<m;i++){printf("%d\t",em[i].num);printf("%s\t",em[i].name);printf("%s\t",em[i].sex);printf("%s\t",em[i].age);printf("%s\t",em[i].xueli);printf("%s\t",em[i].wanges);printf("%s\t",em[i].addr);printf("%s\t",em[i].tel);printf("\n");}}2.查询模块void search(){i nt a;p rintf("\n按职工号查询请按1\n按学历查询请按2\n返回主菜单请按3\n"); s canf("%d",&a);s witch(a){case 1:printf("按职工号查询\n");search_num();break;case 2:printf("按学历查询\n");search_xueli();break;case 3:main();break;default: printf("您输入有误,请重新选择!\n"); break;}}(1)按工号查询void search_num(){i nt num,i,t; int m=load(); um){printf("\n已找到此人,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\n");printf(" 学历\t\t工资\t\t住址\t\t电话\n");printf("%d\t",em[i].num);printf("%s\t",em[i].name);printf("%s\t",em[i].sex);printf("%s\t",em[i].age);printf("%s\t",em[i].xueli);printf("%s\t",em[i].wanges);printf("%s\t",em[i].addr);printf("%s\t",em[i].tel);printf("\n");break;}if(i==m) ueli,xueli)==0){printf("\n已找到,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\n");printf(" 学历\t\t工资\t\t住址\t\t电话\n");printf("%d\t",em[i].num);printf("%s\t",em[i].name);printf("%s\t",em[i].sex);printf("%s\t",em[i].age);printf("%s\t",em[i].xueli);printf("%s\t",em[i].wanges);printf("%s\t",em[i].addr);printf("%s\t",em[i].tel);printf("\n");}i f(i==m)printf("\n对不起,查无此人\n");p rintf("\n");p rintf("返回查询函数请按1,继续查询学历请按2\n"); s canf("%d",&t);s witch(t){case 1:search();break;case 2:search_xueli();break;default :break;}}6.程序代码#include <>#include <>入职工信息\n");printf("2.浏览职工信息\n");printf("3.查询职工信息\n");printf("4.退出\n");printf("请按功能序号:\n");scanf("%d",&n);switch(n){case 1:append();break;case 2:display();break;case 3:search();break;case 4:exit(0);n=0;break ;default:printf("输入错误指令\n");}}p rintf("\n按任意键继续\n");g etch();}void append(){i nt i,n;F ILE*fp;f p=fopen("employee_list","wb");um);printf("请输入姓名: ");scanf("%s",em[i].name);getchar();printf("请输入性别(f--女 m--男): ");scanf("%s",&em[i].sex);printf("请输入年龄: ");scanf("%s",&em[i].age);printf("请输入学历: ");scanf("%s",em[i].xueli);printf("请输入工资: ");scanf("%s",&em[i].wanges);printf("请输入住址: ");scanf("%s",em[i].addr);printf("请输入电话: ");scanf("%s",em[i].tel);printf("\n");}s ave(n);}void save(int n)um);printf("%s\t",em[i].name);printf("%s\t",em[i].sex);printf("%s\t",em[i].age);printf("%s\t",em[i].xueli);printf("%s\t",em[i].wanges);printf("%s\t",em[i].addr);printf("%s\t",em[i].tel);printf("\n");}}void search(){i nt a;p rintf("\n按职工号查询请按1\n按学历查询请按2\n返回主菜单请按3\n");s canf("%d",&a);s witch(a){case 1:printf("按职工号查询\n");search_num();break;case 2:printf("按学历查询\n");search_xueli();break;case 3:main();break;default: printf("您输入有误,请重新选择!\n"); break;}}void search_num(){i nt num,i,t; int m=load(); um){printf("\n已找到此人,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\n");printf(" 学历\t\t工资\t\t住址\t\t电话\n");printf("%d\t",em[i].num);printf("%s\t",em[i].name);printf("%s\t",em[i].sex);printf("%s\t",em[i].age);printf("%s\t",em[i].xueli);printf("%s\t",em[i].wanges);printf("%s\t",em[i].addr);printf("%s\t",em[i].tel);printf("\n");break;}if(i==m) ueli,xueli)==0){printf("\n已找到,其记录为:\n");printf(" 职工号\t姓名\t\t性别\t\t年龄\n");printf(" 学历\t\t工资\t\t住址\t\t电话\n");printf("%d\t",em[i].num);printf("%s\t",em[i].name);printf("%s\t",em[i].sex);printf("%s\t",em[i].age);printf("%s\t",em[i].xueli);printf("%s\t",em[i].wanges);printf("%s\t",em[i].addr);printf("%s\t",em[i].tel);printf("\n");}i f(i==m)printf("\n对不起,查无此人\n");p rintf("\n");p rintf("返回查询函数请按1,继续查询学历请按2\n"); s canf("%d",&t);s witch(t){case 1:search();break;case 2:search_xueli();break;default :break;}}7.程序运行结果1.运行程序菜单模块初始化,如图1.按1进入职工信息录入模块,输入职工信息工号007,姓名007,性别M,年龄30,学历zhongguodizhidaxue,工资9999,住址beiqu21d电话888888如图2.在输入完N个数据后,按2进入职工信息浏览模块,看到信息3.按3进入职工查询模块,如图按1进入按职工号查询模块,输入007查询,如图按2进入学历查询模块,输入zhongguodizhidaxue,如图按1返回查询函数,按4退出,如图8.编程中遇到的困难及解决方法这一次老师让我们从第8题和第21题中选,瞄了两眼,决定选职工信息管理第8题,没想到这么难弄,足足用了两周时间才搞定。