C语言程序设计.docx
- 文档编号:3457074
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:61
- 大小:262.41KB
C语言程序设计.docx
《C语言程序设计.docx》由会员分享,可在线阅读,更多相关《C语言程序设计.docx(61页珍藏版)》请在冰豆网上搜索。
C语言程序设计
《C语言程序设计》
课程设计报告
题目:
职工信息管理系统
专业:
数学与计算科学
班级:
1009-301
姓名:
李军陈辉煌曾超群阳恩成张琦
指导教师:
李又良
成绩:
二〇一一年六月一日
课程设计报告——职工信息管理系统
1、研究背景及意义
由于现今的职工信息管理非常繁琐,管理人员付出大量的工作时间,得到的效率很低。
因此为提高工作效率,为了减轻轻单位人工对职工信息进行登记,查找的工作,进而设计出一个功能更完善,合理,先进的职工信息管理系统来管理。
开发此职工信息管理系统软件,以供教学人员及操作者进行职工管理,方便操作者随时添加、查询、修改职工信息。
2、课程设计题目描述和要求
对职工信息的管理是每企业中的重要组成部分,其内容较多,为了简化讨论,职工信息主要包括:
职工号、姓名、性别、出生年月、学历、职务、工资、地址、电话。
系统功能:
1)、输入功能:
可以多次次完成多个职工所有信息
2)、浏览功能:
可以一次性浏览职工的所有信息
3)、查询功能:
可以按职工号和工资两种方式查询
4)、修改功能:
可以随时对职工的信息进行修改
5)、删除功能:
可以对职工的信息进行删除
6)、排序功能:
可以按职工号降序排列
0)、推出本系统
功能模块分工:
李军:
程序设计与信息输入、浏览
陈辉煌:
页面设计与信息查询
曾超群:
信息修改
阳恩成:
信息删除
张琦:
信息排序
3、课程设计报告内容
3.1职工管理系统的理论依据及算法
主要数据结构:
typedefstruct
{
intnumber;/*职工号*/
charname[20];/*姓名*/
charsex[8];/*性别*/
floatyear;/*出生年月日*/
chareducat[20];/*学历*/
charduty[20];/*职务*/
floatwage;/*工资*/
charplace[20];/*住址*/
doubletel;/*电话*/
}Student;
Studentstu[100];/*结构体数组变量*/
各函数的功能和实现:
整个系统除了主函数外,另外还有10个函数,实现七大功能:
输入功能、显示功能、查找功能、修改功能、删除功能、排序功能。
各个函数的详细设计说明分别如下:
1、主函数main()
利用无限次循环for(;;)和swithch()实现各函数的调用,系统根据输入的数字选项来调用相应的函数。
2、菜单选择函数switch(menu())
这是一个无参函数,主要实现“功能选择”的界面,在这个界面里有显示系统的七大功能,根据每个功能前面的序号进行选择。
等执行完每一个函数功能后,按任一键回到主界面也要通过这个函数来实现!
3、输入记录函数intInput(Studentstud[],intn)
这是一个无参函数,用来执行职工信息的输入,当学生九类信息全部输入后,系统提示“继续写入成绩?
Y/N”,选择“N”函数结束。
4、显示记录函数voidDisplay(Studentstud[],intn)
这是一个不返回值的有参函数,形参为数组,负责对全部职工信息的输出,不足之处就是不能对职工信息进行分页显示。
5、查找记录函数voidSearch(Studentstud[],intn)
这是一个不返回值的有参函数,形参为数组,分别实现按职工号或工资对某个职工进行查找,并显示所查找到的记录。
6、修改函数voidModify(Studentstud[],intn)
这是一个有参函数,形参为数组,能将之前输入的数据进行修改。
7、删除记录函数intDelete(Studentstud[],intn)
这是一个有参函数,形参为数组,先输入要删除的职工的职工号,找到后显示该职工信息,直接进行删除。
8、排序函数voidSort(Studentstud[],intn)
在Studentstud[]这个结构数组中按职工号进行由大到小排序:
voidSort(Studentstud[],intn)/*冒泡法排序*/。
3.2流程图
3.3、源程序如下:
#include
#include
#include
#include
typedefstruct
{intnumber;/*职工号*/
charname[20];/*姓名*/
charsex[8];/*性别*/
floatyear;/*出生年月日*/
chareducat[20];/*学历*/
charduty[20];/*职务*/
floatwage;/*工资*/
charplace[20];/*住址*/
doubletel;/*电话*/
}Student;
Studentstu[100];/*结构体数组变量*/
intmenu()/*菜单函数*/
{
charc;
do
{
//system("cls");/*运行前清屏*/
printf("┏---------------------------------MENU---------------------------------┓");/*菜单选择*/
printf("│⊙ω⊙<<1>>录入职工信息│");
printf("│≧ω≦<<2>>显示所有职工信息│");
printf("│ˋ▂ˊ<<3>>查询职工信息│");
printf("│ˇ△ˇ<<4>>修改职工信息并保存│");
printf("│˙︿˙<<5>>删除职工信息│");
printf("│ ̄□ ̄<<6>>按职工号降序排列│");
printf("│●△●<<0>>退出本系统│");
printf("│***********作者:
1009301班完美组合*********│");
printf("┗----------------------------请选择你需要的操作----------------------┛");
printf("========>请输入数字0~9:
\n");
c=getchar();/*读入选择*/
}
while(c<'0'||c>'5');
return(c-'0');/*返回选择*/
}
intInput(Studentstud[],intn)/*输入若干条记录*/
{
inti=0;
charsign='y',x[10];/*x[10]为清除多余的数据所用*/
while(sign!
='n'&&sign!
='N')/*选择判断*/
{
printf("----------请输入职工号----------:
");/*交互输入*/
scanf("%d",&stud[n+i].number);
printf("----------请输入职工的姓名------:
");
scanf("%s",&stud[n+i].name);
printf("----------请输入职工的性别------:
");
scanf("%s",&stud[n+i].sex);
printf("----------请输入职工的出生年月日:
");
scanf("%f",&stud[n+i].year);
printf("----------请输入职工的学历------:
");
scanf("%s",&stud[n+i].educat);
printf("----------请输入职工的职务------:
");
scanf("%s",&stud[n+i].duty);
printf("----------请输入职工的工资------:
");
scanf("%f",&stud[n+i].wage);
printf("----------请输入职工的住址------:
");
scanf("%s",&stud[n+i].place);
printf("----------请输入职工的电话------:
");
scanf("%lf",&stud[n+i].tel);
gets(x);/*清除多余的输入*/
printf("%s\n",stud[n+i].name);
printf("=====>提示:
继续写入成绩?
(Y/N)");
scanf("%c",&sign);/*输入判断*/
i++;
}
return(n+i);
}
voidDisplay(Studentstud[],intn)/*显示所有记录*/
{
inti;
if(!
stud)
printf("没有记录");
else
{
printf("┏--------------------------------------------------------------------------------┓\n");/*格式头*/
printf("职工号\t姓名\t性别\t生日\t学历\t职务\t工资\t住址\t电话\n");
printf("┗--------------------------------------------------------------------------------┛\n");
for(i=1;i { printf("%d\t",stud[i-1].number); printf("%s\t",stud[i-1].name); printf("%s\t",stud[i-1].sex); printf("%6.0f",stud[i-1].year); printf("%s\t",stud[i-1].educat); printf("%s",stud[i-1].duty); printf("%8.0f\t",stud[i-1].wage); printf("%s\t",stud[i-1].place); printf("%11.0lf",stud[i-1].tel); printf("\n"); } printf("\t\t\t\n"); } } voidSearch(Studentstud[],intn)/*查找并显示一个记录*/ { ints=0; inti=0; intt=0; printf("按职工号查找请输入1,按工资查找请输入2\n"); scanf("%d",&t); switch(t)/*选择判断*/ { case1: /*按职工号查找*/ printf("输入需要查找职工的职工号: \n"); scanf("%d",&s); while((stud[i].number-s)! =0&&i if(i==n) { printf("=====>提示: 对不起,无法找到该职工的信息! \n");/*输入失败信息*/ return; } printf("-------------------------------------\n");/*输出该职工信息*/ printf("职工号: %d\n",stud[n-1].number); printf("姓名: %s\n",stud[n-1].name); printf("性别: %s\n",stud[n-1].sex); printf("出生年月日: %8.0f\n",stud[n-1].year); printf("学历: %s\n",stud[n-1].educat); printf("职务: %s\n",stud[n-1].duty); printf("工资: %f\n",stud[n-1].wage); printf("住址: %s\n",stud[n-1].place); printf("电话: %11.0lf\n",stud[n-1].tel); printf("\n"); break; case2: /*按姓名查找*/ printf("输入需要查找职工的工资: \n"); scanf("%d",&s); while((stud[i].wage-s)! =0&&i if(i==n) { printf("=====>提示: 对不起,无法找到该职工的信息! \n");/*输入失败信息*/ return; } printf("-------------------------------------\n");/*输出该职工信息*/ printf("职工号: %d\n",stud[n-1].number); printf("姓名: %s\n",stud[n-1].name); printf("性别: %s\n",stud[n-1].sex); printf("出生年月日: %8.0f\n",stud[n-1].year); printf("学历: %s\n",stud[n-1].educat); printf("职务: %s\n",stud[n-1].duty); printf("工资: %f\n",stud[n-1].wage); printf("住址: %s\n",stud[n-1].place); printf("电话: %11.0lf\n",stud[n-1].tel); printf("\n"); break; } } voidModify(Studentstud[],intn)/*修改职工信息*/ { ints=0; inti=0; printf("输入需要修改职工信息的职工号: \n"); scanf("%d",&s); while((stud[i].number-s)! =0&&i if(i==n) { printf("=====>提示: 对不起,无该职工的信息……\n");/*输入失败信息*/ return; } printf("-----------------------------------该职工的信息---------------------------------\n");/*格式头*/ printf("┏--------------------------------------------------------------------------------┓\n");/*格式头*/ printf("职工号\t姓名\t性别\t生日\t学历\t职务\t工资\t住址\t电话\n"); printf("┗--------------------------------------------------------------------------------┛\n"); printf("--------------------------------------------------------------------------------\n"); printf("%d\t",stud[i-1].number); printf("%s\t",stud[i-1].name); printf("%s\t",stud[i-1].sex); printf("%6.0f",stud[i-1].year); printf("%s\t",stud[i-1].educat); printf("%s",stud[i-1].duty); printf("%8.0f\t",stud[i-1].wage); printf("%s\t",stud[i-1].place); printf("%11.0lf",stud[i-1].tel); printf("\n"); printf("请输入职工号: ");/*交互输入*/ scanf("%d",&stud[n+i].number); printf("请输入职工的姓名: "); scanf("%s",&stud[n+i].name); printf("请输入职工的性别: "); scanf("%s",&stud[n+i].sex); printf("请输入职工的出生年月日: "); scanf("%f",&stud[n+i].year); printf("请输入职工的学历: "); scanf("%s",&stud[n+i].educat); printf("请输入职工的职务: "); scanf("%s",&stud[n+i].duty); printf("请输入职工的工资: "); scanf("%f",&stud[n+i].wage); printf("请输入职工的住址: "); scanf("%s",&stud[n+i].place); printf("请输入职工的电话: "); scanf("%lf",&stud[n+i].tel); printf("%s\n",stud[n+i].name); } intDelete(Studentstud[],intn)/*按职工号查找,删除一条记录*/ { ints=0; inti=0,j; printf("输入需要删除职工的职工号: \n");/*交互式问寻*/ scanf("%d",&s); while((stud[i].number-s)! =0&&i if(i==n) { printf("=====>提示: 对不起,无法找到该职工号……\n");/*返回失败信息*/ return(n); } for(j=i;j { strcpy(stud[j].name,stud[j+1].name); stud[j].number=stud[j+1].number; strcpy(stud[j].sex,stud[j+1].sex); stud[j].year=stud[j+1].year; strcpy(stud[j].educat,stud[j+1].educat); strcpy(stud[j].duty,stud[j+1].duty); stud[j].wage=stud[j+1].wage; strcpy(stud[j].place,stud[j+1].place); stud[j].tel=stud[j+1].tel; } printf("=====>提示: 已成功删除! \n");/*返回成功信息*/ return(n-1); } voidSort(Studentstud[],intn)/*按职工号排序*/ { inti,j,k; floats; chart[20]; for(i=0;i for(j=0;j if(stud[j].number { k=stud[j+1].number; stud[j+1].number=stud[j].number; stud[j].number=k; strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); strcpy(t,stud[j+1].sex); strcpy(stud[j+1].sex,stud[j].sex); strcpy(stud[j].sex,t); s=stud[j+1].year; stud[j+1].year=stud[j].year; stud[j].year=s; strcpy(t,stud[j+1].educat); strcpy(stud[j+1].educat,stud[j].educat); strcpy(stud[j].educat,t); strcpy(t,stud[j+1].duty); strcpy(stud[j+1].duty,stud[j].duty); strcpy(stud[j].duty,t); s=stud[j+1].wage; stud[j+1].wage=stud[j].wage; stud[j].wage=s; strcpy(t,stud[j+1].place); strcpy(stud[j+1].place,stud[j].place); strcpy(stud[j].place,t); s=stud[j+1].tel; stud[j+1].tel=stud[j].tel; stud[j].tel=s; } printf("┏--------------------------------------------------------------------------------┓\n");/*格式头*/ printf("职工号\t姓名\t性别\t生日\t学历\t职务\t工资\t住址\t电话\n"); printf("┗--------------------------------------------------------------------------------┛\n"); for(i=1;i { printf("%d\t",stud[i-1].number); printf("%s\t",stud[i-1].name); printf("%s\t",stud[i-1].sex); printf("%6.0f",stud[i-1].year); printf("%s\t",stud[i-1].educat); printf("%s",stud[i-1].duty); printf("%8
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计
![提示](https://static.bdocx.com/images/bang_tan.gif)