C语言程序设计基础课程设计报告

时间:2019-05-11 22:56:27下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C语言程序设计基础课程设计报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C语言程序设计基础课程设计报告》。

第一篇:C语言程序设计基础课程设计报告

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

课程名称: 课程设计题目: 程序设计基础课程设计 学生信息管理系统

名:

系: 专

业: 年

级: 学

号: 指导教师: 职

称:

计算机科学技术系 计算机网络技术

讲师

2012年1月1日

一、设计题目及要求。

1、题目:学生信息管理系统

2、要求:

1)建立学生信息的结构体

2)学生信息的初始化(可以从文件获取)3)学生信息的添加、修改、查找 4)学生信息的输出 5)对学生信息按学号排序 6)计算一门课的平均分和总分 7)将学生信息保存为文件

二、设计算法设计分析。

1、主要功能模块:添加模块、查找模块、修改模块、排序模块 添加模块:

(1)从键盘中输入添加学生的人数n.(2)从键盘中输入学生的学号和各科成绩,分别存入一维数组sum和二维数组score中。

(3)计算各科的总分和平均分,分别存入一维数组sum和aver中。

(4)判断各个学生的三科成绩是否都大于90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。

添加模块结果图

查找模块

(1)从键盘中输入要查找的学生的学号k..(2)编写程序使num[i]与k一一对比,直到num[i]==k,输出该生的学号及相应成绩。

查找模块结果图

修改模块:

(1)从键盘中输入要修改的学生的学号x..(2)编写程序使num[i]==x,输出该生的成绩,选择你要修改的科目并输入你修改后的新分数,重新计算该生的总分和平均分。

(3)重新判断该生的三门课成绩是否都大于

90,如果是则输出“Y”,表示该生能获得奖学金,否则输出“N”表示该生不能获得奖学金。

修改模块的结果图

三、程序编码实现。源代码与执行结果2部分

/*函数功能:添加一个或几个学生的成绩,查找某个学生的成绩,修改某个学生的成绩

函数参数:长整型数组num,存储每个学生的学号

整型数组score,存储每个学生的成绩

整型数组sum,存储每个学生的总分

实型数组aver,存储每个学生的平均分

字符型数组c,标志每个学生能否获得奖学金

整型数n,存储学生总数 函数返回值:无 */

void Find(long num[],int score[][3],int sum[],float aver[],char c[],int n){ long x,t,k;int i,j;

printf(“请选择您要实现的功能:1-添加,2-查找,3-修改n”);scanf(“%ld”,&t);if(t==1){ printf(“请输入你要添加的人数:”);scanf(“%d”,&A);printf(“Enter No and Score as: MT EN PHn”);for(i=n;i=90)&&(score[i][1]>=90)&&(score[i][2]>=90)){ c[i]='Y';} else { c[i]='N';} } } if(t==2){ printf(“请输入学号:”);scanf(“%ld”,&k);for(i=0;i

printf(“学号t数学t英语t物理t总分t平均成绩t>90n”);

printf(“%4ldt”,num[i]);

for(j=0;j<3;j++){ printf(“%4dt”,score[i][j]);}

printf(“%5dt%6.1ftt%cn”,sum[i],aver[i],c[i]);} } } if(t==3){

printf(“请输入学号:”);scanf(“%ld”,&x);for(i=0;i

printf(“请输入你要修改的选项所对应的数字:0-MT,1-EN,2-PHn”);

scanf(“%d”,&j);

printf(“你将修改为:”);

scanf(“%d”,&score[i][j]);

sum[i]=0;

for(j=0;j<3;j++)

{

sum[i]=sum[i]+score[i][j];

}

aver[i]=(float)sum[i]/3;

if((score[i][0]>=90)&&(score[i][1]>=90)&&(score[i][2]>=90))

{

c[i]='Y';

}

else

{

c[i]='N';

} } } } } /*函数功能:按学号对学生排序

函数参数:长整型数组num,存储每个学生的学号

整型数组score,存储每个学生的成绩

整型数组sum,存储每个学生的总分

实型数组aver,存储每个学生的平均分

字符型数组c,标志每个学生能否获得奖学金

整型数n,存储学生总数 函数返回值:无 */ void order(long num[],int score[][3],int sum[],float aver[],char c[],int n){ int i,j,t,x;long k;float g;char h;for(i=0;ii;t--){ if(num[t]

x=score[i][j];

score[i][j]=score[t][j];

score[t][j]=x;} } }

