C语言课程设计.docx
《C语言课程设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计.docx(22页珍藏版)》请在冰豆网上搜索。
C语言课程设计
┊┊
课程设计
服务课程名称:
C语言
系:
专业:
班级:
学号:
姓名:
指导教师:
课程设计周次:
起始日期:
2008.6.16至2008.6.20
目录
1.C语言课程设计成绩评定表…………………….02页
2.C语言课程设计任务书………………………….03页
3.程序基本框架结构图…………………………….04页
4.程序设计说明书………………………………….05页
5.源代码清单……………………………………….06页
6.课程设计总结…………………………………….18页
┊┊
课程设计成绩评定表
班级
学号
姓名
项目组
第3组
项目组长
项目组组员
本人工作简介:
此次编程我的主要工作是排序部分的编译。
组长评语:
在这次的C语言课程设计中,做了程序的“排序”部分的编写。
不但程序编写的没有错误,而且在小组的讨论中积极发表观点,起到了举足轻重的作用。
成绩评定标准
A
B
C
D
E
报告完成情况
很好
好
比较好
一般
不好
纪律表现
很好
好
比较好
一般
不好
程序功能性
强
较强
一般
较弱
弱
界面美观性
很好
好
一般
较差
不好
程序可操作性
很好
好
一般
较差
不好
答辩表现
很好
好
一般
较差
不好
所起作用程度
80%以上
60%以上
60%以下
最后成绩
优秀
A>=5
C<=0
良好
A>=3
C<=0
中等
B>=2
C>=4
及格
A=0
B=0
C>=3
不及格
A=0
B=0
C<=2
E>=1
负责指导教师:
(签名)
指导教师:
(签名)
班C语言课程设计任务书
一、设计目的
通过本次课程设计使学生进一步加深对C语言课程内容的理解,初步掌握一般应用程序的开发方法和步骤,进一步了解与掌握C语言的编程方法和技巧,提高学生用C语言解决实际问题的能力。
二、设计要求
1、认真查阅参考书、资料2、遵守课程设计时间安排
3、按时上机,认真调试程序4、认真完成课程设计报告
三、课设报告装订内容及顺序
1、课程设计封皮2、目录
3、课程设计成绩评定表4、课程设计任务书
5、程序基本框架图6、程序设计说明书
7、源代码清单8、课设总结与心得
四、设计题目
学生档案管理
宾馆住宿管理
★
学生宿舍管理
学生成绩管理
学生选修课程系统
工资管理
五、时间安排(一周:
从06月16日到06月20日)
1、查阅资料及程序设计(1天)2、程序编制及调试(3天)
3、成绩评定(0.5天)3、打印报告(0.5天)
六、参考文献
1、《C语言程序设计》李淑华/李贞编大连理工大学出版社
2、《C语言程序设计》孙连科/姚大鹏编辽海出版社
3、《C++时尚编程百例》网冠科技编.机械工业出版社
4、《TURBOC实用大全》徐金梧等编.机械工业出版社
程序基本框架结构图
程序设计说明书
首先,组员讨论分工,确定我所负责的部分是排序函数。
我们初步确定数据结构全为字符型,分:
学号,姓名,性别,专业,寝室共5个数据项。
确定需要编译的系统功能为:
输入,追加,显示,查询,排序五项功能。
排序:
从文件中读取文件中的数据并记录数据个数。
用for循环将数据单挑比较,strcmp(a[j].qsh,a[j-1].qsh)<0当此值为真a[j].qsh的长度小于a[j-1].qsh两者交换,实现数据升序排列,属冒泡排序。
for(i=0;i再输出显示在屏幕上,供用户使用。
源代码清单
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#include"ctype.h"
typedefstructstudent//寝室学生记录结构
{charxho[20];//学号
charname[20];//姓名
charsex[5];//性别
characlass[20];//专业
charqsh[10];//寝室
}STU;
voidmenu();//菜单选择函数
voidinput();//输入函数
voidlist();//显示函数
voidappend();//追加记录函数
voidsearch();
voidsort();
voidsearchxho();//按照学号查找的函数
voidsearchname();//按照姓名查找的函数
voidsearchaclass();//按照专业查找的函数
voidsortxho();//按照学号排序的函数
voidsortaclass();//按照专业排序的函数
voidsortqsh();//按照寝室排序的函数
voidwronglist1();
voidwronglist2();
voidwronglist3();
main()
{
menu();
}
voidmenu()
{inta;
do
{system("cls");
printf("\t\t欢迎使用学生宿舍管理系统\n");
printf("\t\t***************************************\n");
printf("\t\t*编制人员:
汪*李*迟**赵***\n");
printf("\t\t*版本号:
072-3*\n");
printf("\t\t***************************************\n");
printf("\n\n\n\n\t\t\t学生宿舍管理系统\n");
printf("\t\t***************************************\n");
printf("\t\t*1--------输入*\n");
printf("\t\t*2--------显示*\n");
printf("\t\t*3--------追加*\n");
printf("\t\t*4--------查询*\n");
printf("\t\t*5--------排序*\n");
printf("\t\t*0--------退出系统*\n");
printf("\t\t***************************************\n");
printf("\t\t请选择:
");
scanf("%d",&a);
switch(a)
{case1:
input();break;
case2:
list();break;
case3:
append();break;
case4:
search();break;
case5:
sort();break;
case0:
printf("\t\t***********谢谢使用***************\n");exit(0);
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(a!
=0);
}
voidinput()
{inti,n;
STUa;
FILE*fp;
system("cls");
if((fp=fopen("e:
\\file1","wb"))==NULL)
{printf("error!
\n");exit(0);}
printf("\n\t请输入学生人数:
");
scanf("%d",&n);
for(i=0;i{printf("\n\n\t学号:
");
scanf("%s",a.xho);
printf("\t姓名:
");
scanf("%s",a.name);
printf("\t性别:
");
scanf("%s",a.sex);
printf("\t专业:
");
scanf("%s",a.aclass);
printf("\t寝室号:
");
scanf("%s",a.qsh);
fwrite(&a,sizeof(STU),1,fp);
}
printf("\n\n\t********************输入完毕*******************\n");
fclose(fp);
printf("\n\n\n\n\n\t*****************请按<0>键返回**************\n");
do{scanf("%d",&i);
switch(i)
{case0:
menu();break;
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(i!
=0);
}
voidlist()
{STUa;
inti;
FILE*fp;
system("cls");
if((fp=fopen("e:
\\file1","rb"))==NULL)
{printf("error!
\n");exit(0);}
printf("\n\n\n\t*******************************************************\n");
printf("\t\t学号\t\t姓名\t性别\t专业\t寝室\n\n");
while(fread(&a,sizeof(STU),1,fp)!
=0)
printf("\t\t%s\t\t%s\t%s\t%s\t%s\n",a.xho,a.name,a.sex,a.aclass,a.qsh);
fclose(fp);
printf("\n\n\n\t*****************请按<0>键返回*******************\n");
do{scanf("%d",&i);
switch(i)
{case0:
menu();break;
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(i!
=0);
}
voidappend()
{STUt;
inti,n,m;
FILE*fp;
system("cls");
if((fp=fopen("e:
\\file1","ab"))==NULL)
{printf("error!
\n");exit(0);}
printf("\t\t\t追加学生人数:
");
scanf("%d",&n);
for(i=0;i{printf("\n\n\t学号:
");
scanf("%s",t.xho);
printf("\t姓名:
");
scanf("%s",t.name);
printf("\t性别:
");
scanf("%s",t.sex);
printf("\t专业:
");
scanf("%s",t.aclass);
printf("\t寝室号:
");
scanf("%s",t.qsh);
fwrite(&t,sizeof(STU),1,fp);
}
fclose(fp);
printf("\n\n\n\t*****************请按<0>键返回*******************\n");
do{scanf("%d",&m);
switch(m)
{case0:
menu();break;
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(m!
=0);
}
voidsearch()
{inta;
do
{system("cls");
printf("\n\n\n\n\t\t\t学生宿舍管理查询系统\n");
printf("\t\t***************************************\n");
printf("\t\t*1--------按学号查询*\n");
printf("\t\t*2--------按姓名查询*\n");
printf("\t\t*3--------按专业查询*\n");
printf("\t\t*0--------返回*\n");
printf("\t\t***************************************\n");
printf("\t\t请选择:
");
scanf("%d",&a);
switch(a)
{case1:
searchxho();break;
case2:
searchname();break;
case3:
searchaclass();break;
case0:
menu();
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(a!
=0);
}
voidsort()
{inta;
do{system("cls");
printf("\n\n\n\n\t\t\t学生宿舍管理排序系统\n");
printf("\t\t***************************************\n");
printf("\t\t*1--------按学号排序*\n");
printf("\t\t*2--------按专业排序*\n");
printf("\t\t*3--------按寝室排序*\n");
printf("\t\t*0--------返回*\n");
printf("\t\t***************************************\n");
printf("\t\t请选择:
");
scanf("%d",&a);
switch(a)
{case1:
sortxho();break;
case2:
sortaclass();break;
case3:
sortqsh();break;
case0:
menu();
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(a!
=0);
}
voidsortxho()
{inti,j,m,n=0;
STUa[10],t;
FILE*fp;
system("cls");
if((fp=fopen("e:
\\file1","rb"))==NULL)
{printf("error!
\n");exit(0);}
while(fread(&a[n],sizeof(STU),1,fp)!
=0)
n++;
for(i=0;ifor(j=n;j>i;j--)
if(strcmp(a[j].xho,a[j-1].xho)<0)
{t=a[j];a[j]=a[j-1];a[j-1]=t;}
printf("\n\n\t***************按学号排序************************\n");
printf("\t\t学号\t姓名\t性别\t专业\t寝室\n\n");
for(i=0;iprintf("\t\t%s\t%s\t%s\t%s\t%s\n",a[i].xho,a[i].name,a[i].sex,a[i].aclass,a[i].qsh);
fclose(fp);
printf("\n\n\n\t*****************请按<0>键返回*******************\n");
do{scanf("%d",&m);
switch(m)
{case0:
sort();break;
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(m!
=0);
}
voidsortaclass()
{inti,j,n=0,m;
STUa[10],t;
FILE*fp;
system("cls");
if((fp=fopen("e:
\\file1","rb"))==NULL)
{printf("error!
\n");exit(0);}
while(fread(&a[n],sizeof(STU),1,fp)!
=0)
n++;
for(i=0;ifor(j=n;j>i;j--)
if(strcmp(a[j].aclass,a[j-1].aclass)<0)
{t=a[j];a[j]=a[j-1];a[j-1]=t;}
printf("\n\n\t***************按专业排序************************\n");
printf("\t\t学号\t姓名\t性别\t专业\t寝室\n\n");
for(i=0;iprintf("\t\t%s\t%s\t%s\t%s\t%s\n",a[i].xho,a[i].name,a[i].sex,a[i].aclass,a[i].qsh);
fclose(fp);
printf("\n\n\n\t*****************请按<0>键返回*******************\n");
do{scanf("%d",&m);
switch(m)
{case0:
sort();break;
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(m!
=0);
}
voidsortqsh()
{inti,j,n=0,m;
STUa[10],t;
FILE*fp;
system("cls");
if((fp=fopen("e:
\\file1","rb"))==NULL)
{printf("error!
\n");exit(0);}
while(fread(&a[n],sizeof(STU),1,fp)!
=0)
n++;
for(i=0;i{for(j=n;j>i;j--)
if(strcmp(a[j].qsh,a[j-1].qsh)<0)
{t=a[j];a[j]=a[j-1];a[j-1]=t;}
}
printf("\n\n\t***************按寝室排序************************\n");
printf("\t\t学号\t姓名\t性别\t专业\t寝室\n\n");
for(i=0;iprintf("\t\t%s\t%s\t%s\t%s\t%s\n",a[i].xho,a[i].name,a[i].sex,a[i].aclass,a[i].qsh);
fclose(fp);
printf("\n\n\n\t*****************请按<0>键返回*******************\n");
do{scanf("%d",&m);
switch(m)
{case0:
sort();break;
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(m!
=0);
}
voidsearchname()
{inti,n=0,m;
charname[20];
STUa[20];
FILE*fp;
system("cls");
printf("\n\n\t\t请输入要查找的姓名:
");
scanf("%s",name);
if((fp=fopen("e:
\\file1","rb"))==NULL)
{printf("error!
\n");exit(0);}
while(fread(&a[n],sizeof(STU),1,fp)!
=0)
n++;
for(i=0;iif(strcmp(a[i].name,name)==0)
{printf("\n\n\t*****************查询信息**********************\n");
printf("\t\t学号\t姓名\t性别\t专业\t寝室\n\n");
printf("\n\t\t%s\t%s\t%s\t%s\t%s\n",a[i].xho,a[i].name,a[i].sex,a[i].aclass,a[i].qsh);
}
elsewronglist1();
fclose(fp);
printf("\n\n\n\t*****************请按<0>键返回*******************\n");
do{scanf("%d",&m);
switch(m)
{case0:
sort();break;
default:
printf("\t\t\t输入错误请重新输入:
");
}
}while(m!
=0);
}
voidwronglist1()
{inta;
printf("\n\n\t\t没有要查找的信息,请确认后重新查询");
printf("\n\t\t是否重新查找(否0/是1):
");
scanf("%d",&a);
switch(a)
{case0:
search();break;
case1:
searchname();break;
default:
printf("输入错误!
系统将自动返回");search();
}
}
voidsearchxho()
{inti,n=0,m;
charxho[20];
STUa[20];
FILE*fp;
system("cls");
printf("\n\n\t\t请输入要查找的学号:
");
scanf("%s",xho);
if((fp=fopen("e:
\\file1","rb"))==NULL)
{printf("error!
\n");exit(0);}
while(fread(&a[n],sizeof(STU),1,fp)!
=0)
n++;
for(i=0;i{if(strcmp(a[i].xho,xho)==0)