封面
此页统一购买注意本页以下两项的填写
指导老师:李筠虞闯
完成日期:2016-6-5
成绩评定表
课程设计任务书
目录
1、内容及要求 ................................................ 错误!未定义书签。
2、功能分析 .................................................... 错误!未定义书签。
3、设计 ............................................................ 错误!未定义书签。
4、运行与测试 ................................................ 错误!未定义书签。
5、总结 ............................................................ 错误!未定义书签。
参考文献 .......................................................... 错误!未定义书签。
1、内容及要求
1.1内容:
人事档案管理:建立数据文件(职工、部门、职称)完成:①数据录入②查询③插入、删除、修改④排序等功能。
1.2要求:
1.程序代码完成,编译运行成功。
2.数据输入首选采用文件的方式,其次键盘输入。
3.分析采用哪种合适的存储结构来储存数据
4.设计一定的用户界面,简洁。
2、功能分析
2.1. 程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。
在人事管理过程中,由于预计记录对于一个单位的人事数来说太大,操作除了能够增加、删除、修改、保存等外,更多的情况是查询,且能够实现快速查询。
特别是当需要动态变化时利用指针,例如插入和删除数据等操作时,为方便插入和删除人事记录,通过数据的自动的移动数据,实现动态管理。
2.2本系统涉及的模块主要有:开始、系统管理、人事管理、信息查询等四大模块。
(1)开始界面主要包括:
各个功能的选择。
(1)人事管理主要包括:
(编号、姓名等)基本内容的录入,增加等。
(2)
系统管理主要包括:员工信息的修改,排序等。
(3)
信息查询主要包括:员工信息的查找、删除等。
2.3功能模块图
图2.1 功能模块图
3、设计
1)存储结构内容
2)数据类型定义
struct student //定义一个职工信息的结构体 { char num[10];
char name[10];
char tel[10];
char salary[10];
char address[21];
};
3)菜单模块:显示职工管理系统的主菜单,供用户选择所需的功能,通过自己定义的void shuchu()函数和一个switch()语句来实现。
void shuchu() /*显示菜单界面*/
{//clrscr();
printf("\n\n\n\n\n\n");
printf(" | ------------------------你好欢迎使用-------------------|\n");
printf(" | 请输入选项编号(0~7): |\n");
printf("
|-------------------------------------------------------------|\n"); printf(" | 1---职工档案的创建 |\n");
printf(" | 2---职工档案的显示 |\n");
printf(" | 3---职工档案的查询 |\n");
printf(" | 4---职工档案的修改 |\n");
printf(" | 5---职工档案的添加 |\n");
printf(" | 6---职工档案的删除 |\n");
printf(" | 7---职工档案的排序 |\n");
printf(" | 0---退出 |\n");
printf("
|-------------------------------------------------------------|\n"); }
choose=getch(); /*函数getch()的功能是从键盘上读入一个单独的字符,字符不回显在屏幕上*/
switch(choose)
{
case '1':chuangjian();break;
case '2':xianshi();break;
case '3':chaxun();break;
case '4':xiugai();break;
case '5':tianjia();break;
case '6':shanchu();break;
case '7':paixu();break;
case '0':break;
default:printf("\n %c违法选项!\n",choose);
}
if(choose=='0') break;
printf("\n 要继续选择吗(Y/N)?\n");
do
{yes_no=getche();
}while(yes_no!='Y' && yes_no!= 'y' && yes_no!='N' && yes_no!='n');
}while(yes_no=='Y'|| yes_no=='y');
}
4)创建模块:输入职工的工号、姓名以及其它的一些职工的相关信息,通过自己定义的void chuangjian()函数来实现。
5).显示模块:浏览所有职工的相关信息,通过自己定义的void 显示()函数来实现。
6).查询模块:可以按编号或者名字来查询职工的相关信息,通过自己定义的8).添加模块:添加需要添加的职工的相关信息,通过自己定义的void add()函数来实现。
9).删除模块:删除需要删除的职工的所有信息,通过自己定义的void del()函数来实现。
10.排序模块:可以根据编号和自己的名字来选择是否是升序还是降序,通过自己定义的void paixu()函数来实现。
4、运行与测试
测试程序功能,如下:
4.1菜单功能是否正常运行等等给出相应的界面。
如图4.1所示
图 4.1 程序运行图一
4.2创建功能是否正常运行等等给出相应的界面。
如图4.2所示
4.3查询功能是否正常运行等等给出相应的界面。
如图4.3所示
经测试,算法能够正确执行,程序运行正确。
图 4.2 程序运行图二 图 4.3程序运行图三
5、总结
课程设计过程中出现的技术难点和解决方法:
在进行课程设计过程中对文件操作的知识理解不够透彻,对排序的过程了解的不够全面不全面。
通过课设,进一步掌握了该算法的相关知识。
课程设计期间的主要收获:
通过这次课程设计使我对数据结构有了更深的了解,也明白了数据结构在生活中的实际应用,对文件读写方式,排序算法更加熟悉的掌握了,对数据结构的上机操作更加熟练,
课设对我们来说是一个很大的锻炼,我们可以学习到很多知识,通过课设,不仅懂得了相关算法,同时也开拓了自己的视野,通过去图书馆查询借阅相关图书,和与同学之间相互探讨,学到了比课设题目要求的还要多的其它知识。
参考文献
[1]《数据结构案例分析与习题解答》李筠、姜学军清华大学出版社,2013
[2]《c语言程序设计技巧》严斌清华大学出版社,2010。