Skip to content

wangyining73/CQUT-Freshmen-C-Programming-Project

Repository files navigation

CQUT-Freshmen-C-Programming-Project

重庆理工大学计科大一C语言程序设计项目合集

基本介绍

本仓库收录了大一上C语言课程的全部项目,涵盖了基础算法类(6)、字符串类(1)、系统管理类(1)三大模块

开发环境

-语言:C
-编译器:Dev-C++/GCC
-操作系统:Windows

项目亮点

1.模块化程序设计

所有程序均采用模块化设计如菜单模块、数据管理模块、文件读写模块、功能实现模块

2.使用数据结构

在不同的题中合理使用多种数据结构如:
-数组:随机抽取数字记录、存储单词
-结构体:单词信息、图书信息、借阅信息、人员信息
-链表:实现图书管理系统的动态数据管理

3.加权随机算法

主要体现在背单词学系统中,基于熟练度的加权随机抽取算法,通过权重计算+随机区间映射来实现生词多出现,熟词少出现

4.文件持久化存储

如背单词系统中,单词熟练度可保存到文件,程序退出后记录不会消失,下次自动读取

5.用户交互优化

ANSI颜色显示、错词本功能、大小写不敏感输入、菜单交互界面、密码以"*"形式显示存文件是加密储存

6.数学公式运用

辗转相除法找最大公约数(分数加法)、蔡勒公式(万年历)、随机数生成(猜数字、加减、乘除练习)

个人感受

这是作者在github上上传的第一个C语言合集,也是第一次学习C语言课程并完成课设,还是第一次进行答辩。有任何问题请大家指正,我将深刻学习。通过本次学习我也收获颇丰,比如习得了如何用ANSI转义字符改终端上字体颜色使交互界面更加美观、用蔡勒公式计算日期、如何使用txt文件与链表管理用户信息三表联立等。此次答辩,也培养了自己的表达能力(虽然很紧张感觉回答的问题没有达到老师的预期效果)但总算是有收获。希望能帮到大家。

具体题目

1.猜数字游戏

【难度系数】4级
【任务描述】
编写程序,实现一个猜数字小游戏。
游戏规则:两个玩家,一方为电脑,一方为人。一方出数字,一方猜。出数字的一方首先想好 一个正整数,不告诉另一方,然后告知另一方开始猜测。
假设正确数字为98:
如猜测为56,则提示猜测方“猜小了”;
如猜测为109,则提示猜测方“猜大了”;
持续猜测,直到猜中为止,最后显示游戏总时长。
【功能要求】 (1)电脑和玩家可以互换(出数字/猜数字)的身份。 (2)设计简单、友好的交互界面。可反复运行程序,直到用户选择退出为止。

2.整数拆分

【难度系数】3级
【任务描述】
对任意正整数n,将其拆分成若干个正整数之和,输出所有的拆分方案。
正整数的拆分,就是把一个正整数表示成若干个正整数之和的形式。每一种表示方法,就是正 整数的一个拆分方案。例如:
2=1+1
3=1+2=1+1+1=2+1
【功能要求】
(1)输入任意正整数,输出所有拆分方案(允许重复)。
(2)设计简单的交互界面,可反复运行程序,直到用户选择退出为止。

3.分数加法计算问题

【难度系数】3级
【任务描述】
分别给出两个正分数的分子和分母,按分数运算的方法,求这两个正分数之和。
【功能要求】
(1)加数和被加数都是真分数。
(2)如果和的分子分母有公因子,应进行约分。
(3)如果和大于1,应化为带分数。
(4)设计简单的交互界面,可反复运行程序,直到用户选择退出为止。

4.整数乘除法练习器

