级C语言程序设计实践任务书部分班.docx

上传人:b****3 文档编号:4974041 上传时间:2022-12-12 格式:DOCX 页数:23 大小:46.81KB
下载 相关 举报
级C语言程序设计实践任务书部分班.docx_第1页
第1页 / 共23页
级C语言程序设计实践任务书部分班.docx_第2页
第2页 / 共23页
级C语言程序设计实践任务书部分班.docx_第3页
第3页 / 共23页
级C语言程序设计实践任务书部分班.docx_第4页
第4页 / 共23页
级C语言程序设计实践任务书部分班.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

级C语言程序设计实践任务书部分班.docx

《级C语言程序设计实践任务书部分班.docx》由会员分享,可在线阅读,更多相关《级C语言程序设计实践任务书部分班.docx(23页珍藏版)》请在冰豆网上搜索。

级C语言程序设计实践任务书部分班.docx

级C语言程序设计实践任务书部分班

 

“C语言程序设计实践”任务书

 

信息科学与工程学院电气与自动化实验室

2012年5月

 

“C语言程序设计实践”任务书

一、指导老师安排

电气信息类1119班:

唐朝晖、李志民电气信息类1120班:

唐朝晖、李志民

电气信息类1124班:

叶华文、李志民电气信息类1125班:

叶华文、李志民

电气信息类1127班:

袁艳、李志民

二、课程设计要求

本次“C语言程序设计实践”课程设计,是基于“C语言程序设计基础”课程学习内容的重要实践环节,其主要目的在于,通过综合程序课程设计,培养和提高学生的独立分析问题、解决实际问题的能力和计算机语言编程能力。

本次课程设计时间为2周,要求每位同学在为期两周的时间段内,独立完成相关设计题所规定的任务(上机时数为20学时)。

进度安排建议如下:

1、阅读设计题目、任务内容,规划设计进度,并进行软件的各相关功能模块的规划设计(1天)。

2、在TurboC(或VisualC++6.0)环境下,用结构化程序设计思想进行C语言程序设计、功能模块调试(7-9天)。

3、进行课程设计报告编写与整理(2天)。

4、课程设计结束时,要求进行设计成果演示(由指导老师验收相关程序运行成果并打分);每人须对相关电子文档进行整理上交(包括:

程序文件、帮助说明文档);交课程设计报告(纸质)一份(手工书写稿)。

课程设计报告基本内容及格式参考P4页上内容。

三、结构化程序设计方法

结构化技术是软件工程中最成熟的技术之一,它包括结构化分析方法(StructuredAnalysis)、结构化设计方法(Structureddesign)和结构化程序设计方法( StructuredProgramming),简称为SA-SD-SP方法。

它的总的指导思想是自顶向下、逐步求精、单入口/单出口,基本原则是抽象和功能的分解。

对于较为复杂问题的大型程序开发,应采取“自顶向下、逐步细化和模块化”的设计方法,模块化程序设计是结构化程序设计方法在开发大型程序中的应用。

1、自顶向下、逐步细化、逐步求精

所谓“自顶向下,逐步细化、逐步求精”就是在对于给定问题进行透彻的了解和详细的分析的基础上,把问题分解成若干个按顺序执行的逻辑部分,称为“模块”。

每个子任务如果仍很复杂,还可以再分解为若干个子任务。

如此逐层分解,对于每个模块的设计都采用这种“自顶向下、逐步细化”的方法,将它们分解成为基本结构为止,就如同写文章先拟出题目和中心内容,再确定分为几大部分,每一大部分又分哪几节,每一节分为几段,每一段包括哪几个意思,这就是“自顶向下,逐步细化”的方法。

2、菜单技术

当一个程序的规模比较庞大,层次和模块比较多时,不要每次都将所有模块按顺序执行一遍,最好在每一层,至少在最高几层都设一个“菜单”。

为方便用户操作,“菜单”技术已广泛使用在计算机的系统软件中,具体做法是:

程序首先把各功能说明及相应代号以菜单形式显示在屏幕上,然后由用户在键盘上输入所选的功能代号,程序自动转去调用相应的功能模块进行处理。

