工资管理c课程设计

2024-12-21

工资管理c课程设计(7篇)

1.工资管理c课程设计 篇一

C语言课程设计学生通讯录管理系统设计

一、题目内容的描述

学生通讯录管理系统设计

设计一个学生通信录,学生通迅录数据信息构成内容可自行设计(如:姓名、家庭地址、邮政编码、电话号码等等),通信录数据类型定义为结构体类型。由键盘输入数据(最好要考虑输入数据输入的格式及输入数据的有效性),然后进行以下的功能实现。程序要求主函数是一个功能选择菜单,其它各功能都用各自的函数实现。

功能要求如下:

1、能建立、修改和增删学生通讯录

2、能够按多种方式进行查询,例如按姓名、按电话号码等。

3、通讯录的数据保存在文件中,运行程序时将通讯录数据从文件读取到内存中。对通讯录进行增加、删除、修改学生数据后,提供功能菜单,可以将内存中修改过的通讯录重新保存至文件。

二、应用程序功能的详细说明

1、应用程序实现了可视化的系统操作界面。

2、对学生通讯录形成了系统化的管理,操作简便明了。

3、程序具有系统帮助,添加、显示、查询、刷新、删除、排序、保存、修改、读取学生通讯录的功能。各项功能均可按照文字提示操作,浅显易懂。

4、系统的各个功能模块都用函数的形式来实现(readfile()、seek()、modify()、sort()、insert()、del()、save()、menu())方便查看。

5.可以将信息保存在文件(“student.txt“)中,亦可将信息从文件中读取出来,灵活方便。

三、主要模块的算法描述

学生通讯录管理系统

刷新学生信息readfile()

查询学生信息seek()

增加学生信息insert()

显示学生信息display()

退出系统

修改学生信息modify()

删除学生信息del()

保存当前学生信息save()

汇总当前学生数目number()

系统帮助help()

查询学生信息

按姓名查询

退出

按学号查询

开始

以可读写的方式打开一个数据文件

将此文件的内容读出,并存入一个新的结构体类型的数组中。

调用menu()菜单函数

进入while()主循环

输入1-8中的一数值,选择相应操作。

输入是否为0

判断键值,调用相应函数,完成相应功能。

是否已对修改存盘

调用函数save()函数,进行写数据文件操作

结束

模块一:头文件,变量定义,函数的声明

对系统所使用的变量进行定义,对函数进行声明。

模块二:录入学生信息

声明函数void

readfile(),说明一个文件指针FILE

*fp打开文

件“student.txt“。

模块三:学生信息的查找

声明void

seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支。

模块四:学生信息的修改

声明void

modify()为学生信息修改函数,通过switch(item)设定

所要修改的项目。

模块五:刷新学生信息

声明void

sort()将录入学生系按升序排列,用的是“冒泡排序法”

实现排序。

模块六:增加学生信息

声明void

insert()插入学生信息,先通过判断学生是否存在,若

否则继续输入,若是则跳出,重新循环。

模块七:删除学生信息

声明void

del()实现学生信息删除,通过学号对比确定要删除的信

息,然后用后一个替换掉。

模块八:显示学生信息

通过display()函数输出学生信息。

模块九:保存信息

通过fp=fopen(“student.txt“,“w“);写入信息。

模块十:汇总学生数目

通过number()函数将已有男女生及总学生数目汇总出来。

模块十一:系统帮助

通过help()函数帮助操作。

模块十二:界面菜单

通过switch(num)调用以上各函数,实现功能。

1、程序采用模块化设计,各模块独立,可分块调试,个模块由主函数控制调用。

2、其中主要模块(readfile()、seek()、modify())都是利用数组,指针来实现数据结构设计。

3、数据库设计的任务是确定系统所需要的数据库。数据库是表的集合,通常一个系统只需一个数据库。设计人

是根据需求分析,确定数据库所包含的表及字段、表间的关系,然后具体确定表的结构,包括字段名、字段类型及宽度,需要的索引等。根据对需求得到的数据结构进行分析,按数据输入输出的要求,确定表和表间的关系,进行验证、调整、修改、完善,使其能够实现用户对数据和功能的要求。通讯信息表包括以下字段:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail。学号为主索引。

四、结束语

我设计的程序总体功能大都能够运行顺利,但有许多地方比较复杂,需要进一步修改,进行简化。通过这次课程设计的锻炼,我收获很多,具体归纳为以下几点:

1、首先,也是最重要的一点,学会如何将一个复杂的问题简化,将一个较大的问题分成几个小问题,再一一解决这些小问题。在设计一个程序之前,要学会对程序功能进行规划,将其分为几个不同的功能模块,要思路清晰,简单易用;

2、学会灵活运用已有的知识,同时适当的拓展一些知识;比如,这次设计过程中,有一些函数以前就很少用到,甚至没有见过,但对程序的设计及用户界面的改善带来方便;

3、解决问题时,要尽可能考虑全面。每一个细节都很重要,既要避免功能的重复,也要避免功能疏漏的地方!

4、在这次课程设计过程中,参考了许多资料,发现C语言真的很有意思!比如我看到一个关于用C语言编写的小程序:五子棋、俄罗斯方块、推箱子等,等这次课程结束后,我就想利用C语言编写这些小游戏。曾经认为C是个挺枯燥的课程,现在发现这不仅仅是个简单的课程,而是个很实用的计算机工具!

五、程序源代码清单

#include

#include

#include

#define

BUFLEN

#define

LEN

#define

N

struct

record

{

char

code[LEN+1];

char

name[LEN+1];

int

age;

char

sex[3];

char

time[LEN+1];

char

add[30];

char

tel[LEN+1];

char

mail[30];

}stu[N];

int

k=1,n,m;

void

readfile();

void

seek();

void

modify();

void

insert();

void

del();

void

display();

void

save();

void

number();

void

menu();

int

main()

{

while(k)

menu();

system(“pause“);

return

0;

}

void

readfile()//刷新学生信息

{

char

*p=“student.txt“;

FILE

*fp;

int

i=0;

if

((fp=fopen(“student.txt“,“r“))==NULL)

{

printf(“Open

file

%s

error!

Strike

any

key

to

exit!“,p);

system(“pause“);

exit(0);

}

while(fscanf(fp,“%s

%s%d%s

%s

%s

%s

%s“,stu[i].code,stu[i].name,&stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail)==8)

{

i++;

i=i;

}

fclose(fp);

n=i;

printf(“录入完毕!\n“);

}

void

seek()//查询学生信息

......void

modify()//修改学生信息

......void

sort()//对学生信息按学号排序

