第一篇:C语言课程设计报告(参考)
C语言课程设计报告
专 业:网络工程 学 号:11102101 姓 名:步乾豪 提交日期:2012-6-21
C语言课程设计报告
【设计目的】 1.教学目的
本课程设计是学生学习完《C语言程序设计》课程后,进行的一次全面的综合训练,通过课程设计,更好地掌握使用C语言进行程序设计的方法,加深对C语言特点和使用C语言进行程序设计开发过程的理解,加强动手能力。其主要目的是:
(1)进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;
(2)针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
(3)掌握C语言的编程技巧和上机调试程序的方法。(4)掌握程序设计的常用算法。2.教学要求
(1)要求从所给题目中任选若干个,每个学生必须独立完成课程设计,不能互相抄袭。(2)设计完成后,对所完成的工作进行答辩。(3)要求写出一份详细的课程设计报告。
(4)程序设计题目,须提交相应的程序,并需提供加注释的源程序,能正常运行。……………………………………..【设计内容】
学生信息管理系统 程序说明:
本程序属于非数值计算型算法设计,学生需要设计出学生管理系统所需要的基本功能,并设计简单的界面(无需图形化)。本程序主要考察对自定义函数的熟悉程度,本程序中主要使用到的是数组(链表)的相关操作,包括数组(链表)的输入、输出、查找、插入、删除等操作,需要对数组(链表)有比较深入的掌握。
设计要求:
(1)通过提示菜单选择可以进行的操作。
(2)将学生的信息存入文件中,并命名为StudentInfo.txt。(3)在本系统中可以进行管理系统包含的基本操作,其中包括
a)查看所有学生的信息
b)输入一个学生的学号,从当前学生中进行查找,如果找到则显示该学生的相关信息,如果没有找到则给出提示信息
c)添加一个学生的基本信息,通过输入学号,首先查找是否存在该学号的学生,如果存在则提示重新输入,否则将该学生按照顺序插入到相应位置
d)删除一个学生的基本信息,通过输入学号,首先查找是否存在该学号的学生,如果存在则将该学生删除,否则给出提示信息,提示该学生不存在
(4)学生基本信息包括学号、姓名、性别和专业这些简单信息
C语言课程设计报告
(5)学生信息文件中每一行存放一个学生的信息 ………………………………….【实验环境】 1.硬件环境
开发硬件:Thinkpad E520计算机
因特尔酷睿I5处理器,8GB运存,1GB独立显卡,500G硬盘存储,2.软件环境
开发环境:Windows 7旗舰版操作系统
开发软件:Microsoft Visual 6.0 C++软件
【设计中使用函数说明】
定义并使用的文件: void scanproduct()
【测试结果】
1)创建链表、插入新信息、删除信息、显示信息、修改信息。
2)测试数据
【设计总结】
一.对该设计题目有何更完善的方案
1、对自己完成程序进行自我评价
完成了课程设计的基本要求,同时在此基础上进行了一些创新,使用了多文件,使程序看起来更清晰更有条理。但由于能力有限,以及对C++的认识不深,其中还有不够完善合理的地方。
2、对课题提出更完善的方案
增加按照成绩对链表进行排序的功能,使学生信息能够按照成绩的高低进行显示,能够更清晰地显示学生的学习情况。二.收获及心得体会
1、通过本次课程设计,自己在哪些方面的能力有所提高
加深了对利用C++语言进行程序设计的理解,提高了对函数的运用能力,提高了软件系统分析能力和使用多文件、归纳总结的能力。
2、收获和心得体会
通过自己对单项链表的学习,熟悉了链表的建立、插入、删除等操作方法。通过这次课程设计使我明白了自学的重要性,有了一些自学的学习方法和技巧,并且要积极的与其他同学共同讨论,在讨论中才能找到自己认识的不足,改正自己的错误。【参考文献】 书籍:
1.《C语言程序设计第四版(谭浩强)》 2.《C语言程序设计课程上机指导》 3.《C语言程序设计第三版》
C语言课程设计报告
网站推荐:
http://(TC所有函数功能及使用查询)http://www.xiexiebang.com/(编程爱好者:里面有各种编程资料)
【源程序清单】 系统设计与分析
2.1.1第一模块界面及实现代码 其对应的函数如下: int main(){
int i;wenbenload();do { system(“cls”);printf(“nnnnnn”);printf(“***************************欢迎使用商品订购系统*******************************n”);printf(“ 作者: 网络11102101 步乾豪n”);
printf(“ ┏━━━━━━━━━━━━━━━━━━━┓n”);printf(“ ┃ 1.浏览商品信息 ┃n”);printf(“ ┃ 2.订购商品 ┃n”);printf(“ ┃ 3.订单查询 ┃n”);printf(“ ┃ 4.搜索商品 ┃n”);printf(“ ┃ 5.管理菜单 ┃n”);printf(“ ┃ 0.退出系统 ┃n”);printf(“ ┗━━━━━━━━━━━━━━━━━━━┛n”);printf(“********************************************************************************n”);
printf(“nntt请输入你的操作(0~5): ”);
scanf(“%d”,&i);switch(i){ case 1: system(“cls”);scanproduct();3
C语言课程设计报告
n“);
break;case 2:
system(”cls“);dinggou();break;
case 3: system(”cls“);
lookdinggou();break;searchproduct();break;case 4: case 5: secondmain();break;
case 0: //退出系统的界面
system(”cls“);printf(”nnnnnnnn“);printf(”nnttt欢迎使用本系统nnnnnttt欢迎再次使用
exit(0);//exit用于随时结束程序
}while(1);return 0;
} } 其中的wenbenload()用于从文本中导入商品信息
2.1.2 第二模块的界面及实现代码
如果选择的操作是主界面的1时,而产品文件为建立时会显示下图:
图2.3第二模块界面图
该程序的实现是通过以下代码实现的: void scanproduct(){
int i;system(“cls”);printf(“ttttt商品信息列表n”);for(i = 0;i < inumber;i++)4
C语言课程设计报告
} {
} printf(“nnnnnnttt”);printf(“返回主菜单n”);printf(“ttt”);system(“pause”);return;printf(“名称 : %sn”,a[i].name);printf(“货号 : %dn”,a[i].number);printf(“厂家 : %sn”,a[i].vender);printf(“产地 : %sn”,a[i].filed);printf(“存量 : %dn”,a[i].stock);printf(“单价 : %.2lfnnn”,a[i].unvalent);2.1.3 第三模块的实现及代码 该程序实现代码如下: void dinggou(){ char ch;int i, j, t, c = 1;int n = 1;int m = 0;
do {
switch(n){ case 1: system(“cls”);
printf(“tttt商品信息列表n”);//显示商品的名称、货号信息,以便于订购 printf(“名称t 货号t 库存n”);for(i = 0;i < inumber;i++){
printf(“%st %dt %dnnn”,a[i].name,a[i].number,a[i].stock);
C语言课程设计报告
} printf(“nnn”);printf(“tttt商品订单n”);printf(“nttt请输入你的第%d个订单信息:n”,m + 1);
printf(“nttt货号:”);
fflush(stdin);
scanf(“%d”,&b[ibuy].bgname);
//检测是否含有此商品
j = 1;
for(i = 0;i < inumber;i++)
{
if(a[i].number == b[ibuy].bgname)
{
j = 0;
t = i;
}
}
//若有商品继续购买项目
if(j == 0)
{
printf(“nttt订购量:”);
fflush(stdin);
scanf(“%d”,&b[ibuy].bmany);
if(a[t].stock >= b[ibuy].bmany){
a[t].stock = a[t].stock-b[ibuy].bmany;//买后商品的库存计算
printf(“nttt日期时间:”);
fflush(stdin);
scanf(“%d”,&b[ibuy].btime);
printf(“nttt客户名:”);
fflush(stdin);
gets(b[ibuy].bname);
printf(“nttt客户地址:”);
fflush(stdin);
gets(b[ibuy].baddress);
printf(“nttt客户号:”);
b[ibuy].bnumber = bgnumber;
printf(“%dn”,b[ibuy].bnumber);
bgnumber++;
ibuy++;
m++;6
顾客购C语言课程设计报告
printf(“nnntttt”);
system(“pause”);} else { printf(“nnttt订购数目超出库存n”);
printf(“ttt”);
system(“pause”);
} } //若没有商品的提示及操作
else {
printf(“nnttt查无此货n”);
printf(“ttt”);
system(“pause”);}
case 2: printf(“是否继续输入订购?(Y/N)”);fflush(stdin);scanf(“%c”,&ch);if(ch == 'N' || ch == 'n'){
c = 0;
break;} else if(ch == 'Y' || ch == 'y'){
c = 0;
n = 1;
break;} else if(ch!= 'n' || ch!= 'N' || ch!= 'Y' || ch!= 'y'){
n = 0;
c = 1;
break;} case 0:
C语言课程设计报告
} if(c == 1){ } n = 2;
}while(ch!= 'n' && ch!= 'N');system(“cls”);
return;} 2.1.4 第四模块的实现及代码 该程序实现代码如下: void lookdinggou(){ int i;system(“cls”);printf(“ttttt订单列表n”);for(i = 0;i < ibuy;i++){
printf(“货号 : %dn”,b[i].bgname);printf(“订购量 : %dn”,b[i].bmany);printf(“日期时间 : %dn”,b[i].btime);printf(“客户名 : %sn”,b[i].bname);printf(“客户地址 : %sn”,b[i].baddress);printf(“客户号 : %dnnn”,b[i].bnumber);
} printf(“nnnnnnttt”);printf(“返回主菜单n”);printf(“ttt”);system(“pause”);return;} 该代码中用到了指针,并用到了链表的建立和删除,当然也涉及到了结构体。2.1.5 第五模块的实现及代码 通过以下代码实现: void searchproduct(){
int i;int j;char ch;int n = 1;do
C语言课程设计报告
{
switch(n){ case 1: system(“cls”);
printf(“tttt商品列表n”);//显示商品的名称、货号信息,以便于下部的删除 for(i = 0;i < inumber;i++){
} //商品的搜索
printf(“nnntttt请输入你要搜索商品的ID:”);scanf(“%d”,&j);if(0<=j&&j<=inumber)printf(“名称 : %sn”,a[i].name);printf(“ID : %dn”,i);printf(“库存 : %dnnn”,a[i].stock);
{ printf(“名称 : %sn”,a[j].name);printf(“货号 : %dn”,a[j].number);printf(“厂家 : %sn”,a[j].vender);printf(“产地 : %sn”,a[j].filed);printf(“存量 : %dn”,a[j].stock);printf(“单价 : %.2lfnnn”,a[j].unvalent);}
case 2:
} printf(“是否继续搜索商品?(Y/N)”);fflush(stdin);scanf(“%c”,&ch);if(ch == 'N'|| ch == 'n'){ } if(ch ==' Y'|| ch == 'y'){
} n = 1;break;break;9
C语言课程设计报告
} }while(ch!= 'n' && ch!= 'N');
printf(“nnnnnnttt”);printf(“返回主菜单!n”);printf(“ttt”);system(“pause”);return;2.1.6 第六模块的实现及代码 该代码如下: void secondmain(){
int i;
do {
system(“cls”);printf(“nnnnnnn”);
管
理
维
护
子
菜
单printf(“******************************************************************nn”);n“);n”);n“);n”);n“);
printf(” ┏━━━━━━━━━━━━━━━━━━━┓printf(“ ┃ 1.输入全部商品 ┃printf(” ┃ 2.增加商品 ┃printf(“ ┃ 3.删除商品 ┃printf(” ┃ 4.储存商品 ┃printf(“ ┃ 5.储存订单 ┃
C语言课程设计报告
n”);n“);printf(” ┗━━━━━━━━━━━━━━━━━━━┛printf(“ ┃ 0.返回上一级 ┃nnn”);printf(“********************************************************************************nnnnn”);
printf(“nntt请输入你所要选择的功能(0~5): ”);
scanf(“%d”,&i);
switch(i){
case 1:
system(“cls”);jianpanload();break;
case 2:
system(“cls”);addproduct();break;case 3:
system(“cls”);deleteproduct();break;
case 4:
system(“cls”);
C语言课程设计报告
saveproduct();break;case 5:
system(“cls”);savedinggou();break;
} case 0:
system(“cls”);
return;
}while(1);
printf(“tttt”);system(“pause”);system(“cls”);return;}该代码用于商品信息文件的建立生成,存储商品信息和订单。
2.2 软件的数据(结构)设计
先定义全局变量用于控制商品数量和订单数量如下: #include
int bgnumber = 023;//客户号
int inumber = 0;//商品量的统计 int ibuy = 0;//订单的统计
C语言课程设计报告
void secondmain();
//管理维护子菜单 void jianpanload();//输入商品 void scanproduct();//浏览商品 void searchproduct();//搜索商品 void dinggou();//订购商品 void lookdinggou();//查询订单 void addproduct();//增加商品 void deleteproduct();//删除商品 void saveproduct();//保存商品 void savedinggou();//保存订单 void wenbenload();//从文本导入商品
struct product {
char name[30];int number;char vender[30];char filed[100];int stock;
double unvalent;
//商品名 //货号 //厂家 //产地 //存量 //单价
};struct product a[100];
struct dinggou {
int bgname;//货号 int bmany;
int btime;
char bname[100];
//订购量 //日期时间 //客户名
char baddress[100];//客户地址 int bnumber;//客户号
};struct dinggou b[100];
第二篇:C语言课程设计报告
C语言课程设计报告
班
级:
10电子本1
学
号:
10303033122
姓
名:
指导老师:
方文森
完成日期:
温州大学城市学院课程设计
目 录
1、课程设计目的和要求.....................................................................................................2
2、课程设计任务内容.........................................................................................................2
3、详细设计说明.................................................................................................................3
3.1分析.........................................................................................................................3 3.2软件设计.................................................................................................................3 3.3软件调试(对编程中的错误进行记录,并给出你的解决办法).....................3
4、软件使用说明.................................................................................................................4
5、课程设计心得与体会.....................................................................................................4 附录1:参考文献................................................................................................................5 附录2:部分程序清单(带有较详细的注释)................................................................5
温州大学城市学院课程设计
C语言课程设计报告
1、课程设计目的和要求
目的:(1)巩固和加深学生对C语言课程的基本知识的理解和掌握(2)掌握C语言编程和程序调试的基本技能(3)利用C语言进行基本的软件设计(4)掌握书写程序设计说明文档的能力(5)提高运用C语言解决实际问题的能力 要求:(1)分析课程设计题目的要求(2)写出详细设计说明
(3)编写程序代码,调试程序使其能正确运行(4)设计完成的软件要便于操作和使用(5)设计完成后提交课程设计报告
2、课程设计任务内容
1)一个班级有4个学生,共学习5门课程(大学英语、高等数学、C语言程序设计、VB程序设计、大学语文)。要求编写程序完成相应功能。2)
输入并保存]5门课程名称;
3)
输入并保存]4个学生的学号及其[个人相关信息]; 4)
输入并保存]每个学生对应的每门课程成绩; 5)求出每门功课的平均分;
6)找出有两门以上功课不及格的学生,输出他们的学号和全部课程成绩及该学生5门课程的平均成绩;
7)找出平均成绩在90分以上或者全部课程成绩在85分以上的学生,输出他们的学号和全部课程成绩及该学生5门课程的平均成绩;
8)计算每位学生的总分,并按总分进行排名,按由高到低输出他们的学号及总成绩; 9)对前面问题进行优化,即在一维数驵的基础上,考虑采用二维数组、函数及其参数传递的方式来解决相关问题;
10)对前面问题进行优化,在学号的基础上,增加学生的其它个人信息,包括:学号、姓名、年龄、性别,并采用结构体形式加以表示; 11)利用文件实现对输入及分析输出数据的存取操作。
12)参照教材P27页,3-11题引入选择功能,输入功能编号可以实现以上功能(考虑清屏函数,自查)。
温州大学城市学院课程设计
3、详细设计说明
3.1分析
3.2软件设计
开始菜单(功能选择)Key=?Key=1Key=2Key=3Key=4Key=5Key=0Key=99Key=6Key=7Key=8Key=9Key=10写入课程名读取课程名输入学生信息读取学生信息建立了学生信息及课程名称?退出程序读取课程、学生、成绩读取课程成绩输出功课的平均分两门以上功课不及格的学生输出高分的学生总分由高到低排序No保存保存Yes输入课程成绩(提示)必须输入课程名称、学生信息才能建立成绩保存清屏
3.3软件调试(对编程中的错误进行记录,并给出你的解决办法)
取地址。
温州大学城市学院课程设计
4、软件使用说明
1.2.3.4.5.6.7.8.9.10.11.12.[99]读取课程、学生、成绩 [1]输入课程名称.[2]读取课程名称.[3]输入学生信息.[4]读取学生信息.[5]输入课程成绩.[6]读取课程成绩.[7]功课的平均分.[8]两门以上功课不及格的学生 [9]-高分的学生-.[10]学生总分排序.[0]退出应用程序.5、课程设计心得与体会
在大家的共同努力下,忙碌了两个星期,我们顺利完成了对此程序的编译及试运行。在设计程序的过程中,我们了解到要设计一个完整的程序,其中最难的可能就属设计整个程序的框架,其中可能会需要经过很多次的修改与调试,所以必须要有耐心,直至最后设计出自己想要的程序。
另外平时学习c语言的基础也很关键,因为如果平时学得就不怎么样,那么你面对这么一个比较有难度的程序,可能会望而却步,看懂他人的程序都是个难点,更别说让自己去设计。为了解决此类问题,最好就是多向同学,老师请教,查找资料。
设计一个程序的过程就是解决一个实际问题的过程,从解决实际问题的角度,我们可以这样来看:首先要了解这个问题的基本要求,即输入、输出、完成从输入到输出的要求是什么;在次我们必须捋清思路,逐一的解决问题的各个方面,即从输入开始入手,着重考虑如何从输入导出输出,在这个过程中,可确定所需的变量、数组、函数,然后确定处理过程--算法。
感谢这次的课程设计,它使我更加深刻地体会到c语言程序编写过程的严谨与细致,还有就是无论做任何事都要有耐心。当然团队合作也是非常重要的一个环节,这会使你在学习过程中倍感轻松
总的来说,这次程序设计让我获益匪浅,对C语言也有了进一步的认识:C语言功能高、表达能力强、使用灵活方便、目标程序效率高等等。C语言是在国内外广泛使用的一种计算机语言,相信除了以上优点,还有许多我们还未发现,希望能在以后的学习中有更深入的认
温州大学城市学院课程设计
识。
附录1:参考文献
《C语言程序设计与实践教程》
附录2:部分程序清单(带有较详细的注释)
#include
#define N 4 #define M 5 #define Debug 1
typedef struct { char SNo[5];char SName[10];}Student;
void ScoreRead(float Score[][M],char FileName[],char FileType[]){ int i,j;FILE *fp;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} else { for(i=0;i 温州大学城市学院课程设计 void ScoreWrite(float Score[][M],char FileName[],char FileType[]){ int i,j;FILE *fp;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} else { for(i=0;i void CoureseRead(char Cname[][20],char FileName[],char FileType[]){ FILE *fp;int i,j;char ch;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} i=0;j=0;while(1){ ch = fgetc(fp);if(ch==EOF)break;if(ch=='n'){ Cname[i][j]=' ';i++;j=0;6 温州大学城市学院课程设计 } else { Cname[i][j]=ch;j++;} } #if(Debug==1)for(i=0;i void CoureseWrite(char Cname[][20],char FileName[],char FileType[]){ FILE *fp;int i,j;fp=fopen(FileName,FileType);if(fp==NULL){ printf(“Errorn”);exit(0);} for(i=0;i