C语言课程设计参考题目

C语言课程设计参考题目
C语言课程设计参考题目

《C语言课程设计》参考课题

第1题破译密码

问题:

据说最早的密码来自于罗马的凯撒大帝。消息加密的办法是:对消息原文中的每个字母,分别用该字母之后的第5个字母替换(例如:消息原文中的每个字母A都分别替换成字母F)。而你要获得消息原文,也就是要将这个过程反过来。

密码字母:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z M

原文字母:V W X Y Z A B C D E F G H I J K L M N O P Q R S T U

(注意:只有字母会发生替换,其他非字母的字符不变,并且消息原文的所有字母都是大写的。)

输入:最多不超过100个数据集组成,每个数据集之间不会有空行,每个数据集由3部分组成:

1.起始行:START

2.密码消息:由1到200个字符组成一行,表示凯撒发出的一条消息.

3.结束行:END

在最后一个数据集之后,是另一行:ENDOFINPUT。

输出:

每个数据集对应一行,是凯撒的原始消息。

?Sample Input

START

NS BFW, JAJSYX TK NRUTWYFSHJ FWJ YMJ WJXZQY TK YWNANFQ HFZXJX

END

START

N BTZQI WFYMJW GJ KNWXY NS F QNYYQJ NGJWNFS ANQQFLJ YMFS XJHTSI NS WTRJ

END

START

IFSLJW PSTBX KZQQ BJQQ YMFY HFJXFW NX RTWJ IFSLJWTZX YMFS MJ

END

ENDOFINPUT

?Sample Output

IN WAR, EVENTS OF IMPORTANCE ARE THE RESULT OF TRIVIAL CAUSES

I WOULD RATHER BE FIRST IN A LITTLE IBERIAN VILLAGE THAN SECOND IN ROME

DANGER KNOWS FULL WELL THAT CAESAR IS MORE DANGEROUS THAN HE

解题思路

凯撒编码,判断字符是否是字母,并循环-5即可,记得要循环哦,非常简单的题目哦

第2题方阵填数

第3题进制转换问题

1. 问题描述

实现将N进制到M进制数的转换(1 < N,M <= 36)。对于11到36进制数,其基数使用从A到Z的英文字母(全部为大写)代替。例如对于11进制,其基数10(十进制)使用"A"表示;对于36进制,其基数35(十进制)使用"Z"表示。被转换的数全部为正数且小于2147483647(long型的最大值)。下表为十进制数100对应的各进制数:

2. 要求:

(1).实现10进制数到M进制数的转换。(2).程序具有较强的容错能力(例如对错误的输入数字串的处理)。(3). N进制到M进制数(1 < N,M < 36)的转换(扩展要求,选做)。

3. 输入:

输入文件名为convert.in,文件容格式为第一列为被转换数的进制数,第二列为被转换数,第三列为转换后的进制。这三列容均为字符串形式。每列之间使用一个空格隔开。

4. 输出:

输出文件名为convert.out,文件容为转换后的数。对于一切错误,则输出“error”字符串。

5. 输入输出文件样例:

第4题打鱼还是晒网

中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。

*问题分析与算法设计

根据题意可以将解题过程分为三步:

1)计算从1990年1月1日开始至指定日期共有多少天;

2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;

3)根据余数判断他是在“打鱼”还是在“晒网”;

若余数为1,2,3,则他是在“打鱼”

否则是在“晒网”

在这三步中,关键是第一步。求从1990年1月1日至指定日期有多少天,要判断经历年份中是否有闰年,二月为29天,平年为28天。闰年的方法可以用伪语句描述如下:

如果((年能被4除尽且不能被100除尽)或能被400除尽)

则该年是闰年;

否则不是闰年。

C语言中判断能否整除可以使用求余运算(即求模)

第5题素数幻方

求四阶的素数幻方。即在一个4X4 的矩阵中,每一个格填入一个数字,使每一行、每一列和两条对角线上的4 个数字所组成的四位数,均为可逆素数。

*问题分析与算法设计

有了前面的基础,本题应当说是不困难的。

最简单的算法是:采用穷举法,设定4X4矩阵中每一个元素的值后,判断每一行、每一列和两条对角线上的4个数字组成的四位数是否都是可逆素数,若是则求出了满足题意的一个解。

这种算法在原理是对的,也一定可以求出满足题意的全部解。但是,按照这一思路编出的程序效率很低,在微机上几个小时也不会运行结束。这一算法致命的缺陷是:要穷举和判断的情况过多。

充分利用题目中的“每一个四位数都是可逆素数”这一条件,可以放弃对矩阵中每个元素进行的穷举的算法,先求出全部的四位可逆素数(204个),以矩阵的行为单位,在四位可逆素数的围进行穷举,然后将穷举的四位整数分解为数字后,再进行列和对角线方向的条件判断,改进的算法与最初的算法相比,大减少了穷举的次数。

考虑矩阵的第一行和最后一行数字,它们分别是列方向四位数的第一个数字和最后一个数字,由于这些四位数也必须是可逆素数,所以矩阵的每一行和最后一行中的各个数字都不能为偶数或5。这样穷举矩阵的第一行和最后一行时,它们的取值围是:所有位的数字均不是偶数或5的四位可逆数。由于符合这一条件的四位可逆素数很少,所以这一围限制又一次减少了穷举的次数。

对算法的进一步研究会发现:当设定了第一和第二行的值后,就已经可以判断出当前的这种组合是否一定是错误的(尚不能肯定该组合一定是正确的)。若按列方向上的四个两位数与四位可逆数的前两位矛盾(不是其中的一种组合),则第一、二行的取值一定是错误的。同理在设定了前三行数据后,可以立刻判断出当前的这种组合是否一定是错误的,若判断出矛盾情况,则可以立刻设置新的一组数据。这样就可以避免将四个数据全部设定好以后再进行判断所造成的低效。

根据以上分析,可以用伪语言描述以上改进的算法:

开始

找出全部四位的可逆素数;

确定全部出现在第一和最后一行的四位可逆素数;

在指定围穷举第一行

在指定围穷举第二行

若第一、第二、三行已出现矛盾,则继续穷举下一个数;

在指定围穷举第四行

判断列和对角方向是否符合题意

若符合题意,则输出矩阵;

否则继续穷举下一个数;

结束

在实际编程中,采用了很多程序设计技巧,假如设置若干辅助数组,其目的就是要最大限度的提高程序的执行效率,缩短运行时间。下面的程序运行效率是比较高的。

第6题乘式还原(1)

A代表数字0到9中的前五个数字,Z代表后五个数字,请还原下列乘式。

A Z A

× A A Z

------------

A A A A

A A Z Z

Z A A

------------

Z A Z A A

*问题分析与算法设计

问题本身并不复杂,可以对乘式中的每一位使用穷举法,最终可以得到结果。本题的关键在于怎样有效的判断每个部分积的每一位是否满足题意,这一问题处理不好,编写的程序会很长。程序实现中可采用了一个判断函数,通过传入函数的标志字符串对所有的数进行统一的判断处理。

乘式还原(2)