{

int

i,j,*p,*q,s;

char

temp[10];

for(i=0;i

{

for(j=n-1;j>i;j--)

if(strcmp(stu[j-1].code,stu[j].code)>0)

{

strcpy(temp,stu[j-1].code);

strcpy(stu[j-1].code,stu[j].code);

strcpy(stu[j].code,temp);

strcpy(temp,stu[j-1].name);

strcpy(stu[j-1].name,stu[j].name);

strcpy(stu[j].name,temp);

strcpy(temp,stu[j-1].sex);

strcpy(stu[j-1].sex,stu[j].sex);

strcpy(stu[j].sex,temp);

strcpy(temp,stu[j-1].time);

strcpy(stu[j-1].time,stu[j].time);

strcpy(stu[j].time,temp);

strcpy(temp,stu[j-1].add);

strcpy(stu[j-1].add,stu[j].add);

strcpy(stu[j].add,temp);

strcpy(temp,stu[j-1].tel);

strcpy(stu[j-1].tel,stu[j].tel);

strcpy(stu[j].tel,temp);

strcpy(temp,stu[j-1].mail);

strcpy(stu[j-1].mail,stu[j].mail);

strcpy(stu[j].mail,temp);

p=&stu[j-1].age;

q=&stu[j].age;

s=*q;

*q=*p;

*p=s;

}

}

}

void

insert()//增加学生信息

......void

display()//显示当前学生信息

{

int

i;

printf(“所有学生的信息为:\n“);

printf(“学生学号,学生姓名,年龄,性别,出生年月,地址,电话,E-mail\n“);

printf(“--------------------------------------------------------------------\n“);

for(i=0;i

{

printf(“%6s,%7s,%5d,%5s,%9s,%8s,%10s,%14s\n“,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

}

void

save()//保存当前学生信息

{

int

i;

FILE

*fp;

fp=fopen(“student.txt“,“w“);

for(i=0;i

{

fprintf(fp,“%s,%s,%d,%s,%s,%s,%s,%s\n“,stu[i].code,stu[i].name,stu[i].age,stu[i].sex,stu[i].time,stu[i].add,stu[i].tel,stu[i].mail);

}

fclose(fp);

}

void

number()//汇总学生数目

{

int

i,girl,boy=0;

for(i=0;i

if(strcmp(stu[i].sex,“1“)==0)

{boy++;}

girl=n-boy;

printf(“男生人数是:%d\n女生的人数是:%d\n“,boy,girl);

printf(“总的学生人数为:%d“,n);

}

void

help()//系统帮助

{

printf(“输入性别时男为1,女为2“);

printf(“\n3.增加学生信息后,切记保存按7;\n“);

printf(“\n4.谢谢您的使用!\n“);

}

void

menu()//可视化的系统操作界面

{

int

num;

printf(“

\n\n

学生通讯录管理系统

\n\n“);

printf(“

*********************系统功能菜单************************

\n“);

printf(“

--------------------------------

-------------------------------

\n“);

printf(“

1.刷新学生信息

2.查询学生信息

\n“);

printf(“

*********************************************

\n“);

printf(“

3.修改学生信息

4.增加学生信息

\n“);

printf(“

*********************************************

\n“);

printf(“

5.按学号删除信息

6.显示当前信息

\n“);

printf(“

*********************************************

\n“);

printf(“

7.保存当前学生信息

8.汇总学生数目

\n“);

printf(“

*********************************************

\n“);

printf(“

9.系统帮助

10.退出系统

\n“);

printf(“

---------------------------------

------------------------------

\n“);

printf(“

************************************************************

\n“);

printf(“请选择菜单编号:“);

scanf(“%d“,&num);

switch(num)

{

case

1:readfile();break;

case

2:seek();break;

case

3:modify();break;

case

4:insert();break;

case

5:del();break;

case

6:display();break;

case

7:save();break;

case

8:number();break;

case

9:help();break;

case

10:k=0;break;

default:printf(“请在1-10之间选择\n“);

}

}

2.工资管理c课程设计 篇二

做为一门程序设计语言, C语言对于高职院校的学生非常重要, 它是学好JAVAT等其它高级语言的基础。因为C语言既有高级语言的特点, 又具有汇编语言的特点。它可以作为系统设计语言, 编写工作系统应用程序, 也可以作为应用程序设计语言, 编写不依赖计算机硬件的应用程序。所以, 高职院校的学生必须学好它。

C语言以其功能齐全、表达能力丰富、使用灵活方便、目标程序效率高、可移植性好、可直接对硬件进行操作等众多优点, 而备受青睐。C语言是培养学生程序设计能力的开端, 形成初步的基本程序设计思想和观念, 培养初步的分析和解决问题的能力。对于学生将来是否能够成为一个合格或优秀计算机专业人才, 起着重要作用。但C语言较之于现在流行的可视化编程, 界面枯燥, 语法烦琐, 如何在有限的学时内, 让对计算机一无所知的大一新生能够掌握C语言基本原理的同时, 能熟练运用程序设计的方法分析问题、解决问题, 成为C语言工作的重要组成部分。

1 C语言课程设计的目的

经过C语言课程设计, 能够充分掌握软件设计的基本方法, 了解C语言的好处和其可用性、重要性和必要性可以培养独立思考、综合运用所学有关相应知识的能力, 增加了同学之间的团队合作精神, 巩固C语言课程学习的内容, 强化动手编程能力。

经过这种课程设计, 使学生了解高级程序设计语言的结构, 具备初步的高级语言程序设计能力。掌握基本的程序设计过程和技巧, 掌握基本的分析问题和利用计算机求解问题的能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。

2 C语言课程设计的基本流程

它的具体流程如下:

首先, 做一个系统, 对其进行功能模块的分析、控制模块的分析, 然后检查是否符合课题要求, 能否实现其相应的功能;能不能够加以其他的功能或其他的修饰, 能否使程序设计更加合理和完善;

其次, 整个系统设计必须要达到实用的目的, 编程过程进量要简练, 可用, 其功能要全面;

第三, 课程设计的说明书及其流程图等要表述清楚;

第四, 为编写设计说明书作好准备, 要有相应的记录设计情况;

第五, 必须采用模块化程序设计的方法, 以及正确完整的书写格式, 并按设计的报告格式进行上机调试;

最后, 要提交设计内文档写作和程序开发必须同步。

也就是说:应该先完成程序设计目的分析和功能模块分析后, 再进行编码和程序调试、测试工作。编程测试要求学生把自己编写好的程序录入到计算机, 然后进行程序语法调试, 如语法正确, 再选取一些数据进行程序测试。这一部分是课题设计的关键, 也是需要花费时间最多的部分。在此过程中要求学生学会按模块一个一个地进行调试。

在编译时有时会出现比较多的出错提示。这时应努力理解、领会提示信息的含义, 并据此改正错误。当编译提示的出错信息不止一条时, 只须先注意其中第一条。因为从第二个错误开始的若干错误很可能是随带错误, 只要更正了第一个错误, 它们便自然更正了。对于C语言初学者, 最好先将程序以书面的形式描述出来, 然后录入计算机调试。在经过定性、定量分析后, 学生对所要进行的设计进行书面算法设计。强调学生在编程时要代码规范、使用注释, 养成良好的编程风格。通过将程序写到纸上, 不仅能使学生进一步掌握C语言语法, 而且学生在编程过程中如遇到问题, 可以有足够的时间提前到图书馆或网上查阅资料, 保证了程序的正确率和有限的上机调试时间。

实践证明, C语言课程设计对提高教学质量有明显的优越性, 克服了重理论, 轻实践的弊端。由于课程设计不是一般的书面作业或上机操作实验, 而是一次完整的软件设计。这就要求提前做比较多的准备工作, 如收集整理资料和编写较多的教学文件等。

3 C语言课程设计内容调整——适当取舍和整合

课程设计成功的首要条件是选择一个合适的题目。题目要符合实际, 不仅要使学生掌握C语言程序设计教学中的重要知识点、了解程序模块化开发等内容, 而且还要与现实生活联系密切, 具有一定的实用性和趣味性, 由于C语言程序设计是工科很多专业必修的课程, 所以在选题时尽可能体现本专业的特色, 具有一定的先进性和实用性, 增强学生对专业知识的领悟与应用能力, 可以与单片机结合进行课程设计

大多数C语言教材内容是按照“数据类型-基本结构-数组-函数-指针-文件”这样的顺序进行知识点编排, 内容详尽全面、讲解细致[1]。这样的做法偏于陈腐, 因此, 针对这些情况, C语言课程设计内容要进行适当的取舍和整合。

3.1 整合

适当的调整知识点的设计顺序, 增强知识点之间的联系, 这样可以直接把知识转化成能力。但在教材整合要注重知识的渐进性, 符合课程设计的认知规律。比如, 讲解整型数据的时候可以和该类型的输入输出语句的格式说明相结合, 通过两个数求最大值的例子, 引入if选择结构、关系运算符和关系表达式、流程图的画法的讲解。通过判断一个数的奇偶的例子, 引入算术运算符和算术表达式、等于运算符的讲解。这样就把书上的数据类型、运算符和表达式、顺序结构和选择结构四章的内容打乱、重组。

3.2 取舍

与其把所有内容通讲, 还不如挑一些内容精讲, 让学生熟练掌握这些知识。对于未讲的内容, 可以通过循序渐进的方式, 在例题或作业中逐步的加入。

4 C语言课程设计方法的改革——采用案例C语言法

传统C语言方式是以教材为中心, 从书本到书本, 从概念到概念, 导致C语言课程设计对理论与实践的脱节。而案例C语言法十分注重其效果, 通过案例分析解决实际问题。对设计的目标进行定性分析, 进行定量分析。可采取自顶向下、逐层分解的方法, 将课题分成有若干个模块, 然后对各模块重点和难点内容进行重点讲解, 使重点突出, 难点分散, 最终各个击破。

计算机学科是一门实践性很强的学科, 只“听”、“读”、“写”是远远不够的。在程序开发过程中, 程序调试的工作量要比编程大得多, 上机调试程序是一个不可缺少的重要环节。因此, 要明确上机目的, 验证程序的正确性, 具体的分析算法和语法结构。这样, C语言课程设计的实践目的才能达到。

C语言课程设计内容主要分成2部分:1) 理论课的例题;2) 针对理论课所讲的内容, 布置题目。如可以设计出一个工资管理系统:

(1) 设计要求

矩阵乘法:编写一个函数实现矩阵A (2行3列) 与矩阵B相乘 (3行2列) , 乘积放在C数组中。在主函数中输入相乘的两数组, 并输出结果。

工资管理:结构体数组、函数、指针、算法、流程结构及文件等的综合应用。

程序说明:有N个工人, 每个工人的数据包含职工号 (不重复) 、姓名、工资总和及分项工资, 试设计一工资管理系统。

(2) 功能模块的设计

输入记录函数EMP*create ()

算法:先声明一个首节点head, 并将head->next设为NULL。每输入一个数据就声明一个新节点p, 把p->next设为NULL, 并且链接到之前列表的尾端。

记录函数void er int (EMP*head)

算法:先将p结点的指针指向第一个结点, 将p结点 (即第一个结点) 的数

输出。然后再将p结点的指针指向p指针的的指针 (即下一结点) , 将p结点第一结点) 的数据输出。重复执行此步聚直到p指针指向NULL为止。

查找记录函数void search (EMP*head)

算法:采用线性查找法往下一个节点查找。输入所要查找的职工的职工号k,

设一个指针变量p, 先指向第一个结点, 当strcmp (p->name, k) &&p!=NULL时, 使p后移一个结点, 如果p!=NULL, 输出p所指的结点。

需要注意的是, 在整个设计过程中, 要设计好流程图。

在C语言课程设计中应该注意程序中频繁的调用函数会增加系统的负担, 降低程序的执行速度, 花费较多的时间, 影响C程序的执行效率。这就要求我们在编写程序时, 在程序的可靠性得到保证的前提下, 根据具体情况找出最优的、能充分利用系统资源和提高程序运行效率的一种最佳方法。当然, 在不同的系统和不同配置的计算机上程序的运行效率是不尽相同的, 程序的效率问题是在编写较大或较复杂程序时应该充分考虑的。

5 结论

本文通过对C语言课程设计的探索和改革, 探讨了在C语言课程设计中的设计方法和应注意的一些重要问题, 通过这些探索, 能够使学生的理论水平和实践能力大大提高, 这对C语言的学习和课程设计有一定的指导作用, 学生综合能力也会不断的增强。

参考文献

[1]谭浩强.C语言程序设计教程[M].北京:清华大学出版社, 2007.

[2]李博.多媒体C语言中存在的问题及解决措施[J].才智, 2009, 8.

[3]李炜.计算机高级语言程序设计的C语言改革与时间[J].安徽师范大学学报:自然科学版, 2003, 26 (2) .

[4]管小卫.C语言课程设计探讨[J].广西轻工业, 2009, 1.

3.《C语言程序设计》课程教学研究 篇三

随着计算机的日益普及和互联网的飞速发展,以信息产业发展水平为主要特征的综合国力竞争日趋激烈,软件产业作为信息产业的核心和国民经济信息化的基础,越来越受到世界各国的高度重视。软件技术已成为信息社会的运行平台和实施载体,软件技术应用的全面延伸对用于信息处理的软件技术的发展提出了更高要求,同时促进了软件技术和软件行业的飞速发展,软件技术已经成为人们公认的当今发展最为迅速的技术之一。

《C语言程序设计》是软件工程专业的核心基础课程,其教学效果的好坏,对整个专业教学计划能否顺利完成和专业培养目标能否实现有着重要的作用。本文针对软件工程专业的特点,从培养工程应用型人才的实际需求入手,结合笔者自身的教学实践,对《C语言程序设计》课程教学中的问题进行了分析,从课程教学设计与课程实践教学方面提出软件工程专业《C语言程序设计》课程教学的一系列改进措施。

一、课程教学现状

笔者结合多年的教学实践,并通过调查在校往届学生的学习情况发现,《C语言程序设计》课程教学存在一些问题。

(一)教材内容与实践脱节

教师教授理论课时,大多依据教学大纲指定的配套教材进行讲授,实验课的编程题目多数是验证课本上的例程或者理论课教材后的作业。目前,软件工程专业理论课使用的教材大多以傳授基础理论知识为主,虽然一些知识点后给出了相应的实例,但是这些案例比较孤立,缺乏与工程实践的联系,导致学生觉得日常练习的例程枯燥无味,而且不知道如何将基础理论知识应用于工程实践,使自己具备一定的解决问题能力。由于学生所学知识及其方法与工程实践没有有机结合起来,学以致用的工程意识缺乏日积月累的养成土壤,学习的兴趣和动力不知不觉地消失在盲目与盲从之中。

(二)课程考试与实际应用相关性差

《C语言程序设计》是计算机专业学生学习各类专业课程的重要工具性课程,主要培养学生的工程实践能力。通过调查发现,目前该课程考核仍然以闭卷笔试的形式为主,考试内容主要为基础知识点。这样,学生在面对课程考核时,出于应对考试的需要,知识点背一背、记一记,复习课程和政治课、历史课类似。课程考试方式和内容与实际应用较差的相关性导致学生学习动力不足。

二、课程教学设计

事实上,尽管学习动机不尽相同,学生层次有差异,但绝大多数学生能够认识到自己的需要,希望通过学习提高自己的能力。结合学生特点,笔者认为“做中学”和“基于项目教与学”能够较好地提高《C语言程序设计》课程教学质量。

(一)“做中学”统一知与行

“做中学”是比从“听中学”更好的学习方法,符合人类对客观事物规律的认识,能够把书本上的知识与工作生活联系起来,充分结合了学与做。因此,在设计组织教学活动时应注重实践活动的设计,把教学活动与工作生活实际相结合,鼓励学生在实际活动中学习,并将实践中获得的知识与技能有效运用于解决学习、生活和今后工作中的实际问题,即在实践中学习,在学习中实践。

(二)“做中学”最有效的方法就是进行基于项目的学习

一个完整的项目是从分析开始,经历构思、设计、实现和运作的一个完整过程,在学习学科知识的同时能够提高个人产品过程的认知能力和系统建造的能力。在课程的设计过程中,始终强调以项目为导向,以任务为驱动,以一个具体项目为依托来学习相关的内容,在具体实施中分级设置项目,先易后难、循序渐进地将相关的知识点融入项目的任务之中,通过完成任务掌握相应的知识点,提高相关技能和操作的应用能力。在此过程中,学生不断进行实践、总结、反思,将琐碎的知识点串联起来,逐步培养学生的综合能力。

三、课程教学实施

(一)多方面积极引导,激发学生学习兴趣

学生在学习《C语言程序设计》设计之前,可能通过新生入学教育或从高年级学生中知道这是一门专业必修课程而兴致勃勃,但到真正学习时,如果一直都是面对一堆单调而且枯煤无味的语法知识,则容易使学生产生厌学心理从而逐渐失去学习的兴趣。因此,要改进教学方法。首先,通过展示学校近几年来在各种比赛中获得的好成绩,让学生观看比赛的图片,让学生知道只要努力,在各种竞赛中都可以占有一席之地,这样学生就有可达到的奋斗目标从而消除他们的畏难情绪,激发学生的学习兴趣。

其次,在课堂讲授时尽可能找一些趣味性较强的例子讲解,除布置基本的训练学生掌握语法或者算法的题目外,设计1—2个有趣味性的游戏程序设计,如在选择结构编程练习中简易计算器的开发,在循环结构编程练习中加入猜数字游戏设计,在一维数组编程练习中加入猜牌术游戏等,这些游戏程序设计的开发有一定的难度,鼓励学生结成兴趣小组,互帮互助共同完成,在此过程中,学生的学习自主性和团队协作精神都得到大幅提高。

(二)精心设计实验教学

要根据《C语言程序设计》实验的教学大纲制定实验计划,精心设计每一次实验内容,要综合考虑学生编程能力上的差异,不要把题目设计得太深或者太简单,可以设计必做题和选做题,对基础较差的学生,最低要完成必做题;对能力较强的学生,在完成必做题的基础上,鼓励他们去完成选做题。同时,在实验的编排上,注意验证性、设计性和综合性实验的比例,对验证性实验进行精选,即使是验证性实验,也不要简单验证程序的运行结果,而是首先要求学生阅读程序,写出运行结果或程序实现的功能,然后再上机运行,同时可以设计一些问题让学生思考并对程序进行进一步修改,然后再分析运行结果。减少验证性实验项目,增加设计性和综合性实验项目,由浅入深、由易到难,加强学生动手能力、分析问题和解决问题能力的培养,最终提高学生的编程能力。

(三)灵活运用多种教学手段

在做题过程中,教师的主要任务是及时发现问题,回答学生的疑难问题。但是,在实验练习的过程中,学生主要依靠自己讨论或者上网寻求思路来解决问题。这是一个值得鼓励的好现象,能够充分体现学生独立自主学习的能力,在课堂教学中应当鼓励学生互相讨论,互相交换思想共同解决问题。但是,在教学中教师的作用体现不够充分,不愿意寻求帮助的学生会因为一道题目没有解决而无法正常进行实验练习,教师的作用应该是在学生自主解决问题的同时,能够及时提供帮助,尽量统一实验进度。在上机指导学生实验时,要以问题为中心,广泛采用启发式、参与式和讨论式等教学手段,要打破学生对教师的依赖性,让学生自己去思考如何编程,如果较难的题目允许学生讨论,鼓励学生去查阅相关资料,也可以适当给学生一些提示,但一定不要给学生源代码,重点给出解题的思路与建议性方法,给学生留下足够的独立思考和设计的空间,使学生在实验过程中亲自体会并掌握程序设计思想,提高实验的教学效果。

(四)利用网络教学平台让学生主动学习

充分利用校园网内建立的《C语言程序设计》网络教学平台,在该平台上共享本课程部分教学视频、相关课件、经典算法资料、ACM大赛历年题目,可以让学生通过此网络教学平台更加自主地选择性学习,更重要的是利用此平台与学生进行互动交流,在答疑区对学生提出的问题,老师与学生都可以及时解答,同时其他学生也可以分享交流过程,随时再提出新问题,更好地激发学生的学习兴趣,增强教师与学生、学生与学生之间的互动。通过多种教学方式的结合,不仅加深了学生对所讲知识点的理解,而且激发了学生的学习兴趣,提高了学生学习的自觉性,同时通过互动交流式学习增强了学生的自信心。

参考文献:

[1]张红军.C语言程序设计教学改革初探[J],信息与电脑,2015 (9):140-142.

[2]刘红霞,张永恒.CDIO工程教育模式下的C程序设计教学改革研究[J],榆林学院学报,2015 (4):83-86.

[3]李文锦,游戏化学习在C语言程序设计的应用与实践[J],新课程研究,2015 (7):76-77.

4.c课程设计 篇四

设计要求:

每人选定2个题目,限1人选的题目只能由1人单独完成,限2人选的题目可由1-2人完成。

1.模块化程序设计 2.锯齿型书写格式 3.必须上机调试通过 设计报告格式:

1、设计目的

2、总体设计(程序设计组成框图、流程图)

3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)

4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施

5、源程序清单和执行结果:清单中应有足够的注释

检查要求:

1、每个人必须有可运行的程序(学期末检查);

2、每个人必须交《C语言课程设计报告》(打印稿)打分标准:

1、根据平时上机考勤;注重平时上机成绩,教师要不定期检查学生进度,学生不得以自己有私人电脑为借口而不来上机。

2、根据程序运行结果;

3、根据《C语言课程设计报告》,学生能对自己的程序面对教师提问并能熟练地解释清楚

以上三项缺一不可,否则不能到得相应学分

1、职工信息管理系统设计(限最多2人完成)

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 职工信息录入功能(职工信息用文件保存)--输入 职工信息浏览功能 --输出

查询和排序功能:(至少一种查询方式)--算法

按工资查询 按学历查询

职工信息删除、修改功能(任选项)

2、图书信息管理系统设计(限最多2人完成)

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 图书信息录入功能(图书信息用文件保存)--输入 图书信息浏览功能--输出 查询和排序功能:(至少一种查询方式)--算法

按书名查询 按作者名查询

图书信息的删除与修改(可选项)

3、学生信息管理系统设计(限最多2人完成)

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能---输出 查询、排序功能---算法

按学号查询 按姓名查询

学生信息的删除与修改(可选项)

4、学生选修课程系统设计(限最多2人完成)

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 课程信息录入功能(课程信息用文件保存)--输入 课程信息浏览功能--输出

查询功能:(至少一种查询方式)--算法v 按学分查询 按课程性质查询

学生选修课程(可选项)

5、销售管理系统(限最多2人完成)

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:

1)销售员的代号 2)产品的代号

3)这种产品的当天的销售额

每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,所有信息保存到文件中,读取上个月的销售情况(自己设定),进行如下处理。

1)计算上个月每个人每种产品的销售额。

2)按销售额对销售员进行排序,输出排序结果(销售员代号)

3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)

4)输出统计报表

销售统计报表

产品代号

销售之和 销售员代号

每种产品之和

总和

6、设计一个简单计算器(限最多1人完成)

要求: 在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。

7、编写一万年历系统(限最多1人完成)

要求: 模仿现实生活中的挂历.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).当系统日期变到下一月时,系统自动翻页到下一月.8、学生成绩管理(限最多2人完成)

1.主要功能:

(1)能按学期、按班级完成对学生成绩的录入、修改

(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序

(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单(5)所有信息保存到文件中

9、通讯录管理(限最多1人完成)

1.主要功能:

(1)能建立、修改和增删学生通讯录(2)能够按多种方式进行查询

2.要求:界面友好,易于操作,所有信息保存到文件中

10、一元多项式简单的计算器(限最多1人完成)

1主要功能:

(1)输入并建立多项式;(2)输出多项式;

(3)两个多项式相加,建立并输出和多项式;(4)两个多项式相减,建立并输出差多项式。

(5)算法的时间复杂度、另外可以提出算法的改进方法 实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。

2.要求:一元多项式简单计算器的基本功能

11、图书管理系统(限最多2人完成)

1、功能描述

新进图书基本信息的输入。2.图书基本信息的查询。3.对撤消图书信息的删除。4.为借书人办理注册。

5.办理借书手续(非注册会员不能借书)。6.办理还书手续

信息描述:有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等

7.所有信息保存到文件中

12、用栈来设置密码(限最多1人完成)

要求:用栈来做一个密码验证程序,密码验证只有三次机会。

13、双向链表的排序(限最多1人完成)

要求:输入一个双向链表,显示些双向链表并对此双向链表排序,所有信息保存到文件中

14、成绩记录簿(限最多2人完成)

编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:

(1)创建信息链表并以磁盘文件保存;

考核方式

课程设计完成情况; 课程设计报告;

课程设计期间的表现.参考评定依据

课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序及课程设计考勤登记表,其中平时成绩占总成绩的20%。

优:按要求完成题目,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好;

良:完成设计题目,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进;

中:基本完成题目,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确;

及格:基本完成题目,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确;

不及格:没有完成题目的要求,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。

提交资料:

课程设计报告

提交报告的内容

一、题目内容的描述

二、应用程序功能的详细说明

三、输入数据类型、格式和内容限制;

四、主要模块的算法描述 –以程序流程图的方式给出 –简要的语言描述

五、结束语

六、程序的源代码清单

七、报告的字数,不算源代码清单不少于4页 提交报告的格式

正文宋体小四号字

每个自然段开始空两格.文中英文用新罗马(time new roman),四号

源程序清单用英文新罗马五号 正文宋体小四号字 提交报告封面

软件:需提供源程序,并能正常运行。

5.C语言课程设计选题 篇五

功能:

1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。

2、输入功能:可以一次完成若干条记录的输入。

3、显示功能:完成全部教师记录的显示。

4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。

5、排序功能:按职工号或教学效果综合评分进行排序。

6、插入功能:按教学效果综合评分高低插入一条教师记录。

7、将教师记录存在文件中。

8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!

要求:

1、用C语言实现系统;

2、利用结构体数组实现教学信息的数据结构设计;

3、系统具有增加,查询,插入,排序等基本功能;

4、系统的各个功能模块要求用函数的形式实现;

5、将教学信息存在文件中。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书2 题目:酒店房间登记与计费管理系统

功能:

1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。

2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。

3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。

3、进一步要求:完成计费和费用查询功能。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书3 题目:大学生成绩管理系统

功能:成绩管理系统包含了学生的全部信息,每个学生是一个记录,包括学号,姓名,性别,各科成绩等。系统可完成:

信息录入——录入学生成绩信息(包括学生学号、姓名、各门课程的成绩等);

信息查询——输入学号,查询学生各门课程的成绩及所有课程的平均成绩;查询所有学生各门课程的成绩,并按可选的自定义规则进行排序;

信息删除与修改——输入学号,删除该学生的成绩信息、输入学号,查询并显示出该学生的成绩信息,并在此基础上进行修改;

信息保存——将学生的学号、姓名及各门课程的成绩等信息保存于外部存储器的文件中。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个文件,包括10个学生的必要信息,能对文件进行补充,修订,删

除,并能进行统计计算;

3、进一步要求:完成包括一个班,一个年级乃至一个系的系统。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书4 题目:职工档案管理系统设计

功能:职工档案管理系统包含了职工的全部信息,每个职工是一条记录,包括编号,姓名,性别,出生年月,年龄,所在部门,职称,工资级别、电话等。系统可完成:信息录入、信息查询,并按可选的自定义规则进行排序;信息删除与修改(须设置密码),将职工的信息保存于外部存储器的文件中。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个文件,包括10个职工的必要信息,能对文件进行查询、补充、修订、排序、删除等;

3、进一步要求:能进行统计计算;完成包括整个职工的系统;对删除与修改等设置密码

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书5 题目:银行存取款管理设计

功能:能够输入和查询客户存款取款记录。在客户文件中,每个客户是一条记录,包括编号、客户姓名、支取密码、客户地址、客户电话、账户总金额;在存取款文件中,每次存取款是一条记录,包括编号、日期、类别、存取数目、经办人。类别分为取款和存款两种。本系统能够输入客户存款或取款记录;根据客户姓名查询存款和取款记录。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数;

2、完成最低要求:建立一个文件,包括输入10个客户的必要信息,能对文件进行输入、修订、删除。

3、进一步要求:完成客户姓名查询存款和取款记录,并能得到每次帐户总金额。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结

等)。

C语言课程设计任务书6

题目:商品订购系统设计。

功能:屏幕上出现一个界面,让顾客或输入商品名称,或商品型号,或选择列表进而输入商品编号都可以,如查到所选商品,则列出商品编号、商品名称、商品型号、商品价格、商品产地、库存数量和已订购数量;然后给出选购流程:所选商品编号—列出对应商品的信息—要求顾客输入邮寄地址信息—确认订购,是否继续选购其它商品,列出所有选订商品,再次确认订购。建立两个文件,分别存放商品信息与订购信息。分步实施:

1、步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个小系统,包括10种产品能供顾客选择。

3、进一步要求:完成全部功能的系统。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书7 题目:设备管理系统设计

功能:设备管理系统应包含各种设备的全部信息,每台设备为一条记录(同一时间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、领用人、所属部门、数量、购买时间、价格等。能够显示和统计各种设备的信息。

分步实施:

1、步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个文件,包含一个部门10台设备的信息,能对文件进行补充、修订、删除,能统计所有设备的总价值。

3、进一步要求:完成设备按种类、按所属部门进行统计。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书8

题目:学生计算机机房管理系统设计

功能:该计算机房共有100台计算机,分为20排,每排50台。管理系统应包含每台计算机一周内的使用全部信息,包括计算机序号、配置、位置、状态、使用情况的历史记录(包括使用者姓名、学号、使用时间段)等。本系统可以模拟学生上机和离开的登记过程,查询机房计算机的使用情况。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:建立一个文件,包括200个计算机的必要信息,能实现学生上机和离开的登记过程模拟。

4、进一步要求:完成机房计算机的使用情况查询和打印。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书9

题目:商店销售管理系统。

功能:屏幕上出现一个界面,让售货员输入商品编号或者商品名称,可以进货,进货后商品库存同时增加。顾客买走商品后,售货员输入商品编号或者商品名称,可以生成销售清单,统计本次销售总的价钱,同时库存数量相应减少。完成前面的基本功能后,还可以完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。

分步实施:

1、步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:能按商品编号进货和销售;

3、进一步要求:完成增加新的商品或删除不需要的商品的功能,以及每天销售统计功能等。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书10 题目:计算机辅助教学(CAI)软件开发:教小学生学英语。

功能:屏幕上随机出现一个汉语单词,英语单词,汉语词组,英语词组或一短句提示小学生给出相应答案,答错了要提示要求重新输入,直到答对为止。要统计给分,且累计,够一定分数后可进级,即从单词到词组,从词组到短句。同样,也可降级。起步阶段可各选30个,软件可扩充,即扩大词库的容量。

(rand(),#include 结构体、文件或数组)

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:能教单词,并有统计功能,即一次答对的成功率为90%以上后可晋级;

3、进一步要求:完成词组和短语的问答,也有晋级功能。

要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书11

题目:五子棋

功能:1.由两个玩家分别下棋,当某一玩家五子相连,则赢。

2.界面要求:初始状态——显示棋盘,并显示两个玩家的操作键及初始玩家号;游戏进行状态——动态显示棋盘,不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家号。分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:由两个玩家分别下棋;

3、进一步要求:可以考虑人机对弈。要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(图形界面,良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。

C语言课程设计任务书12

题目:井子棋

功能:1.计算机为一方,人为一方,交替下棋,谁先连成一条直线谁胜;允许人选择先下还是后下。

2.界面要求:初始状态——显示棋盘,并显示玩家的操作键;游戏进行状态——动态显示棋盘不同玩家的棋子用不同符号显示,屏幕上显示当前玩家号,结束时显示赢家号。

3.提示计算机自动下棋的规则:计算机下时,应考虑所有空位,并按行、列、对角线计算每个空位的分值,若在某行(列、对角线)上,(设计算机画X,人画O)

已有XX 加50分

已有OO 加25分

已有X空 加10分

已有O空 加8分

都是空 加4分

然后选分值最高的位置画X。分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:由人机分别下棋;

3、进一步要求:可以考虑使用鼠标。要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(图形界面,良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结

等)。

C语言课程设计任务书13

题目:迷宫游戏

功能:1.随机生成迷宫,找出由入口经过迷宫到达出口的一条路径,允许选择人或计算机找出路。

2.界面要求:初始状态——显示迷宫的图面;用箭头指出入口外和出口外;游戏进行状态——选择人找出路时,显示每一步的结果,到边了和遇上障碍,发出“嘟”的叫声。走到出口处,应给出“胜利”的字样;选择计算机找出路时,用一条有颜色的线画出路径,若找不出出口就显示“无出路”的字样。3.计算机找出路部分可选做。

分步实施:

1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;

2、完成最低要求:由人选择出路;

3、进一步要求:可以考虑由机器选择出路。要求:

1、用C语言实现系统;

2、函数功能要划分好(结构化程序设计);

3、界面友好(图形界面,良好的人机交互),加必要的注释;

4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。

课程设计的最后成果是实验报告一份,内容包括:

1、预习报告(题目、流程图、程序的设计思想等);

6.工资管理c课程设计 篇六

随着计算机的普及,目前在各所高校中,普遍开设有程序设计类课程。对这类课程目前的考试方式主要有两种:1)笔试:题型包括单选题、判断题、程序填空题和编程题四大类;2)作品考试。学生或独立或分组完成某个系统的设计和实现。以上两种方式各有优缺点。第一种方式对学生编程能力的考核存在不足;第二种方式对学生理论知识的考核有缺陷。网络环境下的计算机考试系统来实现程序设计类课程考试,可以结合两种考试方式的优点,通过考试系统既能实现对理论知识的考核,又能提供编程环境,使学生上机完成程序设计题的编写和调试。

2 考试系统的需求分析

计算机程序设计课程要求考生掌握程序设计的基础知识,应用程序设计语言编写小程序的能力。考试系统涉及到四种题型,选择题、判断题、程序填空题和程序设计题。考试系统在试题库中随机抽取试题组卷,考试结束后,提交试卷就能自动评分并保存试卷,既方便教师阅卷,也提高了试卷批改的准确度和速度。教师所要做的工作只是精心设计题目、维护题库。

本系统应该具备以下功能:

1)题库管理功能。教师可以对题库的题目及题型进行录入、修改、删除等相关功能。

2)组卷功能。系统可按考试出题要求为学生自动随机抽取试题库中的题目组成试卷。

3)评分系统。系统可对客观题进行逐个批改。主观题提供老师阅卷界面,显示学生的操作结果与本题的标准答案,老师进行评分。

4)交卷功能。考生开始考试后,系统将自动计时,考生考完可选择交卷功能。在考试时间剩余5分钟时,系统会提示考生,到达规定的考试时间时,系统关闭答题窗口,提示考生交卷并结束考试。

5)断点续考功能。所有考试结果自动保存在网络考试服务器上,并具有二次登陆功能,防止断电和死机等原因导致考试失败的功能。

3 计算机应用基础考试系统的设计

3.1 系统的体系结构

本系统采用三层C/S结构,在三层C/S结构中,业务逻辑与客户端分离,这样在一定程度上减轻了客户端的负担。三层C/S结构是将整个业务应用划分为表现层(VI)、业务逻辑层(BLL)和数据访问层(DAL)。其解决方案是:对这三层进行明确分割,并在逻辑上使其独立。三层C/S架构区分层次的目的是为了“高内聚,低耦合”的思想。

表现层:通俗地讲,就是展现给用户的界面,即用户在使用一个系统时他的所见所得。表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。为使用户能直观地进行操作,一般要使用图形用户接口(GUI),操作简单。

业务逻辑层:针对具体问题的操作,也可以说就是对数据层的操作,对数据业务的逻辑处理。它是应用的本体,它将具体的业务处理逻辑地编入程序中。处理所需的数据则要从表示层或数据层取得。表示层与功能层之间的数据交往要尽可能简洁。而由功能层处理过的检索结果数据也一次传送给表示层。

数据访问层:数据层就是DBMS,负责管理对数据库数据的读写。该层所做事务直接操作数据库,针对数据的增加、删除、修改、查询。

三层C/S结构的优点如下:1)具有灵活的硬件系统构成;2)提高程序的可维护性;3)利于变更和维护应用技术规范;4)进行严密的安全管理。

本系统的三层C/S架构设计,如图1所示。

在图1中将整个系统划分为如图所示的逻辑结构,同时还给出了解决方案中对应的程序结构。

其中表现层即考试系统界面层,是考试系统的用户接口部分。本考试系统用户由三类:管理员、老师和学生,根据用户的性质,将管理员和老师从服务器端登录,学生从客户端登录。因此,对应的将系统的表示层分为客户端和服务器端两个项目来完成,并分别命名为SysServer和SysClient,作为两个独立的项目,用于用户操作;业务逻辑层主要实现考试系统处理业务,命名为SysBll,作为一个单独的类库,包含所有系统需要处理业务的类的集合;数据访问层用于考试系统数据访问,命名为SysDal,也是一个类库项目,主要用于操作数据库,实现对数据库的增加、删除、修改、查询等操作。

除此之外,还用SysDal项目来定义数据访问层接口,其作用是定义一种系列“功能”的声明或名单,没有实现细节;用SysModels项目用来定义类,是对各个实体的抽象,包含各个实体的属性已经设置和获取的方法,最终用于建立实体对象。[1]

3.2 系统功能设计

考试系统主要分为以下模块:人员管理、试题管理、考试管理、评卷管理、成绩管理、考生登录、试题生成、开始考试和试卷提交。

3.3 系统功能描述

1)人员管理:实现后台登陆,管理员、教师、考生的增删改和人员权限的设置。

2)试题管理:对试题的类型进行管理,并定义各种试题的操作,添加和管理各种试题。

3)考试管理:对考试进行管理,设置和修改考试、考场的相关信息。

4)评卷管理:对于客观题进行自动评卷记分;对于主观题进行手动评分题。

5)成绩管理:进行成绩统计分析

6)考生登陆:考生登陆考试系统。

7)试题生成:根据试题库,随机生成学生考试题。

8)开始考试:学生进入系统进行考试答题,并且开始记时。实时保存学生考试进度,以免异常造成考试信息丢失。

9)试卷提交:学生提交答案,系统自动将答案提交服务器。[2]

3.4 数据库设计

3.4.1 数据库的需求分析

在设计数据库结构时,既要考虑到尽可能地满足系统应该实现的各项功能需求,同时又要避免冗余数据的产生。根据考试系统的特点,考试系统在实现过程中,主要采集以下方面的信息:管理员信息表、考生信息表、试题知识点表、试题类型表、试题表、考生考试信息等。

管理员信息表:包括系统管理员和老师的人员编号、人员名称、登陆名、密码、人员类型等相关信息。

考生信息表:包括考号、身份证号、姓名、班级、年龄、性别、状态、考场号、得分等。

试题知识点表:包括知识点编号、知识点名称、所在章、所在节等知识点。

试题类型表:包括试题类型编号、名称、备注。

试题表:包括题目编号、知识点编号、试题类型、题目内容、选项A、选项B、选项C、选项D、标准答案、标准答案文件等相关信息。

考生考试信息表:包括考生编号、试题编号、得分、答案、答案文件等。[3]

4 实现的关键技术

4.1 实现的环境

4.1.1 硬件环境

服务器一台,客户机80台组成的局域网硬件环境。

4.1.2 软件环境

服务器端:操作系统Windows 2003 Server;数据库:SQL SERVER2005。

用户端:操作系统:windows xp;数据库:Access。

网络协议:TCP/IP。

4.2 开发工具选择

根据本系统要实现的功能,需要选择两种工具,即前台开发语言和后台网络数据库系统。

本系统选择C#作为前台开发语言,SQL Server 2005作为后台数据库系统,并选择Visual Studio 2005作为C#的开发环境。

4.3 实现的关键技术

1)题库的设计

根据课程要求,将本考试系统的试题类型分为:单项选择题、判断题、程序填空题和程序设计题。因此,在题库中必须要包含上述类型的试题信息,其中包括题目文本和标准答案。

本系统将所有题目类型建立了一个试题类型表来记录每一种题型的编号及名称,试题知识点表来记录每道题的知识点名称、所在章、所在节等信息。用试题表来保存所有题目,由于各种题型的题目保存在一个表中,其中用字段TypeID来说明每一道题目的类型,Content记录题目描述,Score字段记录每道题的分值。对于选择题部分的题目,用A、B、C、D四个字段记录答案选项。选择题和判断题是自动评分,且用Answer字段记录标准答案;程序填空题和程序设计题采用人工评分,程序填空题用Answer字段记录标准答案,程序设计题用AnswerFileName保存标准答案文件名。

2)组卷的实现

考生上机考试登录成功后,系统在试题库中随机抽取试题组卷。在生成题库时,已将题型信息记录在试题表,以便抽题时使用。

组卷时,系统更新考生考试信息表,在表中记录该考生的考生号,抽取的试题号。抽题时按不同题型、不同的知识点抽取题目。为了避免抽到重复题,每抽一个题将与该考生已抽题进行比对,如果题目已抽取为该考生题目,将不放入考生试卷,重复抽取直到生成所有的不一样的题目。抽题后,直接在服务器上生成一个考生文件夹,所有程序填空题和程序设计题的答案文件放入考生文件夹中。

3)评分

目前对于选择题和判断题的评分方法都简单,即将考生的答案与标准答案比对,答案一致就等分,答案不一致就不得分。而对于程序填空题和程序设计题答案存在不唯一性。因此,本系统认为合理的评分方法是,对于客观题(即选择题和判断题,选择答案是唯一的),把标准答案均设置成题库中的字段,可以完全由机器阅卷;而非客观题(即程序填空题和程序设计题),可以采用计算机辅助人工阅卷方法,在阅卷时,调出标准答案和考生答案,进行比较,权衡后给出符合实际的评分。这种批阅方式虽然在速度上比不上完全自动批阅,然而能确保其公正性。

4)二次登录

如果考试期间发生突发事件,导致考生无法继续考试,那么在考生二次登录后,需要还原考生的考试环境;本系统通过数据库记录考生信息,出现故障时通过此数据库恢复考生信息。

5)程序的移植

为了方便程序移植,本系统采用了配置文件来进行程序的移植。也就是将与数据库的连接写在app.config文件里面更方便,并且易于修改。

5 结论

网络环境下的计算机考试系统进行考试,具有以下优点:减少重复劳动,提高考试效率;保证考试公平性、公正性;方便教学管理、实现节能环保,同时也能够实现其他科目的考试,是考试发展的必然趋势。本系统采用C/S三层结构设计,具有较好的维护性、扩展性、安全性和可移植性。

参考文献

[1]王国胜.C#基础与安全开发详解[M].北京:清华大学出版社,2009.

[2]陆科.高校在线考试系统的设计实现[J].科技信息,2010(26):233-234.

7.工资管理c课程设计 篇七

关键词:C语言程序设计;项目教学模式;应用能力

中图分类号:G642 文献标识码:A文章编号:1007-9599 (2011) 15-0000-02

C Language Programming Course Project Teaching Mode

Luan Guifen

(Taizhou Higher Vocational School of Mechanical&Electrical Technology,Taizhou225300,China)

Abstract:C language programming course using the project to improve the teaching ability of students to apply,set project goals and prepare for the teaching project teaching the theoretical and experimental materials,select the appropriate teaching project library construction project cases,in addition to theoretical and experimental courses in teaching,effective implementation of the project,the project should also be extended to extra-curricular teaching in the classroom network.

Keywords:C language programming;Project teaching mode;Application ability

在职校教学中,传统教学法很难满足信息化社会应用型人才的能力培养要求。C语言程序设计课程是一门实践性较强的课程,应更加重视应用能力与实践能力的培养,而非计算机专业的C语言程序设计教学多用传统教学法,导致学生的理论学习与实践脱节,很大程度上影响了教学效果。因此,迫切需要采用新的教育教学法或教学模式来改变这种现状。以培养应用能力为核心的“项目教学模式”,它把学习知识、训练技能、培养能力贯穿于整个教学过程之中,能够充分发掘学生的创造潜能,提高学生的动手能力。

一、项目教学模式

项目教学模式是在建构主义理论[1]指导下,以基于项目的教学方式完成课程教学任务的教学方法体系。教师在授课过程中,以一个贯穿课程始终的,来源于生活和生产实际的成功项目案例为线索组织教学,进行知识传授和技能培训[2]。它实质上就是一种基于建构主义学习理论的探究性学习模式,强调知识意义和能力建构性,强调协作学习,在不断解决问题、实现阶段任务中完成对知识的意义建构。基于建构主义的项目教学法与传统的教学法相比,将以教师、课本、课堂为中心转变为以学生、项目、实践为中心,能够使理论知识与应用能力的培养有机结合[3]。

