當前位置:首頁 » 編程語言 » c語言數據結構源碼

c語言數據結構源碼

發布時間: 2025-08-18 17:44:52

❶ 數據結構:產品進銷存管理系統的源代碼(c語言或c++的)

&(p->salesquantity),&(p->salestime).year),&((p->salestime).month),&((p->salestime).day)); p->nextproct=q->nextproct;
q->nextproct=p;
q=p
}
}
return ok;
}//ProctInsert
void ProQuantity_add(sqmountlink&L,char pkindname 1[],char pname 1[],int n)
{//添加順序表掛接鏈表的某產品的總量,且需添加的產品總量為n
int i,k;
plinklist p;
for(i=0;i<L.length;i++)
{
if(strcmp(L.kindelem[i]).pkindname,pkindname 1)!=0)
continue;
else
break;
}
if(i<L.length)
{
for(p=L.kindelem[i].firstproct;p!=NULL;p=p->nextproct)
{
k=strcnp(p->pname.pname);
if(k==0)
{
p->totalquantity=p->totalquantity+n;
printf("查看添加後產品的各項輸出:%s %d%d,%d %d %d,%d,%d\n",p-pname,p->totalquantity,(p->goodsdate).year,(p->goodsdate).month,(p->goods).day,
p->salequanlity,(p->salestime).year,(p->salestime).month,(p->salestime).day);
}
}
}
}//ProQuantity_add
void Visit(sqmountlink&L,char pkindname3[],char pname3[])
{//在順序表掛接鏈表L中,查詢屬於某產品類的某產品的各項信息
int i,k;
plinklist p;
for(i=0;i<L.length;i++)
{
if(strcmp((L.kindelem[i]),pkindname.pkindname3)!=0)
continue
else
break;
}
if(i<L.length)
{
for(p=L.kindelem[i].firstprodicy;p!=NULL;p=p->nextprocy)
{
k=strcmp(p->pname.pname3);
if(k==0)
break;
}
if(k!=0)
printf("此產品不存在:\n")
else
{
printf("輸出帶查詢產品的各項信息:\n");
printf("%s %s %d %d,%d,%d %d %d,%d,%d\n",(L.kindelem[i]).pkindname,p->pname,p->totalquantity,(p->goodsdate).year,(p->goodsdate).month,(p->goodsdate).day,
p->salequantity,(p->salestime).year,(p->salestime).month,(p->salestime).day);
}
}
}//Visit
void DisplayList(sqmountlink&L)
{//顯示各產品所屬產品類,產品名稱、產品總量,進貨日期,銷出數量,銷售時間
int i;
plinklist p;
printf("產品類 產品 進貨日期 銷出數量 銷售時間\n")
for(i=0;i<L.length;i++)
{
if(!(L.kindelem[i],firstproct))
printf("%s\n",(L.kindelem[i]).pkindname);
for(p=L.kindelem[i].firstproct;p;p=p->nextproct)
printf("%s %s %d %d,%d,%d %d %d,%d,%d \n",(L.kindelem[i]).pkindname,p->pname,p->totalquantity,(p->goodsdate).year,(P->goodsdate).month,(p->goodsdate).day,p->salesquantity,(p->salestime).year,(p->salestime).month,(p->salestime).day);
}
}//DisplayList
void DestoryMountList(sqmountlink&L)
{//銷毀已存在的順序表掛接鏈表L
int i;
kindlnode *p;
for(i=L.length;i>=0;
{
p=&(L.kindelem[i]);
if(*p).firstproct==NULL)
free(p);
else
{
while((*p).firstproct;q->nextproct;q=q->nextproct);
free(q);
}
free(q);
}
}
}//DestroyMountList
void menu_operation()
{//操作菜單
printf("----輸入所要執行操作:-------\n")
printf("----產品類的添加:1------\n");
printf("----產品的添加:2-----\n");
printf("----產品數量的添加:3-----\n");
printf("----查詢每種產品所屬產品類,產品總量,進貨日期,銷出數量,銷售時間:4-----------\n")
printf("----釋放L所佔內存空間,退出程序:0-----\n");
}//menu_operation
/*--------------主程序-------------*/
void main(void)
{
int order,
int i,n;
char a[30];
char b[30];
sqmountlink L;
InitMountList(L);
printf("-----創建初始的產品類、產品順序表掛接鏈表L-----\n");
CreatMuntList(L);
DisplayList(L);
printf("-----初始的產品類、產品順序表掛接鏈表L創建完成-----\n");
menu_operation();
loop:
printf("輸入命令:");
scanf("%d",&order);
switch(order)
{
case 1:
printf("需添加產品類的個數:");
scanf("%d",&i);
kindinsert(L,i);
printf("輸出修改後的產品庫存管理表:\n");
DisplayList(L);
goto loop;
case 2:
printf("需添加產品所屬產品類的名稱:")
scanf("%s",&a);
printf("需向此產品類添加產品的個數:");
scanf("%d",&i);
ProctInsert(L,a,i);
printf("輸出修改後的產品庫存管理表:\n");
DisplayList(L);
goto loop;
case 3:
printf("輸入需添加數量的產品所屬產品類的名稱:");
scanf("%s",&a);
printf("輸入需添加數量的產品的名稱:");
scanf("%d",&n);
ProQuantity_add(L,a,b,n);
printf("輸出修改後的產品庫存管理表:\n");
DisplayList(L);
goto loop ;
case 4:
printf("輸入待查詢產品所屬產品類的名稱:");
scanf("%s",&b);
printf("輸入待查詢產品的名稱:");
scanf(%s",&b);
Visit(L<a,b);
goto loop;
case ():
DestroyMountList(L);
exit(0);
}
}

❷ c語言題型,數據結構題

#include <stdio.h>

#include <malloc.h>


typedef struct student

{

char name[20];

long num;

char sex;

struct student *pNext;

}Stu, *pStu;


void creatInfo(pStu *stu);

int deletInfo(pStu stu, long numTemp);

void printInfo(pStu stu);


int main(void)

{

long numTemp = 0;

pStu myStu = NULL;

creatInfo(&myStu);


scanf("%ld", &搏御numTemp);

if(1 == deletInfo(myStu, numTemp))

printInfo(myStu);


return 0;

}


void creatInfo(pStu *stu)

{

int n = 1;

pStu pNew = NULL, pTail = NULL;


*stu = (pStu)malloc(sizeof(Stu));


if(*stu == NULL)

return ;

(*stu)->pNext = NULL;

pTail = *stu;


while(n <= 10)

{

pNew = (pStu)malloc(sizeof(Stu));

if(NULL == pNew)

return ;


pNew->pNext = NULL;


scanf("%s", pNew->name);

if('#' == pNew->name[0])

{

free(pNew);

pNew = NULL;

return ;

}


scanf("%ld %c", &pNew->num, &pNew->sex);


pTail->薯行pNext = pNew;

pTail = pNew;


++n;

}


}


int deletInfo(pStu stu, long numTemp)

{

pStu pTail = NULL, pHead = NULL;


pHead = stu;

pTail = stu->pNext;


while(pTail)

{

if(pTail->num == numTemp)

{

pHead->pNext = pTail->pNext;

free(pTail);

pTail = NULL;

return 1;

}


pTail = pTail->pNext;

pHead = pHead->pNext;

}


printf("鏈表中唔基手岩該學生! ");

return 0;

}


void printInfo(pStu stu)

{

while(stu = stu->pNext)

printf("%s, %d, %c ", stu->name, stu->num, stu->sex);

}

❸ 數據結構C語言版冒泡排序的程序和應用,誰能幫我寫一個。

這是一個C語言實現的冒泡排序程序,用於對數組中的數據進行排序。以下是程序代碼:

首先,定義一個數組a,大小為10,用於存放數據。通過for循環,輸入10個數據到數組中。

接著,使用冒泡排序演算法對數組進行排序。通過兩層for循環,外層循環控制比較的輪數,內層循環控制每一輪比較的元素。

在內層循環中,如果當前元素大於其後一個元素,就交換它們的位置。經過多次比較和交換,最終實現數組的排序。

排序完成後,通過for循環輸出排序後的數組。使用printf函數輸出數組中的每一個元素,並使用空格分隔。

最後,調用system("PAUSE")函數,使程序暫停,等待用戶輸入,以便查看輸出結果。

通過運行上述程序,可以對任意長度為10的數據數組進行排序。例如,輸入一組隨機數據,程序將對它們進行排序,並輸出排序後的結果。

冒泡排序是一種簡單的排序演算法,通過不斷地交換相鄰元素,使得較小的元素逐漸向數組的前端移動,實現數組的排序。它適用於小規模數據的排序,但在處理大規模數據時效率較低,因為它的時間復雜度為O(n^2)。

冒泡排序在實際應用中主要用於教學和示例,因為它易於理解和實現。在實際的開發中,通常會使用更高效的排序演算法,如快速排序、歸並排序等。

❹ c語言數據結構

#include<stdio.h>
#include<malloc.h>
#include<string.h>
struct student{ int age; char name[10]; struct student *next; } ;
void main() { struct student *p,*p1,*p2;
p1=(struct student *)malloc(sizeof(struct student)); if ( p1==NULL ) goto errorexit0;
strcpy(p1->name,"張三"); p1->age=30; p1->next=NULL;
p2=(struct student *)malloc(sizeof(struct student)); if ( p2==NULL ) goto errorexit1;
strcpy(p1->name,"李四"); p2->age=40; p2->next=NULL;
p=p1; p->next=p2;
printf("%s %s\n",p->name,(p->next)->name);
free(p1); free(p2); return;

errorexit1: free(p1); printf("申請節點2出錯。\n");
errorexit0: printf("申請節點1出錯。\n");
}

❺ 求100行左右的代碼(C語言,c++,數據結構編寫的均可)

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 10
struct library {
int num;
char book_name[30];
char writer[30];
char sort_num[3];
char pub_company[30];
char pub_time[30];
char prise[30];
};
typedef struct library LIB; /*結構體的定義用於存放書籍及借書的信息*/
LIB lib[N];
FILE *fp; int all=0;
int menu(void);
void input(void);
void output(void);
void save(void);
void del(void);
void search(void);
void xiugai(void);
main()
{
for(;;)
{
switch(menu()) {
case 1:input();break;
case 2:output();break;
case 3:save();break;
case 4:search();break;
case 5:xiugai();break;
case 6:del();break;
case 7:sort();break;
case 0:exit(1);break;
} /*SWITCH定義函數輸出*/

}
}
int menu(void)
{
char m[3];
int n; printf(" *********************WELCOME**********************\n\n\n\n\n");
printf("\t\t\t-----圖書信息管理系統----\n");
printf("\t\t1:輸入\n");
printf("\t\t2:輸出\n");
printf("\t\t3:保存\n");
printf("\t\t4:查找\n");
printf("\t\t5:修改\n");
printf("\t\t6:刪除\n");
printf("\t\t7:統計\n");
printf("\t\t0:退出\n");
printf("\t\tplease choose a operation(0-6):\n");
scanf("%s",m);
n=atoi(m);
return(n);
} /*主要界面*/
void input(void)
{
int i;
char m[3];
for(i=all;i<N;i++)
{
all++;
printf("請輸入信息:\n");
printf("\t\t號碼:\n");
scanf("%d",&lib[i].num);
printf("\t\t書名:\n");
scanf("%s",lib[i].book_name);
printf("\t\t作者:\n");
scanf("%s",lib[i].writer);
printf("\t\tsort_num:\n");
scanf("%s",lib[i].sort_num);
printf("\t\t出版商:\n");
scanf("%s",lib[i].pub_company);
printf("\t\t出版時間:\n");
scanf("%s",lib[i].pub_time);
printf("\t\t價格:\n");
scanf("%s",lib[i].prise);
a: printf("\t\tyes/哦了?\n");
printf("\t\t1:yes\n");
printf("\t\t2:no\n");
scanf("%s",m);
if(atoi(m)==1)
continue;
else if(atoi(m)==2)
return;
else
{
printf("\t\t錯誤!\n");
goto a;
} /* 輸入條件查找*/
}
}
void output(void)
{
int i;
for(i=0;i<all;i++)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].prise);
}
} /*輸出書名作者出版時間價格等*/
void save(void)
{
int i;
if((fp=fopen("file.c","wb"))==NULL)
{
printf("can not open the file");
exit(1);
}
for(i=0;i<all;i++)
{
if(fwrite(&lib[i],sizeof(LIB),1,fp)!=1)
{
printf("can not write!");
exit(1);
}
} /*條件不符合時拒絕存儲*/
fclose(fp);
}
void search(void)
{
int i,flag;
char m[3];
char name[30];
printf("\t\t請選擇您的存儲方式:\n");
printf("\t\t1:按書名!\n");
printf("\t\t2:按作者!\n");
scanf("%s",m);
i=atoi(m);
switch(i)
{
case 1:{
printf("\t\t請輸入書名:\n");
scanf("%s",name);
flag=0;
for(i=0;i<N;i++)
{
if(strcmp(name,lib[i].book_name)==0)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].prise);
flag=1;break;
}
}
if(flag==0)
printf("\t\t沒有這本書!\n");

}
case 2:{
printf("\t\t請輸入作者:\n");
scanf("%s",name);
flag=0;
for(i=0;i<N;i++)
{
if(strcmp(name,lib[i].writer)==0)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].prise);
flag=1;break;
}
}
if(flag==0)
printf("\t\t沒有這個作者!\n");
}
} /*查找圖書按書名或作者並輸出*/
}
void xiugai(void)
{
int i,flag;
char name[30],n[3];
printf("\t\t請輸入要修改的書名 :\n");
scanf("%s",name); /*修改書名*/
flag=0;
for(i=0;i<N;i++)
{
if(strcmp(name,lib[i].book_name)==0)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].prise);
printf("\t\tplease input xiugai's the informations:\n");
printf("\t\tnum:\n");
scanf("%d",&lib[i].num);
printf("\t\tbook_name:\n");
scanf("%s",lib[i].book_name);
printf("\t\twriter:\n");
scanf("%s",lib[i].writer);
printf("\t\tsort_num:\n");
scanf("%s",lib[i].sort_num);
printf("\t\tpub_company:\n");
scanf("%s",lib[i].pub_company);
printf("\t\tpub_time:\n");
scanf("%s",lib[i].pub_time);
printf("\t\tprise:\n");
scanf("%s",lib[i].prise);
flag=1;break;
}
} /*增加圖書*/
if(flag==0)
printf("\t\t沒有找到啊!\n");
}
void del(void)
{
int i,j,flag;
char name[30];
printf("\t\t請輸入要刪除的書名:\n");
scanf("%s",name);
flag=0;
for(i=0;i<N;i++)
{
if(strcmp(name,lib[i].book_name)==0)
{
printf("\t\t%d\n",lib[i].num);
printf("%s\t\t%s\t\t%s\n",lib[i].book_name,lib[i].writer,lib[i].sort_num);
printf("%s\t\t%s\t\t%s\n",lib[i].pub_company,lib[i].pub_time,lib[i].prise);
for(j=N;j>i;j--)
{
lib[j-1].num=lib[j].num;
strcpy(lib[j-1].book_name,lib[j].book_name);
strcpy(lib[j-1].writer,lib[j].writer);
strcpy(lib[j-1].sort_num,lib[j].sort_num);
strcpy(lib[j-1].pub_company,lib[j].pub_company);
strcpy(lib[j-1].pub_time,lib[j].pub_time);
strcpy(lib[j-1].prise,lib[j].prise);
flag=1;
printf("\t\t已經刪除!\n");
break;
}
}
}
if(flag==0)
printf("\t\t沒有這本書!\n");
} /*刪除圖書*/

