首页 > 编程语言 >C语言程序设计课程设计[2023-01-07]

C语言程序设计课程设计[2023-01-07]

时间:2023-01-07 12:56:10浏览次数:66  
标签:fp 课程设计 01 07 功能 lt tm 数据

C语言程序设计课程设计[2023-01-07]

C语言程序设计课程设计要求

一、 课程设计目的
1.进一步掌握和利用 C 语言进行程设计的能力;
2.进一步理解和运用结构化程设计的思想和方法;
3.初步掌握开发一个小型实用系统的基本方法;
4.学会调试一个较长程序的基本方法;
5.学会利用流程图表示算法;
6.提高自我学习能力, 分析问题与解决问题的能力
6.掌握书写程设计开发文档的能力。

二、 课程设计成绩评定
题目分 1、2、 3 三个难度。评分等级为优秀、 良好、 中等、 及格、不及格五个级别。
(1)完成指定的功能,难度越大,分数愈高;
(2)在完成指定功能的基础上,添加扩展功能,有创意,且成功实现,给与一定的加分;
(3)基本功能完成, 扩展功能未完成或有错误,酌情给分:
(4)难度小的题目,评定成绩最高为良
(5)选择难度最高的题目且通过现场答辩,质量高的学生才能拿优;因疫情无法现场演示, 需要录屏程序运行
情况.
(6)拿优的学生可以利用寒假优化设计。下学期开学选拔后,可参加新生程序设计大赛,大赛奖品丰富,可作
为大学科技创新团队选拔的重要依据.
(7)获得优秀比例,原则上不超过本班总人数的 20%。

三、重要提示

课程设计要求独立完成,严禁抄袭, 如有违反双方不及格论处。

四、设计基本要求

1.只能使用 C 语言编程, 除能使用平台所带的系统标准函数外, 不能使用第三方的软件包
2.要有使用多级文本菜单界面,
3.要有良好整齐的操作界面, 数据输入方便,数据输入格式要有指示
4.显示输出的数据规范整齐
5.能完成数据的查询,统计,修改,删除,排序等功能
6.使用动态链表结构管理数据
7.要有文件读写操作,使用文件保存历史数据
8.保存的测试历史数据条数大于 20 条
9.撰写打印课程设计报告

五>课程设计报告内容:

  • 标准封面:包含课程设计题目,学生信息
  • 设计目标: 内容、系统功能的描述。
  • 总体设计: 包含几大功能模块的描述,画出系统功能模块结构图
  • 详细设计: 各功能函数模块的具体实现,各函数模块的功能介绍,
  • 画流程图表达程序基本结构,图中大小合适,底色干净,用专业软件绘制,不能手绘
  • 数据结构设计与说明,包括数据结构设计描述,参数说明等。
  • 测试与试验结果,包括输入数据和输出结果,每个功能的测试结果截屏
  • 体会与总结, 课程设计完成了哪些功能,有什么扩展功能 有什么地方需要改进,通过课程设计有何
    收获,调试程序的体会等
  • 附录:所有程序代码, 有适当的注释
  • 报告字体格式要求 :
  • 正文字体:宋体, 五号, 行距 1.0 倍。
  • 一级标题:宋体,粗体, 四号,行距 2.0 倍
  • 二级标题; 宋体, 粗体,小四号,行距 2.0 倍
  • 程序代码清单:宋体, 五号, 行距(固定值 12 磅)
    六、应提交材料的方法与截至时间:
  1. 相关电子文档 (所有内容压缩为一个压缩文件)
    a) 课程设计 word 格式报告文档:命名格式: 2021-班号-学号-姓名-课程设计.doc,
    例如: 2022-5-12345678-张三丰-课程设计.doc
    b) 课程设计 pdf 格式报告文档:2022-5-12345678-张三丰-课程设计.pdf
    c) 设计项目文件:包括源程序,编译好的 EXE 应用程序,相关数据文件,使用说明等。
    d) 程序运行的录屏文件: (选做, 但评优的同学必须做)要求录像清晰,不能使用手机录像方式
    以上所有文件放在一个文件夹中,文件夹命名格式:2022-班号-学号-姓名-课程设计,压缩该文件
    夹,形成 2022-班号-学号-姓名-课程设计.rar 的压缩文件后提交。
  2. 电子文档提交时间:2023-1-8 前,学者网上提交,网址: https://coderx.blog.csdn.net,同时
    发送到老师邮箱:[email protected]
  3. 纸质课程设计报告(要求正规打印, A4 幅面,除封面外要求双面打印, 装订好),于 2022 年 1 月 8 日前交
    给学委按班集中提交到工 1-509 我办公室. (如因疫情, 纸质报告可推迟到下学期第一周内提交)
    选择课程设计题目: (任选一题做)