四、相关管理系统设计题的基本功能要求

1、数据文件管理功能:

创建新文件、管理老文件(包括:

Open、New…)。

2、输入/添加/插入记录:

能够完成对任意一条记录输入、添加或插入数据表中,并保存到数据文件中。

3、显示、查询记录:

能够打开已存在的数据表文件,根据用户要求按所给记录关键字显示、查询一个或多个相关联记录的各项信息。

4、修改记录:

能够打开已存在的数据表文件,并对确定的任意记录进行修改,在修改过程中,应显示记录信息,给出确认提示,并对更新的记录信息进行文件保存。

5、删除记录:

能够打开已存在的数据表文件,可以删除数据表中的任一记录,要求具备逻辑删除(具有恢复功能)和物理删除功能,并对新的数据表信息进行文件保存。

6、统计功能:

能够打开已存在的数据表文件,对数据表中与某关键字匹配的相关记录进行数据统计(包括:

总数、平均值、分段信息),例如:

按课程得分为100、90~99、80~89、70~79、60~69和不及格学生的人数,以及所占百分比。

7、排序:

对记录进行排序。

例如:

按某门课程的成绩排序,或按成绩总分进行排序等。

在正确、合理的软件功能规划的基础上,进行各功能模块的设计。

建议用文件包含或工程文件形式,进行逐个模块的功能调试与功能实现。

切忌将多个功能模块混合一起进行调试。

有关C语言程序设计参考,见附录1。

五、成绩评定要素

成绩分为优、良、中、及格、不及格五档,考核标准如下:

1、验收程序的可用性,实用性,通用性,可扩充性(程序设计源代码)(50%)

2、学生的动手能力,创新精神(10%)

3. 程序设计说明书(30%)

4. 平时成绩(10%)

 

六、课程设计报告基本内容要求

一、封面(封面格式见附录2)

二、目录

三、本次课题的基本内容和要求

四、软件设计整体规划及方案

五、程序功能简介

六、主体内容(简要说明总体情况,详细介绍本人任务部分):

1、设计分析

2、程序结构(画总体模块图、本人设计部分的程序N-S或ANSI流程图)

3、各模块的功能及程序说明

4、相关模块源程序

5、操作方法(流程)

6、试验结果(包括输入数据和输出结果)

7、设计体会

8、参考文献

 

八、设计题(共13题)

1-12题为信息管理类型题目,13题为控制类型题目。

每个题目有人数的限制,每位学生可以根据自己的情况独立选择一题作为设计任务,鼓励几个同学搭档分组,分工合作完成。

以下题目的基本功能要求仅供参考,建议同学根据实际应用状况及要求,进行合理规划。

选题1:

销售信息管理系统(建议2-3人)

调研、选择一个典型销售案例,实现按月进行销售员销售业绩信息管理。

其中,每个

销售员记录,包括编号,姓名,产品1销售额,产品2销售额,。

产品N销售额,总销售额等信息。

具体功能要求参见P3。

选题2:

职工工资信息管理系统:

(建议2-3人)

调研、选择一个典型职工信息管理案例,实现按月保存职工的工资数据。

其中,每位职工记录,包括编号、姓名、职务基本工资、岗位津贴、其他补贴、应发工资、实发工资;扣除项目包括:

所得税、住房公基金、养老金、医疗保险、失业保险、职务、基本工资、奖金,工资总额。

具体功能要求参见P3。

选题3:

图书信息管理系统:

(建议2-3人)

调研、选择一个典型图书信息管理案例,实现图书库存、借阅信息管理。

每本图书的记录信息包括:

书号、书名、作者,单价、库存数量、出版时间、出版单位、价格等。

具体功能要求参见P3。

选题4:

材料管理系统:

(建议2-3人)

调研、选择一个典型仓库材料信息管理案例,实现材料库存、领用信息信息管理。

每种材料的记录信息,包括:

编号、名称、单价、入库数量、库存数量、出库数量、保管人、进货时间、出货时间和备注等。