有乘法算式如下:

○○○

×○○

------------

○○○○

○○○○

------------

○○○○○

18个○的位置上全部是素数(1、3、5或7),请还原此算式。

*问题分析与算法设计

问题中虽然有18数位,但只要确定乘数和被乘数后经过计算就可确定其它的数位。

乘数和被乘数共有5个数位,要求每个数都是质数。完全可以采用穷举的方法对乘数和被乘数进行穷举,经过判断后找出答案。但是这种方法给人的感觉是“太笨了”,因为组成的数字只是质数(4个),完全没有必要在那么大的围进行穷举,只需要试探每一位数字为质数时的情况即可。

采用五重循环的方法实现对于5个数字的穷举,前面的许多例题中都已见过。循环实现简单易行,但嵌套的层次太多,需要穷举的变量的数量直接影响到循环嵌套的层数,这种简单的实现方法缺少技巧性。本例的程序中给出了另外一种同样功能的算法,该算法的实现思想请阅读程序。

程序中并没有直接对质数进行穷举,而是将每个质数与1到4顺序一一对应,在穷举时为处理简单仅对1到4进行穷举处理,待要判断产生的乘积是否满足条件时再利用一个数组完成向对应质数的转换。请体会程序中的处理方法。程序中使用的算法实际上是回朔法。

第7题除式还原(1)

给定下列除式,其中包含5个7,其它打×的是任意数字,请加以还原。

×7 ×--------------商

--------------

除数------××| ×××××-------------被除数

×7 7

--------------

× 7 ×

× 7 ×

----------

× ×

× ×

----------

*题目分析与算法设计

首先分析题目,由除式本身尽可能多地推出已知条件。由除式本身书已知:

1、被除数的围是10000到99999,除数的围是10到99,且可以整除;

2、商为100到999之间,且十位数字为7;

3、商的第一位与除数的积为三位数,且后两位为77;

4、被除数的第三位一定为4;

5、7乘以除数的积为一个三位数,且第二位为7;

6、商的最后一位不能为0,且与除数的积为一个二位数。

由已知条件就可以采用穷举的方法找出结果。

除式还原(2)

下列除式中仅在商中给定了一个7,其它打×的位置全部是任意数字,请还原。

×7×××-------------商

------------------

除数-------------------×××| ××××××××-------------被除数

××××-------------1)

---------------

×××-------------2)

×××-------------3)

---------------

××××-------------4)

×××-------------5)

-----------------

××××-------------6)

××××-------------7)

-----------------

*题目分析与算法设计

这道题是不可能用单纯的穷举法求解的,一则计算时间太长,二则难于求出除式中各部分的值。

对除式进行分析,改可能多地推出限制条件:

由3)可以看出,商的第二位7乘除数得一个三位数,所以除数<=142。

由除数乘商的第一位为一个四位数可知,商的第一位只能为8或9且除数>=112。同时商的第五位也为8或9数的前四位一定<=142*9+99且>=1000+10。

由4)、5)、6)可以看出,4)的前两位一定为“10”;5)的第一位一定为“9”;6)的前两位一定在10到99之间;商的第四位一定为为0。

由5)的第一位一定是“9”和“112”<=除数<=142可知:商的第三位可能为7或8。

由除式本身可知:商的第四位为0。

由1)可知:除数X商的第一位应当为一个四位数。

由5)可知:除数X商的第三位应当为一个三位数。

编程时为了方便,将被除数分解:前四位用a[0]表示,第五位用a[1],第六位用a[2],第七八两位用a[3];除数用变量b表示;分解商:第一位用c[0],第五位用c[2];其它的部分商分别表示为:2)的前两位为d[0],4)的前三位为d[1],6)的前二位为d[2]。将上述分析用数学的方法综合起来可以表示为:

被除数:1010<=a[0]<=1377 0<=a[1]<=9

0<=a[2]<=9 0<=a[3]<=99

除数:112<=b <=142

商:8<=c[0]<=9 7<=c[1]<=8 8<=c[2]<=9

2)的前两位:10<=d[0]<=99

4)的前三位:100<=d[1]

6)的前两位:10<=d[2]<=99

1)式部分积:b*c[0]>1000

5)式部分积:100

第8题约瑟夫问题

这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。

*问题分析与算法设计

约瑟夫问题并不难,但求解的方法很多;题目的变化形式也很多。这里给出一种实现方法。

题目中30个人围成一圈,因而启发我们用一个循环的链来表示。可以使用结构数组来构成一个循环链。结构中有两个成员,其一为指向下一个人的指针,以构成环形的链;其二为该人是否被扔下海的标记,为1表示还在船上。从第一个人开始对还未扔下海的人进行计数,每数到9时,将结构中的标记改为0,表示该人已被扔下海了。这样循环计数直到有15个人被扔下海为止。

第9题卡布列克常数

验证卡布列克运算。任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:

1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;

2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);

3)求两个数的差,得到一个新的四位数(高位零保留)。

重复以上过程,最后得到的结果是6174,这个数被称为卡布列克数。

*问题分析与算法设计

题目中给出的处理过程很清楚,算法不需要特殊设计,可按照题目的叙述直接进行验证。

第10题自动发牌

一副扑克有52牌,打桥牌时应将牌分给四个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S(Spaces)表示;红桃用H(Hearts)表示;方块用D(Diamonds)表示;梅花用C(Clubs)表示。

*问题分析与算法设计

按照打桥牌的规定,每人应当有13牌。在人工发牌时,先进行洗牌,然后将洗好的牌按一定的顺序发给每一个人。为了便于计算机模拟,可将人工方式的发牌过程加以修改:先确定好发牌顺序:1、2、3、4;将52牌顺序编号:黑桃2对应数字0,红桃2对应数字1,方块2对应数字2,梅花2对应数字3,黑桃3对应数字4,红桃3对应数字5,...然后从52 牌中随机的为每个人抽牌。

这里采用C语言库函数的随机函数,生成0到51之间的共52个随机数,以产生洗牌后发牌的效果。

第11题黑白子交换

有三个白子和三个黑子如下图布置:

○○○ . ●●●

游戏的目的是用最少的步数将上图中白子和黑子的位置进行交换:

●●● . ○○○

游戏的规则是:(1)一次只能移动一个棋子;(2)棋子可以向空格中移动,也可以跳过一个对方的棋子进入空格,但不能向后跳,也不能跳过两个子。请用计算机实现上述游戏。

*问题分析与算法设计

计算机解决胜这类问题的关键是要找出问题的规律,或者说是要制定一套计算机行动的规则。分析本题,先用人来解决问题,可总结出以下规则:

(1) 黑子向左跳过白子落入空格,转(5)

(2) 白子向右跳过黑子落入空格,转(5)

(3) 黑子向左移动一格落入空格(但不应产生棋子阻塞现象),转(5)

(4) 白子向右移动一格落入空格(但不应产生棋子阻塞现萌),转(5)

(5) 判断游戏是否结束,若没有结束,则转(1)继续。

所谓的“阻塞”现象就是:在移动棋子的过程中,两个尚未到位的同色棋子连接在一起,使棋盘中的其它棋子无法继续移动。例如按下列方法移动棋子:

○○○ . ●●●

1 ○○ . ○●●●

2 △○○●○ . ●●

3

○○● . ○●●

4 两个●连在一起产生阻塞

○○●●○ . ●

或4 两个白连在一起产生阻塞

○ . ●○○●●

产生阻塞的现象的原因是在第2步(△状态)时,棋子○不能向右移动,只能将●向左移动。

总结产生阻塞的原因,当棋盘出现“黑、白、空、黑”或“白、空、黑、白”状态时,不能向左或向右移动中间的棋子,只移动两边的棋子。

按照上述规则,可以保证在移动棋子的过程中,不会出现棋子无法移动的现象,且可以用最少的步数完成白子和黑子的位置交换。

第12题抢30

这是中国民间的一个游戏。两人从1开始轮流报数,每人每次可报一个数或两个连续的数,谁先报到30,谁就为胜方。

*问题分析与算法设计

本题与上题类似,算法也类似,所不同的是,本谁先走第一步是可选的。若计算机走第一步,那么计算机一定是赢家。若人先走一步,那么计算机只好等待人犯错误,如果人先走第一步且不犯错误,那么人就会取胜;否则计算机会抓住人的一次错误使自己成为胜利者。

第13题搬山游戏

设有n座山,计算机与人为比赛的双方,轮流搬山。规定每次搬山的数止不能超过k座,谁搬最后一座谁输。游戏开始时。计算机请人输入山的总数(n)和每次允许搬山的最大数止(k)。然后请人开始,等人输入了需要搬走的山的数目后,计算机马上打印出它搬多少座山,并提示尚余多少座山。双方轮流搬山直到最后一座山搬完为止。计算机会显示谁是赢家,并问人是否要继续比赛。若人不想玩了,计算机便会统计出共玩了几局,双方胜负如何。

*问题分析与算法设计

计算机参加游戏时应遵循下列原则:

1) 当:

剩余山数目-1<=可移动的最大数k 时计算机要移(剩余山数目-1)座,以便将最后一座山留给人。

2)对于任意正整数x,y,一定有:

0<=x%(y+1)<=y

在有n座山的情况下,计算机为了将最后一座山留给人,而且又要控制每次搬山的数目不超过最大数k,它应搬山的数目要满足下列关系:

(n-1)%(k+1)

如果算出结果为0,即整除无余数,则规定只搬1座山,以防止冒进后发生问题。

第14题人机猜数游戏

由计算机“想”一个四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止。

c语言课程设计报告·图书管理系统

第一章 §题目描述 图书管理系统设计: 【要求】图书管理信息包括:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。试设计一图书管理系统,使之能提供以下功能: (1)新图书基本信息的输入; (2)图书基本信息的查询; (3)对撤销图书信息的删除; (4)办理借书手续; (5)办理还书手续; 【提示】建立图书馆里信息结构体,结构体成员包括图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号。存在状态设为整型,可用不同数字代表借还状态。借书和还书手续要注意修改结构体的成员变量存在状态的值。 §算法设计 1.设计思想: 在整个系统编写的过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。由此进一步加深、巩固了所学的课程的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,参考了学校图书馆的图书管理系统,实现了程序的模块化、结构化。在主函数中调用各种函数,操作界面简单,易操作,人机互动性较强。 2.实现注释: 这个实用的小型图书管理系统程序以结构体数组指针操作完成,并实现文件信息的录入、修改和保存等功能,所有信息以磁盘文件方式保存,方便用户使用。本图书管理系统分为管理员和学生两个部分,其基本功能包括了对图书信息的存储、查询、添加、删除和借书、还书手续办理等。查询时可按书名、编号等方式查询,找到后输出这本书的所有信息。可查询图书的在库状态,方便用户进行借书、还书操作。在借书还书成功后图书的在库状态自动改变,并更新信息到数据库。系统中主要的数据结构就是图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等。在处理过程中各项可以作为一本图书的不同属性来进行处理。 3.结构体系设计 图:主函数结构;图:新书信息录入流程;图:图书信息查询(管理员)流程;图:图书信息查询(学生)流程;图:图书信息删除流程;图:办理借书手续流程;图:办理还书手续流程; §程序设计及代码分析 1.程序设计: 下面,我大致介绍一下我的系统的主要功能和注意事项: 当运行此程序时,首先进入系统主界面,然后可以选择[1].管理员登陆(密码:123),[2].学生登陆,[0].退出系统; 选择[1]后进入管理员系统,验证密码成功后显示管理员功能菜单,按数字键选择所需服务。管理员功能菜单中,[1].新书信息录入,[2].图书信息查询,[3].图书信息删除,[4].返回主菜单,[0].退出系统;当出现“请选择”时,输入选项前的数字,输完之后按回车(下同)。首次运行系统需要先选择[1]录入库存书籍信息,图书各信息项须用空格键隔开,输入完毕后信息自动储存并更新至数据库,然后再选择其他操作。当选择[3]时会进入图书信息删除,在这里可以选择删除图书信息等操

c语言课程设计机房机位预定系统绝对正确,附源代码

