程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx

上传人:b****6 文档编号:17408246 上传时间:2022-12-01 格式:DOCX 页数:36 大小:205.43KB
下载 相关 举报
程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx_第1页
第1页 / 共36页
程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx_第2页
第2页 / 共36页
程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx_第3页
第3页 / 共36页
程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx_第4页
第4页 / 共36页
程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx_第5页
第5页 / 共36页
点击查看更多>>
下载资源
资源描述

程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx

《程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx》由会员分享,可在线阅读,更多相关《程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx(36页珍藏版)》请在冰豆网上搜索。

程序设计基础课程设计报告c语言实现附源码员工工资管理系统模板Word文件下载.docx

统计输出

输出实发工资最高的员工工资信息。

统计输出员工实发工资的平均工资。

统计输出超过实发平均工资的员工人数。

排序

该模块按员工实发工资由高到低的顺序排序输出所有员工信息。

要求本系统采用结构体等数据结构。

系统以菜单方式工作。

2.学生学籍管理系统

设计一个利用文件处理方式,实现对学生学籍信息(包括:

学号,姓名,性别,年龄,籍贯,系别,专业,班级)进行添加、修改、删除、查找、统计输出等操作。

学生学籍管理系统的功能要求如下:

该模块完成将输入的数据存入数据文件中,用户一次可输入多个学生的学籍信息。

该模块用于实现对记录的修改,首先用户输入学生的学号,然后查询该学生的学籍信息,最后更新该学生的学籍的信息。

该模块可选择按学生的学号查询,或者按学生的姓名查询,再或者按学生的班级查询,然后列出满足条件的且未作删除标记的学生学籍信息。

该模块用于删除指定编号的学生学籍信息,为提高效率,只作删除标记,不在物理上删除信息,可称为逻辑删除。

该模块用于以列表方式显示所有未作删除标记的学生学籍信息。

1)按专业输出所有学生的学籍信息。

2)统计输出学生的平均年龄。

3)统计输出超过平均年龄的学生人数。

该模块按学生学号由低到高的顺序排序输出所有学生学籍信息。

3.班级成绩管理系统

对一个有N个学生的班级,每个学生有M门课程。

每个学生应当包括如下信息:

学号、姓名、M门课程名称。

该系统实现对班级成绩的添加、修改、删除、查找、统计输出等操作的管理。

功能要求如下:

该模块完成将输入的数据存入数据文件中,用户一次可输入多个学生的基本信息。

该模块用于实现对记录的修改,首先用户输入学生的学号,然后查询该学生的基本信息,最后更新该学生的基本信息。

该模块可选择按学生的学号查询,或者按学生的姓名查询,然后列出满足条件的且未作删除标记的学生基本信息。

该模块用于删除指定编号的学生基本信息,为提高效率,只作删除标记,不在物理上删除信息,可称为逻辑删除。

该模块用于以列表方式显示所有未作删除标记的学生基本信息。

1)显示每门课程成绩最高的学生的基本信息。

2)显示每门课程的平均成绩。

3)显示超过某门课程平均成绩的学生人数。

该模块按学生学号由低到高的顺序排序输出所有学生的基本信息。

课程设计要求:

课程设计从第一、二和三道题中选一道题完成。

其中,学号尾数为0、2、4、8的做第一道题;

学号尾数为1、3、7的做第二道题;

学号尾数为5、6、9的做第三道题。

系统要求在MicrosoftVisualC++6.0编译平台上采用C语言编程实现。

课程设计报告(要求正规打印,A4幅面),内容包括:

●题目

●需求与总体设计(描述系统要实现什么功能;

系统怎么实现,绘制系统功能模块结构图;

数据结构的设计及用法说明)

●详细设计(描述系统包含的主函数和子函数;

解释各个功能模块的软件功能;

画系统的总体流程图,某种查询、插入、删除程序实现的子函数流程图,要求采用标准流程图图符至少画两个流程图)

