1、c语言课程设计题目192020年4月19日文档仅供参考C语言课程设计题目一、实训要求1)C语言课程设计要求1. 可自己选定一题目,限1人选的题目只能由1人单独完成,如限3人选的题目可由1-3人完成。2. 模块化程序设计l3. 锯齿型书写格式l4. 必须上机调试经过l2)课程设计报告内容要求:1. 课程设计题目2. 总体设计(程序设计组成框图、流程图)3. 详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)4. 调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5. 源程序清单和执行结果:清单中应有足够的注释6. 具体格式另附说明。3)
2、检查要求:1. 每个人必须有程序运行结果;2. 每个人必须交课程设计报告打印稿-注:各班班长将本班学生的课程设计报告电子版用优盘拷贝(标上学号、姓名、班级)上交。4)打分标准:1. 根据平时上机考勤;注重平时上机成绩,教师要不定期检查学生进度,学生不得以自己有私人电脑为借口而不来上机。2. 根据程序运行结果;3. 根据C语言课程设计报告,学生能对自己的程序面对教师提问并能熟练地解释清楚以上三项缺一不可,否则不能到得相应学分二、课程设计题目:1:职工信息管理系统设计(限最多3人完成)职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提
3、供以下功能:系统以菜单方式工作v职工信息录入功能(职工信息可用文件保存)输入v职工信息浏览功能输出v查询和排序功能:(至少一种查询方式)算法vl 按工资查询l 按学历查询等职工信息删除、修改功能(任选项)v2:图书信息管理系统设计(限最多3人完成)图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:系统以菜单方式工作v图书信息录入功能(图书信息用文件保存)输入v图书信息浏览功能输出v查询和排序功能:(至少一种查询方式)算法vl 按书名查询l 按作者名查询图书信息的删除与修改(可选项)v3:学生信息管理系统设计(限最多3人完成)学
4、生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功能-输出查询、排序功能-算法按学号查询按姓名查询学生信息的删除与修改(可选项)4:学生选修课程系统设计(限最多3人完成)假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能:系统以菜单方式工作v课程信息录入功能(课程信息用文件保存)输入v课程信息浏览功能输出
5、v查询功能:(至少一种查询方式)算法v按学分查询l按课程性质查询l学生选修课程(可选项)v5:销售管理系统(限最多3人完成)某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。1)计算上个月每个人每种产品的销售额。2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺
6、序,输出排序结果(需输出产品的代号和销售额)4)输出统计报表销售统计报表能反映出:销售员代号产品代号销售之和每种产品之和总和6:设计一个简单计算器(限最多3人完成)算术计算器的实现实现过程和步骤提示:1 首先实现一个简单的算术器1。功能说明:程序首先显示计算器界面,并等待用户输入一个算术计算式(见图1所示)。假如用户输入22+1,程序将在计算器的显示屏上输出计算结果(见图2所示)。如果输入错误,显示input error!。图1图2计算器的界面程序已经提供:(可访问)#include #include void main() float a,b; char c; clrscr(); gotox
7、y(1,2); printf(谀哪哪哪哪哪哪哪哪哪哪哪哪縗n); printf(? 砛n); printf(媚哪哪哪哪哪哪哪哪哪哪哪哪碶n); printf(? 1 2 3 + - 砛n); printf(? 砛n); printf(? 4 5 6 * / 砛n); printf(? 砛n); printf(? 7 8 9 = x1b 砛n); printf(? 砛n); printf(? 0 . End 砛n); printf(滥哪哪哪哪哪哪哪哪哪哪哪哪賊n); gotoxy(2,3); /following codes get users input and complete the ca
8、lculation /add your codes down here! /add your codes up here! 计算器1实现提示:l 读懂并掌握显示计算器界面的程序l 获取用户输入的算式只需利用”%f%c%f”调用scanf函数就能够。其中%c用来获取运算符+,-,*,/,%f用来获取运算数。l 利用if语句或switch语句区分 +,-,*,/ 的不同情况进行运算输出。l 在屏幕的指定位置输出利用gotoxy() 和cprintf函数实现。包含在conio.h头文件中。2 在算术计算器1的基础上,实现算术计算器2。功能说明:算术计算器1一次只能执行一次计算,算术计算器2要求实现能
9、够多次响应用户的计算请求。当用户输入一个算式后,计算器显示计算结果,同时屏幕项部显示:continue? 如果用户此时按Y键,则继续输入下一个算式,否则,程序终止。计算器2实现提示:l 在“计算器1”的主要算法外层套一个循环语句l 在循环体内,显示完计算结果后调用getch函数,如果它的返回值不是y或Y,则跳出循环,程序终止。3 在算术计算器2的基础上,实现算术计算器3。功能说明:算术计算器3不盲目等待用户输入,而是当用户没有输入时,计算器顶部显示一串闪烁的文本“This is a simple calculator!”, 而且这串文本一会儿变成红色,一会儿变成绿色。当用户按键时,这串文本不再
10、闪烁。 如果用户按下End键,程序终止;否则程序接受用户输入的算式,并显示计算结果。 显示完计算结果后,程序继续闪烁言文本 “This is a simple calculator!”,等待用户输入下一个算式或按End键退出。计算器3实现提示:l 程序在调用scanf函数之前,必须先检测是否有键被按下。l 显示闪烁文本的算法如图3所示。图3 计算器3流程图l 检测是否有键按下,需要调用kbhit()库函数。kbhit的原数原型: int kbhit(void); kbhit函数功能:检测是否有键按下,如果有,则返回非0值(即真),否则返回0(即假)。 调用kbhit()函数的源程序必须包含co
11、nio.h文件。l 具有延时功能的函数是delay(unsigned milliseconds)。 包含在dos.h头文件中。Delay()函数的功能是:将程序挂起milliseconds毫秒,即程序暂停或延时milliseconds毫秒。l 当kbhit函数返回非0时,还要检测是否是End键。这需要调用bioskey库函数。但参数必须是1,不能是0。因为bioskey(1)虽然返回用户所按键值,但没有接受键盘输入,不会影响其它函数(如scanf函数)接受有效输入。l END的键值定义为: #define END 0X4F00l bioskey(1)判断是否是END的用法: if (biosk
12、ey(1)= =END) 相关操作 7:学生成绩管理(限最多2人完成)1.主要功能:(1) 能按学期、按班级完成对学生成绩的录入、修改(2) 能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序(3) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出学生的成绩单8:通讯录管理(限最多3人完成)设一个通信录由以下几项数据信息构成: 数据项 类型 姓名 字符串 地址 字符串 邮政编码 字符串 电话号码 字符串1.主要功能:(1) 能建立、查询、修改和增删学生通讯录(2) 能够按多种方式进行查询2.要求:界面友好,易于操作9:一元多项式简单的计算器(限最多1人完成)1
13、主要功能:(1)输入并建立多项式;(2)输出多项式;(3)两个多项式相加,建立并输出和多项式;(4)两个多项式相减,建立并输出差多项式。(5)算法的时间复杂度、另外能够提出算法的改进方法实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。2.要求:一元多项式简单计算器的基本功能10:图书管理系统(限最多3人完成)功能描述1、新进图书基本信息的输入。2.图书基本信息的查询。3.对撤消图书信息的删除。4.为借书人办理注册。5办理借书手续(非注册会员不能借书)。6办理还书手续信息描述:有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状态、借
14、书人姓名、性别、学号等11:用户设置密码(限最多2人完成)做一个密码验证程序,密码验证只有三次机会。要求有登录界面,用户输入密码时应以*代替输出。用户登录成功后能够修改密码。能够有多个用户登录。初次登录的密码由管理员设置。管理员能够添加或删除用户。12: 成绩记录簿(限最多2人完成)编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:(1)创立信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的成绩;(3)按学号或姓名查询成绩;(4)添加成绩记录;(5)修改指定姓名或学号的学生的成绩并可存盘;(6)显示输出60分以下、6079、8089、90分以上各分数段
15、的学生信息。13: 学生籍贯信息记录簿(限最多2人完成)编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能:(1)创立信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;14: 职工工作量统计系统(限最多1人完成)编写有一个程序,该程序输入职工工号和完成的产品数量,程序允许同一职工有多次输入,由程序对其完成的产品数量实现累计。程序按完成数量对她们排序,并确定她们的名次。按完成的产品数量由多到少的顺序,输出名次、同一名次的职工人数及她们的工号(
16、工号由小到大顺序输出)。要求程序用有序链表存储数据信息。15:成绩管理系统 (限最多3人完成)现有学生成绩信息,内容如下姓名 学号 语文 数学 英语 张明明 01 67 78 82李成友 02 78 91 88张辉灿 03 68 82 56王露 04 56 45 77陈东明 05 67 38 47. . . . 实现学生信息管理,软件的入口界面应包括如下几个方面:(一)功能要求:(1) 信息维护:要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息(2) 信息查询:要求:查询时可实现按姓名查询、按学号查询(3) 成绩统计:
17、要求:A输入任意的一个课程名(如数学)和一个分数段(如60-70),统计出在此分数段的学生情况。(4) 排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分)(5)至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)16:通讯录管理系统(限最多3人完成)用C设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。(一) 功能要求(1) 查看功能:选择此功能时,列出下列三类选择。A 办公类 B 个人类 C 商务类 ,当选中某类时,显示出此类所有数据中的姓名和
18、电话号码)(2) 增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。例如杨春 商务类 当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。(3) 拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音。(4) 修改功能:选中某个人的姓名时,可对此人的相应数据进行修改(5) 删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,
19、并自动调整后续条目的编号。(二)其它要求:(1)至少采用文本菜单界面(如果能采用图形菜单界面更好)(2) 建议使用数组或链表等数据结构(3) 学生可自动增加新功能模块(视情况可另外加分)17:学籍管理系统(限最多3人完成)使用下面的数据,用C设计一个简单的学籍管理系统,实现出最基本的功能。学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成学号 姓名 性别 宿舍号码 电话号码01 张成成 男 501 8773211102 李成华 女 101 8772311203 王成凤 女 101 8772311204 张明明 男 502 8773433305 陈
20、东 男 501 8773211106 李果 男 502 8773433307 张园园 女 102 87756122 . . .学生成绩基本信息文件(B.TXT)及其内容:学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 9001 B03 高等数学 4 45 -1 8802 C01 VF 3 65 76 66 . . . . 功能要求及说明:(1) 数据录入功能: 对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综
21、合成绩、学分由程序根据条件自动运算。 综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70% . 实得学分的计算: 采用等级学分制. 综合成绩在90-100之间 ,应得学分=学分*100% 综合成绩在80-90之间 ,应得学分=学分*80%综合成绩在70-80之间 ,应得学分=学分*75% 综合成绩在60-70之间 ,应得学分=学分*60%综合成绩在60以下 ,应得学分=学分*0%(2)查询功能:分为学生基本情况查询和成绩查询两种 A:学生
22、基本情况查询:A1-输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。A2-输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。 B:成绩查询:B1:输入一个学号时,查询出此生的所有课程情况,格式如下:学 号:xx 姓 名:xxxxx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 共修:xx科,实得总学分为: xxx (3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此
23、人所有信息。 (4 ) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。(二)其它要求:(1)至少采用文本菜单界面(如果能采用图形菜单界面更好)(2) 学生可自动增加新功能模块(视情况可另外加分)18: 车票管理系统(限最多3人完成)一车站每天有n个发车班次,每个班次都有一班次号(1、2、3n),固定的发车时间,固定的路线(起始站、终点站),大致的行车时间,固定的额定载客量。如班次 发车时间 起点站 终点站 行车时间 额定载量 已定票人数1 8:00 郫县 广汉 2 45 302 6:30 郫县 成都 0.5 40 403 7:00 郫县 成都 0.5 40 204 10:0
24、0 郫县 成都 0.5 40 2(一)功能要求:用c/c+设计一系统,能提供下列服务:(1)录入班次信息(信息用文件保存),可不定时地增加班次数据(2)浏览班次信息,可显示出所有班次当前状总(如果当前系统时间超过了某班次的发车时间,则显示“此班已发出”的提示信息)。(3)查询路线:可按班次号查询 ,可按终点站查询(4)售票和退票功能 A:当查询出已定票人数小于额定载量且当前系统时间小于发车时间时才能售票,自动更新已售票人数B:退票时,输入退票的班次,当本班车未发出时才能退票,自动更新已售票人数 (二)其它要求:(1) 只能使用C/C+语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文
25、本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4)写出实训报告,具体要求见相关说明文档19:单项选择题标准化考试系统(限最多3人完成)(一) 功能要求:(1) 用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案)(2) 试题录入:可随时增加试题到试题库中(3) 试题抽取:每次从试题库中能够随机抽出N道题(N由键盘输入)(4) 答题:用户可实现输入自己的答案(5) 自动判卷:系统可根据用户答案与标准答案的对比实现判卷并给出成绩。(二)其它要求:(1) 源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 学生可自动增加新功能模块(视情况可另外加分)(4) 写出实训报告,具体要求见相关说明文档