具体功能要求参见P3。

选题5:

学生成绩管理系统:

(建议2-3人)

调研、选择一个典型学生学籍(成绩)信息管理案例,实现以班为单位的学生成绩信息管理。

学生成绩的基本信息包括:

学号、姓名、五门以上课程成绩、成绩总分、平均成绩等。

具体功能要求参见P3。

选题6:

设备管理系统:

(建议2-3人)

调研、选择一个典型设备信息管理案例,实现各基层单位的设备资产信息管理。

每个设备的记录信息,包括设备编号(8位数)、仪器名称、型号规格、单价、购入日期、领用人、使用状况和备注(50字)。

具体功能要求参见P3。

选题7:

通信录(建议1-2人)

以班为单位进行通讯录信息管理。

每个记录包括:

序号、姓名、性别、年龄、电话,籍贯、现工作单位、家庭住址、通信地址及邮编等。

具体功能要求参见P3。

选题8:

人事信息管理系统(建议2-3人)

调研、选择一个典型人事基本信息管理案例,实现某基层单位的人事基本信息管理。

人事基本信息包括:

职工号(职工号不重复)、姓名、性别、年龄、学历、职称、基本工资、岗位津贴、工资总额、在岗状况等。

具体功能要求参见P3。

选题9:

人员基本信息管理系统(建议2-3人)

调研、选择一个典型人员基本信息管理案例(例如:

流动人口管理、小区楼栋居民管理等),实现分片或楼栋为数据库的人员基本信息管理。

信息包括:

序号,姓名,年龄,性别,出生年月,籍贯,电话,E-mail等。

具体功能要求参见P3。

选题10:

学生选修课程信息管理系统(建议2-3人)

调研、选择一个典型学生选课基本信息管理案例,实现对多门课程的选课信息管理。

每门课程的基本信息,包括:

课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息。

具体功能要求参见P3。

选题11:

小学算术运算测试(建议1-2人)

实现不同年级程度的算术运算能力测试(加、差、乘、除)。

要求每套试卷共十题,能够

根据练习水平和进度随机产生数据和不同运算要求,并建议制答题时间。

能判断结果正确性,

给出综合评分(包括:

答题时间、正确率、总分、累记平均分等),并保存文件/打开文件。

选题12:

宿舍信息管理系统(建议2-3人)

调研、选择一个典型学生宿舍楼的住房基本信息管理案例,实现学生区各个宿舍楼的宿舍信息管理。

每个宿舍基本信息包括:

楼层号、房间号、面积、可住宿人数、实际住宿人数、修缮状况(良好/待维修)、备注(记录入住人员姓名、性别、年龄、单位等)。

具体功能要求参见P3。

选题13:

基于C语言的模拟电梯系统程序设计(建议每组5-6人)

根据“模拟电梯控制任务说明书”的规定,设计实现一个模拟电梯控制的仿真软件,方便进行相关控制策略验证和分析。

这一任务可由包含5-6名同学的小组集体完成。

通过该作业,希望同学们能够复习巩固结构化程序设计知识,培养良好的程序设计风格与习惯,了解软件开发的整个过程,学习书写简单文档,练习多人合作开发软件。

“设计任务说明书”详见附录3。

 

九、上机时间安排表(第18、19周)

星期一

星期二

星期三

星期四

星期五

星期六

星期日

电1119班

(唐朝晖)

18、19周

电1120班

(唐朝晖)18、19周

电1124班(叶华文)18、19周

电1125班

(叶华文)18、19周

电1119班

(唐朝晖)18周

电1120班

(唐朝晖)18周

电1120班

(唐朝晖)18、19周

电1124班(叶华文)18、19周

电1125班

(叶华文)18、19周

电1127班

(袁艳)

18、19周

电1120班

(唐朝晖)18周

电1124班(叶华文)18周

午休

电1124班(叶华文)18、19周

电1125班

(叶华文)18、19周

电1127班

(袁艳)18、19周

电1119班

(唐朝晖)18、19周

电1124班(叶华文)18周

电1125班