●编码与实现(只能使用C语言,源程序编写格式要按照缩进方式,源程序要有详细的注释,使程序容易阅读。

源程序编写格式的规范和注释体现程序员的素质,必须从本课程设计开始培养。

●运行结果(包括输入数据的结果,查询、修改、删除的结果,能够将输出的结果以截屏方式呈现到课程设计报告中)

●总结(必须真实的说出自己在课程设计中的切身体会。

例如:

课程设计如何构思、如何设计、如何编程、如何调试、遇到的主要问题和解决方法,哪些地方使你”痛苦不堪”;

创新之处;

课程设计中存在的不足,需进一步改进的设想等等。

注:

每人以班级+学号+姓名创立目录,目录需包括课程设计报告电子文档和源程序以备检查。

然后由各班学习委员汇总到U盘上统一提交。

三、原始资料

1.游洪跃,彭骏,谭斌.C语言程序设计实验与课程设计教程.北京:

清华大学出版社,.

2.孙承爱,赵卫东.程序设计基础—基于C语言(第2版).科学出版社,.

四、要求的设计(调查/论文)成果

1.课程设计报告

2.课程设计软件

五、进程安排

布置任务,查找资料、需求分析1天

总体设计1天

详细设计1天

编制源程序实现3天

测试与修改1天

撰写课程设计报告2天

六、主要参考资料

[1]谭浩强.C程序设计.第四版.清华大学出版社,.

[2]苏小红.C语言大学实用教程.第2版.电子工业出版社,.

指导教师(签名):

年月日

1需求与总体设计………………………………………………………………………1

2详细设计………………………………………………………………………1

3编码实现………………………………………………………………………4

4运行结果………………………………………………………………………21

总结…………………………………………………………………………………24

1需求与总体设计

1.1需求描述

设计一个利用文件处理方式实现对员工工资(包括员工编号、员工姓名、年月、岗位工资、奖金、扣款和实发)进行管理,具有增加数据、更新数据、查询数据、删除数据、列表显示数据以及重组文件的功能。

1.2总体设计

先以登陆函数登陆,再进入主菜单,菜单中显示各个要实现的操作,以菜单将各个函数联系起来,对菜单操作以实现系统的目的。

1.3数据结构

structuser//登陆者信息

{

charun[10];

charup[10];

}us[3]={"

aaa"

"

111"

bbb"

222"

ccc"

333"

};

structyg//员工结构体

shortzt;

//数据状态

longbh;

//编号

charname[20];

//名字

chartime[11];

//时间

longmoney;

//基本工资

longjj;

//奖金

longkk;

//扣款

longsf;

//实发工资

};

整个程序只运用了结构体的数据结构,结构体运用于登陆者信息和员工信息,将员工信息封装在一个结构体里,再创立结构体数组,将多个员工信息储存在结构体数组中。

2详细设计

2.1系统功能设计

主函数和子函数:

系统包含一个主函数,和子函数,分别有登陆子函数,菜单子函数,增加数据子函数,更新数据子函数,查询数据子函数,删除数据子函数,统计数据子函数,重组文件子函数,排序数据子函数,最后两个分别是读取文件和写入文件子函数。

各个函数的功能:

主函数是一个入口程序从这里进入,再进入登陆函数,实现登陆操作。

登陆函数,只有拥有正确账号密码,正确的操作才能够进入菜单界面进行下一步的操作,而且输入错误三次后将会提示并强制退出。

菜单界面利用switch()函数将各个函数联系起来实现真正的菜单,输入正确的序号能够进行后续的各个操作。

读取函数,将特定文件中的信息,以特定的方式读取到正在运行的程序中,实现读写操作。

写入函数,在添加、更新、删除、重组操作过后进行写入操作,将变换后的数据重新写入文件中。

每次写入都是将程序中的所有数据重新写入文件。

增加函数,能够新添员工,并将员工的数据输入,并利用写入函数,写入文件中。

在增加后会提示是否继续增加,提供了方便。

而且如果原数据中有相同编号的员工,会在输入编号后提示有相同的编号的员工,并重新输入编号。

增加了程序的健全性。

更新数据函数,以编号来确定更新的员工,更新将重新输入该编号员工的信息,并在更新后执行写入。

删除函数,执行该函数后,将有两种选择,按编号删除,或按名字删除,正确输入后将会将该编号或姓名的数据中的一项zt的值更改为1,使其在其它操作时不被识别,以达到不删除数据,但达到相同的效果的逻辑删除。

显示函数,有两种显示方式,按学号显示或按名字显示,学号显示为从小到大显示。

重组函数,将文件中逻辑删除的数据物理删除,用来节省储存空间,并能够加快运算速度。

统计数据,将文件中的数据统计、计算,并输出,给人以直观的方式显示数据。

排序函数,将数据以实发工资从大到小排序。

2.2系统流程设计

3编码实现

#defineMAX100

#include<

stdio.h>

string.h>

stdlib.h>

ygy[MAX];

//定义数据体数组

intr=0;

//全局变量,人数,包括逻辑删除人数

intp=0;

//登陆的次数,用全局变量能在登陆三次失败时退出程序

voidread()//读取文件函数

FILE*fp;

charb;

inti;

b='

0'

;

printf("

即将读取文件员工信息.dat\n"

);

if((fp=fopen("

员工信息.dat"

"

rb"

))==NULL)//读取文件

{

printf("

员工信息.dat文件不存在\n"

是否重新创立该文件?

\n"

创立(y)员工信息.dat或退出(n)\n"

getchar();

b=getchar();

while(getchar()!

='

\n'

if(b=='

Y'

||b=='

N'

b+=32;

while(b!

y'

&

b!

n'

{

printf("

输入错误!

请重新输入!

b=getchar();

while(getchar()!

if(b=='

b+=32;

}

if(b=='

if((fp=fopen("

wb"

))==NULL)//文件不存在则创立文件

{

printf("

创立文件失败!

按下任意键以退出程序!

getchar();

exit

(1);

}

}

if(b=='

fread(&

r,4,1,fp);

读取成功!

else

创立文件成功!

if(r!

=0)

for(i=0;

i<

r;

i++)

fread(&

y[i],sizeof(yg),1,fp);

fclose(fp);

}

voidsave()//保存文件函数

))==NULL)

保存文件失败!

exit

(1);

fwrite(&

if(r!

for(i=0;

fwrite(&

voidzj_data()//增加数据函数

ygyuangong;

intk=0;

yuangong.zt=0;

//新建员工信息时,状态为0

do//用循环来寻找、避免相同编号的员工

编号:

(例如:

123456)\n"

scanf("

%d"

&

yuangong.bh);

if(y[i].bh==yuangong.bh&

y[i].zt==0)

已有同编号员工无法添加!

k=1;

break;

elseif(i==r-1)

k=0;

}while(k==1);

姓名:

张三(ortom))\n"

scanf("

%s"

yuangong.name);

年月:

.11.11)\n"

yuangong.time);

岗位工资:

50000)\n"

yuangong.money);

奖金:

)\n"

yuangong.jj);

扣款:

100)\n"

yuangong.kk);

实发工资为:

(岗位工资+奖金-扣款)\n"

yuangong.sf=yuangong.money+yuangong.jj-yuangong.kk;

%d\n"

yuangong.sf);