❻ 急求通訊錄管理系統(有鏈表的)數據結構c語言版的源代碼。要求c++可以測試通過

這個絕對滿足了你的要求了,謝謝採納`

#include<iostream.h>
#include<string>
#include<stdlib.h>
class List;
class person
{
public:
friend class List;
private:
person() {next=0;}
person *next;
char name[10],tel[15];
};

class List
{
public:

List(){list=0;}
int gncd(); // 功能菜單
int print(); // 輸出所有信息
int append(); // 增加一個信息
int revise(); // 根據姓名、電話修改信息
int dele(); // 根據姓名、電話刪除信息
int exit(); // 退出
private:
person *end();
person *list;

};
int List::exit()
{
abort();
return 1;
}

int List::gncd()
{
cout<<"************歡迎使用****************************"<<endl;
cout<<"1.輸入信息。"<<endl;
cout<<"2.根據姓名、電話修改信息。"<<endl;
cout<<"3.根據姓名、電話刪除信息"<<endl;
cout<<"4.輸出所有現有成員信息"<<endl;
cout<<"5.退出"<<endl;
cout<<"選擇:";
int a;
cin>>a;
switch(a)
{
case(1):this->append();break;
case(2):this->revise();break;
case(3):this->dele();break;
case(4):this->print();break;
case(5):this->exit();break;
}
this->gncd();
return 1;
}

int List::print()
{
if(list==0)
{
cout<<"為空或沒輸入內容"<<endl;
return 0;
}

person *p=list;
while(p!=NULL)
{
cout<<"姓名:"<<p->name<<endl;
cout<<"電話:"<<p->tel<<endl;
p=p->next;
}
cout<<endl;
return 1;
}

int List::append()
{
person *p=new person;

cout<<"請輸入姓名:"<<endl;
cin>>p->name;
cout<<"請輸入電話號碼:"<<endl;
cin>>p->tel;

char temp;
cout<<"是否繼續輸入(y/n)";
cin>>temp;
if(temp=='y'||temp=='Y')
this->append();

if(list==0)
list=p;
else
(end())->next=p;
return 1;
}
person *List::end()
{
person *p,*q;
for(q=p=list;p;q=p,p=p->next) ;
return q;
}

int List::revise()
{
person *p=list;
char temp[20];
cout<<"你選擇了根據姓名、電話修改信息。"<<endl<<"請輸入將要修改的姓名或電話:";
cin>>temp;
int i=0;
while(p!=NULL)
{
if(!strcmp(p->name,temp)||!strcmp(p->tel,temp))
{
i=1;
cout<<"請輸入新的姓名:";
cin>>p->name;
cout<<"請輸入新的電話號碼:";
cin>>p->tel;

}
p=p->next;
}
if(i==1) cout<<"修改成功!"<<endl;
if(i!=1) cout<<"未能找到。"<<endl;
return 1;
}

int List::dele()
{
person *q,*p=list;
char temp[20];
cout<<"你選擇了根據姓名、電話刪除信息。"<<endl<<"請輸入將要刪除的姓名或電話:";
cin>>temp;
if(p==NULL)
cout<<"為空或沒有輸入信息。"<<endl;
if(!strcmp(p->name,temp)||!strcmp(p->tel,temp)) //要刪除的結點是第一個時
{
list=p->next;
delete p;
cout<<"刪除成功!"<<endl;
}
else
{
while(p!=NULL&&(strcmp(p->name,temp)||strcmp(p->tel,temp)))
{
q=p;
p=p->next;
}
if(p==NULL) return 0;

else if(q==NULL)
cout<<"沒能找到。"<<endl;
else
{
q->next=p->next;
delete p;
cout<<"刪除成功!"<<endl;
}

}

return 1;
}

void main()
{
List L;
L.gncd();

}

熱點內容
電腦做成文件伺服器 發布:2025-08-18 19:38:20 瀏覽:15
外匯交易源碼 發布:2025-08-18 19:36:38 瀏覽:805
蘋果linux系統 發布:2025-08-18 19:36:03 瀏覽:935
命令創建共享文件夾 發布:2025-08-18 19:35:50 瀏覽:620
伺服器如何對接區塊鏈 發布:2025-08-18 19:26:27 瀏覽:564
PHPrealpath 發布:2025-08-18 19:25:34 瀏覽:241
電腦密碼是什麼地方 發布:2025-08-18 19:20:48 瀏覽:620
android資源命名 發布:2025-08-18 19:14:54 瀏覽:65
游戲推廣源碼 發布:2025-08-18 19:10:38 瀏覽:313
靜態資源存儲方案 發布:2025-08-18 19:04:14 瀏覽:402