[高级语言程序设计]课程设计报告

2012-2013学年 第二学期

《高级语言程序设计》

课程设计报告

题目:

专业: 数字媒体技术 班级: 12(1) 姓名: 学号: 指导教师: 成绩:

计算机与信息工程系

年 月 日

目录

1设计内容及要求.........................................2 1.1设计内容.....................................................2 1.2设计任务及具体要求...........................................2 2概要设计.........................................................3 2.1该系统的功能简介.............................................3 2.2 总体程序框图.................................................3 2.3各个模块之间的主要关系........................................4 3 3 设计过程或程序代码............................................5 3.1各个模块的程序流程图及运行界面................................5 3.2对关键代码加以分析说明.......................................15 4程序调试分析.....................................................23 5小结.............................................................25 致谢...........................................................26 参考文献...........................................................27 附:源程序..........................................................28

1 设计内容及要求

1.1设计内容

《工资管理查询系统》主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:

1)职工个人说得税的计算模块,根据工资多余5000,在1000—5000之间,少余1000三种情况进行计算。

2)添加职工的工资信息模块,用户根据输入职工编号后,对工资信息进行录入。

3)职工工资查询模块,根据用户输入职工编号后,方可进行查询。 4)职工工资修改模块,用户输入职工编号后,对以前的信息进行修改。 5)数据输出模块,输出其相应的模块功能。

6)职工工资统计模块,根据输入的职工信息进行统计。

1.2设计任务及具体要求

主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。

要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。

2 概要设计

2.1系统的功能简介

该系统的主要功能是实现职工工资的录入,包括(录入职工的基本工资、实发工资、津贴、岗贴、补贴、房帖、交通补贴、储蓄、汇费)。对职工的工资信息进行删除、修改、个人所得税的计算。并统计职工的所有信息。

2.2

图2.2-B添加职工的工资信息

2.2各个模块之间的主要关系

该程序的功能主要是实现职工工资的录入,并对工资的相应信息进行个人所

得税的计算。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是整个程序的核心。子函数之间也是有联系的,对个人所得税的计算、职工工资信息的修改、删除、查询、统计,必须是在职工工资录入的情况下进行的。因此对职工工资信息的录入是非常重要的。在职工工资的修改、删除、查询、统计与个人所得税所有的子函数之间是没有多大联系的。

3 设计过程或程序代码

3.1各个模块的程序流程图

1)①主函数程序(N-S)流程图及运行界面 主函数程序(N-S)流程图(见图3.1-A) 主函数main()

图3.1-A主函数程序

简单说明:该功能主要显示的是给用户一个进入界面,它主要的是显示该程序主要能够执行的有哪些功能。下面是显示给用户的界面。(见图3.1-A)

②主函数程序运行界面:

图3.1B主函数界面

2)职工个人所得税(N-S)流程图(见图3.1-B)

图3.2-A

该程序主要根据职工的工资信息进行个人所得税的计算,当个人所得税m大于等于5000时,个人所得税tmp为(m-5000)*0.2;在1000

3)①录入职工的工资信息(N-S)流程图及程序运行界面

录入职工的工资信息(N-S)流程图(见图3.3-A)

图3.3-A

该模块主要是对职工的工资进行录入,录入的主要有职工的津贴、岗贴、补贴、房帖、交通补贴,并把该五项统计为职工的实发工资。还录入职工的房租、储蓄、汇费。

②录入职工的程序运行界面。(见图3.3-B)

图3.3-B录入职工的工资信息程序界面

4)删除职工记录的(N-S)流程图及程序运行界面

删除职工记录的(N-S)流程图(见图3.4-A)

图3.4-A删除职工记录程序

该模块主要通过已经输入的职工信息进行删除,如果你输入的信息存在或不存在,则分别显示以下运行界面。见图(3.4-B、C)

图3.4-B删除职工记录程序界面

图3.4-C删除职工记录程序界面

5)修改个人记录的(N-S)流程图及运行界面 修改个人记录的(N-S)流程图(见图3.5-A)

图3.5-A修改个人记录程序

修改个人记录是在原有的基础上对职工的工资信息进行修改,在修改的同时你可以看到该职工原来的工资信息。以下是修改职工工资信息过后的显示界面。(见图3.5-B)

图3.5-B修改个人记录的运行界面

6)查找职工记录的(N-S)流程图及运行界面

查找职工记录的(N-S)流程图(见图3.6-A)

图3.6-A查找职工记录的(N-S)流程图

该功能是对已经录入的职工信息进行查寻,如果你输入的职工编号存在,则显示职工的工资信息,如果不存在,则提示为“您查找的记录不存在”。运行界面如下。(见图3.6-B)

图3.6-B查找职工记录的运行界面

7)统计出所有的职工信息的(N-S)流程图及运行界面 统计出所有的职工信息的N-S流程图(见图3.7-A)

图3.7-A统计出所有的职工信息的(N-S)流程图

在这个子模块程序中,主要是对输入的职工信息进行统计,统计过后并输出说有的职工工资信息。以下是程序的运行界面。(见图3.7-B)

图3.7-B统计出所有的职工信息的运行界面

3.2对关键代码加以分析说明

1)/* 结构体声明 */ struct zhigong {

int month; double id; double jbgz; double jt; double gt; double bt; double ft; double jtbt; double sfgz; double fz; double cx; double hf; double grsds;

};

double yks; double sfs;

这是对职工工资信息录入的一个结构体的申明,申明该职工的工资信息有哪些。Id 为职工编号,jbgz为职工的基本工资,jt为职工的津贴,gt为职工的岗帖,bt为职工的补贴,ft为职工的房帖,jtbt为职工的交通补贴,cx为职工的储蓄,hf为职工的汇费,grsds为职工的个人所得税,yks为职工的应扣数,sfs为职工的实发数,Sfgz为实发工资。 /* 建立50个元素的结构体数组 */ struct zhigong zg[50]; /* 建立结构体变量 */ struct zhigong zgone; /* 职员列表中的数量 */ int n=0;

/* 获得字符串 */ char numstr[50];