y[r]=yuangong;

r++;

//新建员工信息时人数r++

save();

添加成功!

getchar();

//防止下面一个%c读取到上一个的回车

是否继续添加员工?

(y/n)\n"

b=getchar();

while(getchar()!

b+=32;

while(b!

zj_data();

voidgx_data()//更新数据

longnum;

\n请输入要更新的员工的编号!

num);

for(i=0;

if(y[i].bh==num&

y[i].zt==0)

yuangong=y[i];

当前该员工信息为:

yuangong.bh);

%s\n"

yuangong.money);

yuangong.jj);

yuangong.kk);

实发工资:

按下任意键输入更新后的信息!

getchar();

scanf("

yuangong.sf=yuangong.money+yuangong.jj-yuangong.kk;

y[i]=yuangong;

save();

更新成功!

break;

elseif(i==r-1)

查无此人!

voidcz_data()//查询数据

inta,i;

charna[10];

\n请选择查询方式!

//分为按编号查询和姓名查询

*******************\n"

*1、编号查询*\n"

*2、姓名查询*\n"

*3、返回菜单*\n"

a);

if(a==1)

请输入查询员工的编号:

"

i++)//编号查询则循环r次,查找状态为0且编号与所输入的数字相同的数据

if(y[i].zt==0&

y[i].bh==num)

yuangong=y[i];

elseif(a==2)

请输入查询员工的姓名:

na);

i++)//姓名查询则循环r次,查找状态为0且编号与所输入的字符串相同的数据

if((strcmp(y[i].name,na)==0)&

y[i].zt==0)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1