职工工作量统计课程设计报告.docx
- 文档编号:8982909
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:46
- 大小:697.26KB
职工工作量统计课程设计报告.docx
《职工工作量统计课程设计报告.docx》由会员分享,可在线阅读,更多相关《职工工作量统计课程设计报告.docx(46页珍藏版)》请在冰豆网上搜索。
职工工作量统计课程设计报告
<<职工工作量统计系统>>
程序设计基础课程设计报告
学院:
信息科学与技术学院
专业:
电子信息工程
班级:
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工 工作量 统计 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)