《C语言程序设计》课程设计任务及指导书.docx
《《C语言程序设计》课程设计任务及指导书.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》课程设计任务及指导书.docx(17页珍藏版)》请在冰豆网上搜索。
![《C语言程序设计》课程设计任务及指导书.docx](https://file1.bdocx.com/fileroot1/2023-1/11/233971a8-c68a-4a4f-bbca-8a536290d0b4/233971a8-c68a-4a4f-bbca-8a536290d0b41.gif)
《C语言程序设计》课程设计任务及指导书
《C语言程序设计》课程设计任务及指导书
一、设计题目
题目一:
班级成绩管理系统
题目二:
班级档案管理系统
题目三:
飞机订票系统
题目四:
通信录管理系统
题目五:
图书信息管理系统
题目六:
职工档案管理系统
题目七:
银行帐户管理系统
题目八:
集合的操作
题目九:
链表的操作
题目十:
字符串的处理
题目十一:
猜数字游戏
题目十二:
求解八皇后问题
其他选题
二、设计目的
《C语言程序设计》课程设计是信息管理与信息系统专业学生的集中实践性环节之一,是学习完《C语言程序设计》课程后进行的一次全面的综合练习。
其目的是加深学生对高级语言基本语言要素和控制结构的理解,训练学生综合运用已学课程的基本知识,独立进行C语言应用程序设计,掌握C语言程序设计、调试的方法和技巧,从而提高动手编程解决实际问题的能力。
三、设计任务
按学号最后两位大小顺序分组,每五人做一个题目,01-05号完成题目一,06-10号完成题目二,11-15号完成题目三,16-20号完成题目四,……。
每人都要独立完成课程设计任务。
四、时间安排
课程名称
班级
周次
星期
节次
时间
实验室
C语言程序设计课设
信管1301
1
全周
上午
2014.2.17-2014.2.21
东八-401
C语言程序设计课设
信管1302
1
全周
下午
2014.2.17-2014.2.21
东八-403
五、设计内容
设计内容一班级成绩管理系统
一、问题描述:
对一个有N个学生的班级,每个学生有M门课程。
该系统实现对班级成绩的录入、显示、修改、排序等操作的管理。
二、功能要求:
1、本系统采用一个结构体数组,每个数据的结构应当包括:
学号、姓名、M门课程名称。
2、本系统显示这样的菜单:
请选择系统功能项:
(1)成绩录入
(2)成绩显示
(3)成绩排序
(4)成绩修改(要求先输入密码)
(5)成绩统计
a、显示每门课程成绩最高的学生的基本信息
b、显示每门课程的平均成绩
c、显示超过某门课程平均成绩的学生人数
(6)退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
三、算法提示:
数据结构:
结构体类型数组。
姓名
学号
课程名称1
课程名称2
●●●●●●
char
Char
float
float
四、测试数据:
学生人数N=10
课程门数M=4
课程名:
数学、语文、英语、政治
五、其它
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
设计内容二班级档案管理系统
一、问题描述:
对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除等操作的管理。
二、功能要求:
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
学号、姓名、性别、年龄、备注。
2、本系统显示这样的菜单:
请选择系统功能项:
(1)学生基本信息录入
(2)学生基本信息显示
(3)学生基本信息删除
(4)学生基本信息修改
(5)学生基本信息查询
a、按学号查询
b、按姓名查询
c、按性别查询
d、按年龄查询
(6)退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
三、算法提示:
数据结构:
结构体类型数组
姓名
学号
性别
年龄
备注
char
Char
char
int
char
四、测试数据:
学生人数N=10
学生基本信息数据自行规定
五、其它:
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
设计内容三飞机订票系统
一、问题描述:
假设某航空公司只有M架N个座位的飞机,每架飞机每天飞行一趟。
通过该系统来实现机票的订购问题。
二、功能要求:
1、本系统采用一个包含M×N个数据的结构体数组,每个数据的结构应当包括:
起飞地、目的地、航班号、座次号码、座次订出与否标记、订座者的姓名和订座者的身份证号码。
2、本系统显示这样的菜单:
(1)输入航班信息
(2)输出航班信息
(3)查找航班信息
a、按线路查询
b、按目的地查询
(4)订票预约
(5)删除订票预约
(6)退出系统
注:
本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入。
查找航班信息既可按线路查,也可按目的地查。
查询结果显示空座的信息、数量、已订座的信息、起飞时间等。
3、执行一个具体的功能之后,程序将重新显示菜单。
三、算法提示:
数据结构:
结构体类型数组
航班号
起飞时间
目的地
座次号
座次订出与否的标记
订票者姓名
订票者身份证号码
int
char
char
int
Char
char
char
四、测试数据:
飞机架数M=5,每架飞机的座位数N=12
五、其它:
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能。
设计内容四通信录管理系统
一、问题描述:
对一个有N个联系人的通信录,通过该系统实现对该通信录中联系人的基本信息进行录入、显示、修改、删除等操作的管理。
二、功能要求:
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
姓名、手机号、住宅电话、办公电话、电子邮件、备注。
2、本系统显示这样的菜单:
请选择系统功能项:
(1)联系人基本信息录入
(2)联系人基本信息显示
(3)联系人基本信息删除
(4)联系人基本信息修改
(5)联系人基本信息查询(按姓名查询)
(6)退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
三、算法提示:
数据结构:
结构体类型数组
姓名
手机号
住宅电话
办公电话
电子邮件
备注
char
char
char
char
char
char
四、测试数据:
联系人数N=10
联系人基本信息数据自行规定
五、其它:
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
设计内容五图书信息管理系统
一、问题描述:
对一个有N本图书的小型图书馆,通过该系统实现对该图书馆中图书的基本信息进行录入、显示、修改、删除等操作的管理。
二、功能要求:
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
2、本系统显示这样的菜单:
请选择系统功能项:
(1)图书基本信息录入
(2)图书基本信息显示
(3)图书基本信息修改
(4)图书基本信息删除
(5)图书基本信息查询
a、按书名查询
b、按作者名查询
(6)退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
三、算法提示:
数据结构:
结构体类型数组
登录号
书名
作者名
分类号
出版单位
出版时间
价格
char
char
char
char
char
char
double
四、测试数据:
图书本数N=10
图书基本信息数据自行规定
五、其它:
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
设计内容六职工档案管理系统
一、问题描述:
对一个有N个职工的小公司,通过该系统实现对该公司职工的基本信息进行录入、显示、修改、删除、查询等操作的管理。
二、功能要求:
1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:
工号,姓名,性别,出生年月,所在部门,职称,工资级别、电话。
2、本系统显示这样的菜单:
请选择系统功能项:
(1)职工基本信息录入
(2)职工基本信息显示
(3)职工基本信息删除
(4)职工基本信息修改
(5)职工基本信息查询
a、按部门查询
b、按姓名查询
c、按职称查询
(6)退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
三、算法提示:
数据结构:
结构体类型数组
工号
姓名
性别
出生年月
所在部门
职称
工资级别
电话
int
char
char
char
char
char
int
char
四、测试数据:
职工人数N=10
职工基本信息数据自行规定
五、其它:
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
设计内容七银行帐户管理系统
一、问题描述:
对一个有N个帐户的银行,通过该系统实现对该银行中客户帐户的基本信息、取款和存款信息进行各种操作的管理。
二、功能要求:
1、在本系统采用两个结构体数组,分别存放帐户的基本信息(包括:
编号、客户姓名、支取密码、客户地址、客户电话、账户总金额等)、存取款信息(包括:
编号、日期、类别、存取数目、经办人)。
注:
类别分为取款和存款两种。
2、本系统显示这样的菜单:
请选择系统功能项:
(1)帐户基本信息录入
(2)帐户基本信息输出
(3)存款
(4)取款
(5)帐户存款信息查询(按编号)
(6)帐户取款信息查询(按编号)
(7)退出系统
3、执行一个具体的功能之后,程序将重新显示菜单。
三、算法提示:
数据结构:
结构体类型数组
编号
客户姓名
支取密码
客户地址
客户电话
账户总金额
char
char
char
char
char
double
编号
日期
类别
存取数目
经办人
char
char
char
double
char
四、测试数据:
帐户数N=10
存取款信息数据自行规定
五、其它:
对该系统有兴趣的同学可以在实现上述基本功能后,完善系统的其它功能。
设计内容八集合的操作
一、问题描述:
本题要求定义并实现一个用于存放整型数据的集合,编程实现集合的各种操作并在main函数中测试。
二、功能要求:
实现集合的以下操作:
(1)增加一个数到集合中;
(2)从集合中去掉一个元素;
(3)判断一个元素是否在集合中;
(4)实现两个集合的并运算;
(5)实现两个集合的交运算;
(6)实现两个集合的差运算;
(7)判断两个集合是否相等;
(8)显示输出集合中的所有元素。
三、算法提示:
1、数据结构:
用整型数组存放集合元素
2、用简单的程序设计方法
四、测试数据:
在main函数中调用各种操作,显示操作结果。
测试数据应尽可能体现各种操作结果。
设计内容九链表的操作
一、问题描述:
本题要求定义并实现一个用于存放整型数据的带头结点的单链表,编程实现单链表的各种操作并在main函数中测试。
二、功能要求:
实现单链表的以下操作:
(1)置空MakeEmpty()
(2)求长度Length()
(3)插入Insert(x,i):
将x插入到第i个结点(不含头结点)之后;
(4)删除Delete(x):
删除链表中值为x的结点,成功返回1,否则返回0;
(5)删除ReMove(i):
删除链表中第i个结点,成功返回1,否则返回0;
(6)判断一个元素是否在链表中Find(x):
在链表中查找数值为x的结点,成功返回1,否则返回0;
(7)实现单链表数据的排序(升序或降序均可);
(8)实现单链表数据的显示输出。
三、算法提示:
1、数据结构:
结构体类型指针
2、用简单的程序设计方法
四、测试数据:
在main函数中调用各种操作,显示操作结果。
测试数据应尽可能体现各种操作结果。
设计内容十字符串的处理
一、问题描述:
C语言本身没有提供对字符串的直接支持,本题要求编程实现字符串的各种操作并在main函数中测试。
二、功能要求:
实现字符串的以下操作:
strcpy(s1,s2)复制字符串
strncpy(s1,s2,n)复制指定长度字符串
strcat(s1,s2)附加字符串
strncat(s1,s2,n)附加指定长度字符串
strlen(s)求字符串长度
strcmp(s1,s2)比较字符串
strcasecmp(s1,s2)忽略大小写比较字符串
strncmp(s1,s2,n)比较指定长度字符串
strchr(s,c)在字符串中查找指定字符
strstr(s1,s2)查找子字符串
strlwr(s)将字符串中大写字母转换为小写字母
strupr(s)将字符串中小写字母转换为大写字母
三、算法提示:
1、数据结构:
字符数组、指针
2、用简单的程序设计方法
四、测试数据:
在main函数中调用各种操作,显示操作结果。
测试数据应尽可能体现各种操作结果。
设计内容十一猜数字游戏
一、问题描述:
该游戏可以由程序随机产生四个0到9之间的数字,且不重复。
玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。
A表示位置正确且数字正确,B表示数字正确而位置不正确。
二、功能要求:
1、本游戏显示这样的菜单:
(1)随机产生数据
(2)用户输入数据
(3)退出游戏
2、游戏成功与否都能返回主菜单
三、算法提示:
1、数据结构:
数组
2、用简单的程序设计方法
四、测试数据:
测试数据:
3792
第一次输入:
1234
0A2B
第二次输入:
5678
0A1B
第三次输入:
0867
0A1B
第四次输入:
9786
1A1B
第五次输入:
1794
2A0B
第六次输入:
2793
2A2B
第七次输入:
3792
4A0B
游戏成功
五、其它:
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:
破记录功能,若你所匹配的次数小于纪录保持者,则为破纪录。
设计内容十二求解八皇后问题
一、问题描述:
八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。
该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:
在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
高斯认为有76种方案。
1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。
二、要求:
编写程序对八皇后问题进行求解:
在8行8列的棋盘上放置8个皇后,使任一个皇后都不能吃掉其他的7个皇后(注:
皇后可吃掉与她处于同行或同列或同一对角线上的其他棋子),并将结果以图形方式显示出来。
(最好能绘出所有92种情况)
例如,当求出下述的一个解(1,1)(2,5)(3,8)(4,6)(5,3)(6,7)(7,2)(8,4)时,画出如下图:
三、算法提示:
(1)通过“intLineNum[9];boola[9],b[15],c[15];”说明具有全局作用域的4个数组。
其中的:
LineNum[i]表示第i列的皇后要放的行位置(只用其中的列号1到8);
a[i]为true(i=1,2,…,8)表示第i行上尚未放皇后;
b[i]为true(i=0,1,2,…,14)表示第i条斜对角线上尚未放皇后(斜对角线指的是“/”状对角线,该对角线上各点的行列号之和i+j为一个常数);
c[i]为true(i=0,1,2,…,14)表示第i条反斜对角线上尚未放皇后(反斜对角线指的是“\”状对角线,该对角线上各点的行列号之差i-j为一个常数)。
从而当使用语句“if(a[j]&&b[i+j-2]&&c[i-j+7])LineNum[i]=j;”时,可用于判断并实现:
如果在第j行的第i列上放置皇后安全的话,则将一枚皇后放置到那儿。
(2)编制一个具有如下原型的递归函数solve,它负责往第i列开始的连续8-i+1列上均放上皇后,若成功则通过引用参数ok返回true(否则返回false)。
voidsolve(inti,bool&ok);
摆放皇后之后,若i=8即已放满时则递归出口;否则通过solve(i+1,ok);进行递归调用。
(3)编制主函数,首先初始化一个“空棋盘”,即将a、b、c数组的各元素均置为true(表示当前棋盘的8个行、15条斜对角线以及15条反斜对角线上都尚未摆放皇后)。
而后执行调用语句“solve(1,ok);”,它负责往第1列开始的连续8列上均放上皇后,若成功则通过引用参数ok返回true(否则返回false)。
设计内容其他选题:
十三、实现带有括号的四则运算
十四、二十一点游戏
十五、模拟计算器程序
十六、贪吃蛇
十七、五子棋
十八、俄罗斯方块
十九、迷宫游戏
二十、魔方阵
六、工作要求
利用学到的编程知识和编程技巧,要求学生:
1、对系统进行功能模块分析、控制模块分析正确
2、系统设计要能完成题目所要求的功能。
3、编程简练,可用,尽可能地使系统的功能更加完善和全面
4、按要求撰写课程设计报告。
5、特别要求自己独立完成。
课程设计报告的内容及要求:
《C语言程序设计》课程设计说明书封面(见最后)
一、课程设计目的
二、课程设计内容
1、课程设计的题目及简介
2、设计说明
3、程序流程图
4、程序清单(源程序要多加注释)
5、运行结果(界面截图)
三、课程设计总结
四、参考文献
(注:
课程设计报告统一使用A4大小的复印纸打印,不得使用其他纸张)
注意事项:
1.以上要求为一般的要求,针对具体问题和具体的开发过程,某些方面可以做适当的增减。
2.各种文档资料要在程序开发过程中逐渐形成,而不是最后补写(但不排斥最后誉清)。
3.各种文档要用Word及其它文字编辑软件排版后打印输出。
4.任务完成时报告老师,上机验收运行结果,现场提问验收。
七、成绩评定标准
由指导教师根据学生完成任务的情况、课程设计说明书的质量和课程设计过程中的态度等综合打分。
1.课程设计说明书:
30%
包括设计说明书内容的全面性、正确性,文字表述的准确性和条理性,以及书写的工整程度等。
2.平时:
30%
平时主要包括考勤和操作练习的实际情况。
3.设计末考核:
40%
包括上机验收结果和现场提问结果。
成绩评定标准:
Ø优(90-100):
能很好地完成实验所要求的任务,达到任务书中规定的全部要求,设计说明书能对整个任务进行全面、系统的总结,并能运用学过的理论知识对某些问题加以分析,在考核时能很圆满地回答问题,并有某些独到见解。
学习态度很端正。
Ø良(80-89):
能较好地完成实验所要求的任务,达到任务书中规定的全部要求,设计说明书能对整个系统内容进行比较全面、系统的总结。
考核时能较圆满地回答问题,学习态度较端正。
Ø中(70-79):
达到实验任务书中规定的主要要求,设计说明书能对整个系统内容进行比较全面的总结,在考核时能正确地回答主要问题,学习态度端正。
Ø差(60-69):
完成了实验任务书的主要任务,达到任务书中规定的基本要求,能够完成设计说明书,内容基本正确但不够完整、系统,考核中能回答主要问题。
学习态度基本端正。
Ø不及格(<60):
未达到实验任务书中规定的基本要求,设计说明书马虎潦草或内容有明显错位;考核时不能回答主要问题或有原则性错误。
学习态度不端正。
附:
①凡是上机未到者,每次扣除5分。
②上机时间内,做与本课程设计无关事情者,予以警告。
屡教不改者当次上机视为旷课。
处理办法见第①条。
③上机时间内,无正当理由离开实验室长达半小时者,当次上机视为旷课。
处理办法见第①条。
④课程设计整个过程中,如果请假超过2次,即2次上机未能前来者,请速去系办公室办理缓考事宜。
附:
《C语言程序设计》课程设计说明书封面
武汉轻工大学
数学与计算机学院
《C语言程序设计》
课程设计说明书
题目:
专业:
班级:
学号:
姓名:
指导老师:
徐军利
年 月 日