在项目教学的实施过程中,经常遇到以下一些实际问题:项目教学是从应用的角度出发,与传统的教学方式有很大的区别,教学目标该如何制定才能体现项目教学的实施效果。传统的教材对于知识模块的划分不适合项目教学的实施,需要编制适合项目教学的理论教材和实验教材来配合项目教学。因为篇幅有限,教材中只能涉及到几个项目案例,使得教学背景比较单调,而且项目案例通常是比较大的程序,如何根据知识模块将项目案例合理分解为较小的项目子例,使其能够更好地配合理论和实验课也是需要解决的问题。在项目教学中,教师应该采用怎样的教学方法,才能有效地实施项目教学并监控和指导学生的项目学习。

二、C语言程序设计课程中的项目教学模式

(一)根据实际情况,設定教学目标

结合C语言程序设计课程特点和项目教学从应用出发的特点,对C语言程序设计课程进行教学设计,制定技能训练和应用培养教学目标,采用“语句、代码、程序、应用”四个教学目标层次分类,同时采用“熟练使用基本知识点,练习设计编写小程序,综合项目设计应用”的实践教学层次,使项目教与学的衡量标准成为一种可具体追求和实现的目标[4]。具体的项目教学目标分别从知识点目标、技能目标和应用目标三个层次进行描述。

知识点目标是对课程理论知识点的教学要求进行描述,例如,写出伪代码描述具体问题的算法、应用“自顶向下、逐步求精”的方法求解问题、解释一维数组在内存中的存储、比较字符数组作为字符串和指针指向字符串等。技能目标分为熟练使用基本知识点和练习设计编写小程序两个层次。例如,练习C源程序文件的创建(编辑输入、存储编译、简单运行调试)过程,掌握使用VC集成开发环境处理一个C语言程序的步骤:编辑、编译、连接和运行;编程实现对多个数据的处理,要求练习加、减、乘、除、求余的运算等。应用目标是指“综合项目设计应用”,分为两个层次:(1)开发学习者发现问题,总结问题的能力,让学习者结合身边事,自找题目,写出编程实现步骤;(2)软件项目应用设计训练。培养学生应用能力,实施项目教学,需要学习者独立或合作完成项目训练,达到应用目标要求的标准。例如:结合自己专业或生活经验,寻找需要或可以分解为多个函数实现的实际问题,自编一个题目,利用自定义函数和函数调用实现问题求解过程;软件功能模块划分,应用模块化编程思想,综合分析系统功能,设计划分并画出系统模块结构图,总结出系统数据字典,并详细描述各模块功能及函数功能等。

(二)编制适合项目教学的理论教材和实验教材

为了配合项目教学顺利的进行,需要编制适合项目教学的理论教材和实验教材。理论教材中,首先要对传统教材中的理论知识模块进行重新整合,与项目设计的进展相结合,分为三个层次模块。初级阶段的知识模块主要是结构化程序设计基础,包含C语言程序设计课程的基本知识、基本数据类型及其定义与操作、程序的基本结构。中级阶段的知识模块主要是模块化程序设计基础,包含函数的编写和调用、变量的作用域与生存期的运用。高级阶段的知识模块主要是复杂数据结构和程序设计方法,包含数组、指针、结构体、文件的操作和应用。理论教材中的例子分为项目子例和教学辅例。项目子例是将整个项目分解为小的例子配合理论知识的讲解,教学辅例是与项目子例背景相似、题型相似的传统例题。

实验教材是对理论教材的实践和扩展。项目教学的关键就是对项目的实践,学生通过理论教材学习项目设计的方法,在实验教材中提供给学生更多的项目参考子例和具体的实践步骤,指导学生独立完成项目的实践。

(三)选择合适的项目案例,建设教学项目库

在实际的生产生活中,选择具有真实性、典型性等特点的项目。要强调的是项目的应用性,而不是专业性,让大部分学生能够理解和接受。项目的内容应符合课程教学目标的要求,能够容纳和体现更多数据结构、算法和知识点的应用,尽量能够贯穿课程。项目应难易适宜、大小适中,让学生在课程的学习过程中有能力完成项目内容,达到更好地掌握课程知识的效果。教师往往在课堂上只能讲解有限的几个项目案例,导致教学项目用例背景单调,不利于拓展学生的思维,因此应建设教学项目案例库,选择大量的项目案例供学生课下学习和参考。项目案例库中除了包含大量完整的项目案例,还应将项目案例分解为课堂教学用例系列、实验教学用例和学生项目实践用题系列等。

在项目教学中,将项目与课程的内容结合,根据各层次知识模块,选择某些项目分解为与每节理论课的知识点结合的项目教学课堂用例系列,要求在难度、复杂度、模块大小等方面要适合课堂讲解和学生学习。在实验课上,选择适合的项目分解为学生可以在有限课时内独立完成的实验教学用例系列,配合理论课的课堂用例进行项目实践。为了拓展学生的思维,设计学生项目用题系列作为学生课下学习的补充。

(四)理论课中教师实施项目教学

结合项目教学,采用小组合作学习方式[5],让学生分组实践项目。建议4-7人自由组合为一个小组,每组推选一个组长组织组内的学习,并将学习的过程记录下来。具体的教学过程如下:(1)教师用项目课堂用例提出需要解决的问题,引入本节课要学习的问题。(2)教师结合要实现的项目问题,讲解知识点。(3)教师选择项目辅助用例,运用知识点。(4)教师和学生一起讨论如何运用知识点,解决项目问题。(5)教师对项目内容进行扩展,提出小组讨论问题。

(五)实验课中学生实践项目教学

在实验课上,以小组为单位进行项目实践,并写下实验报告。具体的教学过程如下:(1)教师课前布置实验课的项目内容,课前小组讨论出可执行的步骤。(2)学生模仿课堂项目用例的方法,实施实验项目用例的内容。(3)各小组讨论项目实验结果,并将结果合并实现综合项目。教师参与到小组的讨论中,给予指导意见。(4)小组总结实验课内容,写出小组实验报告。实验报告中要详细记录每个组员的参与情况,包括发言、上机实践、帮助其他组员等具体的过程,这样教师可以通过查看实验报告的情况了解每个学生的学习情况,起到监控和指导的作用。

(六)课外的网络课堂交流补充

教学课时数是有限的,教师不可能跟每一位学生进行很好的交流。而且学生之间的大多数交流也仅限于小组内部,各小组间的交流很少。因此,需要建立課外的网络课堂作为教学的补充,例如,教师建立教师教学博客,学生可以建立班级博客、小组博客等。教师可以提前将教学内容发布在教学博客上供学生提前预习,并提出问题供学生讨论,学生通过回复与教师和其他同学交流。学生可以给教师留言,与教师交流学习中的问题,其他学生也可以看到这个交流的过程,启发自己的思维。每个小组可以通过博客展示自己的实验成果,各小组可以通过博客交流学习心得。教师可以通过博客中的交流监控到所有学生的学习情况、思想动态,适时的调整教学进度和教学内容。

在项目教学模式中,设定项目教学目标并编制适用于项目教学的理论和实验教材是有效实施项目教学的前提,选择合适的项目案例建设教学项目库是项目教学的关键因素。在具体的项目教学过程中,每个教师应根据实际的教学情况适当地调整教学模式,选择有效可行的方法以保证教学效果。

参考文献:

[1]陈越.建构主义与建构主义学习理论综述.

http://www.being.org.cn/theory/constructivisom.htm

[2]孟朝霞.基于项目的程序设计实践课程教学流程设计[J].高等理科教育,2008,5

[3]徐涵.项目教学的理论基础,基本特征及对教师的要求[J].职教论坛,2007,3

[4]孟朝霞.C语言课程的应用性目标模型[J].运城学院,2009,1

上一篇:公鸡串门小学作文700字下一篇:不一样的世界作文600字