1 设计目的 机房机位预定系统 2 任务概述 20台机器,编号1到20,从早八点到晚八点。两小时一个时间段,每次可预定一个时间段。功能要求: (1)系统以菜单方式工作 (2)查询,根据输入时间,输出机位信息。 (3)机位预定,根据输入的时间查询是否有空机位,若有则预约,若无则提供最近的时间段,另:若用户在非空时间上机,则将用户信息列入等待列表。 (4)退出预定,根据输入的时间,机器号撤销该事件的预定! (5)查询是否有等待信息,若有则提供最优解决方案(等待时间尽量短),若无则显示提示信息。 ......... 3 模块划分 4 主要函数说明及其N-S图 1.主函数: int main() { Menu(); /*当前状态函数*/ } void Menu() /*主界面*/ { int n,w; do { puts("\t\t****************机房机位预约系统*******************\n"); puts("\t\t*************************菜单

***************************\n"); puts("\t\t\t 1.查询某时间段机位状态"); /*查询某时间段机位状态*/ puts("\t\t\t 2.预定空机位"); /*预定空机位*/ puts("\t\t\t 3.取消预订"); /*取消预订*/ puts("\t\t\t 4.查询等待信息"); /*查询等待信息*/ puts("\t\t\t 5.退出"); /*退出*/ puts("\t\t********************************************************\n"); printf("选择菜单号(1-5):"); scanf("%d",&n); if(n<1||n>5) {w=1;getchar();} else w=0; }while(w==1); switch(n) { case 1:Situation();break; case 2:Book();break; case 3:Cancel();break; case 4:SearchWaiting();break; case 5:exit(0);break; } getch(); } 2.机位查询: void Situation() { int time; printf("输在 (8-20)范围内的时间:"); scanf("%d",&time); if(time<8||time>20) {printf("\t时间输入错误!\n"); printf("输入在 (8-20)范围内的时间:"); scanf("%d",&time); } detail(time); /*函数调用*/ getchar(); Menu();} 3.机位预定:

c语言课程设计报告书--学生成绩管理

C 语言程序设计报告 课题:学生成绩管理 时间:

一、需求分析 任务要求: 自学C语言中有关链表及外部文件的内容,设计出学生成绩管理。具体要求如下: 1.主要功能: (1)能按学期、按班级完成对学生成绩的录入、修改 (2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序 (3)能查询学生成绩,不及格科目及学生名单 (4)能按班级输出学生的成绩单 系统功能需求分析: 1、定义一个结构体类型,成员包括学期、班级、各科成绩、建立链表,定义该结构体类型的指针,用于指向各结点; 2、分别建立具有添输入、修改、查询、总分及平均分、排序等功能的子函数,完成相应功能,对程序实现模块化。 二、概要设计 系统总体设计框架: 对程序进行模块化,建立输入、修改、查询、查找和显示功能的子函数,各子函数中运用链表存储数据。 系统功能模块图:

三、详细设计 主要功能模块的算法设计思路如下: 1、输入信息函数 (1)定义指向结构体变量的指针; (2)移动指针,找到插入结点; (3)在要插入的结点输入信息; (4)返回头指针。 2、修改信息 (1)定义指向结构体变量的指针; (2)用指针检验链表中是否有记录,若没记录,出现报错,然后要求重新输入; (3)根据要修改的编号查找对应结点; (4)修改信息;

(5)修改成功。 3、排序函数 (1)定义所要排序的班级和链表的头指针为形参; (2)调用排序函数,把班级和链表的头指针赋给形参; (3)在子函数中进行排序; (4)输出排序结果。 4、显示学生成绩信息(void Disp(Link l)) (1)选择想要查询的项目(学生各科成绩、不及格科目、班级成员);(2)用指针检验是否有记录; (3)若无记录,输出提示信息,返回主函数; 若有记录,移动指针,依次输出记录; 5、查询班级成绩信息(void Find(Link l)) (1)选择所要查询的班级; (2)输入班级: (3)在链表中寻找相应结点; (4)输出结点信息。 以上各个函数的流程图如下:

c语言课程设计报告书

课程设计报告书 所属课程:c语言 项目:库函数模拟系统 指导老师:邹姝稚 班级:软件1401 姓名:江闯 学号:141403107 分数:

1.任务描述: 本系统开发的代码模拟了下列库函数的功能: (1).模拟gets和puts的功能:能接收一个字符串,将其写入ASCII文件,并且可以读出显示。 (2).在不使用字符串库函数的条件下,编程实现字符串的拷贝,连接,求长,倒置功能。 (3).字符串加密功能:将一段明文建立到一个ASCII文件中,按加密的算法加密后写入密文文件,最终实现将明文和密文文件都显示出来。 (4).编程实现字符串与对应数字的相互转换功能。 2.总体设计: 模块调用图: 图1

函数调用图: 图2 函数功能: (1)函数gp( ):模拟gets和puts的功能 (2)函数kaobei( ):实现字符串的拷贝 (3)函数lianjie( ):实现字符串的连接 (4)函数qiuchang( ):实现字符串的求长 (5)函数daozhi( ):实现字符串的倒置 (6)函数jiami( ):实现字符串的加密功能,最后将明文和密文文件都显示出来 (7)函数zhuanhuan1( ):将数字字符串转换为对应的数字 (8)函数zhuanhuan2( ):将数字转换为对应的数字字符串 3.详细设计: (1).模仿gets和puts功能: gets和puts功能与scanf和printf函数的功能相似,但是也不是完全相同,本系统模拟功能的程序总共运用了两次函数调用技术,模拟gets运用了一次,模拟puts运用了一次。 (2)..字符串的拷贝功能: 字符串的拷贝功能程序设计源于strcpy的功能,其中运用了字符串数组和指针的相关技术,还运用了一组while语句,实现语句的循环,从而将一个字符串拷贝到一个空数组中。

C语言课程设计报告——贪吃蛇源程序

C 语言课程设计(小游戏贪吃蛇的程序设计报告) 设计人: 班级: 201 年月号

目录一:概述 1:研究背景及意义 2:设计的任务与需要知识点3:具体完成设计内容 二:需求分析 1:功能需求 2:操作方法 三:总体设计 1:模块划分 2:数据结构设计 四:详细设计 1:主空摸块设计 2:绘制游戏界面 3:游戏的具体过程 4:游戏的结束处理 5:显示排行榜信息模块 五:程序的调试与测试1:动画与音乐同步 2:蛇的运行 3:终止程序 六:结论 七::结束语 八:程序清单 九:参考文献

一. 概述 本课程设计以软件工程方法为指导,采用了结构化,模块化的程序设计方法,以C语言技术为基础,使用Turbo C++3、0为主要开发工具,对贪吃蛇游戏进行了需求分析,总体设计,详细设计,最终完成系统的实现与测试。 1、1 研究的背景及意义 随着社会的发展,人们生活的节奏日益加快,越来越多的人加入了全球化的世界。人们不再拘泥与一小块天地,加班,出差成了现代人不可避免的公务。而此时一款可以随时随地娱乐的游戏成为了人们的需要。此次课程设计完成的贪吃蛇小游戏,正就是为了满足上述需求而设计出来的。贪吃蛇游戏虽小,却设计诸多的知识点。通过开发贪吃蛇游戏系统,可使读者初步了解使用软件工程的与那个发,技术与工具开发软件的过程,进一步掌握结构化,模块化的程序设计方法与步骤,进一步掌握总体数据结构设计,模块划分方法,掌握局部变量,全局变量,结构体,共用体,数组,指针,文件等数据结构的使用方法,掌握图形,声音,随机数等多种库函数的使用方法,学习动画,音乐,窗口,菜单,键盘等多项编程技术,进一步学会软件调试,测试,组装等软件测试方法,为后续课程的学习与将来实际软件开发打下坚实的基础。 1、2 设计的任务与需要的知识点 1、2、1 课程设计主要完成的任务 1)、通过编写“贪吃蛇游戏”程序,掌握结构化,模块块化程序设计的思想,培养解决实际问题的能力。 2) 有同步播放动画,声音效果。 3) 设计好数组元素与蛇,食物的对应关系。 4) 随机产生食物。 5) 有分数统计,排行榜,分数存储等功能。 通过此次课程设计,希望使读者能更深入的理解与掌握课程教学中的基本概念,培养读者应用基本技术解决实际问题的能力,从而进一步提高分析问题与解决问题的能力。 1、2、2需要掌握与运用的知识点 1、2、3本次课程设计需要掌握与运用如下的知识点: 1) 数组的应用。 2) 全局变量的使用。 3) 按键处理。 4)结构体的应用。 5)图形,音乐与动画的有关知识。 6)随即函数的使用。 7)文件的基本出操作。 8) 结构化,模块化的设计方法。

C语言课程设计图书管理系统课程设计报告

C语言课程设计 图书管理系统 Books Management System 学生姓名张朝柱 学院名称徐州工程学院学号140 班级13计转本 专业名称计算机科学与技术 指导教师李子龙 2016年5月10日

一、需求分析 为了满足图书管理的要求,通过计算机技术给图书管理人员和读者借、还书带来便利。使用c语言编写了图书管理系统。本系统主要实现图书信息管理的功能,通过此系统可对图书馆库存图书信息进行管理和维护操作。实现了图书馆内管理的一般功能,包括查询、借书、还书、添加、删除、修改图书信息等。所设计的系统以菜单方式工作,为用户提供清晰的使用提示,依据用户的选择来进行各种处理,并且在此过程中能够尽可能的兼容用户使用过程中可能出现的异常情况。图书信息包括编号、书名、作者、数量、在库状态等。图书信息的录入和显示要求有一定的规范格式,录入的图书信息用文件形式保存,并可以对其进行浏览、查询、借阅、还书等基本操作。整个程序实现顺序表操作,对图书信息的操作逐个地进行,一个图书信息的更改不应影响其他的图书记录。 二、算法设计: 1.设计思想: 整个系统制造的而过程中,涉及了较多C语言知识点,对于不同的数据类型、程序控制结构、数据结构作以分析和总结,并结合这个课题进行综合的应用,在一定程度上做到了对所学知识融会贯通。进一步加深、巩固了所学的专业的基本理论知识,培养了综合分析问题、解决问题的能力。在设计程序时,实现了程序的模块化、结构化。在主函数中调用各种子函数,操作界面简单,易操作。 2,设计表示: (1)、整个系统除了主函数外,另外还有各种功能子函数,利用无限次循环语句while()和选择语句swithch()实现各个子函数的调用,系统根据输入的数字选项来调用相应的函数,以实现相应的功能。主要实现了图书的录入、存储、查询、借书、还书、显示库存等功能。 (2)、void Book_Entering(struct SqList &SL);这是一个录入图书信息的函数,它主要实现了顺序表的创建,并且在创建过程中从文件读取信息到顺序表中,以用于后面其他函数的操作。它引用了一个顺序表SL。其他函数调用时只需传入顺序表头即可。 (3)、int main(void);这五个函数时整个图书管理系统的全部菜单函数,Book_Entering();为系统主界面,进入时可选择进入程序和退出程序。menu1();为进入程序时显示的功能菜单,在此菜单可以选择录入、保存图书信息,也可选择进入其他子系统。Book_Inquire();此菜单为进入图书管理系统的菜单,在此可以选择添加、删除、修改图书等操作。cxmenu();为查询系统的菜单,在此可以选择按书名、编号、作者等方式进行查询图书。jhmenu();为借书还书的子菜单,在此可以选择借书还书操作。操作完成后按提示信息进行文件的保存操作。 (4)、void Book_Inquire(struct SqList &SL);这个函数为顺序表的输出函数,把顺序表的头传给函数后,可输出整个顺序表的所有信息。、

c语言语言课程设计报告

上海应用技术学院 课程设计 2011~ 2012学年第二学期 设计题目成绩记录簿 院(系)计算机科学与信息工程学院 专业计算机应用技术 班级 11104114 学号 1110411414 学生姓名蒋佳琴 设计时间 2012.06.25 -2012.07.06 指导教师马智娴 提交日期 2012.07.06

上海应用技术学院课程设计任务书 指导教师(签名):马智娴教研室主任(签名):马智娴2012年6 月25日2012年6月25日

目录 1 设计目的 (5) 2 功能描述 (5) 2.1模块功能 (5) 2.2流程图 (6) 3 总体设计 (13) 3.1 功能模块设计 (13) 3.2 数据结构设计 (13) 3.3 函数功能描述 (13) 4 程序实现 (14) 4.2 运行结果 (25) 5课程设计总结 (28)

成绩记录簿 1. 设计要求: 基本功能 a) 添加成绩 b) 删除成绩 c) 查询学生成绩 d) 查询班级成绩 e) 退出 拓展功能 a) 写入文件 b) 读取文件 创新(自拟)功能: 程序实现的其它功能由个人自拟。 2. 设计要求具体说明 基本功能: 成绩记录簿中记录以下数据: 学号、姓名、课程编号、课程名称、成绩、学分,所有成绩都以百分制计分; 输入信息时要检查数据项学号、课程编号、成绩、学分的合法性,学号:8位数字;课程编号:5位数字;成绩:0 ~ 100 之间的整数,学分: 1~ 5之间的实型数。 添加成绩:需要输入学生的学号或姓名、课程编号及成绩,如已有该门课程成绩给出提示; 查询(班级或个人)成绩: a) 查询个人成绩:以学号或姓名作为关键字,可查询一个学生的所有成绩,和已完成 的总学分。 b) 查询班级成绩:以课程编号为关键字,成绩表后面要统计平均分、及格率及全班同 学不同课程在不同分数段分布的人数及百分比。 拓展功能: a) 程序启动时先从文件读入数据,如果文件中没有数据则给出提示; b) 每次修改的数据写入文件。 3. 提示 定义合适的结构体类型,使用链表或数组的方式组织数据。

C语言课程设计俄罗斯方块源代码

1、新建“.h”头文件,将“头文件” 代码粘贴至其中, 2、新建“.c”源文件,将“源代码” 代码粘贴到其中。 3、新建空白工程,将头文件和源代码 添加进去,调试使用。 //头文件 //1.自定义枚举类型,定义7种形态的游戏方块 typedef enum tetris_shape { ZShape=0, SShape, LineShape, TShape, SquareShape, LShape, MirroredLShape }shape; //2.函数声明 //(1)操作方块函数 int maxX();//取得当前方块的最大x坐标 int minX();//取得当前方块的最小x坐标 void turn_left();//当前方块逆时针旋转90度 void turn_right(); int out_of_table(); void transform(); int leftable(); int rightable(); int downable(); void move_left(); void move_right(); //(2)操作游戏桌面的函数 int add_to_table();

void remove_full(); //(3)控制游戏函数 void new_game(); void run_game(); void next_shape(); int random(int seed); //(4)绘图函数 void paint(); void draw_table(); //(5)其他功能函数 void key_down(WPARAM wParam); void resize(); void initialize(); void finalize(); //(6)回调函数,用来处理Windows消息 LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM); //源代码 //1.文件包含 #include #include #include #include"tetris.h" //2.常量定义 #define APP_NAME "TETRIS" #define APP_TITLE "Tetris Game" #define GAMEOVER "GAME OVER" #define SHAPE_COUNT 7 #define BLOCK_COUNT 4 #define MAX_SPEED 5 #define COLUMS 10 #define ROWS 20 #define RED RGB(255,0,0)

C语言课程设计报告烟花绽放

课程设计报告书设计题目烟花绽放 系别计算机工程系 专业计算机科学与技术 班级 姓名 指导教师 设计任务下达日期2011年 12 月 24 日 设计时间2011年12月26日至 2010年12月30日 课程设计任务书

一、目的和意义 本课程设计是《C语言程序设计》课程的后继教学环节, 通过研究C语言中图形编程技术或者声音控制等其它方面的多媒体编程技术,一方面拓展学生在这些领域的C语言知识,另一方面使学生在运用所学理论知识进行实践开发,更好的培养学生综合学习能力和实践能力。本次课程设计学生可以根据喜好,可以利用复杂的数据类型实现成绩管理系统等小型的综合应用程序。 二、题目(可从下面题目中任选一个) 1、C语言的图形编程应用 设计实现如菜单、图形的显示,再如动画和小游戏。 2、简易电子琴模拟程序的实现 为实现在键盘模拟电子琴设计的程序。由学生自行设计并且实现。 3、成绩管理程序 学生本人设计具体方案,然后改进和编码实现。 三、课程设计报告书应包括的主要内容 1、介绍概要的思路和设计方案,程序的总体功能和模块划分。 2、主要算法的介绍及流程图,主要功能的实现手段的说明文档。 3、对于有设想但最终未实现的功能的大致编程思路的阐述和设计过程中的启发。 四、进度要求 1、设计时间:2011年12月19日至2011年12月25日 2、编写课程设计报告书:2011年12月26日至2011年12月29日 3、提交报告及答辩时间:2011年12月30日 专科 四、进度要求 1、设计时间:2011年12月26日至2011年12月28日 2、编写课程设计报告书:2011年12月29日 3、提交报告及答辩时间:2011年12月30日 目录

c语言课程设计报告学生成绩信息管理系统源代码

实验报告 一、问题陈述及其需求分析 (一)问题陈述 学生信息管理系统是对学生信息的基本管理,其中包括以下及模块: (1)增加一个学生的信息(需输入要增加学生的所有信息); (2)统计本班学生总人数及男女生人数。 (3)分别按照学号查找学生的信息;若找到则输出该学生全部信息,否则输出查找不到的提示信息。 (4)按学号对所有学生信息排序,并输出结果; (5)删除一个学生的信息(需指定要删除学生的学号);同时显示删除后的结果。( 二) 功能需求分析 学生信息管理系统设计 学生信息包括:学号,姓名,性别,出生年月,电话 使之提供以下功能: 1、系统以菜单方式工作 2、建立链表并显示 3、插入新的学生信息 4、删除某学号的学生信息 5、查找某学号的学生信息 6、对学生信息排序 7、统计学生人数 8、输出学生信息 二总体设计 (一)模块 依据程序的数据结构,描述该程序的层次结构,如下图:

1、建立链表并显示 void createlist(struct stucode **r); 2、插入新的学生信息 void insert(struct stucode **r); 3、删除某学号的学生信息 void del(struct stucode **r); 4、查找某学号的学生信息 void search1(struct stucode *r); 5、对学生信息排序 void sort(struct stucode **r); 6、统计学生人数 void search2(struct stucode *r); 7、输出学生信息 void out(struct stucode *r); 1 建立链表并显示 2 添加学生信息 3 删除学生信息 息 4 按学号查找学生信 5 对学生信息排序 6统计学生人数 7输出学员信息 8 学生信息写入文件 0退出 main() 菜单函数

C语言课程设计---学生选课系统加源代码

C程序设计课程设计 题目:学生选课系统专业班级:通信工程1班姓名: 学号: 指导教师: 成绩:

摘要 学生选课系统是一个教育单位不可缺少的重要系统组成部分,它对于学校的决策者、管理者管理、查看课程来说都有至关重要,所以学生选课管理系统应该能够为广大学、师生提供充足的信息和快捷的课程选择过程,有助于学生选好每一门课程,此系统系统选课方便、快捷,用简单的界面来展示学生的选课信息,应用简单明了、存储量大、可靠性高、保密性好、寿命长、成本低等优点,可以极大的提高对学生信息管理的效率。利用C语言开发,实现了简单的学生课程信息的录入、修改、查询、删除等操作,并且能够利用文件系统长久的保留原始数据。

目录 一、需求分析 (1) 二、总体设计 (1) 三、详细设计 (2) 1、数据定义...................................................... 错误!未定义书签。 2、算法流程图 (2) 四、编码 (6) 五、调试 (7) 六、设计总结 (10) 致谢 (11) 参考文献 (12) 附录 (13)

一、需求分析 语言文字描述系统要做什么 数据结构可用结构体,包括课程和选修两个结构体,其中课程结构体成员结构体成员包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期。选修结构体成员包括学号,课程编号,该结构体的建立主要是为了查询某门课程学生选修情况。 二、总体设计 系统由哪几个功能模块构成,给出功能模块图。C 中模块化的工具是函数 根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 选课模块、按学分查找模块、按编号查找模块、查看课程模块、查看选课情况模块、课程输入模块、完成选择模块。 菜单选择模块 录入学生信息 学生选课 系统信息查看及储存 退出系统 完成选择模块 学生信息 管 理 录入课程信息 课程 管理

C语言程序设计报告书

一、实践的目的和要求 加深对C语言课程所学知识的理解,进一步巩固C语言算法规则.学会编制结构清晰.风格良好.数据结构适当的C程序,从而具备解决综合性问题的能力. 二、内容 在熟练掌握C语言的基础知识:数据类型(整型.实型.字符型.指针.数组.结构等); 运算类型(算术运算.逻辑运算.自增自减运算.赋值运算等);程序结构(顺序结构.判断选择结构.循环结构);大程序的功能分解方法(即函数的使用)等.进一步掌握各种函数的应用以及文件的读写操作等. 三、实验任务:通讯录 设计要求:实现菜单设计,使用数据文件保存和修改,应用结构体和指针 功能要求:通讯录信息生成,存储,查询,修改,插入,删除,打印等. 四、设计思路 1.通讯录的主要信息包括:编号,姓名,性别,联系电话.住址,邮编. 2.用结构体数组来存储信息,有Data_Input函数来实现信息的录入,用Data_Show函 数来显示打印信息,用Data_Sreach函数来查找信息,用Data_Insert函数来插入信 息,用Data_Alter 函数来修改信息,用Data_Delete函数来删除信息,用Data_Save 函数来保存信息,用Exit函数来退出通讯录. 3.小组分工,每个人分配几个函数,按情况进行分配任务. 五、程序代码 #include/*字符函数和字符串函数*/ #include/*字符模式函数(调用getch()函数)*/ #include/*输入输出函数*/ int i; struct friend/*电子通讯录结构定义*/ { char num[5]; /*编号*/ char name[11]; /*名字*/ char sex[2]; /*性别*/ char phone[12]; /*电话*/ char address[26]; /*地址*/ char post_num[11]; /*邮编*/ }friends[50]; FILE *fp; void Data_load() /*数据载入函数*/ {int j;

中国地质大学C语言课程设计题目(附参考代码)

C语言课程设计题目 选题一(起评分100分) 高考招生录取程序 已知文本文件f1.txt中存放了某个省当年参加高考的1000个考生的数据(考号、姓名、性别和考试成绩),存放格式是每行存放一个考生的数据,每个数据之间用空格隔开。 假定当年该省的招生计划是:一类本科招生计划为10%;二类本科招生计划为15%;三类本科招生计划为20%;四类高职高专招生计划为25%。 请编写程序,实现以下功能: (1)划定各批次录取分数线,结果可屏幕显示,也可存入文件。 (2)能够统计各批次中男生,女生的录取比例。统计结果可屏幕显示,也可存入文件。 (3)确定每名学生的录取情况及录取批次。 (4)考生可以根据考号或姓名(支持重名)查询自己的成绩及录取情况; 说明: ①系统程序要有界面 ②存入文件的数据,每行存一种数据,每行之间的不同信息用空格分隔。 选题二(起评分85分) 《C语言课程设计与学习指导》第4章题目或第5章题目任选其一 成绩评定方式 平时考勤:20% 考试(即程序考核及检查):40% 实习报告:40% 违规违纪处理 出现以下6种情况中的任何一种,整个课程设计的成绩直接认定为不及格: 1.考勤抽查出现3次(含)不在的情况; 2.上机从事玩游戏、看电影等活动被抓住2次(含)的情况; 3.程序检查被认定为抄袭的情况; 4.实习报告被认定抄袭或雷同的情况; 5.不参加考试(即程序考核及检查)的情况 6.不交实习报告的情况。

C语言课程设计报告撰写要求 1 内容要求 整个报告由六个部分构成: ①课设题目 ②题目分析 ③设计思路 ④实现结果 ⑤课设总结 ⑥附录(源代码) 2 篇幅要求 ①-⑤合计不低于8页,⑥不低于8页。 篇幅没有上限要求,但原则上要求不超过25页。 标题字体字号格式:宋体,三号,加黑,单倍行距。 正文字体字号格式:宋体或Times New Roman,五号,单倍行距。 3 撰写要求 严谨出现抄袭。 严谨出现雷同。 报告出现抄袭或雷同的,整个课程设计成绩一律按不及格论处。 4 其它 封面格式附后。

C语言课程设计报告图书管理系统

.. C语言课程设计报告 院系: 学号: 班号: 姓名: 标题:图书管理系统

目录 第一部分 题目要求 (3) 第二部分 需求分析 (3) 第三部分 总体设计 (4) 第四部分 详细设计 (4) 1)主函数 (4) 2)各功能模块设计 (6) 3)公共函数 (16) 第五部分 上机操作 (17) 第六部分 总结 (20) 附录 (源代码) (22)

第一部分题目要求 图书管理系统包括:图书名称、图书编号、单价、作者、存在状态、借书人、性别、学号等,是设计一图书管理系统,使之能够提供以下功能: 1. 新图书基本信息的输入。 2. 图书基本信息的查询。 3. 对撤销图示基本信息的删除。 4. 办理借书手续。 5. 办理换书手续。 第二部分需求分析 根据题目的要求,需要建立一个文件来保存图书信息,每本书的信息用一个结构体来保存,结构体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书人、性别、学号,结构体中的存在状态可设为整型,用不同数字代表借还状态;在借书和还书手续中,要注意结构体的成员变量存在状态的值,使用指针会比较方便。 程序中需要对图书信息实现输入、查询、删除、借书和还书的功能,首先要使用菜单进行各项功能的选择;其次需要有文件的输入、输出功能,提供显示、查找等操作。在程序的运行过程中,注意各功

能在使用完毕后返回菜单的设置,以方便运行。 第三部分总体设计 根据上面的需求分析,可以将整个图书管理系统分为输入模块、查找模块、删除模块、借书模块和还书模块(如图3-1所示)。 图3-1 系统功能模块图 第四部分详细设计 在这个程序里,每本书的信息用一个结构体book来保存,结构 体的成员应包括图书名称、图书编号、单价、作者、存在状态、借书 人、性别、学号,结构体中的存在状态设为整型,用不同数字代表库

C语言课程设计――飞机订票系统源代码

#include//标准输入、输出头文件 #include//包含字符串函数处理头文件 #include//包含access函数的头文件 #define N 99//定义最多的航班数 #define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count//宏定义输出格式struct air//定义结构体数组{int num;//定义航班号 char start[20];//航班起始站 char over[20];//终点站 char time[10];//飞行时间 int count;//机票数量 }s[N]; int i,m=0;//定义全局变量 char ii[10]; void add();//函数声明增加航班信息函数 void print();//显示航班信息 void search();//查找航班信息 void dingpiao();//订票业务 void tuipiao();//退票 void read();//读取文件 void save();//保存文件

void output();//输出格式 void paixu();//航班排序 void chushihua();//系统初始化 void build();//建立数据文件 void paixu1();//按航班号从小到大排序 void paixu2();//从大到小 void main()//主函数{int j; chushihua();//系统初始化判断是否存在原始数据文件 printf("欢迎使用飞机订票系统\n");//打印出系统主界面 do{printf("============================================================= =================== "); printf(" 1.增加航班信息\n" "\t 2.浏览航班信息\n" "\t\t 3.查找航班信息(按航班号)\t\t╮(╯_╰)╭\n" "\t\t\t 4.航班排序(按航班号)\n" "\t\t\t\t 5.订票业务\n" "\to(︶︿︶)o\t\t\t

c语言课程设计报告及源代码_图书馆管理系统剖析

1 设计内容、任务及基本要求 (2) 1.1 设计内容 (2) 1.2 设计任务 (2) 1.3 设计基本要求 (2) 2 总体设计思路 (4) 2.1 系统功能 (4) 2.2 各个模块之间的主要关系 (4) 2.3 总体程序框图 (5) 2.4 系统的总体流程图 (5) 3 功能模块的具体设计 (7) 3.1 main() 函数模块 (7) 3.2查询所有图书信息函数模块 (8) 3.3查询一本图书信息函数模块 (8) 3.4添加图书信息函数模块 (9) 3.5删除图书信息函数模块 (10) 3.6 借阅图书模块 (12) 4 功能模块的调试与测试 (13) 4.1主菜单运行界面 (13) 4.2查询所有图书信息模块运行界面 (13) 4.3查找某一本图书信息模块运行界面 (14) 4.4 添加图书信息模块运行界面 (16) 4.5 删除图书信息模块运行界面 (17) 4.6 借阅图书模块信息运行界面 (79) 5 总结 (22) 6 致谢 (23) 7 参考文献 (24) 9 程序清单 (25)

1.设计内容、任务以及基本要求 1.1设计内容 主要利用c语言的文件操作能力设计开发一个小型的图书管信息管理系统,至少具有如下功能:查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息、删除图书信息以及通过学生学号实现图书借阅功能。操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。 1.2设计任务 要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。掌握模块化编程的基本方法与步骤;巩固和加深学生对C语言课程基本知识的理解与掌握,培养学生利用C语言进行软件操作的能力和技巧。 1.3基本要求 (1)通过提示菜单选择可以进行的操作。 (2)将图书的信息存入文件中,并命名为BookInfo.txt。 (3)将图书借阅情况信息存入文件中,并命名为SendInfo.txt。 (4)在本系统中可以进行管理系统包含的基本操作,其中包括 a)查看所有图书的信息。 b)输入一本图书的图书编号,从当前图书中进行查找,如果找到则显示该图书的相关信息,如果没有找到则给出提示信息。 c)添加一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的图书,如果存在则提示重新输入,否则将该图书按照顺序插入到相应位置。 d)删除一本图书的基本信息,通过输入图书编号,首先查找是否存在该图书编号的