源码

https://pan.baidu.com/s/1pq1Nwwo0hlc_J84F93HM4A?pwd=1111

(一个班里每题选择人数<15 人)

  1. 仓库货物出入管理.**
  • 基本功能:出入货物记录查询与显示, 库存量的查询,统计,显示
  • 入库数据内容: 入库日期,货物名称,数量,价格,保存位置,供货单位,厂家电话
  • 出库数据内容:出库日期,货物名称,数量,使用单位,领用人
  1. 商场 VIP 会员管理与消费统计**
  • 基本功能: 会员管理, 消费数据管理 ,包括添加, 查询,编辑, 删除等
  • 统计功能: 会员消费统计, 店月销售统计 等
  • 会员数据内容: 人名, 性别, 会员编号, 电话, 预存金额,
  • 消费数据内容: 日期, 时间,会员编号, 消费名称, 消费金额, 付款方式
  1. 球场预约信息管理**
  • 基本功能: 球场(篮球,羽毛球,乒乓球)安排信息, 实现修改、删除、显示和查询功能,
  • 统计功能: 某球场月/年统计使用时间, 某人月/年统计使用时间
  • 预约数据内容:日期, 起始时间、终止时间,预约人姓名,联系电话 ,球场编号。
  1. 阅览室图书借阅管理软件***
  • 图书库存信息数据: 书名, 书名编号, 作者, 出版社, 价格
  • 借阅人信息管理: 姓名, 性别, 工号, 单位名称, 电话,
  • 借阅与归还记录数据: 日期, 人名, 书名, 借/还
  • 数据的添加,查询,删除,统计
  1. 俄罗斯方块游戏与数据统计****
    游戏功能:
  • 俄罗斯方块游戏基本功能
  • 游戏场景大小可自由设置
  • 可以设置难度级别(沉降速度等)
  • 屏幕无闪动,键盘操作流畅
    游戏数据记录:
  • 游戏参数设置保存(难度种类,界面,玩家信息)
  • 玩家信息: 玩家姓名, 玩家电话, 累计游戏时间, 游戏积分
  • 游戏历史数据内容保存:玩家姓名,日期时间, 难度级别,游戏总时长, 综合得分
  • 游戏历史数据的查询, 统计, 排行榜(日/周)
    课程设计要解决的几项关键代码:
    基本项:
  • 数据的组织,数据结构的定义(数据链表)
  • 数据链表节点新数据的输入(键盘输入,或程序运行生成)
  • 链表节点数据的全显示
  • 链表节点数据的条件查询,条件显示
  • 链表节点数据的条件删除
  • 数据链表节点数据的排序
  • 数据链表节点数据统计
  • 数据链表节点数据的保存在文件里(文件的写操作)
  • 数据链表节点数据从文件里读取恢复(文件的读操作)
  • 程序用户菜单的设计
  • 某按键状态的读取(菜单命令)
    提高项:(课本外的知识)
  • 系统当前时间读取方法
  • 屏幕清屏,菜单静止无闪动
  • 上下左右键的读取与操作
  • 设置字符要显示的位置
  • 设置字符颜色和背景颜色
  • 隐藏/显示控制台的光标:
  • 声响的发出
    课程设计可用到的一些参考代码:
  • 链表的定义,链表节点的创建,添加,查询,删除,显示 (参考课本)
  • 清屏: system("cls"); //注意加#include <windows.h>
  • 发声: Beep(2000,250) //第一个参数频率 Hz, 第二个参数时间长短(单位 ms)
  • 清键盘缓冲区: fflush(stdin) ;
  • windows 上用 C 语言隐藏/显示控制台光标:
#include <Windows.h>
void HideCursor()
{
 HANDLE fd = GetStdHandle(STD_OUTPUT_HANDLE);
 CONSOLE_CURSOR_INFO cinfo;
 cinfo.bVisible = 0;
 cinfo.dwSize = 1;
 SetConsoleCursorInfo(fd, &cinfo);
}
  • 设置显示的位置
#include <Windows.h>
void gotoxy(int x, int y) {
 COORD pos = { x,y };
 HANDLE hOut = GetStdHandle(STD_OUTPUT_HANDLE);// 获取标准输出设备句柄
 SetConsoleCursorPosition(hOut, pos);//两个参数分别是指定哪个窗体,具体位置
}
  • 控制台显示颜色;
    设置默认的控制台前景和背景颜色。
    COLOR [attr]
    attr----指定控制台输出的颜色属性。颜色属性由两个十六进制数字指定 -- 第一个对应于背景,第二个
    对应于前景。每个数字可以为以下任何值:
 0 = 黑色 8 = 灰色
 1 = 蓝色 9 = 淡蓝色
 2 = 绿色 A = 淡绿色
 3 = 浅绿色 B = 淡浅绿色
 4 = 红色 C = 淡红色
 5 = 紫色 D = 淡紫色
 6 = 黄色 E = 淡黄色
 7 = 白色 F = 亮白色

