c語言課程設計
❶ c語言課設
之前寫過的,你可以拿去參考
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct guest
{
int number;
char name[10];
int sum;
char time[5];
struct guest *next;
}GuestLink,*Pointer;
GuestLink stu[10];
int i,j,k;
void Insert(Pointer *Head);
void Search(Pointer Head);
void Update(Pointer Head);
void Delete(Pointer *Head);
void Show(Pointer Head);
void Sort(Pointer Head);
void Save(Pointer Head);
void Put(Pointer Head);
int main()
{
Pointer Head=NULL;
int i;
do{
printf(" ");
printf("1---增加訂餐客戶信息 ");
printf("2---查詢訂餐客戶信息 ");
printf("3---修改訂餐客戶信息 ");
printf("4---刪除訂餐客戶信息 ");
printf("5---瀏覽客戶訂餐信息 ");
printf("6---按照用餐時間升序排序 ");
printf("7---保存訂餐信息到數據文件 ");
printf("8---查看數據文件中的訂餐信息 ");
printf("9---退出 ");
printf(" ");
printf("請選擇1--9:");
scanf("%d",&i);
switch(i)
{
case 1:Insert(&Head);
break;
case 2:Search(Head);
break;
case 3:Update(Head);
break;
case 4:Delete(&Head);
break;
case 5:Show(Head);
break;
case 6:Sort(Head);
break;
case 7:Save(Head);
break;
case 8:Put(Head);
break;
case 9:
break;
default:printf("選擇錯誤!請重新選擇!");
break;
}
}while(i!=9);
return 0;
}
void Insert(Pointer *Head)
{
int in_number;
Pointer p,q,r;
printf("請輸入編號: ");
scanf("%d",&in_number);
p=q=*Head;
while(p!=NULL)
{
if(p->number==in_number)
{
printf("已經有相同編號:");
return;
}
else
{
q=p;p=p->next;
}
}
r=(Pointer)malloc(sizeof(GuestLink));//沒有*號
r->next=NULL;
if(r==NULL)
{
printf("分配空間失敗");
return;
}
if(q==NULL)//如果是空表,判斷空表用q!!!!
*Head=r;
else
{q->next=r;}
r->number=in_number;
printf("請輸入姓名: ");
scanf("%s",r->name);
printf("請輸入人數: ");
scanf("%d",&r->sum);
printf("請輸入時間: ");
scanf("%s",r->time);
}
/*
void Insert(Pointer *Head)
{int in_number;
Pointer p,q,r;
p=q=*Head;
printf("請輸入號碼:");
scanf("%d",&in_number);
while(p!=NULL)
{
if(in_number==p->number)
{printf("已存在號碼!");}
else
{q=p;p=p->next;}
}
r=(Pointer)malloc(sizeof GuestLink);
r->next=NULL;
if(q==NULL)
*Head=r;
else
q->next=r;
printf("請輸入姓名:");
scanf("%s",r->name);
printf("請輸入人數");
scanf("%f",&r->sum);
printf("請輸入時間");
scanf("%s",r->time);
}*/
void Search(Pointer Head)
{
int flag=1;
int number;
Pointer p;
printf("請輸入要查詢的編號:");
scanf("%d",&number);
p=Head;
while(p!=NULL&&flag)
{
if(p->number==number)
{ printf("編號 姓名 人數 時間 ");
printf("%s ",p->name);
printf("%d ",p->sum);
printf("%s ",p->time);
flag=0;
}
else
p=p->next;
}
if(flag)
printf("沒有查詢到!");
}
/*
void Search(Pointer Head)
{
int flag=0;
int number;
Pointer p;
p=Head;
printf("請輸入您要查找的編號:");
scanf("%f",&number);
while(p!=NULL&&flag)
{
if(p->number==number)
{
printf("已查詢到您要的編號");
flag=0;
}
else
{
p=p->next;
}
}
if(flag==1)
{printf("姓名:%s",p->name);
printf("編號:%f",p->number);
printf("人數:%f",p->sum);
printf("時間:%s",p->time);
}
else
{printf("沒有查詢到您要查詢的編號!");}
}
*/
void Update(Pointer Head)
{
int flag=1;
int number;
Pointer p;
printf("請輸入要修改的編號:");
scanf("%d",&number);
p=Head;
while(p!=NULL&&flag)
{
if(p->number==number)
{
printf("請輸入人數:");
scanf("%d",&p->sum);
printf("請輸入用餐時間:");
scanf("%s",p->time);
flag=0;
}
else
p=p->next;
}
if(flag)
printf("沒有找到要修改的記錄!");
}
//update與查詢過程相似!!!
void Delete(Pointer *Head)
{
int flag=1;
int number;
Pointer p,q;
printf("請輸入要刪除的數據編號:");
scanf("%d",&number);
p=q=*Head;
while(p!=NULL&&flag)
{
if(p->number==number)
{
if(p==*Head)
{
*Head=p->next;free(p);//刪除結點後要及時釋放內存!!!
}
else
{q->next=p->next;free(p);}
flag=0;
}
else
{q=p;p=p->next;}
}
if(flag)
printf("沒有找到可以刪除的數據!!");
}
/*
void Delete(Pointer *Head)
{
Pointer p,q;
p=q=*Head;
int number;
int flag=1;
printf("請輸入您要刪除的結點:");
scanf("%d",&number);
while(p!=NULL)
{
if(p->number==number)
{ if(p==*Head)
{
*Head=p->next;free(p);
}
else
{
q->next=p->next;free(p);
}
flag=0;
}
else
{
q=p;p=p->next;
}
}
if(flag)
{printf("沒有找到要刪除的數據!");}
}
*/
void Show(Pointer Head)
{
Pointer p;
p=Head;
printf("編號 姓名 人數 用餐時間 ");
while(p!=NULL)
{
printf("%d ",p->number);
printf("%s ",p->name);
printf("%d ",p->sum);
printf("%s ",p->time);
p=p->next;
}
}
void Sort(Pointer Head)
{
//三個for循環,第一個賦給結構數組 第二個排序,第三個輸出
Pointer p;
p=Head;
int count=0;
GuestLink temp;
for(i=0;p!=NULL;i++)
{
strcpy(stu[i].name,p->name);
stu[i].number=p->number;
stu[i].sum=p->sum;
strcpy(stu[i].time,p->time);
count++;
p=p->next;
}
for(i=0;i<count-1;i++)
{
k=i;
for(j=i+1;j<count;j++)
if(strcmp(stu[j].time,stu[k].time)<0)k=j;
if(k!=i)
{temp=stu[i];stu[i]=stu[k];stu[k]=temp;}//一個字都不能改!!!!
//{temp=stu[k];stu[k]=stu[i];stu[i]=temp;}
}
printf("編號 姓名 人數 用餐時間 ");
for(i=0;i<count;i++)
{
printf("%d ",stu[i].number);
printf("%s ",stu[i].name);
printf("%d ",stu[i].sum);
printf("%s ",stu[i].time);
}
}
/*Head=p=stu;
while(p!=NULL)
{
printf("姓名:%-10s",p->name);
printf("人數:%-10d",p->sum);
printf("用餐時間:%-10s",p->time);
printf("編號:%-10d ",p->number);
p=p->next;
}*/
/*
void Sort(Pointer Head)
{
Pointer p;
p=Head;
GuestLink temp;
count=0;
while(p!=NULL)
{p=p->next;
count++;
}
p=Head;
while(p!=NULL)
{for(i=0;i<count;i++)
{
stu[i].number=p->number;
strcpy(stu[i].name,p->name);
stu[i].sum=p->sum;
strcpy(stu[i].time,p->time);
}
p=p->next;
}
for(i=0;i<count-1;i++)
{
k=i;
for(j=0;j<count;j++)
{if(strcmp(stu[j].time,stu[k].time)<0)k=j;
if(k!=i)
{temp=stu[k];stu[k]=stu[i];temp=stu[i];}
}
}
}
*/
void Save(Pointer Head)
{
Pointer p;
FILE *fp;
p=Head;
for(i=0;p!=NULL;i++)
{
strcpy(p->name,stu[i].name);
p->number=stu[i].number;
p->sum=stu[i].sum;
strcpy(p->time,stu[i].time);
p=p->next;
}
if((fp=fopen("stud","w"))==NULL)
{printf("can't open !");}
p=Head;
while(p!=NULL)
{
if(fwrite(p,sizeof(GuestLink),1,fp)!=1)
printf("can't write! ");
p=p->next;
}
fclose(fp);
}
/*
void Save(Pointer Head)
{
FILE *fp;
Pointer p;
p=Head;
for(i=0;p!=NULL;i++)
{
stu[i].number=p->number;
strcpy(stu[i].name,p->name);
stu[i].sum=p->sum;
strcpy(stu[i].time,p->time);
p=p->next;
}
p=Head;
if((fp=fopen("stud","w"))==NULL)
{
printf("cam't open the file");
}
for(i=0;i<count;i++)
if(fwrite(p,sizeof(GuestLink),1,fp)!=1)
{
printf("cant write");
}
fclose(fp);
}
*/
void Put(Pointer Head)
{
FILE *fp;
Pointer p;
p=Head;
if((fp=fopen("stud","r"))==NULL)
{printf("can't open the File ");}
printf("編號 姓名 人數 用餐時間 ");
while(p!=NULL)
{
if(fread(p,sizeof(GuestLink),1,fp)!=1)
{printf("can't read!");}
printf("%d ",p->number);
printf("%s ",p->name);
printf("%d ",p->sum);
printf("%s ",p->time);
p=p->next;
}
fclose(fp);
}
採納哦~
❷ c語言課程設計
#include <stdio.h>
int main()
{
int num;
scanf("%d",&num);
while (num!=0)
{
if(num/1000!=0)
{
printf("%d",num/1000);
printf("%d",num/1000);
num=num%1000;
continue;
}
if(num/100!=0)
{
printf("%d",num/100);
printf("%d",num/100);
num=num%100;
continue;
}
if(num/10!=0)
{
printf("%d",num/10);
printf("%d",num/10);
num=num%10;
continue;
}
printf("%d",num);
printf("%d",num);
break;
}
}
主要是使用除法和取模運算和循環控制語句,在我的電腦上已經調試通過了。
❸ c語言課程設計報告
作業的話自己做最有幫助了、
我們老師也布置過,做好了,不過沒有流程圖