程序设计语言课程设计指导书.docx
《程序设计语言课程设计指导书.docx》由会员分享,可在线阅读,更多相关《程序设计语言课程设计指导书.docx(16页珍藏版)》请在冰豆网上搜索。
![程序设计语言课程设计指导书.docx](https://file1.bdocx.com/fileroot1/2022-12/17/b2caeaca-baa9-4e26-aea5-a604dfd226e0/b2caeaca-baa9-4e26-aea5-a604dfd226e01.gif)
程序设计语言课程设计指导书
程序设计语言
课程设计指导书
适用专业:
计算机科学与信息工程系各专业
上海应用技术学院
计算机科学与信息工程系
2009年5月
前言
本书是针对在完成前修课程《程序设计语言》基础上的一本课程设计指导书,《程序设计语言》对计算机专业的学生而言是非常重要的一门课程,主要目的在于培养学生的程序设计能力。
指导书选出的程序首先是配合前修课程,目的在前修课程基础上通过程序设计的实实际训练提高学生的编程能力。
本书的所选的设计题目有不同的应用类型供学生选择。
部分题目的算法没有在前修课程中涉及,需要学生查阅、自学有关参考书籍和资料后才能完成,这样有助于提高学生查阅资料和自学的能力。
本书使用对象为本科计算机专业的学生,课程设计的时间为两周。
设计环境为学校计算机中心,每人一题,每人一台计算机。
软件环境要求:
windows操作系统,C语言开发工具软件(建议使用CFree4.0),Word(用于编写设计报告)。
目录
第一篇C语言课程设计说明1
第二篇课程设计题目3
题目一算术练习3
题目二个人收支管理4
题目三通讯录5
题目四成绩记录簿6
题目五图书借阅管理7
题目六日程表管理8
第三篇附录9
附录一课程设计说明书的编写范例9
附录二程序范例10
参考文献11
第一篇C语言课程设计说明
一.课程设计目的
本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:
1.巩固和加深学生对C语言课程的基本知识的理解和掌握;
2.掌握C语言编程和程序调试的基本技能;
3.利用C语言进行基本的软件设计;
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力。
二.课程设计要求
1.分析课程设计题目的要求;
2.写出详细设计说明;
3.编写程序代码,调试程序使其能正确运行;
4.设计完成的软件要便于操作和使用,有整齐、美观的使用界面;
5.设计完成后提交课程设计报告和源代码文件的电子文档。
三.课程设计的内容
1.在指导书提供的课程设计题目中选择一题或自选题目(需经指导教师认可);
2.每个题目限一人完成,题目选定后不可更换;
3.用户提供的主操作界面应该方便用户的操作。
4.最后提交的课程设计成果包括:
a)课程设计报告电子稿;
b)源程序文件;
c)可执行程序文件。
四.课程设计报告的内容:
1.课程设计题目名称、班级号、学号、学生姓名和课程设计起止日期(封面);
2.上海应用技术学院课程设计任务书(下发)
3.课程设计目的和要求;
4.课程设计任务内容;
5.详细设计说明;
6.软件使用说明;
7.课程设计总结;
8.附录:
1参考文献2程序清单。
五.评分标准:
1.课程设计过程中表现30%
2.课程设计系统运行结果30%
3.课程设计报告20%
a)设计报告的质量。
课程设计报告不能雷同,雷同的所有人判为不及格。
b)题目要求之外附加具有实用性的功能。
c)设计体会中应包括本系统的不足之处以及可改进的地方;
d)说明系统的特色、创新点等。
e)评阅课程设计报告。
4.答辩成绩20%
a)提交课程设计报告时,在机房现场进行面试答辩。
b)由指导教师提供测试数据,学生运行设计的系统;
c)教师考核系统运行情况,并针对系统进行提问;
评定总成绩,分优秀、良好、中等、及格、不及格五个等级,没有通过现场考核的其成绩直接记录不及格。
六.进度安排:
第一天选择课程设计题目,分析课题的要求,确定设计方案;
第二天按功能模块编写详细设计说明;
第三天绘制程序流程图;
第四~六天编写程序;
第七天调试程序;
第八天写课程设计报告;
第九天提交课程设计报告;
第十天面试或答辩。
第二篇课程设计题目
题目一算术练习
1.
算术练习
1.练习
2.测验
3.设置
4.查看测验成绩
1.退出
程序的主界面
设计要求
基本要求:
a)练习
b)测验
c)设置
拓展功能:
查看测验成绩
创新(自拟)功能:
程序实现的其它功能由个人自拟。
2.设计要求具体说明
练习:
包括每次可以在+、-、*、/四种运算中任选其中的1到4种出题,每题只包含一个运算符。
(每答完一题,要显示对或错、正确结果、总答题数,正确答题数和答题正确率)
测验:
包括每次可以在+、-、*、/四种运算中任选其中的1到4种出题,每题只包含一个运算符。
答题全部结束时可以看到题目、测验后的结果、参考答案、总的题数、答对几题、错几题、本次测验的成绩。
设置:
包括计算数据的位数按设定值给出(1~3位)。
设置测验模式的题数和总分。
拓展功能:
查看测验成绩要求在测验模式下将本次测验的姓名,总的题数、题目、测验后的结果、参考答案、答对几题、错几题、本次测验的成绩写入文件。
接着可以在查看测验成绩模式下从磁盘上读出并显示出来。
3.提示:
出题时的运算符、运算数据可用随机rand()函数产生,详见附录。
题目二
个人收支管理
1.收入
2.支出
3.明细表
4.查询与统计
5.写入文件
6.读取文件
0.退出
程序的主界面
个人收支管理
1.设计要求:
基本要求
a)收入
b)支出
c)明细表
d)查询与统计
拓展功能:
a)写入文件
b)读取文件
创新(自拟)功能:
程序实现的其它功能由个人自拟。
2.设计要求具体说明
收入模式中输入以下数据:
顺序号、日期、摘要、金额、余额、币种,收入或支出标志。
默认币种为人民币,也可以是美圆、欧元、日币或英镑。
支出模式中输入以下数据:
顺序号、日期、摘要、金额、余额、币种,收入或支出标志。
默认币种为人民币,也可以是美圆、欧元、日币或英镑。
查询与统计:
a)明细表,可以输入起止日期查出这段时间内的收支明细(详细信息)。
b)按月、按年统计总收入和总支出。
在显示器上显示出来。
输入信息时都要检查日期输入的正确性。
拓展功能:
a)写入文件可以将查询与统计的结果,当前的数据(明细表)全部写入文件。
b)读取文件可以从磁盘上将所写入的(明细表)数据读到内存中,并显示。
3.设计提示
定义合适的结构体类型。
成员为顺序号、日期、摘要、金额、余额、币种,收入或支出标志等,自己增加也可。
默认币种为人民币,也可以是美圆、欧元、日币或英镑。
题目三通讯录
1.
通讯录
1.添加
2.查询
3.删除
4.修改
5.排序
6.输出全部信息
7.写入文件
8.读取文件
0.退出
程序的主界面
设计要求:
基本功能:
a)添加个人信息
b)查询个人信息
c)删除个人信息
d)修改个人信息
e)信息排序
f)输出全部信息
拓展功能:
采用文件形式对通讯录进行操作,包括:
a)写入文件
b)读取文件
创新(自拟)功能:
程序实现的其它功能由个人自拟。
2.设计要求具体说明
通讯录至少应该有以下数据项:
姓名,家庭住址,手机号码,邮编,E-mail。
输入信息时要检查数据项手机、邮编、E-mail的合法性,手机号码:
11位数字;邮编:
6位数字;E-mail:
包含@字符,且@两边都非空。
对通讯录应该包含有以下操作(包括基本功能和拓展功能):
a)向通讯录中添加信息;
b)在通讯录中按姓名或手机号查找个人信息;
c)删除通讯录中的个人信息;
d)修改通讯录中的个人信息,并保存入文件;
e)按不同数据项排序后列表输出通讯录中所有人的信息。
通讯录中记录的数量没有限制。
f)将通讯录中的数据写入文件和从文件读入数据。
程序启动时先从文件读入数据,如果文件中没有数据则给出提示;写入文件时有两种方式,一为覆盖所有原有的内容;二为只将本次操作所修改的个人信息写入文件
g)程序启动时先从文件读入数据,如果文件中没有数据则给出提示退出程序。
3.设计提示
定义合适的结构体类型,使用链表或数组的方式组织数据。
题目四
成绩记录簿
1.添加
2.删除
3.查学生成绩
4.查班成绩表
5.写入文件
6.读取文件
0.退出
程序的主界面
成绩记录簿
1.设计要求:
基本功能
a)添加成绩
b)删除成绩
c)查询学生成绩
d)查询班级成绩
e)退出
拓展功能
a)写入文件
b)读取文件
创新(自拟)功能:
程序实现的其它功能由个人自拟。
2.设计要求具体说明
基本功能:
成绩记录簿中记录以下数据:
学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分;
输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:
8位数字;课程编号:
5位数字;成绩:
0~100之间的整数,学分:
1~5之间的实型数。
添加成绩:
需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示;
查询(班级或个人)成绩:
a)查询个人成绩:
以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成的总学分。
b)查询班级成绩:
以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同学不同课程在不同分数段分布的人数及百分比。
拓展功能:
a)程序启动时先从文件读入数据,如果文件中没有数据则给出提示;
b)每次修改的数据写入文件。
3.提示
定义合适的结构体类型,使用链表或数组的方式组织数据。
题目五
图书借阅管理
1.图书管理
2.读者管理
3.借书
4.还书
5.查询与统计
0.退出
程序的主界面
图书借阅管理
1.设计要求
基本功能:
图书管理
读者管理
借书管理
还书管理
查询与统计
拓展功能:
图书管理、读者管理、借书管理及还书管理中的删除、修改功能。
创新(自拟)功能:
程序实现的其它功能由个人自拟。
2.设计要求具体说明
图书管理主要为添加图书,如图书一些基本信息输入。
读者管理主要为添加读者(即借书证),如读者一些基本信息输入。
借书管理包括借书时需输入借书日期、书号和借书证号。
还书管理包括还书时需输入还书日期、书号和借书证号。
以上这些信息均需写入文件,文件可以分成四个图书文件、读者文件、借书文件及还书文件。
图书查询:
当输入书号,列出该图书的一些基本信息及该图书所借的读者。
读者查询:
当输入借书证号、开始日期、结束日期,统计出该张借书证号在某一时期所借阅的图书情况等等。
统计图书书籍总数、已借出数据总数、在库书籍数等。
统计图书书籍总金额、书籍的平均价格。
拓展功能:
a)进行图书信息修改、图书删除,但是当该图书有在借时,不能删除。
b)读者信息修改、删除读者,但当是读者有图书在借时,不能删除。
c)找出借阅次数最多的10本书,并对它们进行排序。
d)统计借阅书籍最多的前5名读者。
3.设计提示
定义合适的结构体类型。
每本书的基本信息书号、书名、作者、出版社。
一张借书证所借的书的数量不限。
题目六日程表管理
1.
日程表管理
1.添加日程信息
2.删除日程信息
3.查询
4.设置
0.退出
程序的主界面
设计要求
基本功能:
添加日程信息;
删除日程信息;
查询管理;
设置管理;
拓展功能:
日程信息的修改;
设置修改;
设置删除;
创新(自拟)功能:
程序实现的其它功能由个人自拟。
2.设计要求具体说明
添加日程信息:
需要输入日期、时间及相关的事件名称,并提示是否有时间冲突。
删除日程信息:
需要输入日期、时间后,显示相关的事件名称,由用户确认是否删除。
查询功能:
a)查询提前提醒事件,即提示将要发生的日程信息;
b)查询某天的日程信息。
对已经过去和将要发生的事件要区别显示。
设置功能:
a)可以设置提前提醒的时间。
b)日程信息需写入文件,文件的建立自我定义。
c)输入的日期、时间要进行合理性检查。
d)设置提前提醒的时间,并进行合理性检查。
拓展功能:
a)能进行日程表信息的修改;
b)设置信息的修改、删除。
3.提示
定义合适的结构体类型,使用链表或数组的方式组织数据。
第三篇附录
附录一课程设计说明书的编写范例
附录二程序范例
1.显示菜单的主函数(在TurboC2.0,CFree4.0,VC6.0环境中调试通过)
#include"stdio.h"
voidopenfile()
{}
voidinputdata()
{}
voiddeletedata()
{}
voidfinddata()
{}
main()
{
unsigneda;
while
(1)
{
printf("\n\n\n");
printf("主菜单\n");
printf("1:
打开文件\n");
printf("2:
录入数据\n");
printf("3:
删除数据\n");
printf("4:
数据查询\n");
printf("0:
退出\n");
printf("请输入数字选择:
");
scanf("%d",&a);
switch(a)
{
case1:
openfile();break;
case2:
inputdata();break;
case3:
deletedata();break;
case4:
finddata();break;
case0:
exit(0);
default:
;
}
}
}
#include"stdio.h"
#include"stdlib.h"
voidopenfile()
{}
voidinputdata()
{}
voiddeletedata()
{}
voidfinddata()
{}
main()
{
chara;
system("cls");
while
(1)
{
printf("\n\n\n");
printf("主菜单\n");
printf("1:
打开文件\n");
printf("2:
录入数据\n");
printf("3:
删除数据\n");
printf("4:
数据查询\n");
printf("0:
退出\n");
printf("请输入数字选择:
");
a=getchar();
while(getchar()!
='\n');
//scanf("%d",&a);
switch(a-'0')
{
case1:
openfile();break;
case2:
inputdata();break;
case3:
deletedata();break;
case4:
finddata();break;
case0:
exit(0);
default:
//printf("请输入0~4之间的数字!
\n");
;
}
system("cls");
}
}
2.产生随机数
#include"stdlib.h"
#include"time.h"
#include"stdio.h"
main()
{
inti;
srand(time(NULL));//srand()初始化新的随机数序列
//time()本函数给出自1970年1月1日凌晨至现在所经过的秒数,
for(i=0;i<10;i++)
printf("Randomnumber#%d:
%d\n",i,rand());//rand()产生一个随机数(0~32767)
}
参考文献
[1]谭浩强.C程序设计(第三版).北京:
清华大学出版社,2005
[2]谭浩强.C程序设计题解与上机指导(第三版).北京:
清华大学出版社,2005
[3]HerbertSchildt.C语言大全(第四版).北京:
电子工业出版社,2004
[4]SamuelP.HarbisonⅢ,GuyL.Steele.C语言参考手册(第5版).北京:
机械工业出版社,2003
[5]张建勋.C语言程序设计教程.北京:
清华大学出版社,2008.2
[6]崔武子.C程序设计教程(第2版).北京:
清华大学出版社,2007.6(第2版)