例如; color 4e
C 语句: system("color 4e");
如果没有给定任何参数,此命令会将颜色还原到 CMD.EXE 启动时的颜色。
或使用 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), attr);函数设定
或使用 printf 的颜色特效控制串: “\033[字体颜色码;背景颜色码 m”
例如: printf("\033[33;44m"); 黄字, 蓝底.
printf("\033[32;40m"); 绿字,黑底

  • 常用文件操作
FILE *fp;
fp=fopen(filename,"w+"); 要判断是否成功,如果 fp==NULL 说明打开文件失败
fscanf(fp,"%d%s%f",&intVal, buf, &floatVal); 从文件读取数据:
fprintf(fp, "%d %s %.1f \n", intVal, buf, floatVal); 数据写入到文件:
fclose(fp);
Visual studio 下的关键文件操作函数:
FILE *fp;
fopen_s( &fp, "d:\\data.txt", "w+" );
fprintf_s(fp, "%s", string);
fclose(fp);
fseek( fp, 0L, SEEK_SET );
fscanf_s( fp, "%s", s, 50); // 读字符串,要加上字符串长度参数,50 需依照实际设置
fscanf_s( fp, "%ld", &l ); // 读整数
fscanf_s( fp, "%f", &fp ); // 读浮点数
fscanf_s( fp, "%c", &c, 1 ); //读单个字符,注意要加上参数 1
fscanf_s(fp,"%ld%s%s%f",&num, name,50, address,50, &score); //50 需依照实际设置

字符串处理函数在 vs 需要更换名称,调用参数也需要改变

gets(a): gets_s (a, 100); //100 表示数组大小, 需要根据实际数组的定义修改
strcpy(s1,s2) : strcpy_s (s1, strlen(s2)+1, s2);
strcat(s1,s2) : strcat_s (s1, strlen(s1)+strlen(s2)+1, s2);
  • 按键操作头文件: #include <conio.h>
  • 判断按键状态: if(kbhit()) 或 vs 系统: if(_kbhit()) 是否有键按下
  • 清键盘缓冲区: fflush(stdin) ;
  • 无回显的读取按键函数: c=getch() 或 vs 系统: _getch()
    读取键值: if (kbhit()) key=getch();
    注意敲击箭头键会出现两个字符数据: LEFT(-32,75), UP(-32,72), DOWN(-32,80),Right(-32,77)
  • 也可以用下列语句读取上下左右,空格键的状态
if (GetAsyncKeyState(VK_LEFT) ) ......左键处理语句......;
 if (GetAsyncKeyState(VK_RIGHT) )........;
 if (GetAsyncKeyState(VK_UP) )..........;
 if (GetAsyncKeyState(VK_DOWN) )........;
 if (GetAsyncKeyState(VK_SPACE)).......; //空格
  • 读取系统的时间示例:
#include <time.h>
int main()
{
 time_t t;
 struct tm *lt;
 time(&t); //获取时间戳。
 lt=localtime(&t);//转为时间结构。
 printf("%d/%d/%d %d:%d:%d\n",lt->tm_year+1900,lt->tm_mon+1,lt->tm_mday,lt->tm_hour,
 lt->tm_min,lt->tm_sec);
 return 0;
}
  • 播放背景音乐
#include <mmsystem.h>

添加编译命令: -lwinmm //在 vscode 里修改 tasks.json 的 args 项 “-lwinmm”

mciSendString("open mu.mp3 alias Star", NULL, 0, NULL); //mu.mp3 是你播放的音乐文件
mciSendString("play Star repeat", NULL, 0, NULL);

录屏方法: 可以使用 PPT 软件的内部功能
具体方法使用请百度查询, 或采用其他录屏软件
vsCode 原缺省的编码方式是 UTF-8, 可以打开设置菜单, 设置其缺省编码是 GBK

标签:fp,课程设计,01,07,功能,lt,tm,数据
From: https://www.cnblogs.com/codewriter/p/17032475.html

相关文章

  • 001.Stream介绍
    1.介绍  2.Stream示例  3.常用方法 ......
  • Oracle数据恢复故障处理之启动报错:ORA-03113: end-of-file on communication channel
    lsnrctl启动实例startup报错ORA-03113:end-of-fileoncommunicationchannel $su-oracleStep1:Youneedtolookatthealertlog.Itisn'tin/var/logas......
  • 【230107-1】给定等式:2x平方+3x+5m=0,若其一根大于1,求m的取值范围?
    Givenanequation:2x*x+3x+5m=0.Ifonerootoftheequationislargerthan1,thenthevaluerangeofmis()A.m<-1B.|m|<1C.0<m<1D.m<=-1释义:给定等式:2x*x+3x+5m=0,若其......
  • [RMQ记录] P2048 [NOI2010] 超级钢琴
    题目如果枚举所有的情况肯定是不行的。不过可以发现一些对答案完全没有影响的答案也被枚举,十分浪费时间,所以下面介绍一种很好的思路。首先,考虑优化暴力(暴力指用堆维护每......
  • Allure07-动态用例标题、用例描述和测试步骤
    动态用例标题allure.dynamic.title('动态用例标题')必须放在函数、方法之内可以使用参数化的参数每条用例执行一次会覆盖@allure.title动态用例描述allure.dynamic.descrip......
  • Alluer01-介绍
    什么是allureallure是一款轻量级并且非常灵活的开源测试报告框架支持绝大多数测试框架,例如TestNG、Pytest、JUint等简单易用,易于集成在python中使用allure,需要安装allure-p......
  • 新概念第一册101~110单元学习笔记
    ChapterOnehundredandone:acardfromjimmyDialogue间接引语:1、引号去掉2、转换人称3、添加引导词tha直接引用:实际讲得话放在引号中间‘ihavejustarrivedinScotla......
  • 2023 0107 关于英语思维之翻译
    在英语学习过程中,很关键的一个因素,就是形成英语思维.你能够熟练的使用合适的单词,短语,加上正确的时态,以及句子结构,构成一个正确的句子.要想构成一个或者说出来一个......
  • 2023年01月编程语言流行度排名
    点击查看最新编程语言流行度排名(每月更新)2023年01月编程语言流行度排名编程语言流行度排名是通过分析在谷歌上搜索语言教程的频率而创建的一门语言教程被搜索的次数越多......
  • C/C++学生信息管理系统[2023-01-06]
    C/C++学生信息管理系统[2023-01-06]题目6学生信息管理系统(任选)本系统要求设计一个学生信息管理系统,能够进行学生信息的录入、查找,要求考虑查找效率。本题目要求采用......