程序设计语言 课程设计题目(补充)
- 格式:doc
- 大小:26.60 KB
- 文档页数:6
《C语言程序设计》课程设计课题表一、A类1.职工信息管理系统设计2.职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。
试设计一职工信息管理系统,使之能提供以下功能:3.1、职工信息录入功能(职工信息用文件保存)--输入4.2、职工信息浏览功能--输出5.3、职工信息查询功能--算法6.查询方式:按学历查询、按职工号查询、条件组合查询7.职工信息删除、修改功能(可选项)8.图书信息管理系统设计9.图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。
10.试设计一图书信息管理系统,使之能提供以下功能:11.1、图书信息录入功能(图书信息用文件保存)--输入12.2、图书信息浏览功能--输出13.3、图书信息查询功能--算法14.查询方式:按书名查询、按作者名查询、条件组合查询15.图书信息的删除与修改(可选项)16.图书管理系统设计17.图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等18.功能描述:19.1、新进图书基本信息的输入。
20.2、图书基本信息的查询。
21.3、对撤消图书信息的删除。
22.4、为借书人办理注册。
23.5、办理借书手续。
24.6、办理还书手续25.要求:使用文件方式存储数据。
26.实验设备管理系统设计27.实验设备信息包括:设备编号,设备种类(如:微机、打印机、扫描仪等等),设备名称,设备价格,设备购入日期,是否报废,报废日期等。
28.主要功能:29.1、能够完成对设备的录入和修改30.2、对设备进行分类统计31.3、设备的破损耗费和遗损处理32.4、设备的查询33.要求:使用文件方式存储数据。
34.学生信息管理系统设计35.学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:36.1、系统以菜单方式工作37.2、学生信息录入功能(学生信息用文件保存)--输入38.3、学生信息浏览功能--输出39.4、学生信息查询功能--按学号查询、按姓名查询、40.5、学生信息的删除与修改(可选项)41.要求:使用文件方式存储数据。
c语言课程设计参考题目
以下是一些可以作为C语言课程设计参考的题目:
1. 编写一个简单的C程序,实现一个计算器的功能,包括按键输入、按位运算、结果输出等。
2. 设计一个C语言的数据结构,例如链表、树、图等。
3. 实现一个简单的程序,用于检测一个字符串是否包含某个特
定的字符集。
4. 设计一个C程序,实现一个文件管理系统,包括文件读取、修改、删除、创建等操作。
5. 编写一个C程序,模拟一个简单的计算机操作系统,例如进程
管理、内存管理等。
6. 设计一个C程序,用于处理一个字符串,包括查找特定字符、
替换特定字符、翻译文本等。
7. 实现一个简单的编译器,用于编译C程序。
8. 设计一个C程序,用于实现一个网络应用程序,包括用户登录、数据发送、数据接收等。
9. 编写一个C程序,用于实现一个简单的图形用户界面,例如窗口、菜单、按钮等。
10. 设计一个C程序,用于处理一个音频播放器,包括音频读取、播放、暂停、中断等。
这些题目都是相对来说比较难的,但也都是C语言编程中比较经
典的应用场景。
通过这些题目的训练,可以帮助学生更好地掌握C语
言的编程思想和技巧。
VB课程设计报告——文本编辑器学院名称:学生姓名:专业名称:班级:一、课程设计题目用Visual Basic程序设计语言编写一个简易的文本编辑器要求:有最基本的文本编辑功能,包括复制、剪切、粘贴、字体设置、背景颜色设置、字体颜色设置;同时拥有文本管理功能,包括打开文件、保存文件;以及完整的系统运行退出等功能,所有的操作可选择设定的快捷键。
二、课程设计目的虽然本学期的Visual Basic课程是自学的,相对于课堂学习有些不足,但通过平时的上机实验,初步掌握了VB程序设计的各种方法,学会了编写最基本的VB程序;对于完整的VB程序设计来讲是很不足的,平时掌握的只是单独的窗体(Form)程序编写,以及各种简单控件的使用,没有做到很好连贯性,所以有必要做一次完整的VB程序设计,结合所学的基本知识,使用多个窗体自成一套系统,加上各种控件的综合运用,初步设计一个合格的VB 应用程序;这样在巩固VB所学的同时,更好地学会程序设计的一些思想和方法,对于以后的编程学习或是工作有重要的实践意义。
三、课程设计说明题目为文本编辑器,即是最基本的文本编辑程序,首先必须做好文本编辑器本身的功能,然后对其完善,做成一个完整的小程序功能设计说明:功能是这个文本编辑器的核心内容,也就是程序的作用,它是用来做什么的;本程序就是用来编写文本的,编写过程中要利用到窗体(Form)一个,控件包括:RichTextBox1(超文本框)、CommonDialog(通用对话框),以及InputBox(消息框)、菜单编辑器等,。
要做的工作就是编写代码把这些控件和窗体等结合为一体,使得程序能够成为一体,顺畅运行。
本次设计在按照题目要求的前提下,为了完整地展示一个应用程序,在最初就设计为最基本的文本的编辑器,所以取名为“易记本”,就是简易记事本的简称,然后加入图标,在程序完成之后还进行了大包操作,得到应用程序的安装文件,最后安装在电脑上运行使用。
四.源代码Private Sub Command1_Click()Dim i As IntegerIf Text2.Text <> "123456" Theni = MsgBox("密码错误", 5 + vbExclamation, "警告")If i <> 6 ThenEndElseText2.Text = ""Text2.SetFocusEnd IfEnd IfForm1.HideForm2.ShowEnd SubPrivate Sub Form_Load()Text1.Text = ""Text1.MaxLength = 6Text2.Text = ""Text2.MaxLength = 6Text2.PasswordChar = "*"End SubPrivate Sub Text1_LostFocus()If Not IsNumeric(Text1.Text) Then MsgBox "帐号必须为数字", , "警告" Text1.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command1_Click()Form2.HideForm3.ShowEnd SubPrivate Sub Command2_Click()Form2.HideForm4.ShowEnd SubPrivate Sub Command3_Click()Form2.HideForm5.ShowEnd SubPrivate Sub Color_Click() CommonDialog1.Action = 3Text1.ForeColor = CommonDialog1.Color End SubPrivate Sub Command1_Click()Form3.HideForm2.ShowEnd SubPrivate Sub Copy_Click()Dim st As Stringst = Text1.SelTextEnd SubPrivate Sub Cut_Click()Dim st As Stringst = Text1.SelTextText1.SelText = ""End SubPrivate Sub Exit_Click()EndEnd SubPrivate Sub Font_Click()CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects CommonDialog1.Action = 4Text1.FontName = CommonDialog1.FileNameText1.FontSize = CommonDialog1.FontSizeText1.FontBold = CommonDialog1.FontBoldText1.FontItalic = CommonDialog1.FontItalicText1.FontStrikethru = CommonDialog1.FontStrikethru Text1.FontUnderline = CommonDialog1.FontUnderline Text1.ForeColor = CommonDialog1.ColorEnd SubSub New_Click()Text1.Text = ""Me.Caption = FileEnd SubSub Open_Click()CommonDialog1.Action = 1Text1.Text = ""Open CommonDialog1.FileName For Input As #1Do While Not EOF(1)Line Input #1, inputdataText1.Text = Text1.Text + inputdata + vbCrLfLoopClose #1End SubPrivate Sub Paste_Click()Text1.SelText = stEnd SubPrivate Sub Print_Click()CommonDialog1.Action = 5For i = 1 To CommonDialog1.CopiesPrinter.Print Text1.TextNext iPrinter.EndDocEnd SubPrivate Sub SaveAs_Click()CommonDialog1.FileName = "vb课设用.txt" CommonDialog1.DefaultExt = "txt"CommonDialog1.Action = 2Open CommonDialog1.FileName For Output As #1 Print #1, Text1.TextEnd SubDim arr As Long, sum As Long, a As IntegerPrivate Sub Command1_Click()a = HScroll1.ValueText1.Text = plus(a)Call isprime(a)End SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub HScroll1_Change()Label2.Caption = HScroll1.ValueEnd SubSub isprime(max As Integer)Dim x As Integer, i As Integer, j As IntegerFor i = 2 To maxx = 0For j = 2 To i - 1If i Mod j = 0 Then x = 1Next jIf x = 0 Then Label2.Caption = Label2.Caption & i & " " Next iEnd SubFunction plus(a As Integer) As LongFor i = 1 To asum = sum + iNext iplus = sumEnd FunctionDim x1 As IntegerDim y1 As IntegerDim x2 As IntegerDim y2 As IntegerDim flag As BooleanPrivate Sub Command1_Click()On Error Resume NextCommonDialog1.CancelError = True CommonDialog1.DialogTitle = "颜色" CommonDialog1.ShowColorIf Err <> 32755 Then Picture1.ForeColor = CommonDialog1.Color End IfEnd SubPrivate Sub Command2_Click()Picture1.ClsEnd SubPrivate Sub Command3_Click()Form5.HideForm6.ShowEnd SubPrivate Sub Option1_Click()Picture1.DrawWidth = 1End SubPrivate Sub Option2_Click()Picture1.DrawWidth = 2End SubPrivate Sub Option3_Click()Picture1.DrawWidth = 4End SubPrivate Sub Option4_Click()Picture1.DrawWidth = 8End SubPrivate Sub Form_Load()Picture1.Scale (0, 0)-(400, 400)flag = FalseEnd SubPrivate Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) flag = Truex1 = Xy1 = YEnd SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If flag = False ThenExit SubEnd IfIf flag = True Thenx2 = Xy2 = YPicture1.Line (x1, y1)-(x2, y2)x1 = x2y1 = y2End IfEnd SubPrivate Sub Picture1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) flag = FalseEnd SubDim ctP As Single, ctDu() As Single, ctDuS As LongPrivate Sub Command1_Click()Picture1.AutoRedraw = True: ctP = 3.1415926Timer1.Interval = 20: Timer1.Enabled = Not Timer1.EnabledEnd SubPrivate Sub Command2_Click()Form7.HideForm6.ShowEnd SubPrivate Sub Form_Load()Me.Caption = "旋转的椭圆": Command1.Caption = "转/停"Text1.Text = "9 个": Timer1.Enabled = FalseEnd SubPrivate Sub Text1_Change()ctDuS = Val(Text1.Text)If ctDuS > 200 Then Text1.Text = "200"If ctDuS < 1 Then ctDuS = 1ReDim ctDu(0 To ctDuS)End SubPrivate Sub Timer1_Timer()Dim I As LongPicture1.DrawWidth = 3Picture1.ClsFor I = 0 To ctDuSctDu(I) = ctDu(I) + ctP * 0.01 * I / 9If ctDu(I) > ctP * 2 Then ctDu(I) = ctDu(I) - ctP * 2Show1 ctDu(I), &HFFFFFF / (ctDuS + 1) * I * 0.6NextDim x As Single, y As SingleStatic J As SinglePicture1.DrawWidth = 15x0 = Picture1.ScaleWidth * 0.5: y0 = Picture1.ScaleHeight * 0.5 Picture1.PSet (x0, y0), 255x = 1200: y = 0: J = J - 0.05If J < -ctP * 2 Then J = J + ctP * 2Zhuan J, x, yPicture1.PSet (x0 + x, y0 + y), RGB(0, 0, 255)End SubPrivate Sub Show1(ToJ As Single, Se As Long)Dim I As Single, x As Single, y As Single, x0 As Single, y0 As Single Dim a As Single, b As Single, x1 As Single, y1 As SingleIf Picture1.ScaleWidth < Picture1.ScaleHeight Thena = Picture1.ScaleWidth * 0.45Elsea = Picture1.ScaleHeight * 0.45End Ifb = a * 0.25x0 = Picture1.ScaleWidth * 0.5: y0 = Picture1.ScaleHeight * 0.5x = -a: y = 0: Zhuan ToJ, x, yx1 = a: y1 = 0: Zhuan ToJ, x1, y1Picture1.Line (x0 + x, y0 + y)-(x0 + x1, y0 + y1), Sex = 0: y = -b: Zhuan ToJ, x, yx1 = 0: y1 = b: Zhuan ToJ, x1, y1Picture1.Line (x0 + x, y0 + y)-(x0 + x1, y0 + y1), SeFor I = 0 To ctP * 2 Step 0.1x = a * Sin(I): y = b * Cos(I)Zhuan ToJ, x, yPicture1.Line -(x0 + x, y0 + y), SeNextx = a * Sin(I): y = b * Cos(I)Zhuan ToJ, x, yPicture1.Line -(x0 + x, y0 + y), SeEnd SubPrivate Sub Zhuan(ToJ As Single, x As Single, y As Single) Dim S As Single, J As SingleS = Sqr(x ^ 2 + y ^ 2)If S = 0 Then J = 0 Else J = y / SIf Abs(J) >= 1 ThenIf J > 0 Then J = ctP * 0.5 Else J = -ctP * 0.5ElseJ = Atn(J / Sqr(-J * J + 1))End IfIf x < 0 Then J = -ctP - Jx = S * Cos(J + ToJ): y = S * Sin(J + ToJ) End Sub Private Sub Command1_Click()EndEnd Sub五、运行结果六.心得体会通过本次课程设计,使我对VB的认识更加深入了一层,VB主要由两部分组成,一个是Visual 可视化界面设计,另一个是Basic程序设计。
XXXX大学计算机科学与技术学院课程设计报告2012 — 2013学年第一学期课程名称C/C++高级语言程序设计课程设计设计题目小游戏和图形处理汉诺塔问题学生姓名XXX学号XXXXXXX专业班级XXXXXXXXXXX指导教师XX2012 年X 月XX 日目录一、课程设计问题描述 (1)1、课程设计题目 (1)2、设计任务要求 (1)二、总体设计 (1)1、设计思路 (1)2、汉诺塔求解流程图 (2)三、详细设计 (2)1、汉诺塔问题描述 (2)2、算法分析 (3)3、实现递归的条件 (4)4、用C语言实现 (4)四、程序运行结果测试与分析 (4)1、打开Microsoft Visual C++ 6.0操作平台输入以下的源代码 (4)2、编译源代码 (5)3、组建 (5)4、执行 (5)5、运行结果 (6)6、按任意键结束程序 (7)五、结论与心得 (7)六、参考文献 (8)七、附录:程序源代码 (8)一、课程设计问题描述1、课程设计题目汉诺塔问题2、设计任务要求输入盘子数(2个以上有效),移动速度,开始演示汉诺塔移动的步骤,要求:盘子A,B,C柱需要自己绘制,初始时盘子在A柱上通过B柱最终移动到C 柱上,显示出盘子在几个柱之间的移动过程。
二、总体设计1、设计思路对于一个类似的这样的问题,任何一个人都不可能直接写出移动盘子的每一个具体步骤。
可以利用这样的统筹管理的办法求解:我们假设把该任务交给一个僧人,为了方便叙述,将他编号为64。
僧人自然会这样想:假如有另外一个僧人能有办法将63个盘子从一个座移到另一个座,那么问题就解决了,此时僧人A B C64只需这样做:(1).命令僧人63将63个盘子从A座移到C座(2).自己将最底下的最大的一个盘子从A座移到C座(3).再命令僧人63将63个盘子从B座移到C座为了解决将63个盘子从A座移到B座的问题,僧人63又想:如果能再有一个僧人62能将62个盘子移动到另一座,我就能将63个盘子从A座移动到B座。
c语言课程设计参考设计题目一、教学目标本课程旨在让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编写简单C程序的能力,使学生了解编程思想,培养学生分析问题和解决问题的能力。
1.理解C语言的基本语法和规则。
2.掌握基本数据类型、运算符和表达式。
3.学会使用控制结构进行程序流程控制。
4.理解函数的定义和调用。
5.熟悉数组、字符串和指针的概念及应用。
6.能够使用C语言编写简单的程序。
7.能够阅读并理解简单的C语言程序。
8.能够运用C语言解决实际问题。
情感态度价值观目标:1.培养学生对编程的兴趣和热情。
2.培养学生勇于探索、积极思考的精神。
3.培养学生团队协作和互相学习的良好习惯。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体安排如下:1.第一章:C语言概述1.1 C语言的发展历史1.2 C语言的特点1.3 C语言的编译过程2.第二章:基本数据类型和运算符2.1 数据类型2.2 常量和变量2.3 运算符和表达式3.第三章:程序流程控制3.1 顺序结构3.2 选择结构3.3 循环结构4.第四章:函数4.1 函数的定义和声明4.2 函数的参数和返回值4.3 函数的调用5.第五章:数组、字符串和指针5.2 字符串6.第六章:编程实践6.1 简单程序设计6.2 综合程序设计三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。
在教学过程中,注重理论与实践相结合,通过实例分析和编程实践,使学生更好地理解和掌握C语言的知识。
同时,鼓励学生积极参与讨论,培养学生的团队协作和沟通能力。
四、教学资源1.教材:《C语言程序设计》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:教学PPT、视频教程4.实验设备:计算机、编程环境5.网络资源:在线编程平台、论坛、博客等五、教学评估本课程的评估方式包括平时表现、作业、考试等。
c语言课程设计任务题库一、教学目标本章节的教学目标旨在让学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等知识,培养学生运用C语言进行程序设计的能力。
具体包括:1.知识目标:(1)理解C语言的基本语法和规则;(2)掌握数据类型、运算符和表达式;(3)熟悉控制结构,如if、for、while等;(4)了解函数的定义和调用。
2.技能目标:(1)能够编写简单的C语言程序;(2)学会使用调试工具进行程序调试;(3)具备一定的代码阅读和分析能力。
3.情感态度价值观目标:(1)培养学生的编程兴趣,提高自主学习能力;(2)培养学生团队合作意识,学会与他人交流和分享;(3)培养学生具有良好的编程习惯,提高代码质量。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等。
具体安排如下:1.C语言的基本语法和规则;2.数据类型、运算符和表达式;3.控制结构,如if、for、while等;4.函数的定义和调用。
教学过程中,将结合具体案例进行讲解,让学生通过实践掌握相关知识。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
具体如下:1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构和函数等知识,使学生掌握相关概念和原理;2.案例分析法:通过分析典型案例,让学生学会运用C语言解决实际问题;3.实验法:让学生亲自动手编写程序,调试和分析代码,提高实际编程能力。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备等。
具体如下:1.教材:选用权威、实用的C语言教材,如《C程序设计语言》等;2.参考书:提供相关领域的经典著作,如《C专家编程》等,供学生拓展阅读;3.多媒体资料:制作PPT、教学视频等,辅助学生理解知识点;4.实验设备:提供计算机、编程环境等,让学生进行实际操作。
五、教学评估本章节的教学评估主要包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
plc课程设计题目参考一、教学目标本章节的教学目标是使学生掌握PLC(可编程逻辑控制器)的基本原理和应用,培养学生具备PLC编程和系统调试的能力。
具体目标如下:1.知识目标:学生需要了解PLC的基本组成、工作原理、编程方法和应用领域。
2.技能目标:学生能够熟练使用PLC编程软件进行程序设计,并能对简单的PLC系统进行调试和维护。
3.情感态度价值观目标:培养学生对PLC技术的兴趣,使其认识到PLC技术在现代工业中的重要地位,提高学生的创新意识和团队合作精神。
二、教学内容本章节的教学内容主要包括PLC的基本原理、编程方法和应用案例。
具体安排如下:1.PLC的基本原理:介绍PLC的定义、组成、工作原理和分类。
2.PLC编程方法:讲解PLC编程的基本规则、编程语言和常见编程技巧。
3.PLC应用案例:分析PLC在工业自动化、机械控制和环境保护等领域的实际应用。
三、教学方法为了提高教学效果,本章节将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解PLC的基本原理、编程方法和应用案例。
2.讨论法:学生就PLC技术在实际工程中的应用进行讨论,提高学生的思考和分析能力。
3.案例分析法:分析典型的PLC应用案例,使学生更好地理解PLC技术的实际应用。
4.实验法:安排实验室实践环节,让学生亲自动手进行PLC编程和系统调试,提高学生的实际操作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的PLC教材,为学生提供系统的理论知识。
2.参考书:提供相关的PLC技术参考书籍,丰富学生的知识体系。
3.多媒体资料:制作精美的PPT课件,生动展示PLC的工作原理和应用案例。
4.实验设备:准备充足的PLC实验设备,确保每个学生都能动手实践。
五、教学评估本章节的教学评估将采用多元化的评估方式,以全面、客观地评价学生的学习成果。
具体评估方式如下:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
《C语言程序设计课设》课程设计指导书一、课程设计的目的(1)加深对讲授内容的理解,尤其是一些语法规则。
(2)熟悉C语言程序设计的结构化编程的思想,掌握数据的基本类型、自定义类型、函数、文件和指针等知识,能运用这些知识进行综合编程,熟练应用。
(3)能够综合运用所学知识,编程解决实际问题。
(4)培养团队分工合作的意识,最终使学生提高编程技能和解决实际问题的能力。
二、课程设计基本要求2.1.组织管理1.由院、系指派经验丰富的专业教师担任指导教师。
2.课程设计实行课程负责人与指导教师共同负责制。
3.课程负责人主要进行课设的命题、指导教师的考核、技术把关和全面管理。
4.指导教师全面负责所承担班级的课程设计指导、管理和考核评定工作。
2.2设计要求1.自选题目、小组管理、团队合作、小组评测。
2.模块化程序设计。
3.锯齿型书写格式。
4.必须上机调试通过。
三、选题要求:每个题目限定1-2人,每人必须负责一部分功能,并独立完成,推举出一个组长,负责任务分工,汇总到班长处,然后交给指导教师。
四、设计报告格式及要求:1、题目2、设计目的3、总体设计(程序设计组成框图、流程图)4、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)5、运行结果及分析6、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施7、课程设计心得及体会8、源程序清单和执行结果:清单中应有足够的注释五、课程设计成绩评定5.1基本要求:(1)每个人必须有程序运行结果;(2)每个人必须交《C语言课程设计》报告5.2、成绩评定和打分标准由指导教师对学生在课程设计期间的表现,所完成的设计报告的质量、设计结果的验收和答辩情况进行综合考核。
具体评定标准如下:(1)上机考勤:注重平时上机考勤与遵守纪律情况20%(2)结果验收:学生能运行、讲述或调试自己的程序,回答教师提问,每个人必须有程序运行结果40%(3)小组自评成绩结果10%(4)设计报告:每个人必须交《C语言课程设计》报告和《C语言课程设计》日志30%以上四项缺一不可,否则不能到得相应学分依据上述考核内容,最后采用优(>90分)、良(80~89分)、中(70~79分)及格(60~69分)、不及格(<60分)五级记分制评定学生课程设计成绩。
C语言程序编码训练题目一、程序设计题目:简单的学生成绩管理程序程序设计功能及要求:(1)总人数定义为宏,数据使用文件存放;(2)输入学生姓名学号,及五门成绩,并计算每个学生五门功课的平均分,并按平均分排列名次,若平均分相同则名次并列;结果写入文件并按格式打印在屏幕上。
⑶统计全班每门课程的平均分,并计算各分数段(60以下,60~69,70~79,80~89,90以上)的学生人数;结果写入文件,并按格式在屏幕上打印;⑷在屏幕上打印出所有不及格学生的下列信息:学号,不及格的课程名,该不及格课程成绩;⑸在开始画面加入简单的菜单便于选择各种功能。
例:1学生条目输入2成绩统计3分数段统计4不及格学生筛选⑹文件格式要求1.原始数据文件格式(具体数据和项目自行编写)学号姓名英语C语言高等数学…………..1张三7689782李四….….….2.输出数据文件(由程序自动生成)1)学生综合成绩文件。
2)学号姓名英语C语言高等数学…………….平均成绩名次1张三768978…………..2李四….….….3)统计结果文件。
4)分数段英语C语言高等数学………………….<602…60~698…70~795…80~8910…⑺加入优等生统计功能,要求按优等生条件筛选出优等生的条目存入单独文件,并输出到屏幕。
优等生标准(满足之一即可):1平均成绩上80。
2平均成绩及格但未上80,有单科成绩上90。
3平均成绩未及格,有单科满分。
二、程序设计题目:简单的同学通讯录程序设计[问题描述]具有数据插入、修改、删除、显示、查询和统计功能的电话簿管理程序。
[程序设计功能及要求]⑴人数不定,数据使用文件存放。
⑵记录每位同学的学号、姓名、性别、工作单位、电话号码和E-mail地址建立单独的条目,存入数据文件。
⑶可对记录中的姓名和电话号码等进行修改。
⑷可增加或删除记录⑸可显示所有保存的记录⑹加入统计功能,可以统计男女同学或总人数。
⑺加入查询功能,通过姓名、学号或电话号码查询到同学的条目。
计算机程序设计(C语言)课程设计题目:显示彩色云彩学院:机电工程学院专业:机械工程及自动化班级: 070101学号:20072136姓名:王光泽指导教师:韩志明设计日期: 2008年6月4日一、选题背景:问题的提出:我们在编制各种flash动画设计时,经常会用到彩色云彩的背景,为此编制几个函数对于彩色云彩的演示,此程序即可做艺术欣赏又可做背景设计。
所以编制这个程序对动画设计有很大的积极意义。
二、设计思想:彩色云彩是一个简单的动画背景,没有过多的繁杂景象,思路简单,编程容易。
很容易被初学者接受。
在实现过程中,用到了while,for,if-slse-if,switch-case等语句。
三、主要解决问题的方法及技术关键用“Set_Mode”函数实现图形的初试化绘制。
并利用Set_Graphics_Mode ( 显示当前要画线颜色)和循环语句实现图形的颜色随坐标的改变而改变。
利用set_patten,plot,get_pixel函数实现具体坐标区域格式的不同和颜色的填充以及像素的高低四、流程图五、程序清单:#include <stdio.h>#include <dos.h>#include <math.h>long Addr[768];int Mode;Set_Mode (int mode){union REGS r;r.h.ah=0;r.h.al=mode;int86 (0x10,&r,&r);}Set_Graphics_Mode (unsigned x,unsigned y) {long i;if ((x<321)&&(y<201)) {Set_Mode (0x13);Mode=0x13;for (i=0;i<200;i++) Addr[i]=320*i; }else if ((x<641)&&(y<401)) {Set_Mode (0x5c);Mode=0x5c;for (i=0;i<400;i++) Addr[i]=640*i; }else if ((x<641)&&(y<481)) {Set_Mode (0x5d);Mode=0x5d;for (i=0;i<480;i++) Addr[i]=640*i; }else if ((x<641)&&(y<481)) {Set_Mode (0x5d);Mode=0x5d;for (i=0;i<480;i++) Addr[i]=640*i; }else if ((x<801)&&(y<601)) {Set_Mode (0x5e);Mode=0x5e;for (i=0;i<600;i++) Addr[i]=800*i; }else if ((x<1025)&&(y<769)) {Set_Mode (0x62);Mode=0x62;for (i=0;i<768;i++) Addr[i]=1024*i; }else {Set_Mode (3);printf ("Not support this mode .\n"); getch ();}}set_pattern (){int i;unsigned char pat[256][3];struct SREGS inreg;union REGS reg;pat[0][0]=0;pat[0][1]=0;pat[0][2]=0;for (i=1;i<=255;i++) {pat[i][0]=(unsigned char)((float)(abs(i-127)*63)/127.0+0.5); pat[i][1]=(unsigned char)((float)(abs(i-127)*63)/127.0+0.5); pat[i][2]=63;}reg.x.ax=0x1012;reg.x.bx=0;reg.x.cx=256;reg.x.dx=FP_OFF(pat);inreg.es=FP_SEG(pat);int86x (0x10,®,®,&inreg);}plot (int x,int y,unsigned char color){long offset;char Page;unsigned char far *address;switch (Mode) {case 0x13:offset=Addr[y]+x;address=(unsigned char far *)(0xa0000000L+offset);*address=color;break;case 0x5c:case 0x5d:case 0x5e:offset=Addr[y]+x;Page=(offset>>16);outportb (0x3c4,0xe);outportb (0x3c5,Page^0x02);offset=offset&65535;address=(unsigned char far *)(0xa0000000L+offset); *address=color;break;case 0x62:offset=Addr[y]+x;Page=y>>6;outportb (0x3c4,0xe);outportb (0x3c5,Page^0x02);offset=offset&65535;address=(unsigned char far *)(0xa0000000L+offset); *address=color;break;default:break;}}get_pixel (int x,int y){long offset;char Page;unsigned char far *address;unsigned char color;switch (Mode) {case 0x13:offset=Addr[y]+x;address=(unsigned char far *)(0xa0000000+offset); color=*address;break;case 0x5c:case 0x5d:case 0x5e:offset=Addr[y]+x;Page=(offset>>16);outportb (0x3c4,0xe);outportb (0x3c5,Page^0x02);offset=offset&65535;address=(unsigned char far *)(0xa0000000L+offset); color=*address;break;case 0x62:offset=Addr[y]+x;Page=y>>6;outportb (0x3c4,0xe);outportb (0x3c5,Page^0x02);offset=offset&65535;address=(unsigned char far *)(0xa0000000L+offset); color=*address;break;default:break;}return (color);}randint (unsigned int range){float sigma=423.1966;static double OldRand=0.4231967;double temp;temp=sigma*OldRand;OldRand=temp-(int)temp;return (int)(OldRand*(float)range);}void New_Col (int xa,int ya,int x,int y,int xb,int yb) {unsigned int color;color=abs(xa-xb)+abs(ya-yb);color=randint(color<<1)-color;color=color+(get_pixel(xa,ya)+get_pixel(xb,yb)+1)>>1; if (color<1) color=1;else if (color>255) color=255;if ((get_pixel(x,y)==0)) plot (x,y,color);}void Sub_Divide (int x1,int y1,int x2,int y2){int x,y;unsigned char color;if (!((x2-x1<2)&&(y2-y1<2))) {x=(x1+x2)>>1;y=(y1+y2)>>1;New_Col (x1,y1,x,y1,x2,y1);New_Col (x2,y1,x2,y,x2,y2);New_Col (x1,y2,x,y2,x2,y2);New_Col (x1,y1,x1,y,x1,y2);color=(get_pixel(x1,y1)+get_pixel(x2,y1)+get_pixel(x2,y2)+get_pixel (x1,y2)+2)>>2;plot (x,y,color);Sub_Divide (x1,y1,x,y);Sub_Divide (x,y1,x2,y);Sub_Divide (x,y,x2,y2);Sub_Divide (x1,y,x,y2);}}main (){int x,y;x=320;y=200;Set_Graphics_Mode (x,y);set_pattern ();plot (0,0,randint(254)+1);plot (x-1,0,randint(254)+1);plot (x-1,y-1,randint(254)+1);plot (0,y-1,randint(254)+1);Sub_Divide (0,0,x-1,y-1);getch();Set_Mode (0x03);}六、设计结果说明1、设计优点:颜色配置恰当,视觉效果好,桌面美观2、设计不足:该程序仅是最初步的设计,程序简单,颜色有待于进一步丰富。
封面作者:PanHongliang仅供个人学习说明:1题目来源是:(1)较重要C语言程序设计教科书中的例题或习题;(2)与计算机学科相关的后续课程,如数据结构、离散数学、组合数学、计算方法等课程教科书中的例题或习题中,不需要相关后续课程的专门知识就可以很好解答的题目;其它有影响计算机程序设计类书籍或文章中的例题;(3)各级各类计算机程序设计竞赛(例如ACM大赛)、程序员考试、求职面试的训练题和考试卷等.欢迎老师和同学们提供更好的题目.2题目内容涉及的知识点不超过大学一年级的知识水平,主要目标是训练学生将实际问题转化为计算机可以处理的形式并编写程序给出解答的能力.去掉了较复杂事务管理如图书管理、学生成绩管理之类的题目,这类事务管理方面题目希望在后续课程如C++面向对象程序设计、数据库应用及各专业的课程设计中进行.3 题目有多种完全不同的解答,给出的提示主要供指导教师参考.题目1:文件存取练习:要求实现如下功能:(1)定义函数Rand1000(), 随机生成1000个均不相同的正整数,并写入到文本文件“file1.dat”中,各数之间用空格来分隔.(2)编写一个函数input(int a[],int n),将上述数据读入到数组a中.(3)编写一个函数digitcount(int a[],int n,int b[10]), 统计数组a的每个元素保存的整数中,每位数字出现的次数,并分别保存在b[0]到b[9]中.(4)编写函数maxprime(int *p,int n), 找出其中最大的素数,如果不存在素数函数结果为0.(5)对于这些整数排序之后,分别输出相邻两数之差最大和之差最小的两个数,如果有多组满足条件要输出所有的.(6)定义函数myinput(int a[],int n),用fgetc函数从文件“file1.dat”上逐个读入字符,并将其转换成独立的正整数,并依次存入数组a中.提示:可查阅任何一本C语言程序设计教科书中关于文件部分,例如谭浩强,C程序设计(第三版),第13章.还需要熟悉随机数生成函数rand(),需要编写判断一个奇整数是否素数的程序等.部分可供参考程序如下:题目2:两个文件同时对照显示:程序从两个文件中读出文本行,并列显示在屏幕上.假定屏幕有80列,25行,则第0—34列显示第一个文件的内容,第40—74列显示第二个,第77-78行显示文本总的行序号.每屏显示20行,超过20行就显示在下一屏.程序应该能够以这种方式显示任意的两个文本文件,例如两个C程序源代码文件,两篇内容类似的文章形成的两个文本文件等.提示:先把两个文本文件读入,存入数组,再考虑显示的安排.题目3:实现一个C语言程序设计自助学习系统,要求实现的基本功能如下:1、测验(1)可以按固定的试卷数目,从题库中随机选取题目进行测试,如每次测试5道题或10道题.(2)每次只显示一道题,包括问题描述、备选答案;(3)根据学生答题结果,对比试卷答案,显示答题对错的信息;(4)答题全部结束后给出本次测试的成绩,按百分制评分.2、学习管理(1)通过题目浏览,自我测验,查看题解的过程来帮助学生学习.(2)需要为学生提供多种学习方式,至少应包括顺序选题学习和随机选题学习等方式.(3)如果是采用顺序选题方式学习,需要做到可以从中间某个位置开始学习,不是每次一定从第一题开始学习.3、题库管理(1)试卷库中保存全部试卷及其相关信息.(2)将要入库的试卷,按固定格式编辑整理好保存在ASCII文件中,通过计算机程序读取该文件,并将文件中的全部试卷添加到已有的试卷库中.(3)今后需要对于所有试卷分类进行管理,在库结构设计时,要考虑这些扩展功能的数据接口要求.(4)试卷库初始化,将试卷库内容全部清空,便于重新建立系统.提示:可以参考:余江,肖淑芬主编,C语言程序设计,天津科学技术出版社,2001年5月,273-313页.题目4:实现题目3中C语言程序设计自助学习系统得升级版,可考虑实现功能:一、测验1、系统自动组卷(1)试卷结构说明:以题库提供的试卷类别和各类试卷的数量为依据来实现.系统组卷前需要获得的信息是对于每类试卷要含有类别名称、试卷数、分数,所有类别的分数累加在一起要恰好是100分.(2)试卷保存:将上述组卷结果保存在二进制文件中,文件名由用户输入. (3)个性化组卷:输入学号后,系统根据试卷结构说明的规定自动组卷,做到每个学生试卷不同.2、错题本功能(1)答错的题目自动加入到错题本中;(2)可以对错题本中的题目逐题测验,不分题目类别;(3)可以制定分类测试.3、多科目测试二、学习管理1、分类别学习2、错题本内容学习3、多科目学习,选择科目后可以进行指定类别的分类别学习和错题本内容学习.三、题库管理1、入库试卷文件格式正确性检查.包括:试卷的描述的合法性检查,类别信息合法性检查,给出出错位置的信息.2、对于分类试卷存储方式的优化,例如:同类试卷连续存储的实现;3、目前完成的是单科目多类别的题库管理,要实现多科目多类别的题库管理.四、用户管理1、系统注册2、登录3、错题本等个性化信息管理4、屏幕背景颜色和字符颜色的设置5、学习位置的记载,要按科目记载,每个科目要按类别记载.提示:鼓励使用更多方法实现,例如使用数据库系统,VC++等.题目5:给出一个正整数n,一个存放1到n共n个正整数的数字金字塔构造如下:(1)1在最上方第0层;(2)如果x大于y并且x除以y的余数为0(即x>y && x%y = = 0),x要放在y下方一层(即若y在第i层,x应在i+1层);(3)每个数应尽可能放在更下方,即如果可以放在第i层,就不能放在i-1层;(4)相同层上的数从左向右从小到大排列.其实第i层是有i个素数因子的数的从小到大的排列.例如对n=6,符合这组规则的数字金字塔如下:12 3 54 6每个数按照它在塔中的位置从上到下从左到右从1开始编号,例如5,编号应该是4.要求你编写程序,输入一个正整数n,5<n<50, 再输入3个不大于n的正整数,然后程序输出所构造的数字金字塔,及所输入3个不大于n的正整数在数字金字塔中的编号.例如设输入了6,3,4,5,程序可以输出:12 3 54 6 //用数组形式表示数字金字塔.3,5,4 //分别是3,4,5在数字金字塔中的编号.程序编写完成后,要求给出你的程序对下列两组输入的结果:(1)10,7,8,9 (2)25,15,20,25提示:本题为2010年ACM大赛题目,鼓励使用更多方法实现.题目6:你一定很熟悉著名的Hanoi塔游戏,当理解了圆盘数目较多需要的时间太长之后,你可以放弃实际去移动圆盘,但你不应该放弃如下一个有点类似的游戏:设有n根柱子,每根柱子上有一个圆盘,圆盘上有一个正整数,不同圆盘上的数不同.初始时假定柱子按照其上圆盘上数的大小从左向右排列,移动规则是从左向右看,当前一根柱子最下圆盘上数与后一根柱子最上圆盘上数相加的和是一个完全平方数时,前一根柱子上所有圆盘移动到后一根柱子上方.要求你编写程序,输入柱子数目和圆盘上的整数,输出移动的过程和结果.例如,一组输入是:4,1,3,5,6,第一个数4表示有4根柱子,圆盘上的数依次是1,3,5,6.你的程序运行后,可以输出1->3->6, 5, c=2,表示移动是1到3,3到6,因为1+3=4, 3+6=9,而4和9是完全平方数,符合条件的移动只有这两次.移动结果是还有2根柱子上有圆盘,即c=2,有圆盘的一根柱子上圆盘3个,有数1->3->6,有圆盘另一根柱子上圆盘一个,有数5,它其实没有发生移动.程序编写完成后,要求给出你的程序对下列两组输入的结果:(1)9,1,2,3,4,5,6,7,8,9(2)10,1,3,5,7,9,11,13,15,17,19(本题为2010年ACM大赛题目.)提示:输入:9,1,2,3,4,5,6,7,8,9 输出:1->3->6, 2->7->9,4->5,8,c=4输入:10,1,3,5,7,9,11,13,15,17,19 输出:1->3->13, 5->11,7->9,15,17->19,c=5题目7:我们知道,在10进制数中有判断整除性的二个简单规则:一个正整数能够被3整除,当且仅当,它的各位数字之和能够被3整除;一个正整数能够被11整除,当且仅当,它的奇数位数字之和与偶数位数字之和的差能够被11整除;现在要问:对于b进制数,具有类似于10进制数的3和11的这种整除性判断的数是什么?具体地,请编写程序,输入进制的基数b,输出最小的可以如上判断整除性的数x和y.为确定,输入输出均采用10进制数.例如输入b为10,则自然要输出x为3,y为11;若输入b为8,则要输出x为7,y为3(例如8进制数25,按上述规则判断应能够被7和3整除,事实上,8进制数25是10进制数21,能够被7和3整除是显然的);若输入b为120,则要输出x为7,y为11(请自己验证这是对的).(本题为2011年ACM大赛题目.)提示:对于10进制数,10-1=9=3*3,10+1=11,10进制数n可以一般地表示为:n = a k10k + a k-110k-1 + ……+ a110 + a0保持n不改变数值将10换为10 –1和10+1,可以看出3和11可以如上判断整除性的理由.对于b进制数,n = a k b k + a k-1b k-1 + ……+ a1b + a0可以想到只需考虑b – 1和 b+1的最小因子.题目8:如果语文数学两门课程的成绩,甲同学分别是80分和90分,乙同学是90分和80分,丙同学是70和60分,这时比较甲同学和乙同学的成绩,只能说语文较差,数学较好,综合到一起就属于无法比较,但对丙同学可以比较,可以说甲和乙同学的成绩都比丙同学好.一般情况,设有一个三元向量的集合,若其中有向量P=(p1, p2, p3), Q=(q1, q2, q3), 规定P≦Q 当且仅当p1≦q1, p2≦q2, p3≦q3 .其中一个向量称为是一个极小元素,当且仅当它只≦它自己.例如如下三个三元向量组成了向量组(80,90,100),(90,80,70),(60,70,60),其中只有一个最小元素,是(60,70,60).请编写程序,输入n个三元向量,输出其中最小元素的数目.(本题为2011年ACM大赛题目.)提示:先对第一个坐标排序,再考虑第二个坐标,第三个坐标.题目9:在某城市有n座摩天大楼,问那二座之间的距离最小?设可以输入所有大楼的位置坐标,请编写程序输出距离最近的二座大楼及它们之间的距离.两点(x1, y1) 和 (x2, y2) 之间的距离d按照两种不同方式规定:(1)Euclid距离d =(2)Manhattan距离 d = | x1 –x2 | + | y1–y2 |.显然的解法是计算所有点对之间的距离再找出最小值,但本题只要求输出距离最近的二点及之间距离,所以应该给出不计算所有点对之间距离的更有效率的解法(本题为2011年ACM大赛题目).(可查阅:[沙特]M.H.Alsuwaiyel著,吴伟昶等译,算法设计技巧与分析,电子工业出版社,2004年8月,第121-124页.或者:[美]Michael T.Goodrich等著,霍红卫译,算法分析与设计,人民邮电出版社,2006年10月,第385-387页.)提示:找到两点距离d后,接下去可检查宽不超过d的长条.题目10:一条贪吃的蛇在一个n*m的网格中游走,它只能从一个方格走向另一个相邻的方格,这里相邻的意思是两个方格有公共边.每个方格可以看作是一个房间,其中一些是空的,一些存放有苹果.贪吃的蛇根本不进入空的房间,而进入有苹果的房间后就可以带走所有苹果使房间成为空的.蛇从一个指定的房间出发,最终回到它的家,把一路带来的苹果存储到家中,当然,它希望带来的苹果最多.请编写程序,输入有整数n和m,及n*m的一个矩阵,矩阵元素数值中有一个是-1,表示蛇的出发位置,有一个是-2,表示蛇的家的位置,其余数值是非负整数,0表示房间为空,非零整数表示苹果的数目.输出蛇选择的游走路径和获得的最多的苹果数目.例如输入4*4矩阵:7 0 4 184 0 1 115 7 11 -10 12 -2 0则应输出 (2, 3), (1, 3), (0, 3), (0, 2), (1, 2), (2, 2), (2, 1), (3, 1), (3, 2), 带回苹果数为1+18+4+1+11+7+12 = 54.(本题为2011年ACM大赛题目).(可查阅:吕国英,任瑞征等编著,算法设计与分析(第2版),清华大学出版社,2009年1月,第200-202页.提示:这是一个利用回溯算法的迷宫搜索类型问题,可参考类似问题的已有解法.题目11:化学家研究原子团的行为时,认为每个原子具有整数能量,这个整数可以是正数、零和负数,绝对值不超过100.可以认为原子排列成为一行,一行中任意多个连续的原子可以形成原子团,原子团的能量是其中各原子能量的代数和.问题是怎样编写程序,求出具有最大能量的原子团和能量数值.要求程序输入一列原子的能量数值,以-1结束,输出找到的能量最大的原子团及能量数值.例如输入8,0,6,4,-2,-1,应输出原子团8,0,6,4,及能量数值18.(本题为2010年ACM大赛题目)(可查阅:吕国英,任瑞征等编著,算法设计与分析,清华大学出版社,2009年1月,第265-270页).提示:这是最大子段和问题.题目12:一刀可以把蛋糕分为两个部分,现在给出要分为两部分的面积的比值,希望求出切口的弦的长度.这里当然要假定蛋糕是一个圆,并设其半径为 1.例如,输入两部分比值为1:1,切口是直径,长为2;输入1:2,应输出1.9285;输入10:1,应输出1.4145.(本题为2010年ACM大赛题目)提示:计算半弦长,可以利用公式a2=2rh-h2,计算弓形面积,用公式s=0.5*xita*r*r-a*sqrt(r*r-a*a)。
程序设计综合课程设计题目1.运动会分数统计任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)功能要求:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5)数据存入文件并能随时查询6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有合理的提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;2.飞机订票系统任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;3.文章编辑功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
1 一元稀疏多项式的运算问题描述:设有两个带头指针的单链表表示两个一元稀疏多项式A、B,实现两个一元稀疏多项式的处理。
实现要求:⑴输入并建立多项式;⑵输出多项式,输出形式为整数序列:n,c1,e1,c2,e2……c n,e n,其中n是多项式的项数,c i,e i分别为第i项的系数和指数。
序列按指数降序排列;⑶多项式A和B相加,建立多项式A+B,输出相加的多项式;⑷多项式A和B相减,建立多项式A-B,输出相减的多项式;⑸多项式A和B相乘,建立多项式A×B,输出相乘的多项式;⑹设计一个菜单,至少具有上述操作要求的基本功能。
测试数据:(1) (2x+5x8-3.1x11)+(7-5x8+11x9)(2) (6x-3-x+4.4x2-1.2x9)-(-6x-3+5.4x2+7.8x15)(3)(x+x2+x3)+0(4)(x+x3)-(-x-x-3)2 成绩排序假设某年级有4个班,每班有45名同学。
本学期有5门课程考试,每门课程成绩是百分制。
假定每个同学的成绩记录包含:学号、姓名各门课程的成绩共7项,其中学号是一个10位的字符串,每个学生都有唯一的学号,并且这4个班的成绩分别放在4个数组中,完成以下操作要求:⑴编写一个成绩生成函数,使用随机数方法,利用随机函数生成学生的各门课程的成绩(每门课程的成绩都是0∽100之间的整数),通过调用该函数生成全部学生的成绩;⑵编写一个平均成绩计算函数,计算每个同学的平均成绩并保存在成绩数组中;⑶用冒泡排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑷ 用选择排序法对4个班的成绩按每个同学的平均成绩的以非递增方式进行班内排序;⑸ 对已按平均成绩排好序的4个班的同学的构造一个所有按平均成绩的以非递增方式排列的新的单链表;⑹ 设计一个菜单,至少具有上述操作要求的基本功能。
3 栈及其操作问题描述:栈(Stack):是限制在表的一端进行插入和删除操作的线性表。
c语言课课程设计题目一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识,培养学生编写简单C程序的能力,提高学生运用C语言解决实际问题的能力。
1.掌握C语言的基本语法和规则。
2.理解数据类型、变量和常量的概念及使用。
3.熟悉各种运算符的用法及其优先级。
4.掌握顺序结构、分支结构、循环结构等控制结构的使用。
5.了解函数的定义、声明和调用。
6.能够使用C语言编写简单的程序,进行基本的输入输出操作。
7.能够利用C语言进行基本的数学计算和逻辑判断。
8.能够运用C语言进行数据的排序和查找等操作。
情感态度价值观目标:1.培养学生对计算机编程的兴趣,激发学生主动学习和探究的热情。
2.培养学生解决问题的能力和创新精神,提高学生自信心和自我成就感。
3.培养学生团队协作意识,增强学生沟通能力和合作精神。
二、教学内容教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。
具体安排如下:1.C语言概述:介绍C语言的历史、特点和应用范围。
2.数据类型和变量:讲解整型、浮点型、字符型等数据类型的使用,以及变量的声明和初始化。
3.运算符和表达式:介绍算术运算符、关系运算符、逻辑运算符等,以及表达式的组成和计算。
4.控制结构:讲解顺序结构、分支结构(if-else)、循环结构(for、while)的使用和嵌套。
5.函数:介绍函数的定义、声明和调用,包括主函数、递归函数等。
6.输入输出操作:讲解printf()和scanf()函数的使用,以及文件的读写操作。
7.编程实践:通过实例讲解和练习,使学生掌握C语言编程的基本技巧和方法。
三、教学方法本课程采用多种教学方法相结合的方式,以提高学生的学习兴趣和主动性。
具体方法如下:1.讲授法:教师讲解C语言的基本概念、语法和编程技巧,引导学生掌握知识要点。
2.案例分析法:通过分析典型实例,使学生了解C语言在实际问题中的应用,提高学生的编程能力。
课程设计题目题目七:销售管理系统问题描述:设计一个日用商品销售管理系统,以小型超市商品销售为管理对象来设计系统。
实现功能:根据销售信息(包含如下内容:商品编号、销售数量、销售单价、销售日期、销售人员;保存为磁盘文件),实现对商品日常信息的管理。
1、日用商品销售信息输入运用人机对话方式实现商品的商品编号、销售数量、销售单价、销售日期、销售人员的信息录入,以文件的形式保存其信息2、商品销售信息查询:a) 根据商品编号查询所售商品明细(数量,单价,金额)b) 根据销售日期查询当天所售商品明细(数量,单价,金额)c) 根据销售人员查询某营业员所售商品明细(数量,单价,金额)3、商品销售信息统计a) 日销售额统计(按商品编号,销售人员,全部商品)及总销售额统计b) 月销售额(按商品编号,销售人员,全部商品)及总销售额统计c) 月度销售排名(按商品编号,销售人员)知识点:结构体类型变量的应用,文件操作,数据的查询,函数的应用说明:以十组商品三个营业员构成二十组商品数据题目八:职工工作量统计系统问题描述:设计一个以班组职工日常工作量统计为对象的管理系统。
实现功能:根据组内职工日常工作信息(包含如下内容:职工编号,职工姓名,工作内容,完成数量,完成质量,完成日期;保存为磁盘文件),实现对职工日常工作量信息的管理。
1、职工日常工作量信息输入运用对话方式分别输入职工编号,职工姓名,完成数量,完成质量(优、良、中),完成日期,对就多个完成质量的信息录入,以文件的形式保存其信息2、职工日常工作量信息统计与输出 a) 以完成工作数量及完成质量进行工作量当日统计排序。
名次相同,以完成数量多者优先,再次相同,以职工编号小者优先。
b) 以一个星期为一时间段按上述规则进行排序。
知识点:结构体类型变量的应用,文件操作,数据的查询与排序。
说明:以十人构成一个班组,每天大家都做同一工作来构成数据题目九:通讯录管理系统建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。
功能要求(1) 通讯录的每一条信息包括姓名、单位、固定电话、移动手机、分类(如同事、朋友、同学、家人等)、EMAIL、QQ等。
(2) 输入功能:可以一次完成若干条信息的输入。
(3) 显示功能:完成全部通讯录信息的显示(一屏最多显示10条,超过十条应能够自动分屏显示)(4) 查找功能:可以按姓名等多种方式查找通讯信息(5) 增加、删除、修改功能:完成通讯录信息的多种更新题目十:图书管理系统主要包括管理图书的库存信息、每一本书的借阅信息以及每一个人的借书信息。
每一种图书的库存信息包括编号、书名、作者、出版社、出版日期、金额、类别、总入库数量、当前库存量、已借出本数等。
每一本被借阅的书都包括如下信息:编号、书名、金额、借书证号、借书日期、到期日期、罚款金额等。
每一个人的借书信息包括借书证号、姓名、班级、学号等。
系统功能包括以下方面:A、借阅资料管理要求把书籍、期刊、报刊分类管理,这样的话操作会更加灵活和方便,可以随时对其相关资料进行添加、删除、修改、查询等操作。
B、借阅管理(1) 借出操作(2) 还书操作(3) 续借处理提示:以上处理需要互相配合以及赔、罚款金额的编辑等操作完成图书借还业务的各种登记。
例如:读者还书时不仅更新图书的库存信息,还应该自动计算该书应罚款金额。
并显示该读者所有至当日内到期未还书信息。
C、读者管理读者等级:对借阅读者进行分类处理,例如可分为教师和学生两类。
并定义每类读者的可借书数量和相关的借阅时间等信息。
读者管理:对读者信息可以录入,并且可对读者进行挂失或注销、查询等服务的作业。
D、统计分析随时可以进行统计分析,以便及时了解当前的借阅情况和相关的资料状态,统计分析包括借阅排行榜、资料状态统计和借阅统计、显示所有至当日内到期未还书信息等功能分析。
E 系统参数设置:可以设置相关的罚款金额,最多借阅天数等系统服务器参数。
题目十一:实验设备管理系统问题描述:实验设备管理系统,实验设备信息包括:设备编号、设备种类(微机、打印机、扫描仪等等)、设备名称、设备价格、设备购入日期、是否报废、报废日期等。
要求整个系统设计为实验设备信息输入模块,实验设备信息添加模块,实验设备信息修改模块,实验设备信息分类统计模块和实验设备查询输入模块。
实现功能:1、能够完成对设备的录入和修改2、对设备进行分类3、设备的查询4、设备的破损耗费和遗损处理知识点:结构体、文件、指针、函数、循环控制说明:1、以文件的方式对数据进行存储、系统以菜单的方式工作2、源程序中要有相应的注释3、学生可以增加新功能模块题目十二:学生籍贯信息记录簿问题描述:编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。
实现功能:1、创建信息链表并以磁盘文件保存2、读取磁盘文件并显示输出所有学生的籍贯信息3、按学号或姓名查询其籍贯4、按籍贯查询并输出该籍贯的所有学生5、能添加、删除和修改学生的籍贯信息6、显示输出湖北籍和非湖北籍学生的信息并可分别存盘知识点:文件打开,保存,结构体,搜索,链表说明:其中1-5功能是必须要实现的功能。
题目十三:校园导游咨询系统问题描述:将上海应用技术大学校区、景点、教学楼、办公楼、宿舍楼的具体地址及所起的功能制作成数据文件,通过查询等手段向咨询人介绍咨询结果。
实现功能:1、界面有如下菜单项● 奉贤校区● 徐汇校区● 查询2、进入菜单选项后,有相应的校区简介(如有行政楼、有什么单位等等、同时还要提供查询功能。
知识点:数组或链表,字符串操作,文件操作等。
题目十四:学生信息管理系统(1)问题描述学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
试设计一学生信息管理系统,使之能提供以下功能:●系统以菜单方式工作●学生信息录入功能(学生信息用文件保存)---输入●学生信息浏览功能——输出●查询、排序功能——算法1、按学号查询2、按姓名查询●学生信息的删除与修改(可选项)(2)功能要求●界面简单明了;●有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,要求重新输入;●最好用链表的方式实现。
(3)算法分析首先,一个学生包括这么多的属性,应该考虑定义一个结构,其次,我们应该考虑数据的存储形式:是定义一个数组来存储,还是定义一个链表呢?在这里假如我们以数组的方式来存储,当然可以,但是我们知道,假如我们定义一个数组的话,我们首先必须知道学生人数大概是多少,以便我们确定数组的大小,但是题目中没有给出,而且题目要求中有大量的删除、插入操作,所以用链表的方式比较方便。
对于菜单的实现,其实也比较简单,首先我们用printf语句把程序的功能列出来,然后等待用户输入而执行不同的函数,执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
题目十五:学生综合测评系统每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:学生信息可先输入到数组中,排序后可写到文件中。
(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
(4) 浏览学生信息:提示:打开文件,显示该文件的学生信息。
B、学生数据处理:(1)按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。
(2) 学生测评数据输入并计算综合测评总分及名次。
提示:综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。
(3) 学生数据管理提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4) 学生数据查询:提示:输入学号或其他信息,即读出所有数据信息,并显示出来。
C、学生综合信息输出提示:输出学生信息到屏幕。
题目十六:学校运动会管理系统问题描述:(1) 初始化输入:N-参赛院系总数,M-男子竞赛项目数,W-女子竞赛项目数;(2) 各项目名次取法有如下几种:取前5名:第1名得分7,第2名得分5,第3名得分3,第4名得分2,第5名得分1;(3) 由程序提醒用户填写比赛结果,输入各项目获奖运动员的信息。
(4) 所有信息记录完毕后,用户可以查询各个院系或个人的比赛成绩,生成团体总分报表,查看参赛院系信息、获奖运动员、比赛项目信息等。
题目十七:教师工资管理系统每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。
注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。
A、教师信息处理(1)输入教师信息(2) 插入(修改)教师信息:(3) 删除教师信息:(4) 浏览教师信息:提示:具体功能及操作参考题1。
B、教师数据处理:(1) 按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2) 教师实发工资、应发工资、合计扣款计算。
提示:计算规则如题目。
(3) 教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4) 教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。
(5) 教师综合信息输出提示:输出教师信息到屏幕。
题目十八:教师工作量管理系统计算每个老师在一个学期中所教课程的总工作量。
(教师单个教学任务的信息为:教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时、单个教学任务总课时)A、教师信息处理(1)输入教师授课教学信息,包括教师号、姓名、性别、职称、认教课程、班级、班级数目、理论课时、实验课时。
(2) 插入(修改)教师授课教学信息:(3) 删除教师授课教学信息:(4) 浏览教师授课教学信息:B、教师工作量数据处理:(1)(2)时之和。
(3)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。