【难度系数】3级
【任务描述】 编写一个整数乘除法练习器,提供给小学生使用,练习器可进行100以内任意两个整数的乘除 法练习。
【功能要求】
⑴随机生成乘法或除法运算符。
⑵随机生成100以内的两个正整数。
⑶乘法的计算结果不得大于100,否则重新生成题目。
⑷除法的计算结果必须为整数,否则重新生成题目。
⑸每次练习开始前,由用户指定要做的题目数(题目数≤100)。根据题目数,随机产生满足 上述要求的试题。要求所有试题不重复。
⑹对用户输入的答案判断正确与否,并计分,例如答对一题得10分。
⑺练习结束后,统计并输出回答正确和错误的题目数、最后得分,并给出相应的评语。

5.整数加减法练习器

【难度系数】3级
【任务描述】
编写一个整数加减法练习器,提供给小学生使用,练习器可进行100以内任意三个整数的加减 法混合练习。
【功能要求】
⑴随机生成加减混合运算题目,题目中的三个正整数均在100以内,随机生成。
⑵要求无论是中间结果,还是最后结果都不得大于100。
⑶要求无论是中间结果,还是最后结果都不得为负数。
⑷每次练习开始前,由用户指定要做的题目数(题目数≤100)。根据题目数,随机产生满足 上述要求的试题。要求所有试题不重复。
⑸对用户输入的答案判断正确与否,并计分,例如答对一题得10分。
⑹练习结束后,统计并输出回答正确和错误的题目数、最后得分,并给出相应的评语。

6.万年历

【难度系数】5级
【任务描述】
设计并生成一个万年历。
【功能要求】
⑴输入一个年份,在屏幕上输出该年的年历(包括每月的天数和所对应的星期几),并且在每 月的左上角或右上角输出相应的年份和月份,要求输出界面尽可能清晰、美观,符合年历显示规范。 假定输入的年份在1-9999年之间。
⑵输入年、月,输出该月的月历。
⑶输入年、月、日,输出距今天(程序执行的当前日期)有多少天,输出该天是星期几,输出 该天是否是公历节日。

7.背单词系统

【难度系数】4级
【任务描述】
建立一个包含若干词条的词汇表文件,其中每个词条由英文单词和中文释义两部分组成,例如: apple苹果
利用该词汇表文件,实现背单词的功能。
【功能要求】
⑴读取已有的词汇表文件。
⑵能浏览词汇表的全部词条。
⑶背单词功能:由用户指定每次背单词的数目,程序随机挑选指定个数的单词(不重复);程 序给出中文释义,用户则输入相应的英文单词;判断用户输入单词的正误,输入正确记1分;对每 个单词统计总得分;总得分低的单词,为生疏单词,让这类单词多出现。

8.图书借阅管理

【难度系数】5级
【任务描述】
编写一个图书信息管理系统,对学校的图书信息进行管理,实现借书、还书功能。
【功能要求】
⑴管理员功能:
图书信息管理:图书信息包括:编号、书名、作者名、分类号、出版单位、出版时间、库 存数量,价格等。可对图书进行添加、删除、修改、查询、保存、浏览等操作。
读者信息管理:读者信息包括:编号、借阅号、姓名、最大借阅额度、已借阅数量、读者 密码。可对读者信息进行添加、删除、修改、查询、保存、浏览等操作。
提供多种形式的查询:如按书名、按作者名、按出版单位、按出版时间等查询。
借阅信息查询:可按图书、按读者、按作者等,查询相关的借书信息。
还书信息查询:可按图书、按读者、按作者等,查询相关的还书信息。
⑵读者功能:
图书查询功能。
借书功能:读者登录后,选择借书功能。系统检查是否允许该读者借阅(是否超过已借阅 最大数量)。如果允许借阅,进行图书借阅操作:在借阅表中添加新记录,修改图书库存, 修改读者相关信息。
还书功能:读者登录后,选择还书功能。系统查看图书是否超期,超期图书需支付相应费 用。还书时,应在还书表中添加新记录,修改库存,修改读者相关信息。
维护读者个人密码。
⑶设计提示:
管理员、读者分别用密码登录,完成不同的操作。

About

大一上C语言程序设计项目合集:猜数字游戏、整数拆分、分数加法、加减乘除练习器、万年历、背单词系统、图书借阅管理系统

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages