职工工作量统计课程设计报告.docx

上传人:b****7 文档编号:8982909 上传时间:2023-02-02 格式:DOCX 页数:46 大小:697.26KB
下载 相关 举报
职工工作量统计课程设计报告.docx_第1页
第1页 / 共46页
职工工作量统计课程设计报告.docx_第2页
第2页 / 共46页
职工工作量统计课程设计报告.docx_第3页
第3页 / 共46页
职工工作量统计课程设计报告.docx_第4页
第4页 / 共46页
职工工作量统计课程设计报告.docx_第5页
第5页 / 共46页
点击查看更多>>
下载资源
资源描述

职工工作量统计课程设计报告.docx

《职工工作量统计课程设计报告.docx》由会员分享,可在线阅读,更多相关《职工工作量统计课程设计报告.docx(46页珍藏版)》请在冰豆网上搜索。

职工工作量统计课程设计报告.docx

职工工作量统计课程设计报告

<<职工工作量统计系统>>

程序设计基础课程设计报告

 

学院:

信息科学与技术学院

专业:

电子信息工程

班级:

2012级2班

学号:

姓名:

指导教师:

郭理

2013年3月8日

 

一、设计题目与要求

1.1设计题目

职工工作量统计系统

1.2设计要求

编写有一个程序,该程序输入职工工号和完成的产品数量,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。

程序按完成数量对他们排序,并确定他们的名次。

按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及他们的工号要求完成以下功能:

二、总体设计

2.1总体功能框架

 

2.2数据结构概要设计

classstu

 

三、详细设计

3.1数据结构详细设计

classstu

{

charname[20];

doublemuch,sum;

public:

stu()

{

3.2系统功能详细设计

3.2.1函数的原型的声明

friendvoidmain();

voidmain()

3.2.2函数功能

voidmenu();//菜单显示函数

voidinput();//输入数据函数

voidsort();//排序数据函数

voiddisplay();//显示数据函数

voiddisplay1();//显示各科成绩函数

voiddisplay2();//列出所有总成绩超过n分的性别为s同学的有关信息函数

voiddisplay3();//计算某人的总分和平均分

voidinsert();//插入数据函数

voiddel();//删除数据函数

voidaverage();//平均值函数

voidfind();//查找数据函数

voidsave();//保存数据函数

voidread();//读出数据函数

voiddel_file();//删除文件函数

voidmodify();//修改文件函数

3.2.3函数形参说明

函数无形参

3.2.4函数算法相关的流程图

1)

登陆函数

 

2)菜单显示函数

3)输入数据函数

4)排序数据函数

 

5)列出所有总成绩超过n分的性别为s同学的有关信息函数

6)插入数据函数

7)删除数据函数

 

8)修改文件函数

9)查找数据函数

 

10)保存数据函数

11)读出数据函数

 

12)删除文件函数

 

四、运行结果

4.1登陆界面

图4-1

4.2主界面

图4-2

4.3学生信息录入模块

图4-3

4.4显示所有学生信息模块

图4-4

4.5显示学生单科成绩排名

图4-5

4.6列出所有总成绩超过n分的性别为s同学的有关信息

图4-6-1

图4-6-2

4.7计算某人的平均分和总分

图4-7

4.8添加学生信息

图4-8

4.9删除学生信息

图4-9

4.10修改学生信息

图4-10

4.11查询学生信息

图4-11-1

图4-11-2

4.12保存学生信息

图4-12

4.13删除文件中所有学生信息

图4-13

4.14读取文件中的学生信息

图4-14

五、课程设计总结

通过这次的课程设计,让我充分的感觉到了要自己设计一个程序是多么的难,以及学习好c++是多么的重要。

从一遍一遍得修改到最后的定稿,使我在知识和能力上都得到了极大的提高,在这个程序的设计过程中,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。

看网上的例子好像觉得也没那么难,自己在上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括号或是分号,导致要找很久很久。

虽然系统可以运行,也具有了一些基本的功能,但我意识到了自己有太多的不足。

以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才能真正的发挥所长。

本次的课程设计对我们也是一个很好的实践的机会,锻炼了自己,提高了自己编程的能力,为今后的项目打好基础。

 

六、编程中的问题及解决方法

a)把学生信息保存成文件与从文件中读取学生信息

b)使用链表

对于a的解决方法:

翻阅资料和网上查询,

对于b的解决方法:

采用结构体数组

 

七、心得体会

a)对于程序设计有了新的认识,一个好的程序员必须要对程序整体有足够的认识,才能够写出一个完美的程序。

b)要想对每一个代码熟悉,只有不停的实验和不停的变形不同的程序来检验它的作用,正如“实验室检验真理的唯一标准”。

同样的对于编程也是如此。

c)熟悉程序是怎样运行的,每一个函数调用的目的、每一个函数的作用和功能。

具体是怎样执行的,这些问题都必须弄得透彻。

 

八、程序设计的方法

采用面向过程的办法及冒泡法设计系统

 

九、程序运行环环境

Windowsxpwindos7LINUX

 

十、参考文献

1.《C++程序设计》作者:

谭浩强清华大学出版社

2.《VisualC++6.0程序设计从入门到精通》作者:

王正军人名邮电出版社

 

附:

程序源代码

//学生成绩管理系统

//用户名:

123456密码:

123456

#include

#include

#include//清屏

#include//显示目录

#include

#defineMAX1000

usingnamespacestd;

voidmenu();//菜单显示函数

voidinput();//输入数据函数

voidsort();//排序数据函数

voiddisplay();//显示数据函数

voiddisplay1();//显示各科成绩函数

voiddisplay2();//列出所有总成绩超过n分的性别为s同学的有关信息函数

voiddisplay3();//计算某人的总分和平均分

voidinsert();//插入数据函数

voiddel();//删除数据函数

voidaverage();//平均值函数

voidfind();//查找数据函数

voidsave();//保存数据函数

voidread();//读出数据函数

voiddel_file();//删除文件函数

voidmodify();//修改文件函数

intnow_no=0;//定义一个全局变量用于记录录入多少个学生

structCstudent//定义学生信息

{

intno;//学号

charname[20];//姓名

charsex[4];//性别

intage;//年龄

floatscore1;//数学成绩

floatscore2;//计算机成绩

floatscore3;//外语成绩

floatsort;//排序成绩

floatave;//平均分

floatsum;//总分

};

structCstudentstu[MAX];

intmain()

{

system("color2b");

inth,flag1,flag2;

charname[20]="123456",password[10]="123456";

charperson[20],password1[10];

cout<<"\t\t********欢迎进入学生成绩管理系统!

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

cout<<"\t\t\t用户登录\n\n";

for(h=0;h!

=5;)

{

cout<<"\t\t\t\t用户名:

";

gets(person);

flag1=strcmp(person,name);

cout<<"\t\t\t\t密码:

";

gets(password1);

flag2=strcmp(password,password1);

if(flag1==0&&flag2==0)

{

cout<<"\t\t\t\t登陆成功!

\n\n";

menu();//调用菜单显示函数

break;

}

else

{

system("cls");

cout<<"\t\t\t\t用户名或密码错误!

\n\n";

cout<<"\t\t请注意:

您还剩"<<4-h<<"次机会!

请核对后重新输入。

\n\n";

cout<<"\t\t********欢迎进入学生成绩管理系统!

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

h++;

}

}

if(h=5)

system("cls");

cout<<"\n\n\t\t对不起,您输入的用户名或密码有误,已被强制退出。

\n\n";

return0;

}

voidmenu()//菜单显示函数

{

inta;

charch;

do{

cout<<"\n\n\n\n\t\t****&****&****&****&****&****&****&****&****&****";

start:

cout<<"\n\n\n\n\t\t\t欢迎使用学生成绩管理系统\n";

cout<<"\n\n\n\n\t\t******************按任意键继续********************";

ch=getch();

}while(!

ch);

system("cls");

//以下为功能选择模块

do

{

cout<<"\t\t***********************************************\n";

cout<<"\t\t****************************周键家*******\n";

cout<<"\t\t****************************电信12*******\n";

cout<<"\t\t***********************************************\n";

cout<<"\n\t\t\t\t1.录入学生信息\n\t\t\t\t2.显示学生总成绩信息\n\t\t\t\t3.对总成绩排序\n\t\t\t\t4.显示学生单科成绩排序\n\t\t\t\t5.显示所有总成绩超过n分的性别为s同学的有关信息\n\t\t\t\t6.计算某人的总分和平均分\n\t\t\t\t7.添加学生信息\n\t\t\t\t8.删除学生信息\n\t\t\t\t9.修改学生信息\n\t\t\t\t10.查询学生信息\n\t\t\t\t11.从文件读入学生信息\n\t\t\t\t12.删除文件中学生信息\n\t\t\t\t13.保存学生信息\n\t\t\t\t14.退出\n";

cout<<"\t\t\t\t选择功能选项(输入所选功能前的数字):

";

cout<<"\n\n\t\t***********************************************\n";

cout<<"\t\t***********************************************\n";

cout<<"\t\t***********************************************\n";

cout<<"\t\t***********************************************\n";

cout<<"\t\t";cin>>a;

switch(a)

{

case1:

system("cls");//清屏

input();

break;

case2:

system("cls");

display();

break;

case3:

system("cls");

sort();

break;

case4:

system("cls");

display1();

break;

case5:

system("cls");

display2();

break;

case6:

system("cls");

display3();

break;

case7:

system("cls");

insert();

break;

case8:

system("cls");

del();

break;

case9:

system("cls");

modify();

break;

case10:

system("cls");

find();

break;

case11:

system("cls");

read();

break;

case12:

system("cls");

del_file();

break;

case13:

system("cls");

save();

break;

case14:

system("exit");

exit(0);

default:

system("cls");

cout<<"没有该指令,无法进行操作!

!

!

!

!

!

";

gotostart;//返回start

}

}while

(1);//while

(1),1表示真,所以while

(1)表示永远循环下去

}

voidinput()//学生信息录入模块

{

inti=0;

charch,as;

do

{

cout<<"\t\t\t\t1.录入学生信息\n输入第"<

cout<<"\n输入学生学号(请输入一个10位数的数字):

";

cin>>stu[i].no;

fflush(stdin);//清空前面输入的缓存,以便不影响后面的输入

while(stu[i].no<1000000000||stu[i].no>9999999999)

{

system("cls");

cout<<"\t\t\t\t1.录入学生信息\n输入第"<

cout<<"\n请重新输入学生学号(请输入一个10位数的数字):

";

cin>>stu[i].no;

}

cout<<"\n输入学生姓名:

";

fflush(stdin);

cin>>stu[i].name;

cout<<"\n输入学生性别:

";

fflush(stdin);

cin>>stu[i].sex;

cout<<"\n输入学生年龄:

";

fflush(stdin);

cin>>stu[i].age;

cout<<"\n输入学生数学成绩:

";

fflush(stdin);

cin>>stu[i].score1;

cout<<"\n输入学生计算机成绩:

";

fflush(stdin);

cin>>stu[i].score2;

cout<<"\n输入学生外语成绩:

";

fflush(stdin);

cin>>stu[i].score3;

cout<<"\n\n";

i++;

now_no=i;

cout<<"是否继续输入?

(Y/N)";

fflush(stdin);

ch=getch();

if(ch=='n'||ch=='N')

{

cout<<"\n\n录入已完成,是否保存?

(Y/N)";

cin>>as;

if(as=='Y'||as=='y')

save();

}

system("cls");

}

while(ch!

='n'&&ch!

='N');

system("cls");

}

voidsort()//排序数据函数

{

structCstudenttemp;

inti,j;

average();

for(i=1;i

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1].ave

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

cout<<"排序已完成进入功能2可进行显示\n";

system("pause");

system("cls");

}

voidsort1()//数学成绩排序函数

{

structCstudenttemp;

inti,j;

for(i=1;i

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1].score1

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

voidsort2()//计算机成绩排序函数

{

structCstudenttemp;

inti,j;

for(i=1;i

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1].score2

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

voidsort3()//外语成绩排序函数

{

structCstudenttemp;

inti,j;

for(i=1;i

{

for(j=1;j<=now_no-i;j++)

{

if(stu[j-1].score3

{

temp=stu[j];

stu[j]=stu[j-1];

stu[j-1]=temp;

}

}

}

}

voiddisplay()//显示数据函数

{

inti;

charas;

average();

do

{

cout<<"\t\t\t班级学生信息列表\n";

cout<<"\n---------------------------------------------------------------------\n";

cout<<"学号\t姓名\t性别\t年龄\t数学\t计算机\t外语\t平均分\n";

for(i=0;i

printf("%u\t%s\t%s\t%u\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);

cout<<"\n---------------------------------------------------------------------\n";

cout<<"\t\t\t按任意键返回主菜单";

fflush(stdin);

as=getch();

}

while(!

as);

system("cls");

}

voiddisplay1()//显示各科成绩排序函数

{

inti;

charas;

do

{

cout<<"\t\t\t班级学生数学成绩排序\n";

cout<<"---------------------------------------------------------------------\n";

cout<<"学号\t姓名\t性别\t年龄\t数学\n";

sort1();

for(i=0;i

printf("%u\t%s\t%s\t%u\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].age,stu[i].score1);

cout<<"---------------------------------------------------------------------\n\n";

cout<<"\t\t\t班级学生计算机成绩排序\n";

cout<<"---------------------------------------------------------------------\n";

cout<<"学号\t姓名\t性别\t年龄\t计算机\n";

sort2();

for(i=0;i

printf("%u\t%s\t%s\t%u\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].age,stu[i].score2);

cout<<"---------------------------------------------------------------------\n\n";

cout<<"\t\t\t班级学生外语成绩排序\n";

cout<<"---------------------------------------------------------------------\n";

cout<<"学号\t姓名\t性别\t年龄\t外语\n";

sort3();

for(i=0;i

printf("%u\t%s\t%s\t%u\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].a

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

当前位置:首页 > 解决方案 > 学习计划

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

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