执行结果(1):

(2)

四、程序调试过程中出现的问题:

开始运用添加功能时,虽然添加了,但在输出结果中不显示。

解决办法:将最后的输出中的i

五、总结

在课程设计的这段日子里,我真正体会到什么叫失败是成功之母,因为在编写程序时会出现这样或那样的错误,有的是语法错误,有的是逻辑错误,还有的是由于自己粗心漏掉或多加了一些符号等等,但只要你能静下心来慢慢寻找原因,慢慢修改,最后终能成功。但如果你在编程时格外细心,你将会减少许多麻烦,同时也会节省很多时间。

第二篇:语言程序设计课程设计指导书

汇编语言程序设计课程设计指导书

一、课程设计的目的

本课程设计是《汇编语言程序设计》课程的后继教学环节,其宗旨是使学生通过对一个较大型的、综合性的应用程序进行阅读、修改、添加功能等工作,对汇编语言程序设计有更进一步的认识,提高编程技巧和阅读理解复杂程序的能力。

二、课程设计的任务要求

根据所给的“Reader.asm”应用程序框架,在此基础上修改和添加功能。1.基本任务: 

   认真阅读“Reader.asm”源程序,理解程序每一条指令在程序中的作用; 用→、←键在窗口内左右移动文本;

用PgDn,PgUp键上下快速移动文本(每次移半帧); 设计专用键放大、缩小窗口,改变窗口位置。

2.扩展任务:   对文本内的Tab字符(ASCII码09H)进行处理:遇到Tab键,下一个字符显示在下一个表站开始处(每个6个字符一个表站);

设置状态行,显示当前文件名、文本位置(仿垂直滚动条)。

3.自行设计的其它任务:

三、课程设计报告的内容

1.课程设计题目名称、班级号、学号、学生姓名和课程设计起止日期(封面);

2.上海应用技术学院课程设计任务书(下发)3.课程设计目的和要求;

4.课程设计任务内容; 5.详细设计说明; 6.软件使用说明; 7.课程设计总结;

8.附录:1 参考文献 2 程序清单(电子版)。

四、课程设计详细设计说明及其它要求

1.2.3.4.5.6.分析原“Reader.asm”程序结构:每个模块说明,较大模块程序流程图; 对你已经实现的功能做详细的说明,并附上流程图及部分程序清单; 自己对该“文件阅读器”的进一步设想;

对于有设想但最终未实现的功能的大致编程思路的阐述; 论述在设计过程中遇到的并且对你具有启发性的问题; 交课程设计报告手写版,源程序交电子版。

五、评分标准

1.根据平时出勤情况和设计时的工作情况;

2.根据课程设计程序的完成情况,必须有可运行的软件。3.根据课程设计报告的质量。课程设计报告不能抄袭,抄袭判为不及格。4.在题目要求之外附加具有实用性的功能。

六、课程设计工作进度计划

星期一:课程设计介绍,源程序阅读理解,功能设计,程序编写。星期二:功能设计,程序编写。

星期三:程序编写与调试,课程设计报告撰写。星期四:程序编写与调试,课程设计报告撰写。

星期五:程序最终修改,课程设计报告撰写,提交报告并答辩。

七、主要参考资料

[1]杨文显.汇编语言程序设计简明教程.北京:电子工业出版社,2005

八、附录

《文本阅读器》汇编语言源程序清单

;Title: Assemble Program “Reader.asm”

;Read a file from disk, display it‟s contents on screen;Move the content on screen by up/down arrow keys;========================== MYDAT SEGMENT MAXLEN DW 1000;最大行数 INDEX DW 1000 DUP(?);行索引 LENCT DW 0;实际行数 CURLINE DW 0;当前页第一行行数 CCOUNT DW ?;文件总字符数

TOP DB 5;窗口左上角行数 LEFT DB 5;窗口左上角列数 WS DW 60;窗口宽度 HS DW 15;窗口高度 FG DB 17H;文字属性 FGB DB 1FH;窗口边框属性