这是对职工的工资录入的主要数据结构,zg[50]是可以录入50个职工的工资信息,char numstr[50]为在录入职工的工资信息时,可输入的字符串的最大是50位。 2)函数addone addone(void) {

printf("\n");

printf("__________________________________>>>

printf("Record NO. %d \n",n+1); printf("请输入月份: \n"); gets(numstr);

zg[n].month=atoi(numstr);

printf("输入职工基本信息\n"); printf("请输入职工的职工编号: \n"); gets(numstr);

zg[n].id=atof(numstr);

printf("请输入职工的基本工资: \n"); gets(numstr);

zg[n].jbgz=atof(numstr); printf("请输入职工的津贴: \n"); gets(numstr);

zg[n].jt=atof(numstr);

printf("请输入职工的岗贴: \n"); gets(numstr);

zg[n].gt=atof(numstr);

printf("请输入职工的补贴: \n"); gets(numstr);

zg[n].bt=atof(numstr);

printf("请输入职工的房帖: \n"); gets(numstr);

zg[n].ft=atof(numstr);

printf("请输入职工的交通补贴: \n"); gets(numstr);

zg[n].jtbt=atof(numstr);

zg[n].sfgz=(zg[n].jbgz)+(zg[n].jt)+(zg[n].gt)+(zg[n].bt)+(zg[n].ft)+(zg[n].jtbt);

printf("请输入职工的房租: \n"); gets(numstr);

zg[n].fz=atof(numstr);

printf("请输入职工的储蓄: \n"); gets(numstr);

printf("请输入职工的会汇: \n"); gets(numstr);

zg[n].hf=atof(numstr);

zg[n].grsds=tgrsds(zg[n].sfgz);

zg[n].yks=(zg[n].fz)+(zg[n].cx)+(zg[n].hf)+(zg[n].grsds); zg[n].sfs=(zg[n].sfgz)-(zg[n].yks); n++;

printf("添加成功!\n");

printf("__________________________________>>>

通过这个函数可以创建一个职工的所有工资信息,首先程序提示输入职工的编号,然后输入职工的工资信息,包括(基本工资、津贴、岗贴、补贴、房帖、交通补贴,并统计这些工资为实发工资。然后输入职工的房租、储蓄、汇费) 3)函数delone /*删除个人记录*/ delone(void) {

struct zhigong tmp[50]; double zhigongid; int j,k; int flagfind; flagfind=0; k=0;

printf("---------------------------------------------------\n"); printf("\n 请输入某职工的职工编号: \n"); gets(numstr);

for(j=0;j

if(flagfind==1) {

for(j=0;j

printf("\n 成功删除记录 ! \n");

zg[j]=tmp[j]; if(zg[j].id==zhigongid) { } else { }

tmp[k]=zg[j]; k++; flagfind=1;

printf("---------------------------------------------------\n"); } else {

printf("\n 没有你要删除的记录! \n"); n=n-1;

printf("----------------------------------------------------\n"); }

return (0);

程序提示用户输入要删除的个人的工资记录,使用线形查找法查找相应的记录,如果找到,则删除记录。如果没有,则提示用户该记录不存在。

4)函数modone /*修改个人记录*/ modone(void) {

double zhigongid; int j; int flagfind; flagfind=0;

printf("\n 请输入职工的职工编号: \n"); gets(numstr);

zhigongid=atof(numstr); for(j=0;j

if(zg[j].id==zhigongid) {

printf("NO.:%d\n",j);

printf("month:%d\n",zg[j].month); printf("\t职工编号%10.0f\n",zg[j].id); printf("\t基本工资:%10.2f\n",zg[j].jbgz); printf("\t请输入职工的基本工资: \n"); gets(numstr);

zg[j].jbgz=atof(numstr);

printf("\t津贴:%10.2f\n",zg[j].jt); printf("\t请输入职工的津贴: \n"); gets(numstr);

zg[j].jt=atof(numstr);

printf("\t请输入职工的岗贴: \n"); gets(numstr);

zg[j].gt=atof(numstr);

printf("\t补贴:%10.2f\n",zg[j].bt); printf("\t请输入职工的补贴: \n"); gets(numstr);

zg[j].bt=atof(numstr);

printf("\t房帖:%10.2f\n",zg[j].ft); printf("\t请输入职工的房帖: \n"); gets(numstr);

zg[j].ft=atof(numstr);

printf("\t交通补贴:%10.2f\n",zg[j].jtbt); printf("\t请输入职工的交通补贴: \n"); gets(numstr);

zg[j].jtbt=atof(numstr);

zg[j].sfgz=(zg[j].jbgz)+(zg[j].jt)+(zg[j].gt)+(zg[j].bt)+(zg[j

].ft)+(zg[j].jtbt);

printf("\t房租:%10.2f\n",zg[j].fz); printf("\t请输入职工的房租: \n"); gets(numstr);

zg[j].fz=atof(numstr);

printf("\t储蓄:%10.2f\n",zg[j].cx); printf("\t请输入职工的储蓄: \n"); gets(numstr);

zg[j].cx=atof(numstr);

printf("\t汇费:%10.2f\n",zg[j].hf); printf("\t请输入职工的汇费: \n"); gets(numstr);

}

}

printf("修改成功\n");

zg[j].grsds=tgrsds(zg[j].sfgz);

zg[j].yks=(zg[j].fz)+(zg[j].cx)+(zg[j].hf)+(zg[j].grsds); } else { }

flagfind=0;

zg[j].sfs=(zg[j].sfgz)-(zg[j].yks); flagfind=1;

if(flagfind!=0)printf("\n没有此记录! \n"); return(0);

程序提示用户输入职工的编号,使用线形查找相应的记录,如果找到,则提示用户输入新的相应的职工信息。

4 设计结果与分析

当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。

1. 首先在定义函数时,不能输入汉字。否则会程序会显示错误。 2.在程序中,如果定义职工的基本工资、津贴、岗贴、补贴、房帖、交通补贴等为float型,而后面其相应的返回值为双精度浮点型,会出现相应的警告

3.前后定义变量要统一。

4.如果要调用添加函数,修改函数,修改函数,查找函数,统计函数等要在主函数前面进行申明。否则会显示警告。

5.对背景颜色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。

6.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。

7. 未注意int,float型数据的数值范围,int型数据的数值范围(-32768~32768)。

对定义工资变量时,如果将职工工资定义为float型,将会出现警告。

8.对应该有花括弧的复合语句,忘记加花括弧。

9. 所调用的函数在调用语句之后才定义,而又在调用前未加说明。

5 小 结

随着我国成功加入WTO及信息化浪潮的日益临近,企业、单位等一些部门在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势。因此,如何使企业、单位等部门及时掌握本企业、单位等人才的各种信息、第一时间处理好随时变化的工资管理问题,建立一套符合企业、单位实际的工资管理系统就显得尤为重要。

在本课程设计的设计过程中,我刚开始感觉到有点头痛。要通过一学期C语

言的学习后将所学知识运用起来有点困难,但回过头来再去看教课书,对于这些知识点有关的背景,概念和解决方案更进一步的理解,感觉也不是很难。

另外我还体会了从事C语言课程设计工作需要特别谨慎认真地态度和作风,

一点都不能马虎。每个细微的细节都必须十分注意,如果不认真思考,就会出现或大或小的错误。如果把早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作。有时候,我自己觉得我写的程序非常正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间没有一点进展。这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙才向老师同学请教。

在开始编写程序的时候,我看到别人的程序功能非常的详细,而且界面非常

漂亮,总是希望自己的程序也非常的完善,但是,发现编一个好的程序不是一蹴而就的事情,需要长时间的积累和经验。

在反反复复的学习中,我终于作出一个简单的程序,虽然这个程序的功能非

常简单,而且在实际运用中还有些不足,因为工资的的内容非常丰富,我涉及到的仅仅是工资管理的一部分简单内容,离实际的客户需求肯定还有差距。

由于我的知识浅薄,经验不足及阅历颇浅,在该系统的设计方面还有很多不

足,比如功能过少,界面不醒目等问题,我会在以后的学习过程中,根据具体要求不断的修改、完善,争取使系统慢慢趋于完美。

致谢

在这次C语言课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师。。。老师,还有我的C语言任课老师。。。老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!

参考文献

[1]谭浩强著.C程序设计(第二版).北京:清华大学出版社,1999

[2]谭浩强,张基温,唐永炎编著.C语言程序设计.北京:高等教育出版社,1992 [3]谭浩强编著.QBASIC语言教程.北京:电子工业出版社,1997 [4]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005

[5]Herbert Schildt著.戴健鹏译.C语言大全(第二版).北京:电子工业出版社,1994

[6][美]SCHILDTH.C语言大全[M].4版.王子恢等译.北京:电子工业出版社,2001

源程序

#include "stdio.h" #include "conio.h" #include"stdlib.h" #include "dos.h"

/* 为了调用atof()等函数 */ #include "stdlib.h" #define TRUE 1

addone(); delone(); modone(); idone(); listall(); wfile(); rfile();

/* 结构体声明 */ struct zhigong { int month; double id; double jbgz; double jt; double gt; double bt; double ft;

double jtbt;

};

double sfgz; double fz; double cx; double hf; double grsds; double yks; double sfs;

/* 建立50个元素的结构体数组 */ struct zhigong zg[50];

/* 建立结构体变量 */ struct zhigong zgone; /* 职员列表中的数量 */ int n=0;

/* 获得字符串 */ char numstr[50]; main() {

char ch; n=0;

/*rfile(); 使用后启动程序时系统会自动加载纪录*/

system("color 4e"); while(TRUE)

{

printf("=========================================================

printf("\n");

=======================\n");

printf("\t\t〓〖欢迎来到职工工资管理系统〗〓 (请在中选择) \n");

//printf("______________________________________________________\n");

printf("\t\t ★ 1.增加职工的工资信息 \n");

printf("\t\t ★ 2.删除某职工的工资信息 \n");

printf("\t\t ★ 3.改变某职工的工资信息 \n");

printf("\t\t ★ 4.输出某职工的所有工资信息 \n");

printf("\t\t ★ 5.统计所有的职工工资信息 \n");

printf("\t\t ★ 6.保存日期 \n");

printf("\t\t ★ 7.下载日期 \n");

printf("\t\t ★ 8.退出 \n");

printf("========================================================\n");

printf("\t\t\t 请选择(1-8)

\n");

ch=getche(); switch(ch) {

case '1': addone();break;

case '2':delone();break; case '3':modone();break; case '4':idone();break; case '5':listall();break; case '6':wfile();break; case '7':rfile();break; case '8':exit(0);

default:printf("对不起,请重新选择!\n"); }

/*计算个人所得税*/ double tgrsds(double m) {

double sui1,sui2,sui3; double tmp;

sui1=0;sui2=0;sui3=0; if(m>=5000) { }

else if(m>=1000 && m

sui2=(m-1000)*0.1; sui3=(1000-800)*0.05; sui1=(m-5000)*0.2; sui2=(5000-1000)*0.1; sui3=(1000-800)*0.05; }

}

}

{ }

tmp=sui1+sui2+sui3; return(tmp);

sui3=(m-800)*0.05;

/* 添加职工的工资信息 */ addone(void) {

printf("\n");

printf("__________________________________>>>

printf("Record NO. %d \n",n+1); printf("请输入月份: \n"); gets(numstr);

zg[n].month=atoi(numstr); printf("输入职工基本信息\n"); printf("请输入职工的职工编号: \n"); gets(numstr);

zg[n].id=atof(numstr);

printf("请输入职工的基本工资: \n"); gets(numstr);

zg[n].jbgz=atof(numstr);

// printf("请输入职工的姓名:\n);

//gets(numster);

printf("请输入职工的津贴: \n");

zg[n].jt=atof(numstr);

printf("请输入职工的岗贴: \n"); gets(numstr);

zg[n].gt=atof(numstr);

printf("请输入职工的补贴: \n"); gets(numstr);

zg[n].bt=atof(numstr);

printf("请输入职工的房帖: \n"); gets(numstr);

zg[n].ft=atof(numstr);

printf("请输入职工的交通补贴: \n"); gets(numstr);

zg[n].jtbt=atof(numstr);

zg[n].sfgz=(zg[n].jbgz)+(zg[n].jt)+(zg[n].gt)+(zg[n].bt)+(zg[n].ft)+(zg[n].jtbt);

printf("请输入职工的房租: \n"); gets(numstr);

zg[n].fz=atof(numstr);

printf("请输入职工的储蓄: \n"); gets(numstr);

zg[n].cx=atof(numstr);

printf("请输入职工的会汇: \n"); gets(numstr);

zg[n].hf=atof(numstr);

zg[n].grsds=tgrsds(zg[n].sfgz);

zg[n].yks=(zg[n].fz)+(zg[n].cx)+(zg[n].hf)+(zg[n].grsds); zg[n].sfs=(zg[n].sfgz)-(zg[n].yks);

printf("添加成功!\n");

printf("__________________________________>>>

}

/*删除个人记录*/

delone(void)

{

struct zhigong tmp[50]; double zhigongid; int j,k; int flagfind; flagfind=0; k=0; printf("---------------------------------------------------\n"); printf("\n 请输入某职工的职工编号: \n"); gets(numstr); zhigongid=atof(numstr); for(j=0;j

}

} } k++; if(flagfind==1) { for(j=0;j

/*修改个人记录*/

modone(void)

{

double zhigongid; int j;

flagfind=0; printf("\n 请输入职工的职工编号: \n"); gets(numstr); zhigongid=atof(numstr); for(j=0;j

zg[j].jbgz=atof(numstr);

printf("\t津贴:%10.2f\n",zg[j].jt);

printf("\t请输入职工的津贴: \n");

gets(numstr);

zg[j].jt=atof(numstr);

printf("\t岗贴:%10.2f\n",zg[j].gt); printf("\t请输入职工的岗贴: \n"); gets(numstr); zg[j].gt=atof(numstr); printf("\t补贴:%10.2f\n",zg[j].bt); printf("\t请输入职工的补贴: \n"); gets(numstr); zg[j].bt=atof(numstr); printf("\t房帖:%10.2f\n",zg[j].ft);

gets(numstr); zg[j].ft=atof(numstr); printf("\t交通补贴:%10.2f\n",zg[j].jtbt); printf("\t请输入职工的交通补贴: \n"); gets(numstr); zg[j].jtbt=atof(numstr); zg[j].sfgz=(zg[j].jbgz)+(zg[j].jt)+(zg[j].gt)+(zg[j].bt)+(zg[j].ft)+(zg[j].jtbt);

} else printf("\t房租:%10.2f\n",zg[j].fz); printf("\t请输入职工的房租: \n"); gets(numstr); zg[j].fz=atof(numstr); printf("\t储蓄:%10.2f\n",zg[j].cx); printf("\t请输入职工的储蓄: \n"); gets(numstr); zg[j].cx=atof(numstr); printf("\t汇费:%10.2f\n",zg[j].hf); printf("\t请输入职工的汇费: \n"); gets(numstr); zg[j].hf=atof(numstr); printf("修改成功\n"); zg[j].grsds=tgrsds(zg[j].sfgz); zg[j].yks=(zg[j].fz)+(zg[j].cx)+(zg[j].hf)+(zg[j].grsds); zg[j].sfs=(zg[j].sfgz)-(zg[j].yks); flagfind=1;

}

} } flagfind=0; if(flagfind!=0)printf("\n没有此记录! \n"); return(0);

/*从内存中查找记录根据id*/

idone(void)

{

double zhigongid;

int j;

int flagfind;

flagfind=0;

printf("∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝\n");

printf("\n 请输入职工的职工编号: \n"); gets(numstr); zhigongid=atof(numstr); for(j=0;j

printf("\t补贴:%10.2f |\n",zg[j].bt); printf("\t房贴:%10.2f |\n",zg[j].ft); printf("\t交通补贴:%10.2f |,\n",zg[j].jtbt); printf("\t实发工资:%10.2f |\n",zg[j].sfgz); printf("\t房租:%10.2f |\n",zg[j].fz); printf("\t储蓄:%10.2f |\n",zg[j].cx); printf("\t汇费:%10.2f |\n",zg[j].hf); printf("\t个人所得税:%10.2f |\n",zg[j].grsds); printf("\t应扣数:%10.2f |\n",zg[j].yks); printf("\t实花数:%10.2f\n",zg[j].sfs); printf("∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝

∝∝∝\n");

}

/* 输出当月全体职工的工资信息 */

listall(void) } if(flagfind!=0) printf("\n 您查找的记录不存在! \n"); } else { } flagfind=0; flagfind=1; return(0);

int j; if(n

/* 把所有记录从内存中写到磁盘gongzi.rec中 */ wfile(void)

{

}

/* 把所有记录从磁盘gongzi.rec读到数组gz中 */ rfile(void)

{

FILE *fptr; n=0; printf("\n Loading date... \n"); FILE *fptr; printf("\n Saving date... \n"); if(n

}

printf("Can not open file 工资.rec! \n"); else { } return(0); while(fread(&zg[n],sizeof(zg[n]),1,fptr)==1) n++; fclose(fptr); printf(" Total %d records read! \n",n);

2012-2013学年 第二学期

《高级语言程序设计》

课程设计报告

题目:

专业: 数字媒体技术 班级: 12(1) 姓名: 学号: 指导教师: 成绩:

计算机与信息工程系

年 月 日

目录

1设计内容及要求.........................................2 1.1设计内容.....................................................2 1.2设计任务及具体要求...........................................2 2概要设计.........................................................3 2.1该系统的功能简介.............................................3 2.2 总体程序框图.................................................3 2.3各个模块之间的主要关系........................................4 3 3 设计过程或程序代码............................................5 3.1各个模块的程序流程图及运行界面................................5 3.2对关键代码加以分析说明.......................................15 4程序调试分析.....................................................23 5小结.............................................................25 致谢...........................................................26 参考文献...........................................................27 附:源程序..........................................................28

1 设计内容及要求

1.1设计内容

《工资管理查询系统》主要根据课程设计要求进行设计,并了解了公司的职工的工资工作流程,该系统功能主要包括六大模块:

1)职工个人说得税的计算模块,根据工资多余5000,在1000—5000之间,少余1000三种情况进行计算。

2)添加职工的工资信息模块,用户根据输入职工编号后,对工资信息进行录入。

3)职工工资查询模块,根据用户输入职工编号后,方可进行查询。 4)职工工资修改模块,用户输入职工编号后,对以前的信息进行修改。 5)数据输出模块,输出其相应的模块功能。

6)职工工资统计模块,根据输入的职工信息进行统计。

1.2设计任务及具体要求

主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:工资录入,按人名、基本工资、实发工资、个人所得税进行查询和按部门进行分类统计。操作界面要符合用户的一般习惯,图形或文本界面都可以。

要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤; 提高撰写技术文档的能力。

2 概要设计

2.1系统的功能简介

该系统的主要功能是实现职工工资的录入,包括(录入职工的基本工资、实发工资、津贴、岗贴、补贴、房帖、交通补贴、储蓄、汇费)。对职工的工资信息进行删除、修改、个人所得税的计算。并统计职工的所有信息。

2.2

图2.2-B添加职工的工资信息

2.2各个模块之间的主要关系

该程序的功能主要是实现职工工资的录入,并对工资的相应信息进行个人所

得税的计算。各个模块之间的关系是相互联系的。首先,主函数包含了所有的子函数。主函数是整个程序的核心。子函数之间也是有联系的,对个人所得税的计算、职工工资信息的修改、删除、查询、统计,必须是在职工工资录入的情况下进行的。因此对职工工资信息的录入是非常重要的。在职工工资的修改、删除、查询、统计与个人所得税所有的子函数之间是没有多大联系的。

3 设计过程或程序代码

3.1各个模块的程序流程图

1)①主函数程序(N-S)流程图及运行界面 主函数程序(N-S)流程图(见图3.1-A) 主函数main()

图3.1-A主函数程序

简单说明:该功能主要显示的是给用户一个进入界面,它主要的是显示该程序主要能够执行的有哪些功能。下面是显示给用户的界面。(见图3.1-A)

②主函数程序运行界面:

图3.1B主函数界面

2)职工个人所得税(N-S)流程图(见图3.1-B)

图3.2-A

该程序主要根据职工的工资信息进行个人所得税的计算,当个人所得税m大于等于5000时,个人所得税tmp为(m-5000)*0.2;在1000

3)①录入职工的工资信息(N-S)流程图及程序运行界面

录入职工的工资信息(N-S)流程图(见图3.3-A)

图3.3-A

该模块主要是对职工的工资进行录入,录入的主要有职工的津贴、岗贴、补贴、房帖、交通补贴,并把该五项统计为职工的实发工资。还录入职工的房租、储蓄、汇费。

②录入职工的程序运行界面。(见图3.3-B)

图3.3-B录入职工的工资信息程序界面

4)删除职工记录的(N-S)流程图及程序运行界面