(叶华文)18周

电1125班

(叶华文)18、19周

电1127班

(袁艳)18、19周

电1119班

(唐朝晖)18、19周

电1120班

(唐朝晖)18、19周

电1125班

(叶华文)18周

电1127班

(袁艳)

18周

电1127班

(袁艳)18、19周

电1119班

(唐朝晖)18、19周

电1120班

(唐朝晖)18、19周

电1124班(叶华文)18、19周

电1127班

(袁艳)

18周

电1119班

(唐朝晖)18周

备注

1、上午8:

00-12:

00;下午:

14:

00-18:

00;晚上18:

30-20:

30

2、相关老师联系方式:

唐朝晖叶华文

袁艳李志民

3、相关班级干部联系方式:

1119班:

1120班:

1124班:

1125班:

1127班:

4、课程设计验收时间为19周四,上交课程设计报告时间为19周五。

 

电气与自动化专业实验室

2012年5月22日

 

附录1:

《C语言程序设计实践》课程设计

参考及指导

设计参考题目:

通信录管理系统

一、程序组织方法

在TurboC或VC++6.0中新建一个工程,再按下述方法创建各源程序文件。

1.将所有包含文件、符号常量定义、数据类型定义存放在头文件"task1a.h"中,此文件基本不用改动。

将所有函数声明存放在头文件"task1b.h"中,每当定义一个新的函数时,就在此文件中增加一行此函数的声明,并在注释中标明定义此函数的文件。

这样在每个源程序文件开头只需有2条包含命令:

#include"task1a.h"

#include"task1b.h"

2.将main()函数单独存放在一个源程序文件"task1000.c"中。

3.将main()函数主菜单中直接调用的函数的定义存放在源程序文件"task1100.c"、"task1200.c"、"task1300.c"、…中。

4.将一些公用的函数的定义存放在源程序文件"task1900.c"中。

5.将"task1100.c"中调用的函数的定义存放在源程序文件"task1110.c"、"task1120.c"、"task1130.c"、…中。

将"task1120.c"中调用的函数的定义存放在源程序文件"task1121.c"、"task1122.c"、"task1123.c"、…中。

6.每增加一个模块,调通测试后,将所有源文件复制到一个文件夹保存。

文件夹命名的规则和顺序可如下:

v0.00,v0.01,v0.02,v0.03,…全部完成后最终保存所有源文件的文件夹命名为v1.00。

初始版本v0.00由老师提供。

二、部分参考程序

1.头文件"task1a.h"的格式和内容:

/*prj1:

headfile"prj1a.h"*/

#ifndefPRJ1A_SOFTW05/*Startofheadfile"prj1a.h"*/

#definePRJ1A_SOFTW05

#include"stdio.h"

#include"conio.h"

#include"string.h"

#include"stdlib.h"

#defineNODEstructcomm_info/*定义结点类型*/

#defineLENsizeof(structcomm_info)/*定义结点长度*/

#defineTRUE1/*符号常量定义*/

#defineFALSE0/*符号常量定义*/

#defineMAXLINE1000/*符号常量定义*/

#defineLIMIT/*符号常量定义*/

/*全局变量的定义在prj1030.c文件中*/

externlongcount;/*全局变量声明*/

externNODE*head;/*全局变量声明*/

externNODE*tail;/*全局变量声明*/

externNODE*np[LIMIT];/*全局变量声明*/

structcomm_info{/*定义通信信息结构体类型*/

longnum;/*编号*/

chargroup[16];/*分组*/

charname[16];/*姓名*/

charhphone[16];/*固话home_phone*/

charmphone[16];/*手机号mobile_phone*/

charqq[16];/*QQ号码*/

charemail[20];/*e-mail地址*/

charcode[10];/*邮政编码*/

intlen;/*家庭住址或通信地址长度*/

char*addr;/*家庭住址或通信地址*/

structcomm_info*prev;/*前向链表指针*/

structcomm_info*next;/*后向链表指针*/

};

#endif/*Endofheadfile"prj1a.h"

*/

