C语言程序课程设计.docx
- 文档编号:25614287
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:19
- 大小:221.96KB
C语言程序课程设计.docx
《C语言程序课程设计.docx》由会员分享,可在线阅读,更多相关《C语言程序课程设计.docx(19页珍藏版)》请在冰豆网上搜索。
C语言程序课程设计
课程设计
课程名称 C语言程序课程设计
学生学院福州职业技术学校
专业班级技术工程系
09应用电子(3)班
学号200902013325
学生姓名郑长树
指导教师刘焕军
2010年12月30日
福州职业技术学院课程设计任务书
题目名称 建立一个可以可以随时检索、删除、或增加新记录,保存或取消新的记录的文件程序
学生学院 福州职业技术学院
专业班级 技术工程系09应用电子(3)班
姓 名 郑长树
学 号 200902013325
目录
一、课程设计的目的
二、课程设计的内容和要求
三、系统分析和设计
四、实验结果
五、课程设计进程安排
六、总结
七、应收集的资料及主要参考文献
八、附录:
程序清单
一、课程设计的目的
1、通过本课程设计,培养上机动手能力,使学生巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关;
2、为后续各门计算机课程的学习打下坚实基础。
3、理解程序设计的思路,掌握结构化程序设计的方法,综合使用C语言进行程序编写,巩固常用的C语言概念,如数组、指针、结构体、链表、文件操作等,注意良好的程序设计风格的培养。
提高编写程序解决实际问题的能力、调试程序的技能。
二、课程设计的内容和要求
1建立文件
存储文件使用指定文件名或默认文件名;
可以不保存输入记录,但需要确认是否保存输入记录
如果已有文件,只能在其后追加;
新增记录可以不存入原文件中,以可以用原来的文件覆盖内存的内容;
可以将多个文件合并到一个文件中;
2文件的存取和显示
可以单独存取文件;
可以随时显示内存中记录的全部内容;
可以直接存取默认文件或指定文件;
3删除记录
可以按“姓名”或“电话”方式删除记录并更新内存结构体数组内容;
能给出被删除的信息,输出没有找到的信息;
如果已经是空数组,删除时应给出信息并返回主菜单;
如果没有要删除的信息,输出没有找到的信息;
删除操作仅限于内存,只有执行记录时,才能覆盖原记录;
4查询记录
可以按“球衣号码”方式查询记录
能给出查询记录的信息;
如果查询的信息不存在,输出没有找到的信息;
5整体功能
A可以随时检索、删除、或增加新记录,保存或取消新的记录
B使姓名可由10位字符组成
C将输出信息加上输出信息信息栏
D使用菜单实现功能的正确的选择
6测试程序
应列出测试大纲对程序进行测试;
应保证测试用例测试到程序的各种边缘情况
三、系统分析和设计
说明:
对要设计的系统进行需求分析、总体设计(包含几大模块)、画出系统功能模块结构图、必要的详细设计(包含流程图或者伪代码)、数据结构的说明。
3.1.需求分析
1.将数据保存在文件中
2.录入数据,按球员号码排序
3.按球员号码删除球员资料
4.按球员号码查询球员资料
5.直接退出系统界面
3.2.概要设计
1.建立Creadatat()函数,显示printdata()函数。
2.插入inserdatat()函数。
3.删除Deletedata()函数。
4.查找find()函数。
5.退出系统closedata()函数。
3.3.详细设计
3.4.数据结构设计
通过定义结构体数组来存放球员的名字,球衣号码,年龄,升高,体重!
四、实验结果
主菜单界面:
0.原始资料输入界面:
1.打开文件显示原始数据:
2.录入资料后结果:
(1)
(2)
3.删除球员后的结果:
(1)
(2)
4.查找球员后的结果:
5.退出系统界面:
五、课程设计进程安排
序号
设计各阶段内容
地点
起止日期
1
主界面设计
实验楼二号楼206
1.3上午
2
文件保存读取设计
实验楼二号楼206
1.3上午
3
录入函数设计
实验楼二号楼206
1.3下午
4
删除函数设计
实验楼二号楼206
1.3下午
5
查找函数设计
实验楼二号楼206
1.3下午
六、总结
这次课程设计的开始阶段,我使用了链表来对数据进行维护、保持,本来以为用链表会比较容易,但由于自己对链表不熟悉,结果使得过程进行得很慢,也越做越乱!
最后没办法就只能采用结构体数组!
由于结构体数组比较容易理解,因此各个模块的函数设计也就加快了!
最后顺利地完成了这次课程设计的任务!
回顾整个过程,开始阶段进程慢,也没对整个系统的设计分好模块,造成编程混乱!
所以这次课程设计给我比较大的感触就是当一个C文件要实现多项功能的时候,一定要采用结构化设计,才能使程序结构分明,容易编,容易读,容易改错,缩短编程时间!
此外,当老师最后说我知道你是自己编的时候,顿时感觉很自豪!
尽管不是什么了不起的事,但真的体验到了付出就有收获的快乐!
七、应收集的资料及主要参考文献
【1】谭浩强.C程序设计(第三版)【M】,北京:
清华大学出版社,2005.9
【2】谭浩强.C程序设计题解与上机指导(第三版)【M】,北京:
清华大学出版社,2005.7
【3】BrianW.Kernighan&DennisM.RitchieTheCProgrammingLanguage(SecondEdition),机械工业出版社2006.8
【4】顾元刚.C语言程序设计教程,北京:
机械工业出版社,2004.6
【5】顾小晶.实用C语言简明教程,北京:
中国电力出版社,2003.9
发出任务日期:
10年12月1日 指导老师签名:
计划完成日期:
11年1月3日 基层教学单位负责人签章:
主管院长签章:
附录:
程序清单
/*Note:
YourchoiceisCIDE*/
#include"stdio.h"
#include"string.h"
#include"conio.h"
#include"process.h"
#defineSIZE5
structrockets
{
charname[10];
intnum;
intage;
floatheight;
floatweight;
}pr[22],inpr[10];
inti,j,k,a=5,n;
/*原始资料保存*/
voidsave()
{FILE*fp;
inti;
if((fp=fopen("stu.dat","wb"))==NULL)
{printf("cannotopenfile\n");
return;
}
for(i=0;i if(fwrite(&pr[i],sizeof(structrockets),1,fp)! =1) printf("filewriteerror\n"); fclose(fp); } /*读取文件资料*/ voidload() {FILE*fp; inti; if((fp=fopen("stu.dat","rb"))==NULL) {printf("cannotopenfile\n"); return; } for(i=0;i if(fread(&pr[i],sizeof(structrockets),1,fp)! =1) {if(feof(fp)){fclose(fp);return;} printf("filereaderror\n"); } fclose(fp); } /*原始球员资料输入*/ voidcreatdata() { inti; printf("请输入NBA火箭队五个球员的资料: \n"); printf("\n名字号码年龄身高体重\n"); printf("------------------------------------------------------------------\n"); for(i=0;i {scanf("%s%d%d%f%f/n",pr[i].name,&pr[i].num,&pr[i].age,&pr[i].height,&pr[i].weight); } } /*资料显示*/ voidprintdata() { printf("\n名字号码年龄身高体重\n"); printf("------------------------------------------------------------------\n"); for(i=0;i printf("%-10s%3d号%3d岁%6.2f米%6.2f公斤\n\n",pr[i].name,pr[i].num,pr[i].age,pr[i].height,pr[i].weight); } /*屏幕显示有关函数,使输出的资料停留在屏幕*/ voidflag() {chare; voidfun(); printf(""); e=getchar(); if(e=='') fun(); } /*打开球员资料*/ voidopenfile() {load(); printf("文件已打开,球员资料如下所示: "); printdata(); flag(); } /*录入球员资料*/ voidinsertdata() { printf("请输入要录入球员的人数n: "); scanf("%d",&n); if(n>10) printf("错误: 无法一次插入多于10个球员的资料! "); else { {printf("\n名字号码年龄身高体重\n"); printf("------------------------------------------------------------------\n"); for(k=0;k {scanf("%s%d%d%f%f",inpr[k].name,&inpr[k].num,&inpr[k].age,&inpr[k].height,&inpr[k].weight);} } for(k=0;k {if(inpr[k].num>=pr[a-1].num) {strcpy(pr[a].name,inpr[k].name); pr[a].num=inpr[k].num; pr[a].age=inpr[k].age; pr[a].height=inpr[k].height; pr[a].weight=inpr[k].weight; } else {for(i=0;i {if(pr[i].num>inpr[k].num) {for(j=a-1;j>=i;j--) {strcpy(pr[j+1].name,pr[j].name); pr[j+1].num=pr[j].num; pr[j+1].age=pr[j].age; pr[j+1].height=pr[j].height; pr[j+1].weight=pr[j].weight; } {strcpy(pr[i].name,inpr[k].name); pr[i].num=inpr[k].num; pr[i].age=inpr[k].age; pr[i].height=inpr[k].height; pr[i].weight=inpr[k].weight; save(); } break; } } } a=a+1; } printdata(); } flag(); } /*删除球员资料*/ voiddeletedata() {intno[10]; printf("请输入要删除的球员人数n: "); scanf("%d",&n); if(n>10) printf("错误: 无法一次删除多于10个球员的资料"); else { printf("请输入要删除的火箭队球员的号码: ");
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 课程设计