C语言课程设计.docx
- 文档编号:23104477
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:25
- 大小:133.21KB
C语言课程设计.docx
《C语言课程设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计.docx(25页珍藏版)》请在冰豆网上搜索。
C语言课程设计
C语言课程设计
序号:
0301
学号:
10416313
课程设计
设计课程名称:
C语言课程设计
题目:
成绩统计系统进制转换系统
学生姓名:
韩建东
学院(系):
怀德学院专业班级:
计算机101
指导教师:
倪彤光
设计时间:
2011年6月13日~2011年6月27日
常州大学课程设计任务书一
怀德学院计算机专业计算机101班同学:
韩建东
一、设计题目成绩统计系统
二、设计内容
假设某校学生通讯录基本信息主要包括:
学号、姓名、通讯地址、电话等,本系统应能对这些基本信息进行管理,并要求具有以下功能:
1、具有学生信息添加功能
2、具有学生信息删除功能
3、具有学生信息浏览功能
4、具有学生信息查询功能
5、具有学生信息排序功能
三、基本要求
1、编写源程序的要求:
(1)能够实现任务书中的功能;
(2)尽可能使界面友好、直观、易操作
(3)源程序要有适当的注释,使程序容易阅读。
2、撰写“课程设计报告”,要求如下:
(1)封面:
统一采用《江苏工业学院课程设计说明书》封面格式
(2)任务书
(3)目录
(4)“课程设计报告”正文
3、课程设计验收要求:
(1)运行所设计的系统;
(2)回答有关问题;(3)提交课程设计报告;(4)提交源程序。
四、进度安排
1、系统分析、设计准备阶段:
4学时
2、编程调试阶段:
22学时
3、总结和书写课程设计报告阶段:
2学时
4、考核阶段:
2学时
指导教师:
倪彤光2011年6月7日
系主任:
苏兵2011年6月7日
教学院长:
杨长春2011年6月7日
常州大学课程设计任务书二
怀德学院计算机专业计算机101班同学:
韩建东
一、设计题目进制转换系统
二、设计内容
本系统要求具有以下功能:
1、具有将十进制转换为二进制功能
2、具有将十进制转换为十六进制功能
3、具有将二进制转换为十进制功能
4、具有将十六进制转换为十进制功能
三、基本要求
1、编写源程序的要求:
(1)能够实现任务书中的功能;
(2)尽可能使界面友好、直观、易操作
(3)源程序要有适当的注释,使程序容易阅读。
2、撰写“课程设计报告”,要求如下:
(1)封面:
统一采用《江苏工业学院课程设计说明书》封面格式
(2)任务书
(3)目录
(4)“课程设计报告”正文
3、课程设计验收要求:
(1)运行所设计的系统;
(2)回答有关问题;(3)提交课程设计报告;(4)提交源程序。
四、进度安排
1、系统分析、设计准备阶段:
4学时
2、编程调试阶段:
22学时
3、总结和书写课程设计报告阶段:
2学时
4、考核阶段:
2学时
指导教师:
倪彤光2011年6月7日
系主任:
苏兵2011年6月7日
教学院长:
杨长春2011年6月7日
1.意义及功能
1.1系统意义
1.1.1成绩管理信息系统意义
为了方便学校用来统计学生的数据,为学校可以省下大量的人力和物力,同时也省下了时间。
1.1.2进制算法设计意义
为了方便广大初学学生更好的了解进制之间的转换。
1.2系统功能
1.2.1成绩管理信息系统功能
1、具有学生信息添加功能
2、具有学生信息删除功能
3、具有学生信息浏览功能
4、具有学生信息查询功能
5、具有学生信息排序功能
1.2.2进制算法设计功能
1、具有将十进制转换为二进制功能
2、具有将十进制转换为十六进制功能
3、具有将二进制转换为十进制功能
4、具有将十六进制转换为十进制功能
2功能结构图
2.1成绩管理信息系统
2.2进制算法设计
3.流程图
3.1成绩管理信息系统流程图
4调试运行
4.1成绩管理信息系统
4.2进制算法设计
5使用说明
5.1成绩管理信息系统
1是添加学生信息,2是删除学生信息,3是查询学生信息,4是排序学生信息,5是显示学生信息,6是退出程序
5.2进制算法设计
先输入要转换为多少进制的数,在输入要转换的多少进制数
6C语言源程序代码
6.1成绩管理信息系统
#include"stdio.h"
#include"stdlib.h"
#include"string.h"
#defineMAX50
voidadd();
voiddel();
voidquery();
voidsort();
voidlist();
typedefstructemployee{
intnumber;
charname[20];
charsex[2];
intage;
charxueli[10];
floatsalary;
charaddress[30];
chartel[11];
}EMP;
voidmain()
{charc;
inti;
do
{
system("cls");
for(i=0;i<80;i++)
printf("*");
printf("\t1:
添加学生信息\n");
printf("\t2:
删除学生信息\n");
printf("\t3:
查询\n");
printf("\t4:
排序\n");
printf("\t5:
显示\n");
printf("\t6:
退出\n");
printf("\t请选择输入选项[1\\2\\3\\4\\5\\6]:
\n");
do
{
c=getchar();
}while(c!
='1'&&c!
='2'&&c!
='3'&&c!
='4'&&c!
='5'&&c!
='6');
getchar();
switch(c)
{case'1':
add();break;
case'2':
del();break;
case'3':
query();break;
case'4':
sort();break;
case'5':
list();break;
case'6':
exit(0);
}
printf("按任意键返回主菜单:
\n");
getchar();
system("cls");
}while
(1);
}
voidadd(){
EMPemploy;
FILE*fp;
/*以下为输入学生信息代码*/
printf("请输入学生信息");
printf("\n学生号(整数0001—1999):
");
scanf("%d",&employ.number);getchar();
printf("\n学生姓名:
");
gets(employ.name);
printf("\n学生性别(请输入男或女):
");
gets(employ.sex);
printf("\n学生年龄:
");
scanf("%d",&employ.age);getchar();
printf("\n学生成绩:
");
gets(employ.xueli);
printf("\n学生班级:
");
scanf("%f",&employ.salary);getchar();
printf("\n学生地址:
");
gets(employ.address);
printf("\n学生电话:
");
gets(employ.tel);
/*学生信息输入代码结束*/
printf("该学生信息为:
%d%s%s%d%s%.2f%s%s\n",employ.number,employ.name,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel);
/*将学生信息保存到文件中*/
if((fp=fopen("XX.out","ab"))==NULL)
{printf("");
getchar();
exit(0);
}
if(fwrite(&employ,sizeof(employ),1,fp)!
=1)
printf("filewriteerror\n");
fclose(fp);
/*保存学生信息代码结束*/
}
voidquery(){
intflag,number,count;
EMPemploy;
FILE*fp;
charname[10];
printf("请输入查找方式:
");
printf("1--代表按照学生号2--代表按照姓名\n");
scanf("%d",&flag);getchar();
if(flag==1)
{printf("请输入学生号:
");
scanf("%d",&number);getchar();
if((fp=fopen("XX.out","rb"))==NULL)
{printf("cannotopenfileexit!
");
getchar();
exit(0);
}
do
{
count=fread(&employ,sizeof(employ),1,fp);
if(employ.number==number){printf("该学生信息为:
%d%s%s%d%s%.2f%s%s\n",employ.number,employ.name,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel);
break;
}
}while(count==1);
//printf("%d",flag);
fclose(fp);
}
else
{printf("%d",flag);
}
printf("该学生不存在!
\n");
}
voiddel(){
intcount,i=0,number,j;
FILE*fp;
EMPemploy[MAX];
charflag;
if((fp=fopen("XX.out","rb"))==NULL)
{printf("cannotopenfileexit!
");
getchar();
exit(0);
}
/*从文件中读入数据*/
do{
count=fread(&employ[i],sizeof(employ[0]),1,fp);
if(count==1){i++;}
}while(count==1);
/*for(count=0;count
printf("%d",employ[count].number);*/
fclose(fp);
printf("\n请输入删除学生的学生号:
");
scanf("%d",&number);getchar();
printf("\n你确认删除该学生吗(y/n)");
flag=getchar();
if(flag=='y'){
/*找被删除的下标记为count*/
for(count=0;count
if(number==employ[count].number)break;
/*以下为删除代码*/
if(count
/*先将数组中的信息删除*/
for(j=count+1;j
{
employ[j-1].number=employ[j].number;
strcpy(employ[j-1].address,employ[j].address);
employ[j-1].age=employ[j].age;
strcpy(employ[j-1].name,employ[j].name);
employ[j-1].salary=employ[j].salary;
strcpy(employ[j-1].sex,employ[j].sex);
strcpy(employ[j-1].tel,employ[j].tel);
strcpy(employ[j-1].xueli,employ[j].xueli);
}
/*写入删除后的数据*/
if((fp=fopen("XX.out","wb"))==NULL)
{printf("cannotopenfileexit!
");
getchar();
exit(0);
}
fwrite(employ,sizeof(employ[0]),i-1,fp);
fclose(fp);
}
elseprintf("你输入的学生号不存在\n");
}
}
voidsort(){
EMPemploy[MAX],temp;
FILE*fp;
intcount,n=0,flag,i,j;
/*打开文件*/
if((fp=fopen("XX.out","rb"))==NULL)
{printf("cannotopenfileexit!
");
getchar();
exit(0);
}
/*从文件中读入数据*/
do{
count=fread(&employ[n],sizeof(employ[0]),1,fp);
if(count==1){n++;}
}while(count==1);
fclose(fp);
printf("1--代表按照学生号升序排序2--代表按照学生号降序排序\n");
scanf("%d",&flag);getchar();
if(flag==1){
//升序排序
for(i=0;i for(j=0;j {if(employ[j].number>employ[j+1].number) {temp.number=employ[j].number; strcpy(temp.name,employ[j].name); strcpy(temp.sex,employ[j].sex); temp.age=employ[j].age; strcpy(temp.xueli,employ[j].xueli); temp.salary=employ[j].salary; strcpy(temp.address,employ[j].address); strcpy(temp.tel,employ[j].tel); employ[j].number=employ[j+1].number; strcpy(employ[j].name,employ[j+1].name); strcpy(employ[j].sex,employ[j+1].sex); employ[j].age=employ[j+1].age; strcpy(employ[j].xueli,employ[j+1].xueli); employ[j].salary=employ[j+1].salary; strcpy(employ[j].address,employ[j+1].address); strcpy(employ[j].tel,employ[j+1].tel); employ[j+1].number=temp.number; strcpy(employ[j+1].name,temp.name); strcpy(employ[j+1].sex,temp.sex); employ[j+1].age=temp.age; strcpy(employ[j+1].xueli,temp.xueli); employ[j+1].salary=temp.salary; strcpy(employ[j+1].address,temp.address); strcpy(employ[j+1].tel,temp.tel); } } } else{ //降序排序 for(i=0;i for(j=0;j {if(employ[j].number {temp.number=employ[j].number; strcpy(temp.name,employ[j].name); strcpy(temp.sex,employ[j].sex); temp.age=employ[j].age; strcpy(temp.xueli,employ[j].xueli); temp.salary=employ[j].salary; strcpy(temp.address,employ[j].address); strcpy(temp.tel,employ[j].tel); employ[j].number=employ[j+1].number; strcpy(employ[j].name,employ[j+1].name); strcpy(employ[j].sex,employ[j+1].sex); employ[j].age=employ[j+1].age; strcpy(employ[j].xueli,employ[j+1].xueli); employ[j].salary=employ[j+1].salary; strcpy(employ[j].address,employ[j+1].address); strcpy(employ[j].tel,employ[j+1].tel); employ[j+1].number=temp.number; strcpy(employ[j+1].name,temp.name); strcpy(employ[j+1].sex,temp.sex); employ[j+1].age=temp.age; strcpy(employ[j+1].xueli,temp.xueli); employ[j+1].salary=temp.salary; strcpy(employ[j+1].address,temp.address); strcpy(employ[j+1].tel,temp.tel); } } } for(i=0;i printf("该学生信息为: %d%s%s%d%s%.2f%s%s\n",employ[i].number,employ[i].name,employ[i].sex,employ[i].age,employ[i].xueli,employ[i].salary,employ[i].address,employ[i].tel); } voidlist(){ EMPemploy; FILE*fp; intcount; if((fp=fopen("XX.out","rb"))==NULL) {printf("cannotopenfileexit! "); getchar(); exit(0); } do { count=fread(&employ,sizeof(employ),1,fp); if(count==1)printf("该学生信息为: %d%s%s%d%s%.2f%s%s\n",employ.number,employ.name,employ.sex,employ.age,employ.xueli,employ.salary,employ.address,employ.tel); }while(count==1); fclose(fp); } 6.2进制算法设计 #include #include #defineINITSIZE100//初始分配的空间大小 typedefintElemType;//要据需要定义的数据类型 typedefstruct { ElemType*data;//用于存放元素的动态数组空间 inttop;//栈顶指针 intstacksize;//当前栈空间的长度 }linkStack; voidinitstack(linkStack*s)//初始化栈 { s->data=(ElemType*)malloc(INITSIZE*sizeof(ElemType));//分配空间 s->top=0;//栈顶指针初始化 s->stacksize=INITSIZE;//初始化栈的空间 } intpush(linkStack*s,ElemTypex)//元素入栈 { if(s->top>s->stacksize)//如果分配空间已满,从新分配 { s->data=(ElemType*)realloc(s->data,(s->stacksize+1)*sizeof(ElemType)); if(! s->data)return0;//分配失败,反回零 s->stacksize++;//增加空间大小 } s->data[s->top++]=x;//把元素X入栈 return1; } intpop(linkStack*s)//元素出栈 { if(s->top==0)return0; returns->data[--s->top]; } voidlist(linkStacks)//输出栈内的元素 { inti,hex; charchhex; for(i=s.top-1;i>=0;i--) if(s.data[i]>=10)//如果大于等于10则做如下处理 { hex=s.data[i]; switch(hex) { case10: chhex='A';break; case11: chhex='B';break; case12: chhex='C';break; case13: ch
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计