MSG1 DB 'File:$';输入文件名提示 MSG2 DB 'File open error!$';打开文件出错时提示 MSG3 DB 'File read error!$';读文件出错时提示 FILENA DB 80,?,80 DUP(?);输入文件名缓冲区

;定义功能键和相应的处理程序

;每个功能定义两个数据:扫描码,处理程序入口地址;该数据由DOSUB子程序使用

KEYSUB DW 48H, SUB1 , 50H, SUB2, 0

MYDAT ENDS

;==========================

BUFFER SEGMENT PARA DB 65535 DUP(?);文件缓冲区,文件最大为64K BUFFER ENDS

;==========================

SSEG SEGMENT STACK „STACK‟;堆栈段

DW 100 DUP(?)SSEG ENDS

;==========================

;宏定义 DISPINIT: 设置显示器显示方式 DISPINIT MACRO MOV AX,0003H;文本方式 25x80 INT 10H ENDM;----------;宏定义 PROMPT: 显示字符串 PROMPT MACRO OUTMSG LEA DX, OUTMSG MOV AH, 09H;INT 21H;ENDM;--------;宏定义KRYIN: 从键盘读入一个字符 KEYIN MACRO MOV AH,0;读键

INT 16H;AH中为扫描码

ENDM;==========================;代码段开始 CODE SEGMENT

ASSUME CS: CODE, DS: MYDAT, ES: BUFFER, SS: SSEG

START: MOV AX, MYDAT;装载DS,ES MOV DS, AX MOV AX, BUFFER MOV ES, AX

DISPINIT;显示方式初始化

CALL READFILE;读入文件

JC DONE

CALL CLIST;初始化索引行

CALL CLSCREEN;清屏

CALL CREWIN;创建窗口

CALL SHOWCUR;显示当前页

NEXT: KEYIN;进入主程序: 读键盘

CALL COMMAND;命令分析与处理

JNC NEXT;非x键继续循环

DONE: CALL CLSCREEN;清屏

MOV AX, 4C00H INT 21H;退出

;-------;子程序READFILE: 提示并读入文件名,将文件读入缓冲区 READFILE PROC PROMPT MSG1;CALL SIN;读入文件名

MOV AX, 3D00H MOV DX, OFFSET FILENA+2 INT 21H;打开文件(读)JC GETERR1;打开文件出错转GETERR1 PUSH DS PUSH ES POP DS;将DS指向文件缓冲区段

MOV BX, AX;BX=文件号

MOV AH, 3FH;读文件 MOV CX, 0FFFFH;读入最多64K-1 MOV DX, 0;DS: DX指向文件缓冲区

INT 21H POP DS JC GETERR2;读入文件出错转GETERR2 MOV CCOUNT, AX;实际读入字符数存入CCOUNT中

CLC JMP GETFILEXIT

GETERR1: PROMPT MSG2;读入文件出错处理

KEYIN STC JMP GETFILEXIT;

GETERR2: PROMPT MSG3;打开文件出错处理

KEYIN STC

GETFILEXIT: RET

READFILE ENDP;-------;输入文件名子程序 SIN PROC MOV AH, 0AH MOV DX, OFFSET FILENA INT 21H;输入文件名

XOR CH, CH MOV CL, FILENA+1;取文件名长度

LEA BX, FILENA+2 ADD BX, CX;计算字符串结尾地址

MOV BYTE PTR [BX], 0;在字符串尾部加0 RET SIN ENDP;-------;索引行初始化子程序 CLIST PROC MOV CX, CCOUNT JCXZ CSTX;文件为空结束

MOV SI,0;文件缓冲区字符指针

MOV DI,0;索引行指针

MOV DX,0;行数计数

MOV INDEX[DI], 0 INC DX;假设文件至少有一行 CST1: CMP WORD PTR ES:[SI], 0A0DH;判断是否为回车换行符

JNZ CST2;不是行结束,转CST2 INC DX;行数加一

ADD SI, 2;跳过回车换行符

ADD DI, 2;索引行指针加一

MOV INDEX[DI], SI;指向本行开始地址

CMP DX, MAXLEN JNC CST4;是否超过最大行,超过转CST4,结束