删除职工记录的(N-S)流程图(见图3.4-A)

图3.4-A删除职工记录程序

该模块主要通过已经输入的职工信息进行删除,如果你输入的信息存在或不存在,则分别显示以下运行界面。见图(3.4-B、C)

图3.4-B删除职工记录程序界面

图3.4-C删除职工记录程序界面

5)修改个人记录的(N-S)流程图及运行界面 修改个人记录的(N-S)流程图(见图3.5-A)

图3.5-A修改个人记录程序

修改个人记录是在原有的基础上对职工的工资信息进行修改,在修改的同时你可以看到该职工原来的工资信息。以下是修改职工工资信息过后的显示界面。(见图3.5-B)

图3.5-B修改个人记录的运行界面

6)查找职工记录的(N-S)流程图及运行界面

查找职工记录的(N-S)流程图(见图3.6-A)

图3.6-A查找职工记录的(N-S)流程图

该功能是对已经录入的职工信息进行查寻,如果你输入的职工编号存在,则显示职工的工资信息,如果不存在,则提示为“您查找的记录不存在”。运行界面如下。(见图3.6-B)

图3.6-B查找职工记录的运行界面

7)统计出所有的职工信息的(N-S)流程图及运行界面 统计出所有的职工信息的N-S流程图(见图3.7-A)