c语言课程设计报告会员卡计费系统源代码

#i n c l u d e//编译预处理指令,引入头文件 #include #include #include #define MAX 10 //自定义符号常量 #define MENU_MAIN_COUNT 7 //主菜单的选项个数 typedef struct member //定义结构体类型member,采用链式存储结构{ char name[MAX]; //姓名 char id[MAX]; //卡号 char sex[2]; //性别 int age; //年龄 float money; //余额 char tel[12]; //电话 struct member *next; //定义一个指针指向下一个会员信息 float cost; //消费金额 }mem; //定义结构体变量mem /*声明函数*/ void menu(); /*声明函数,声明菜单函数*/ void save(mem *p); //声明保存函数 mem *head=NULL; //头指针为NULL mem* get_last(mem *p) //取得链表最后一个元素的节点指针并返回该指针 { if(p->next == NULL) { return p; } else { get_last(p->next); } } void creat_member(mem *pNew) //输入信息操作,会员登记函数 { //创建一个新的会员 char s; printf("卡号:"); scanf("%s",pNew->id); //运用指针输

c语言课程设计报告~图书管理系统

作者:电子商务09-2班卢佳学号:0918230209 《高级语言程序设计(C)》课程设计报告书 设计题目图书管理系统 姓名 专业班级 学号 指导老师 成绩 营销管理学院电子商务系 2011年1月

目录 一引言 (3) 二系统功能和原始数据 (3) 三程序总体设计 (4) 四功能模块函数设计和调试 (5) 五程序清单 (12) 六课程设计总结 (17)

一引言 在理论学习和基础实验的基础上,开发规模较大的程序,掌握应用计算机解决实际问题的基本方法,熟悉C程序开发的全过程.本任务应用指针编制小型的图书管理系统.通过整个程序开发的过程,提高综合应用C语言的能力,编程和调试能力 . 二系统功能和原始数据 (一) 系统功能 (1)主菜单 0.图书信息录入 1.图书信息浏览 2按书名查询图书信息 3.按ISBN查询图书信息 4.增加图书信息 5.按书名排序 6.删除记录 7.保存文件 8.打开文件 9.退出 (2)各项功能 0.图书信息录入:输入图书的名字、ISBN、作者、价格、出版社等。 1. 图书信息浏览:图书的名字、ISBN、作者、价格、出版社等 2.查看与书的名字有关的信息:根据书名查找书。 3.查看与作者有关的书的信息:根据作者查找书。 4.增加书的信息:输入书的名字、ISBN、作者、价格、出版社等。 5按照书名排序:字母的形式排序 6删除记录:删除一条书的信息 7.保存文件 8.文件打开 9.退出

(二) 原始数据 图书信息: 图书信息包括:书名.isbn.分类号.作者.出版日期.出版社.价格文件结构: 书名Isbn 分类号作者出版时 间出版单 位 价格 C语言123 Xx1 谭浩强09-01-21 高等教育 出版社 15 数学234 Xx2 彭辉09-01-21 高等教育 出版社 16 思修345 Xx3 邹邹09-01-21 高等教育 出版社 17 英教456 Xx4 王浩09-01-21 高等教育 出版社 18 应用文567 Xx5 瑞瑞09-01-21 高等教育 出版社 19 概率678 Xx6 雪雪09-01-21 高等教育 出版社 20 管理学789 Xx7 小邹09-01-21 高等教育 出版社 21 线代890 Xx8 周敏09-01-21 高等教育 出版社 22 军事901 Xx9 张向东 刘毅09-01-21 高等教育 出版社 23 运筹012 Xx0 崔崔09-01-21 高等教育 出版社 24 三程序总体设计 (一)数据结构: struct record {

C语言课程设计报告样本

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY C语言程序设计 课程设计报告 课设题目:学生信息管理系统 专业:电气工程及其自动化 班级: 学生信息管理系统 姓名:吕小栋 成绩: 完成日期: 2012年6月18日-2012年6月22日指导教师: 胡宁亚

目录 1.课程设计目的 (2) 2.需求分析 (2) 2.1要求 (2) 2.2任务描述 (2) 2.3运行环境 (3) 2.4开发工具 (3) 3.总体设计 (3) 3.1系统流设计 (3) 3.2系统模块设计 (4) 4.详细设计 (5) 4.1数据结构设计 (5) 4.2模块接口设计 (6) 4.3 以下是几个主要模块的流程图: (7) 5.运行结果 (10) 5.1主菜单界面: (12) 5.2信息录入界面: (13) 5.3信息浏览界面: (14) 5.4 信息查询界面: (14) 5.5信息修改界面: (16) 5.6 信息删除界面: (12) 6.程序调试与测试 (18) 6.1程序调试 (19) 6.2程序测试............................................................................... 错误!未定义书签。 7.问题与不足 (22) 8.建议 (22) 9.编程体会 (22) 10.程序源代码: (22) 11.参考文献 (34) 12.用户使用手册 (34)

1.课程设计目的 1)通过课程设计,加深对结构化程序设计思想的理解,能对系统功能进行分析, 并设计合理的模块化结构。 2)通过课程设计,进一步掌握C语言中重要的数据结构。掌握并熟练运用指针、 链表、结构体、文件等数据结构。 3)通过课程设计,提高程序开发能力,能运用合理的控制流编写清晰高效的程序。 4)通过课程设计,培养C语言知识运用和自学能力,真正的把课堂上获得的知识 运用起来,培养自己对程序编写的兴趣,并能独立设计和实现一个小型系统。 5)通过课程设计,加强了自己的程序分析能力。 2.需求分析 2.1要求 1)遵循软件开发过程的基本规范;能灵活应用,初步具备运用C程序解决实际问 题的能力。 2)运用结构化程序设计方法,按照课程设计题目要求,完成包括需求分析、数据 结构设计、概要设计、详细设计、编写代码、调试和测试C程序等过程。 3)学会利用数组、结构体、链表进行相关信息表示。 4)功能模块划分清晰,系统结构图符合功能操作要求,且有详尽的功能描述 5)各主要功能模块有详尽的流程图及描述,用函数的形式实现,且调用入口、功 能、出口等关系正确。 6)所设计的C程序较好的可读性和可靠性;程序书写风格规范,注释清晰。 7)界面友好(良好的人机互交),凡需要输入信息时,都有较详尽的提示信息,并 对输入信息有较完善的值域分析。 8)程序经上机调试通过,不应出现语法型、功能型错误,并获得满意的结果。 9)学会通过各功能性测试用例测试程序的能力,尽可能避免原则性错误的出现。 10)掌握编写、调试和测试C语言程序的基本技巧,充分理解结构化程序设计的基 本方法。 11)C语言课程设计报告的内容反应实际设计过程,且符合格式要求。 2.2任务描述 此系统以计算机系的学生为背景,提供对学生个人简历信息的录入、修改、

相关文档
最新文档