JMP CST3;CST2: INC SI;文件缓冲区字符指针指向下一字符 CST3: LOOP CST1;CST4: MOV LENCT, DX;保存行数到LENCT中 CSTX: RET CLIST ENDP;-------;清屏子程序

CLSCREEN PROC MOV AX, 0600H;清屏

MOV CX, 0 MOV DH, 50 MOV DL, 79 MOV BH, 07H INT 10H RET CLSCREEN ENDP;------;显示当前页子程序 SHOWCUR PROC MOV DH, 0;窗口最顶行

MOV SI, CURLINE;取当前页第一行行数

MOV CX, HS;窗口的第一行和最后一行为边框,SUB CX, 2;所以能够显示内容的高度为窗口高度减二 SC1:

CALL SHOWLINE;显示一行

INC DH;窗口下一行

INC SI;文件下一行

MOV AX, LENCT;CMP SI, AX;文件是否显示完

JNC SC2;显示完则转SC2 LOOP SC1 JMP SC1X SC2: JCXZ SC1X;该页显示满则结束

;该页没有显示满,则用空行填满该页 SC3: PUSH CX PUSH DX CALL SHOWSPLINE;显示空行

POP DX POP CX INC DH LOOP SC3 SC1X: RET SHOWCUR ENDP;------;显示一行子程序

;输入:SI=显示行行号;DH=窗口中的行号 SHOWLINE PROC PUSH CX PUSH SI PUSH DX PUSH AX

ADD DH, TOP;INC DH;实际行数=窗口左上角行数+DI+1 MOV DL, LEFT;INC DL;实际列数=窗口左上角列数+1 CALL VADD;

MOV CX, WS;窗口的第一列和最后一列是边框,SUB CX, 2;所以能够显示内容的宽度为窗口宽度减二

SHL SI, 1;行索引为字类型,所以乘二

MOV SI, INDEX[SI];取该行第一个字符在文件缓冲区的地址

PUSH DS MOV AX, 0B800H MOV DS, AX;DS指向显示缓冲区段地址 SL1: MOV AX, ES:[SI] CMP AX, 0A0DH JZ SL2;如果是回车换行,则该行结束

MOV DS: [DI], AL;显示一个字符 ADD DI, 2;INC SI;取下一个字符

LOOP SL1;JCXZ SLX;该行正好显示完,则结束,否则用空格填满

SL2: MOV BYTE PTR DS:[DI], ' ';该行没有显示满,则用空格填满

ADD DI, 2 LOOP SL2

SLX: POP DS

POP AX POP DX POP SI POP CX

RET SHOWLINE ENDP;--------;显示空行子程序

;输入:DI=窗口中的行号 SHOWSPLINE PROC;

MOV AX, HS;SUB AX, 2;CMP DH, AL;显示的空行是否超出最低行

JNC SSLX;如果是,则转SSLX ADD DH, TOP;INC DH;实际行数=窗口左上角行数+DI+1 MOV DL, LEFT;INC DL;实际列数=窗口左上角列数+1 CALL VADD;

MOV CX, WS;窗口的第一列和最后一列是边框,SUB CX, 2;所以能够显示内容的宽度为窗口宽度减二

PUSH DS MOV AX, 0B800H MOV DS, AX SSL1: MOV BYTE PTR DS:[DI], ' ' ADD DI, 2 LOOP SSL1 POP DS SSLX: RET SHOWSPLINE ENDP;-------;创建窗口子程序 CREWIN PROC PUSH ES MOV AX, 0B800H;显示缓冲区地址为B800:0 MOV ES, AX;

MOV DH, TOP MOV DL, LEFT;窗口左上角行列数

MOV CX, HS;窗口高度(行数)CW1: PUSH DX;CALL VADD;计算地址

PUSH CX;MOV CX, WS;窗口宽度(列数)

MOV AL, FG;取属性 CW2: MOV BYTE PTR ES:[DI], ' ';送空白字符

INC DI;MOV BYTE PTR ES:[DI], AL;送属性

INC DI;LOOP CW2;

POP CX POP DX INC DH;行数加一

LOOP CW1

CALL DRAWB;画边框

POP ES RET CREWIN ENDP;-;画边框子程序 DRAWB PROC PUSH DX PUSH CX PUSH BX PUSH AX MOV BL, FGB MOV DH, TOP MOV DL, LEFT CALL VADD

