c语言程序综合实验报告报告+综合实验一文档格式.docx
《c语言程序综合实验报告报告+综合实验一文档格式.docx》由会员分享,可在线阅读,更多相关《c语言程序综合实验报告报告+综合实验一文档格式.docx(59页珍藏版)》请在冰豆网上搜索。
输入您要存入的数目:
¥"
scanf("
%f"
&
y);
\n按任意键继续\n"
x=x+y;
3'
输入您要取钱的数目:
z);
while(z>
x)
{denghao();
printf("
\n余额不足,按任意键后重新输入!
\n"
denghao();
getch();
system("
cls"
scanf("
}
if(z<
=x)
{printf("
x=x-z;
}
if(f=='
4'
)
{system("
break;
}
实验二:
机制转换器
写一个“计算器”程序,实现十进制、二进制、十六进制的相互转换。
(1)转换要求包括整数和小数;
(2)提供清晰、友好的用户界面;
(3)各种转换可以重复多次执行,知道用户选择“退出”按钮。
while
(1)
{boolflag=true;
system("
printf("
inputa十进制数字\n"
charshit[80];
gets(shit);
sprintf(shit,"
%lf"
cheat);
n=strlen(shit);
for(i=0;
i<
n;
i++)
{if((shit[i]<
'
0'
||shit[i]>
9'
)&
&
shit[i]!
='
.'
{flag=false;
printf("
Inputerror!
break;
}
}
intm=-1;
{if(shit[i]=='
m=m+1;
if(m>
=1)
{printf("
"
flag=false;
if(flag==true)
{
break;
shier(x);
}
break;
case'
{system("
printf("
inputa十进制数字:
scanf("
x);
shishiliu(x);
system("
}break;
inputa二进制数字:
%s"
ch);
得到十进制为:
"
%.64g\n"
ershi(ch));
getch();
system("
}break;
{system("
printf("
scanf("
ershiliu(ch);
system("
5'
inputa十六进制数字:
printf("
shiliushi(ch));
6'
shiliuer(ch);
system("
}break;
7'
\n"
bExit=1;
}break;
default:
break;
}
实验三:
随机数生成及抽奖
用均匀分布随机数生成随机数。
根据随机数编写一个抽奖程序。
(1)据用户的输入,控制随机数生成的数目,随机数用动态数组保存;
(2)用户的输入,控制随机数的范围:
比如能够生成一组【a,b】范围内的随机数。
printf("
Inputthetotalnumberofthepeople:
scanf("
%d"
n);
=======================================\n"
Informationofall:
srand((int)time(0));
for(i=1;
=n;
a[i]=rand()%100;
printf("
%d:
p%d,hisnumberis%d\n"
i,i-1,a[i]);
\nPressanykeytodrawlottry....\n\n\n"
k=rand()%100;
m=1;
if(a[i]==k)
{printf("
Thewinneris:
i-1,k);
Ihevalidlottrynumberis:
%d\n"
k);
m=0;
}
while(m==1){
printf("
Iheinvalidlottrynumberis:
k=rand()%100;
for(i=1;
if(a[i]==k)
实验四:
插入排序和快速排序
生成一组随机整,对该组数据进行排序,采用插入排序法。
生成一组随机整,对该组数据进行排序,采用快速排序法。
(1)数组的长度由用户输入;
(2)随机数范围在【100,1000】范围内;
(3)采用直接插入和普通快速排序法;
(4)根据用户要求,可以实现增序、降序两种排序。
插入升序:
voidfun1(inta[],intn)
{
inti,j,x;
for(j=0;
j<
j++)
{x=a[j];
i=j-1;
while(i>
=0&
a[i]>
x){
a[i+1]=a[i];
i--;
a[i+1]=x;
j++)
%d"
a[j]);
}
插入降序:
voidfun2(inta[],intn)
a[i]<
快速升序:
voidfun3(inta[],intn)
{inti,j,p,x,t;
i=0;
j=n+1;
x=a[i];
while
(1){
while(i<
=n&
a[++i]<
while(j>
a[--j]>
if(i>
=j)break;
t=a[i];
a[i]=a[j];
a[j]=t;
for(p=i;
a[p]<
=x&
p<
p++);
p--;
a[0]=a[p];
a[p]=x;
a[i]);
快速将序:
voidfun4(inta[],intn)
a[++i]>
a[--j]<
实验六:
学生信息数据结构及小型管理信息系统
采用单链表实现对一组学生信息的组织。
完成一个小型学生管理信息系统,实现除存储意外其他基本的信息管理功能。
(1)编写友好的用户界面;
(2)采用带头节点的单链表实现对数据的组织,不允许使用数组;
(3)学生信息必须包括如下三项:
Ø
学号(4位编号,如0101,所有学生学号长度一致)
姓名
成绩
(4)功能要求:
添加学生:
提示用户输入信息,添加一个学生信息(学号长度进行检查)。
总人数显示。
打印:
按顺序在屏幕上打印所有学生的信息。
(5)链表中的数据有序排列:
要求根据学号升序排列。
(6)添加如下功能:
删除:
a.根据学号删除任意学生信息;
b.删除所有学生信息。
要求删除成功与否都需要打印相印的提示信息,如“学号为****的学生删除成功”,“学号为****的学生不存在,删除失败”等。
查询:
根据学好查询任意学生,并将信息打印在屏幕上。
编辑:
修改任意一个学生除学号意外的信息,如姓名、成绩等。
voidPrintAll(list*h)//打印
{system("
list*p=h->
next;
inti;
======================\n"
所有学生信息:
p!
=NULL;
i++)
{
%s%s%f\n"
i,p->
ID,p->
name,p->
score);
p=p->
getch();
}
voidPrintCnt()//打印总人数
{
system("
学生总人数:
n);
getch();
voidAdd(list*h)//添加
list*p,*p1=h,*p2=h;
intk=1;
p2=p2->
输入学生信息:
p=(list*)malloc(sizeof(list));
学号:
p->
ID);
while(strlen(p->
ID)!
=4){
输入非法,学号必须是四位数,请重新输入!
scanf("
姓名:
name);
分数:
p->
while(p1->
next!
=NULL)
if(atol(p2->
ID)>
atol(p->
ID))
{p1->
next=p;
p->
next=p2;
k=0;
break;
}
p1=p2;
p2=p2->
}
if(k)
p1->
p->
next=NULL;
n++;
voidSearch(list*h)//查找
list*p;
charin_ID[4];
while(k)
p=h;
system("
请输入要查找学生的学号:
in_ID);
for(;
)
{if(strcmp(p->
ID,in_ID)==0)
{printf("
学号为%s的学生信息:
姓名%s,分数%f\n"
in_ID,p->
p=p->
if(k)
{printf("
找不到学号为%s的学生,请重新输入!
in_ID);
getch();
voidEdit(list*h)//编辑
charin_ID[4],i;
{
if(strcmp(p->
{
printf("
姓名%s,分数%f\n"
k=0;
break;
}
请选择修改项目:
1:
姓名\n"
2:
分数\n"
i=getch();
if(i=='
{printf("
请输入姓名:
else
请输入分数:
voidDelete(list*h)//删除
list*p=h,*p1;
p1=p=h;
PrintAll(h);
输入要删除学生的学号:
(如果删除所有学生请输入0000)\n"
scanf("
if(strcmp(in_ID,"
0000"
)==0)
h->
return;
姓名%s,分数%f\n"
p1=p;
p1->
next=p->
n--;
实验七:
文本文件和二进制文件格式的保存、读取
采用文本文件进行数据的存储和读取。
采用二进制文件进行数据的存储和读取。
(1)用文本(字符)文件格式进行数据的保存和读取;
(2)文件的存储路径,提示用户输入;
(3)存盘成功或者失败,输出提示信息;
(4)数据读入后能够修改、保存。
(5)修改存盘及数据存储函数,添加用二进制文件实现数据的保存与读取功能;
voidsave1(list*h)//保存文件
FILE*fp;
charname[20];
输入文件名:
name);
if((fp=fopen(name,"
w"
))==NULL)
存盘失败!
return;
else
数据已经成功保存到%s\n"
while(p!
=NULL)
fprintf(fp,"
%s%s%.2f\n"
p->
ID,p->
name,p->
p=p->
fclose(fp);
voidread1(list*h)//读取文件
list*p,*p1=h;
charch,name[20];
if((