2.头文件"task1b.h"的格式和部分内容(可添加更多函数声明):

/*prj1:

headfile"prj1b.h"

containsonlyfunctiondeclarations*/

#ifndefPRJ1B_SOFTW05/*Startofheadfile"prj1b.h"*/

#definePRJ1B_SOFTW05

/*所有自定义函数都应在下面加以声明:

*/

voidshow_version(void);/*在prj1010.cpp文件中定义*/

voidlogin(void);/*在prj1020.cpp文件中定义*/

voidset_list(void);/*在prj1030.cpp文件中定义*/

voiddisplay(void);/*在prj1100.cpp文件中定义*/

voidadd_record(void);/*在prj1200.cpp文件中定义*/

voiddel_record(void);/*在prj1300.cpp文件中定义*/

voidfind(void);/*在prj1400.cpp文件中定义*/

voidmodify(void);/*在prj1500.cpp文件中定义*/

voidsort(void);/*在prj1600.cpp文件中定义*/

voidhelp(void);/*在prj1700.cpp文件中定义*/

voidwarn_exit(void);/*在prj1700.cpp文件中定义*/

voidsave(void);/*在prj1800.cpp文件中定义*/

intmenu(void);/*在prj1001.cpp文件中定义*/

voidnew_data(void);/*在prj1031.cpp文件中定义*/

voidold_data(void);/*在prj1032.cpp文件中定义*/

voidptrcopy(void);/*在prj1033.cpp文件中定义*/

intexist(longnum);/*在prj1034.cpp文件中定义*/

voidins_node(NODE*p);/*在prj1035.cpp文件中定义*/

voidpause(void);/*在prj1900.cpp文件中定义*/

voidclrscr(void);/*在prj1900.cpp文件中定义*/

intYesOrNo(void);/*在prj1900.cpp文件中定义*/

voidnewline(intn);/*在prj1900.cpp文件中定义*/

#endif/*Endofheadfile"prj1b.h"*/

3.源程序文件"task1000.c"的内容:

/*prj1:

sourcefile"prj1000.cpp"

containsmain()

*/

#include"prj1a.h"

#include"prj1b.h"

/*

通信录管理系统主函数。

*/

main(intargc,char*argv[])

{

intoption;

show_version();

login();

set_list();

if(argc==1)

option=menu();

elseif(argc==2&&(*++argv)[0]=='-')

switch(*++argv[0]){

case'd':

option=1;break;

case'a':

option=2;break;

case'r':

option=3;break;

case'f':

option=4;break;

case'm':

option=5;break;

case's':

option=6;break;

case'h':

option=7;break;

case'x':

option=8;break;

case'q':

option=0;break;

default:

help();

option=menu();break;

}

else{

help();

option=menu();

}

while

(1){

switch(option){

case1:

display();

break;

case2:

add_record();

break;

case3:

del_record();

break;

case4:

find();

break;

case5:

modify();

break;

case6:

sort();

break;

case7:

help();

break;

case8:

save();

break;

case0:

warn_exit();

}

option=menu();

}

return0;

}

4.源程序文件"task1900.c"的内容:

/*prj1:

sourcefile"task1900.cpp"

containsfunctionsincommonuse

*/

#include"prj1a.h"

#include"prj1b.h"

/*waiting*/

voidpause(void)

{

printf("\nPressanykeytocontinue");

getch();

}

/*clearscreen*/

voidclrscr(void)

{

system("cls");

}

/*Getaresponse:

return0forNo,1forYes*/

intYesOrNo(void)

{

charr;

do{

r=getch();

}while(r!

='Y'&&r!

='y'&&r!

='N'&&r!

='n');

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

return1;

else

return0;

}

5.源程序文件"task1100.c"的初始内容(为学生提供的初始模板):

/*prj1:

sourcefile"prj1100.cpp"

containsdisplay()

*/

#include"prj1a.h"

#include"prj1b.h"

/*

displayrecordsinthelist.

*/

voiddisplay(void)

{

clrscr()

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

当前位置:首页 > 法律文书 > 调解书

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

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