;画左上角角框

MOV BYTE PTR ES:[DI], 0C9H INC DI MOV BYTE PTR ES:[DI], BL INC DI

;画第一行边框

MOV CX, WS SUB CX,2 DB1: MOV BYTE PTR ES:[DI], 0CDH INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB1

;画右上角角框

MOV BYTE PTR ES:[DI], 0BBH INC DI MOV BYTE PTR ES:[DI], BL

;画第二行到倒数二行左右边框

MOV DH, TOP MOV DL, LEFT INC DH MOV CX, HS SUB CX, 2 DB2: PUSH DX CALL VADD MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL DEC DI MOV AX, WS DEC AX SHL AX, 1 ADD DI, AX MOV BYTE PTR ES:[DI], 0BAH INC DI MOV BYTE PTR ES:[DI], BL POP DX INC DH LOOP DB2;取边框属性;窗口左上角行列数;计算地址;角框╔;因为去掉了左右角框,所以宽度减二;上下边框═;角框╗;从第二行开始;第一行和最后一行没有左右边框,;所以高度减二;;计算左边框地址;左右边框║;;;;计算右边框地址;;下一行;

;画左下角角框

MOV DH, TOP;MOV DL, LEFT;MOV AX, HS;DEC AX;ADD DH, AL;左下角行数=右上角行数+窗口高度-1 CALL VADD MOV BYTE PTR ES:[DI], 0C8H;角框╚

INC DI MOV BYTE PTR ES:[DI], BL INC DI

;画最低行边框

MOV CX, WS;SUB CX, 2;因为去掉了左右角框,所以宽度减二 DB3: MOV BYTE PTR ES:[DI], 0CDH;上下边框═

INC DI MOV BYTE PTR ES:[DI], BL INC DI LOOP DB3

;画右下角角框

MOV BYTE PTR ES:[DI], 0BCH;角框╝

INC DI MOV BYTE PTR ES:[DI], BL

POP AX POP BX POP CX POP DX

RET DRAWB ENDP;------;计算窗口内某行列位置对应显存地址;输入:DH=行 DL=列;输出:DI为显存地址 VADD PROC MOV AL, 80;MUL DH;XOR DH, DH;ADD AX, DX;行数×80+列数

SHL AX, 1;乘2,因为每个字符占两个字节

MOV DI, AX RET VADD ENDP;--------;命令分析子程序 COMMAND PROC CMP AH, 2DH;2DH为x键的扫描码

JNZ COM1;不是x键,转COM1 STC;值x键标志

RET COM1: CALL DOSUB;转命令散转子程序

CLC RET COMMAND ENDP;--;命令散转子程序 DOSUB PROC MOV AL, AH MOV AH, 0;将键扫描码放入AX中

MOV BX, OFFSET KEYSUB;BX指向KEYSUB DOSUB1: CMP WORD PTR [BX], 0 JZ DOSUBX;KEYSUB表查完,即没有找到转DOSUBX CMP AX, [BX] JZ DOSUB2;找到扫描码转DOSUB2 ADD BX, 4 JMP DOSUB1;DOSUB2: ADD BX, 2 MOV BX, [BX];取处理程序入口地址

JMP BX;转处理程序 DOSUBX: RET

;SUB1和SUB2均为功能键处理程序;处理完后应使用JMP DOSSUBX结束

;上箭头键处理程序 SUB1: CMP CURLINE, 0 JZ SUB1X;已到第一行,结束

DEC CURLINE;向上一行

CALL SHOWCUR;显示当前页 SUB1X: JMP DOSUBX

;下箭头键处理程序 SUB2: MOV AX, LENCT DEC AX DEC AX;至少显示一行

CMP AX, CURLINE;已到最后一行

JZ SUB2X INC CURLINE;向下一行

CALL SHOWCUR;显示当前页 SUB2X: JMP DOSUBX

DOSUB ENDP;--------

CODE ENDS

;========================= END START

第三篇:c语言程序设计基础

《c语言程序设计基础》重修试卷

一、选择题(2’*20=40’)

1、c程序由构成。

A.函数B.命令C.程序D.表达式

2、以下选项中合法的变量名是