图3.7-A统计出所有的职工信息的(N-S)流程图

在这个子模块程序中,主要是对输入的职工信息进行统计,统计过后并输出说有的职工工资信息。以下是程序的运行界面。(见图3.7-B)

图3.7-B统计出所有的职工信息的运行界面

3.2对关键代码加以分析说明

1)/* 结构体声明 */ struct zhigong {

int month; double id; double jbgz; double jt; double gt; double bt; double ft; double jtbt; double sfgz; double fz; double cx; double hf; double grsds;

};

double yks; double sfs;

这是对职工工资信息录入的一个结构体的申明,申明该职工的工资信息有哪些。Id 为职工编号,jbgz为职工的基本工资,jt为职工的津贴,gt为职工的岗帖,bt为职工的补贴,ft为职工的房帖,jtbt为职工的交通补贴,cx为职工的储蓄,hf为职工的汇费,grsds为职工的个人所得税,yks为职工的应扣数,sfs为职工的实发数,Sfgz为实发工资。 /* 建立50个元素的结构体数组 */ struct zhigong zg[50]; /* 建立结构体变量 */ struct zhigong zgone; /* 职员列表中的数量 */ int n=0;

/* 获得字符串 */ char numstr[50];

这是对职工的工资录入的主要数据结构,zg[50]是可以录入50个职工的工资信息,char numstr[50]为在录入职工的工资信息时,可输入的字符串的最大是50位。 2)函数addone addone(void) {

printf("\n");

printf("__________________________________>>>

printf("Record NO. %d \n",n+1); printf("请输入月份: \n"); gets(numstr);

zg[n].month=atoi(numstr);

printf("输入职工基本信息\n"); printf("请输入职工的职工编号: \n"); gets(numstr);

zg[n].id=atof(numstr);

printf("请输入职工的基本工资: \n"); gets(numstr);

zg[n].jbgz=atof(numstr); printf("请输入职工的津贴: \n"); gets(numstr);

zg[n].jt=atof(numstr);

printf("请输入职工的岗贴: \n"); gets(numstr);

zg[n].gt=atof(numstr);

printf("请输入职工的补贴: \n"); gets(numstr);

zg[n].bt=atof(numstr);

printf("请输入职工的房帖: \n"); gets(numstr);

zg[n].ft=atof(numstr);

printf("请输入职工的交通补贴: \n"); gets(numstr);

zg[n].jtbt=atof(numstr);

zg[n].sfgz=(zg[n].jbgz)+(zg[n].jt)+(zg[n].gt)+(zg[n].bt)+(zg[n].ft)+(zg[n].jtbt);

printf("请输入职工的房租: \n"); gets(numstr);

zg[n].fz=atof(numstr);

printf("请输入职工的储蓄: \n"); gets(numstr);

printf("请输入职工的会汇: \n"); gets(numstr);

zg[n].hf=atof(numstr);

zg[n].grsds=tgrsds(zg[n].sfgz);

zg[n].yks=(zg[n].fz)+(zg[n].cx)+(zg[n].hf)+(zg[n].grsds); zg[n].sfs=(zg[n].sfgz)-(zg[n].yks); n++;

printf("添加成功!\n");

printf("__________________________________>>>

通过这个函数可以创建一个职工的所有工资信息,首先程序提示输入职工的编号,然后输入职工的工资信息,包括(基本工资、津贴、岗贴、补贴、房帖、交通补贴,并统计这些工资为实发工资。然后输入职工的房租、储蓄、汇费) 3)函数delone /*删除个人记录*/ delone(void) {

struct zhigong tmp[50]; double zhigongid; int j,k; int flagfind; flagfind=0; k=0;

printf("---------------------------------------------------\n"); printf("\n 请输入某职工的职工编号: \n"); gets(numstr);

for(j=0;j

if(flagfind==1) {

for(j=0;j

printf("\n 成功删除记录 ! \n");

zg[j]=tmp[j]; if(zg[j].id==zhigongid) { } else { }

tmp[k]=zg[j]; k++; flagfind=1;

printf("---------------------------------------------------\n"); } else {

printf("\n 没有你要删除的记录! \n"); n=n-1;

printf("----------------------------------------------------\n"); }

return (0);

程序提示用户输入要删除的个人的工资记录,使用线形查找法查找相应的记录,如果找到,则删除记录。如果没有,则提示用户该记录不存在。

4)函数modone /*修改个人记录*/ modone(void) {

double zhigongid; int j; int flagfind; flagfind=0;

printf("\n 请输入职工的职工编号: \n"); gets(numstr);

zhigongid=atof(numstr); for(j=0;j

if(zg[j].id==zhigongid) {

printf("NO.:%d\n",j);

printf("month:%d\n",zg[j].month); printf("\t职工编号%10.0f\n",zg[j].id); printf("\t基本工资:%10.2f\n",zg[j].jbgz); printf("\t请输入职工的基本工资: \n"); gets(numstr);

zg[j].jbgz=atof(numstr);

printf("\t津贴:%10.2f\n",zg[j].jt); printf("\t请输入职工的津贴: \n"); gets(numstr);

zg[j].jt=atof(numstr);

printf("\t请输入职工的岗贴: \n"); gets(numstr);

zg[j].gt=atof(numstr);

printf("\t补贴:%10.2f\n",zg[j].bt); printf("\t请输入职工的补贴: \n"); gets(numstr);

zg[j].bt=atof(numstr);

printf("\t房帖:%10.2f\n",zg[j].ft); printf("\t请输入职工的房帖: \n"); gets(numstr);

zg[j].ft=atof(numstr);

printf("\t交通补贴:%10.2f\n",zg[j].jtbt); printf("\t请输入职工的交通补贴: \n"); gets(numstr);

zg[j].jtbt=atof(numstr);

zg[j].sfgz=(zg[j].jbgz)+(zg[j].jt)+(zg[j].gt)+(zg[j].bt)+(zg[j

].ft)+(zg[j].jtbt);

printf("\t房租:%10.2f\n",zg[j].fz); printf("\t请输入职工的房租: \n"); gets(numstr);

zg[j].fz=atof(numstr);

printf("\t储蓄:%10.2f\n",zg[j].cx); printf("\t请输入职工的储蓄: \n"); gets(numstr);

zg[j].cx=atof(numstr);

printf("\t汇费:%10.2f\n",zg[j].hf); printf("\t请输入职工的汇费: \n"); gets(numstr);

}

}

printf("修改成功\n");

zg[j].grsds=tgrsds(zg[j].sfgz);

zg[j].yks=(zg[j].fz)+(zg[j].cx)+(zg[j].hf)+(zg[j].grsds); } else { }

flagfind=0;

zg[j].sfs=(zg[j].sfgz)-(zg[j].yks); flagfind=1;

if(flagfind!=0)printf("\n没有此记录! \n"); return(0);

程序提示用户输入职工的编号,使用线形查找相应的记录,如果找到,则提示用户输入新的相应的职工信息。

4 设计结果与分析

当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。

1. 首先在定义函数时,不能输入汉字。否则会程序会显示错误。 2.在程序中,如果定义职工的基本工资、津贴、岗贴、补贴、房帖、交通补贴等为float型,而后面其相应的返回值为双精度浮点型,会出现相应的警告

3.前后定义变量要统一。

4.如果要调用添加函数,修改函数,修改函数,查找函数,统计函数等要在主函数前面进行申明。否则会显示警告。

5.对背景颜色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。

6.如果程序在运行的过程中,对于一个循环语句,如果你返回的值始终是真的,那么程序将进如死循环。

7. 未注意int,float型数据的数值范围,int型数据的数值范围(-32768~32768)。

对定义工资变量时,如果将职工工资定义为float型,将会出现警告。

8.对应该有花括弧的复合语句,忘记加花括弧。

9. 所调用的函数在调用语句之后才定义,而又在调用前未加说明。

5 小 结

随着我国成功加入WTO及信息化浪潮的日益临近,企业、单位等一些部门在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势。因此,如何使企业、单位等部门及时掌握本企业、单位等人才的各种信息、第一时间处理好随时变化的工资管理问题,建立一套符合企业、单位实际的工资管理系统就显得尤为重要。

在本课程设计的设计过程中,我刚开始感觉到有点头痛。要通过一学期C语

言的学习后将所学知识运用起来有点困难,但回过头来再去看教课书,对于这些知识点有关的背景,概念和解决方案更进一步的理解,感觉也不是很难。

另外我还体会了从事C语言课程设计工作需要特别谨慎认真地态度和作风,

一点都不能马虎。每个细微的细节都必须十分注意,如果不认真思考,就会出现或大或小的错误。如果把早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作。有时候,我自己觉得我写的程序非常正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间没有一点进展。这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙才向老师同学请教。

在开始编写程序的时候,我看到别人的程序功能非常的详细,而且界面非常

漂亮,总是希望自己的程序也非常的完善,但是,发现编一个好的程序不是一蹴而就的事情,需要长时间的积累和经验。

在反反复复的学习中,我终于作出一个简单的程序,虽然这个程序的功能非

常简单,而且在实际运用中还有些不足,因为工资的的内容非常丰富,我涉及到的仅仅是工资管理的一部分简单内容,离实际的客户需求肯定还有差距。

由于我的知识浅薄,经验不足及阅历颇浅,在该系统的设计方面还有很多不

足,比如功能过少,界面不醒目等问题,我会在以后的学习过程中,根据具体要求不断的修改、完善,争取使系统慢慢趋于完美。

致谢

在这次C语言课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师。。。老师,还有我的C语言任课老师。。。老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!

参考文献

[1]谭浩强著.C程序设计(第二版).北京:清华大学出版社,1999

[2]谭浩强,张基温,唐永炎编著.C语言程序设计.北京:高等教育出版社,1992 [3]谭浩强编著.QBASIC语言教程.北京:电子工业出版社,1997 [4]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005

[5]Herbert Schildt著.戴健鹏译.C语言大全(第二版).北京:电子工业出版社,1994

[6][美]SCHILDTH.C语言大全[M].4版.王子恢等译.北京:电子工业出版社,2001

源程序

#include "stdio.h" #include "conio.h" #include"stdlib.h" #include "dos.h"

/* 为了调用atof()等函数 */ #include "stdlib.h" #define TRUE 1

addone(); delone(); modone(); idone(); listall(); wfile(); rfile();

/* 结构体声明 */ struct zhigong { int month; double id; double jbgz; double jt; double gt; double bt; double ft;

double jtbt;

};

double sfgz; double fz; double cx; double hf; double grsds; double yks; double sfs;

/* 建立50个元素的结构体数组 */ struct zhigong zg[50];

/* 建立结构体变量 */ struct zhigong zgone; /* 职员列表中的数量 */ int n=0;

/* 获得字符串 */ char numstr[50]; main() {

char ch; n=0;

/*rfile(); 使用后启动程序时系统会自动加载纪录*/

system("color 4e"); while(TRUE)

{

printf("=========================================================

printf("\n");

=======================\n");

printf("\t\t〓〖欢迎来到职工工资管理系统〗〓 (请在中选择) \n");

//printf("______________________________________________________\n");

printf("\t\t ★ 1.增加职工的工资信息 \n");

printf("\t\t ★ 2.删除某职工的工资信息 \n");

printf("\t\t ★ 3.改变某职工的工资信息 \n");

printf("\t\t ★ 4.输出某职工的所有工资信息 \n");

printf("\t\t ★ 5.统计所有的职工工资信息 \n");

printf("\t\t ★ 6.保存日期 \n");

printf("\t\t ★ 7.下载日期 \n");

printf("\t\t ★ 8.退出 \n");

printf("========================================================\n");

printf("\t\t\t 请选择(1-8)

\n");

ch=getche(); switch(ch) {

case '1': addone();break;

case '2':delone();break; case '3':modone();break; case '4':idone();break; case '5':listall();break; case '6':wfile();break; case '7':rfile();break; case '8':exit(0);

default:printf("对不起,请重新选择!\n"); }

/*计算个人所得税*/ double tgrsds(double m) {

double sui1,sui2,sui3; double tmp;

sui1=0;sui2=0;sui3=0; if(m>=5000) { }

else if(m>=1000 && m

sui2=(m-1000)*0.1; sui3=(1000-800)*0.05; sui1=(m-5000)*0.2; sui2=(5000-1000)*0.1; sui3=(1000-800)*0.05; }

}

}

{ }

tmp=sui1+sui2+sui3; return(tmp);

sui3=(m-800)*0.05;

/* 添加职工的工资信息 */ addone(void) {

printf("\n");

printf("__________________________________>>>

printf("Record NO. %d \n",n+1); printf("请输入月份: \n"); gets(numstr);

zg[n].month=atoi(numstr); printf("输入职工基本信息\n"); printf("请输入职工的职工编号: \n"); gets(numstr);

zg[n].id=atof(numstr);

printf("请输入职工的基本工资: \n"); gets(numstr);

zg[n].jbgz=atof(numstr);

// printf("请输入职工的姓名:\n);

//gets(numster);

printf("请输入职工的津贴: \n");

zg[n].jt=atof(numstr);

printf("请输入职工的岗贴: \n"); gets(numstr);

zg[n].gt=atof(numstr);

printf("请输入职工的补贴: \n"); gets(numstr);

zg[n].bt=atof(numstr);

printf("请输入职工的房帖: \n"); gets(numstr);

zg[n].ft=atof(numstr);

printf("请输入职工的交通补贴: \n"); gets(numstr);

zg[n].jtbt=atof(numstr);

zg[n].sfgz=(zg[n].jbgz)+(zg[n].jt)+(zg[n].gt)+(zg[n].bt)+(zg[n].ft)+(zg[n].jtbt);

printf("请输入职工的房租: \n"); gets(numstr);

zg[n].fz=atof(numstr);

printf("请输入职工的储蓄: \n"); gets(numstr);

zg[n].cx=atof(numstr);

printf("请输入职工的会汇: \n"); gets(numstr);

zg[n].hf=atof(numstr);

zg[n].grsds=tgrsds(zg[n].sfgz);

zg[n].yks=(zg[n].fz)+(zg[n].cx)+(zg[n].hf)+(zg[n].grsds); zg[n].sfs=(zg[n].sfgz)-(zg[n].yks);

printf("添加成功!\n");

printf("__________________________________>>>

}

/*删除个人记录*/

delone(void)

{

struct zhigong tmp[50]; double zhigongid; int j,k; int flagfind; flagfind=0; k=0; printf("---------------------------------------------------\n"); printf("\n 请输入某职工的职工编号: \n"); gets(numstr); zhigongid=atof(numstr); for(j=0;j

}

} } k++; if(flagfind==1) { for(j=0;j

/*修改个人记录*/

modone(void)

{

double zhigongid; int j;

flagfind=0; printf("\n 请输入职工的职工编号: \n"); gets(numstr); zhigongid=atof(numstr); for(j=0;j

zg[j].jbgz=atof(numstr);

printf("\t津贴:%10.2f\n",zg[j].jt);

printf("\t请输入职工的津贴: \n");

gets(numstr);

zg[j].jt=atof(numstr);

printf("\t岗贴:%10.2f\n",zg[j].gt); printf("\t请输入职工的岗贴: \n"); gets(numstr); zg[j].gt=atof(numstr); printf("\t补贴:%10.2f\n",zg[j].bt); printf("\t请输入职工的补贴: \n"); gets(numstr); zg[j].bt=atof(numstr); printf("\t房帖:%10.2f\n",zg[j].ft);

gets(numstr); zg[j].ft=atof(numstr); printf("\t交通补贴:%10.2f\n",zg[j].jtbt); printf("\t请输入职工的交通补贴: \n"); gets(numstr); zg[j].jtbt=atof(numstr); zg[j].sfgz=(zg[j].jbgz)+(zg[j].jt)+(zg[j].gt)+(zg[j].bt)+(zg[j].ft)+(zg[j].jtbt);

} else printf("\t房租:%10.2f\n",zg[j].fz); printf("\t请输入职工的房租: \n"); gets(numstr); zg[j].fz=atof(numstr); printf("\t储蓄:%10.2f\n",zg[j].cx); printf("\t请输入职工的储蓄: \n"); gets(numstr); zg[j].cx=atof(numstr); printf("\t汇费:%10.2f\n",zg[j].hf); printf("\t请输入职工的汇费: \n"); gets(numstr); zg[j].hf=atof(numstr); printf("修改成功\n"); zg[j].grsds=tgrsds(zg[j].sfgz); zg[j].yks=(zg[j].fz)+(zg[j].cx)+(zg[j].hf)+(zg[j].grsds); zg[j].sfs=(zg[j].sfgz)-(zg[j].yks); flagfind=1;

}

} } flagfind=0; if(flagfind!=0)printf("\n没有此记录! \n"); return(0);

/*从内存中查找记录根据id*/

idone(void)

{

double zhigongid;

int j;

int flagfind;

flagfind=0;

printf("∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝\n");

printf("\n 请输入职工的职工编号: \n"); gets(numstr); zhigongid=atof(numstr); for(j=0;j

printf("\t补贴:%10.2f |\n",zg[j].bt); printf("\t房贴:%10.2f |\n",zg[j].ft); printf("\t交通补贴:%10.2f |,\n",zg[j].jtbt); printf("\t实发工资:%10.2f |\n",zg[j].sfgz); printf("\t房租:%10.2f |\n",zg[j].fz); printf("\t储蓄:%10.2f |\n",zg[j].cx); printf("\t汇费:%10.2f |\n",zg[j].hf); printf("\t个人所得税:%10.2f |\n",zg[j].grsds); printf("\t应扣数:%10.2f |\n",zg[j].yks); printf("\t实花数:%10.2f\n",zg[j].sfs); printf("∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝∝

∝∝∝\n");

}

/* 输出当月全体职工的工资信息 */

listall(void) } if(flagfind!=0) printf("\n 您查找的记录不存在! \n"); } else { } flagfind=0; flagfind=1; return(0);

int j; if(n

/* 把所有记录从内存中写到磁盘gongzi.rec中 */ wfile(void)

{

}

/* 把所有记录从磁盘gongzi.rec读到数组gz中 */ rfile(void)

{

FILE *fptr; n=0; printf("\n Loading date... \n"); FILE *fptr; printf("\n Saving date... \n"); if(n

}

printf("Can not open file 工资.rec! \n"); else { } return(0); while(fread(&zg[n],sizeof(zg[n]),1,fptr)==1) n++; fclose(fptr); printf(" Total %d records read! \n",n);


相关文章

  • [程序设计基础实验]实验教学大纲
  • <程序设计基础实验>实验教学大纲 课程编号:12411107 课程名称:程序设计基础实验 英文名称:Experiments on Fundamentals of Programming 课程性质:独立设课 教材与实验指导书名称: ...查看


  • 计算机网络课程论文模板及选题
  • 武汉理工大学 计算机网络课程论文 题目作者学院专业学号指导教师 信息工程学院 电子信息工程 李方敏 二〇一五年 月 日 武汉理工大学信息工程学院课程论文诚信声明 本人声明:所呈交的课程论文,是本人在指导老师的指导下,独立开展工作所取得的成果 ...查看


  • 大连理工大学卓越工程师土木
  • 土木工程专业 "本科工程型"卓越工程师培养方案 目 录 1 培养标准---------------------- 1 2 标准实现矩阵-------------------- 6 3 教学计划-------------- ...查看


  • 普通高中英语课程标准
  • 普通高中英语课程标准 (征求意见稿)(上) 普通高中英语课程标准研制工作组 二OO二年九月 标准研制说明 一.前期基础研究及主要结论 (一)高中英语课程改革的国际背景 信息时代的到来和国际交往的日益频繁已使英语获得了国际通用语的重要地位.联 ...查看


  • 测绘程序设计课程实习报告模板
  • 一.实习目的 <测绘程序设计>是一门理论与实践并重的课程,课程设计是测量数据处理理论学习的一个重要实践环节,可以看做是在学习了专业基础理论课<误差理论与测量平差基础>课程后进行的一门实践课程,其目的是增强学生对测量平 ...查看


  • 软件工程导论课程设计教学大纲
  • <软件工程导论课程设计>教学大纲 (Project of Introduction to Software Engineering) (1周) 一.前言 <软件工程导论课程设计>是在学习完专业核心课<软件工程导 ...查看


  • 关于2015年贵州新华教师职称评定的通知
  • 关于开展 2015 年教师职称评定的通知 各部门: 为进一步加强学院教师队伍建设,提高专业知识和教学水平,激发广大教学 人员工作热情,激励广大教师刻苦钻研业务,不断提升专业知识及教学水平,全 面提高教学质量,开展 2015 年度教师职称评定 ...查看


  • 文学科外国语言文学类英语专业(本科)教学计划
  • 江苏广播电视大学够灵活使用相关的英语工具书独立解决语言问题及知识难点:能够运用相关参考书扩大知识面和从事某些简单课题的研究. 9.对文化素养的要求:具有较宽的知识面,对主要英语国家的地理.历史.政治.经济.社会.文化习俗等有一定的了解:比较 ...查看


  • 电气工程专业导论与规划-学生报告模板
  • 一.专业认识 1.1.专业认识 针对课程中提到的专业相关行业与产业,结合自已网上调研,谈谈本专与国民经济中的哪些行业相关,以及可以就业的行业与岗位. 培养目标本专业主要培养具备电气工程系统运行.自动控制.电力电子技术.信息处理.试验分析等基 ...查看


热门内容