A.#y2B.a

A.floatB.charC.intD.double4、在我们使用的turboC中,一个int型数据在内存中占个字节

A.0B.1C.2D.45、若有定义:int a=8,b=5,c;执行语句c=ab+0.4后c=

A.1.4B.1C.2.0D.26、在c语言中,char型数据在内存中的存储形式是

A.补码B.ASSCIIC.原码D.反码

7、若运行时给变量x输入

第四篇:E语言程序设计基础

总第3课时备课

第 3课时

课题:E语言程序设计基础

教学内容:青岛版八年级下册信息技术第 13页至第 17 页

一、教学分析

【教学内容分】 本课是在第1课学习用E语言程序解决高斯问题的基础上,继续学习用E

语言的基础知识,包括数据类型、常量、变量等以及赋值的方法。

【教学对象分析】学生对程序运行的结果或者说是对程序能够解决的问题比较感兴趣,但对

设计程序所要设计的组件,编写代码比较陌生,无从下手,还没有形成一个编写程序的思想。

【教学目标】

知识和技能目标:了解E语言的基础知识,包括基本数据类型、常量、变量、运算符、命

令等;能够正确定义常量和变量及其数据类型;掌握赋值、输入、输出的方法;熟悉程序设计中的运算符与数学运算符号的区别

过程与方法目标: 通过学生的自主探究,组内交流及教师的耐心指导完成任务情感态度与价值观目标:了解E语言的基础知识,熟悉E语言编程代码的输入以及数据类

型的定义与使用,尝试通过设计小程序来解决问题,培养学习E语言的兴趣和信心。

【教学重点】 定义常量和变量及其数据类型;赋值、输入、输出的方法。

【教学难点】 正确定义常量和变量及其数据类型;赋值、输入、输出的方法;熟悉程序设计

中的运算符与数学运算符号的区别

【教学方法】 自主探究、合作交流

【教学资源】

硬件资源:计算机、电子教室软件资源:E语言 软件

【评价方法】

评价量规:优秀、良好、一般评价方式: 自我评价与小组评价

二、教学过程

教学进程

教师活动

学生活动

设计意图

修订

复习导入: 回顾上节课所学知识并回答 巩固所学知识让学生回顾解决高斯问有利于本课的学

导入新课 题的大体步骤习

引入:使用E语言编程解决1+2等于几 探究任务一:启动E语同学们参照课本完成组件的锻炼学生的动手

探究任务言,并在程序窗体中设计设计并思考 操作能力,并培养一如需组件: 学生在操作中思

考方法 要求:想一想能不能不用

让同学们在掌握组内交流 课本中给的方法,你有其学生思考并交流是否可行

方法的基础上勇 他方法吗 于探索 完成任务让学生脱离课本进行操

加深记忆

一 作

学生观察并识记

探究任务定义变量、并了解全局变学生参照课本正确定义所需

二量和局部变量以及常量的区别 变量

检查任务有的同学不会输入变量

二的完成行,或者是不能删除多余

情况的行 探究任务

编写代码并运行程序 学生自主完成发挥学生的主观三

能动性

并检查完成情况

要求同学们在有限的时

巩固本课知识 限进作业 间内完成课本第17页实同学们认真完成并让学生进行知 践与创新部分

识的迁移

发挥学生的主观师生评价 先让组内进行交流评价 同学们观察,并进行评价发表能力性,让学生参

老师随机抽取每个组内自己的观点或建议 与评价,激发学生

一个作品进行演示 的兴趣

巩固本课的知识归纳总结 师让生归纳,师进行补充学生归纳

要点

或强调

第五篇:C语言程序设计课程设计任务书

C语言程序设计课程设计任务书

项目4:

高校工资管理系统一、课程设计项目:

高校工资管理系统

二、目的与要求:

1、目的:

(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:

(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;

(2)要求在设计的过程中,建立清晰的类层次;

(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;

(3)在系统的设计中,至少要用到面向对象的一种机制。

3、创新要求:

在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。

4、写出设计说明书

三、设计方法和基本原理:

1、功能要求

问题的描述(功能要求):

现一高校有五类职工:教师,实验员,行政人员,教师兼职实验员,行政人员兼职教师。为了实现工资发放的自动功能,现要求编写程序来自动完成此功能。同时注意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入,文件的可继续录入,任意职工的工资查询(可由职工编号和职工姓名来实现),如若有职工由于工作调动,则可进行相对应的删除动作。

相关信息: 每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算机,则本学期职工的月工资按程序处理后的结果发放,其中职工的工资计算方法如下:

其中工资的基本构成如下:

教师: 基本工资+课时费;

实验员: 基本工资+实验室补助;

行政人员: 基本工资+行政补贴;

教师兼职实验员: 基本工资+课时费+实验室补助;

行政人员兼职教师:基本工资+行政补贴+课时费;(其中:

1.课时费:教师每一学期的基本工作量为120,实验员每学期基本工作量为70,行政人员没有基本工作量,每节课时费为20元;课时费=(上学期工作量-基本工作量)*20;注意:如果上学期基本工作量没完成,则其(上学期工作量-基本工作量)*20为负值。

2.基本工资:教师800元,实验员650元,行政人员750元。

3.行政补贴:250元。4.实验室补助:150元。

2、问题的解决方案:

根据系统功能要求,可以将问题解决分为以下步骤: a)写出需求分析(该程序要实现什么什么样的功能)b)分析系统中的各个实体之间的关系及其属性和行为; c)根据问题描述,设计系统的类层次;

d)完成类层次中各个类的描述(包括属性和方法); e)完成类中各个成员函数的定义; f)用户界面的设计

g)分析系统功能模块(系统流程图)h)代码编写 i)功能调试;

j)完成系统总结报告以及系统使用说明书。

四、程序设计和调试:

五、答辩与评分标准:

1、完成基本功能:60分;

2、设计报告及使用说明书:10分;

3、设置错误或者按照要求改变结果:15分;

4、回答问题:15分。

六、报告:

包括系统设计要求,设计思路,系统功能模块图,系统流程图,类的层次图(包括类成员列表),调试过程,关键程序代码,总结,参考书目等。

下载C语言程序设计基础课程设计报告word格式文档
下载C语言程序设计基础课程设计报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    C语言程序设计课程设计指导书

    课程设计指导书 课程名称: C语言程序设计 班次: 自动化2016-01,02,03班 设计任务:整个课程设计一共提供了10个题目,编号为1~10。按学号尾数进行选题设计。 课程设计目的 1、......

    《高级语言程序设计》课程设计大纲

    《高级语言程序设计》课程设计教学大纲 课程名称:高级语言程序设计课程设计 课程总学时:32 适用专业:广播电视工程、电子信息工程、电子科学与技术 课程类别:必修 一、 课程设计......

    C语言程序设计教程课程设计

    《C语言程序设计教程课程设计》计划 类别:课程设计 适用于三年制专科计算机应用专业 学分:1 周数:1 一、设计目的与要求 《高级语言程序设计课程设计》是《高级语言程序设计》......

    《Java语言程序设计》课程设计指导书

    《Java语言程序设计》课程设计指导书 一、教学目标 《Java语言程序设计》是计算机类专业和信息安全专业的专业课。Java语言是目前广为流行的面向对象程序设计语言,适用于网络......

    《高级语言程序设计》课程设计任务书2

    《高级语言程序设计》课程设计任务书 一、课程设计的目的 高级语言程序设计是本科工科类各专业的重要基础课,课程以影响深远的、传统的、面向过程的优秀编程语言C语言为基础,......

    C语言程序设计报告(精选)

    C语言程序设计报告(二) 第一章:使用数组和指针统计成绩 1.设计题目:假设给定班级各科考试平均成绩的原始资料如下 数学:75 物理:80 外语:83 政治:85 体育:86 人数:30 要求统计出全......

    VB程序设计课程设计

    VB程序设计课程设计 1、目的 VB程序设计课程设计是考察学生对VB程序设计课程相关知识点掌握情况的重要环节,也是激励学生进一步学习VB、提高运用VB开发实际计算机程序的能力......

    计算机基础课程设计报告

    设计报告范文 一、 任务内容通过对《大学计算机基础》和《大学计算机基础学习与实验指导》这两本教材的学习后,我们应综合应用计算机进行一系列操作与使用,全面掌握并用所学的......