1. c語言程序設計 用鏈表編寫商品庫存管理。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct node{
char no[20];//存放編號
char name[40];//存放名稱
int reserve;//庫存
struct node *next;
}NODE;
typedef struct link{
NODE *front;//頭指針
NODE *rear;//尾指針
}LINK;
NODE *create_node(void){
NODE *node = (NODE *)malloc(sizeof(NODE));
printf("請輸入貨物編號:");
gets(node->no);
printf("請輸入貨物名稱:");
gets(node->name);
printf("請輸入貨物名稱:");
char ch;
while( (ch= getchar()) != '\n');//rewind(stdin);
scanf("%d",&node->reserve);
node->next = NULL;
return node;
}
void init_link(LINK *link){
link->rear = NULL;
link->front = NULL;
}
int link_empty(LINK *link){
return link->front == NULL ? 1: 0;
}
int node_num(LINK *link){
int num = 0;
if( link_empty(link)){
return num;
}
num = 1;
NODE *node = link->front;
while(node != link->rear){
node = node->next;
++num;
}
return num;
}
/*NODE *node_find(LINK *link,const int n){
int num = node_num(link);
if(num < n){
printf("公有節點%d個,無法找到第%d個節點\n",num,n);
}
else{
}
}
*/
void node_push(LINK *link){
NODE *node = create_node();
if(link->front == NULL){
link->front = node;
link->rear = node;
node->next = NULL;
}
else{
link->rear->next = node;
link->rear = node;
node->next = NULL;
}
}
void node_insert(LINK *link,const int n){
int num = 0,i = 1;
NODE *node = link->front;
NODE *new_node = NULL;
if ( link_empty(link) ){
printf("鏈表為空,將建立鏈表!\n");
node_push(link);
}
else{
if( n <= 1){
printf("在鏈表頭插入數據\n");
new_node = create_node();
new_node->next = link->front;
link->front = new_node;
}
else if( n>= num = node_num(link) ){
printf("節點數少於%d,將在末尾插入節點.\n",n);
node_push(link);
}
else{
printf("在第n個節點後插入數據\n");
if(num >= n){
while( i != n){
node = node->next;
++i;
}
new_node = create_node();
new_node-next = node->next;
node->next = new_node;
}
}
}
void find_node_insert(LIKNK *link,const char *name){
NODE *node = link->front;
if( link_empty(link) )
node_push(link);
else {
while(strcmp(node->name,name) != 0){
 if(node != link->rear)
node = node->next;
else break;
}
if(node != NULL){
NODE *new_node = create_node();
new_node-next = node->next;
node->next = new_node;
}
else {
printf("沒有找到相關貨物,將在頭節點插入數據\n");
intsert(link,0);
}
}
/*由於我不知到你對貨物統計具體實現的要求,關於貨物數量統計就你自己寫了,應該比較簡單。*/
/* 代碼沒有具體運行過,如果你學過C結構體與指針,就這個代碼思路應該看得明白,真正的實現你自己實現吧
這樣對你會更好寫。可能會有錯誤的地方,請謹慎。 */
2. c語言圖書管理系統程序設計
一 程序設計說明書
【設計題目】 圖書館借閱管理
【問題描述】圖書館,適合用C++面向對象的功能來描述。圖書館管理系統分為借書、還書、圖書管理和讀者服務等四個部分。設計一個讀者類Reader,記錄每個讀者基本信息;讀者庫類Rdatabase,記錄所有讀者信息;圖書類Book, 記錄每本書的基本信息;圖書庫類Bdatabase, 記錄所有圖書信息。
【基本要求】
1讀者庫類RDatabase中,其構造函數中,將read.txt文件中所有讀入讀者記錄rede[]中。處理完畢,在析構函數中將read[]中的所有未刪記錄寫入到read.txt中。
2圖書庫類BDatabase中,其構造函數中,將book.txt文件中所有讀入圖書記錄book[]中。處理完畢,在析構函數中將book[]中的所有未刪記錄寫入到book.txt中。
3 利用構造函數完成讀者和圖書數據初始化,完成內存分配。程序結束前,析構函數完成所申請的堆內存空間。
4 編寫主函數,對所編寫的矩陣類進行全面測試。要求用戶界面採用菜單方式。測試中需要讀者和圖書數據通過I/O流從磁碟文件讀入,同時顯示在屏幕上。得到的數據通過I/O流寫入磁碟文件保存,同時顯示在屏幕上。
5 源程序中要有充分的注釋,報告中要有詳細的流程圖和文字材料。
【類的設計】
該程序包含了四個類,如下:
1.Reader類,有讀者的基本管理功能,具有以下私有數據:
int tag;//刪除標記 1:已刪;0:未刪
int no;//讀者編號
char name[10];//讀者姓名
int borbook[Maxbor];//所借圖書
2.讀者庫類Rdatabase, 具有以下私有數據:
int top;//讀者記錄指針
Reader read[Maxr];//讀者記錄
3.圖書庫類Book,有一本圖書的基本功能,有以下私有數據:
int tag;//刪除標記 1:已刪;0:未刪
int no;//圖書編號
char name[20];//書名
int onshelf;//是否在架 1在架 0已借
4.圖書庫類BDatabase,有以下私有數據:
int top;//圖書記錄指針
Book book[Maxb];//圖書記錄
【特殊函數的設計說明】
構造函數
1.Reader類中構造函數Reader(),初始化函數;
2.讀者庫類RDatabase中,其構造函數Rdatabase(),將read.txt文件中所有讀入讀者記錄rede[]中。
3.Book類中構造函數Book(),初始化函數;
4.圖書庫類BDatabase中,其構造函數中,將book.txt文件中所有讀入圖書記錄book[]中。
 
拷貝構造函數
Reader類中的拷貝構造函數將getname()的返回值讀者姓名拷貝到setname()中,Book類中的拷貝構造函數將getname()函數的返回值圖書名拷貝到圖書名設置函數setname()中。
 
析構函數
1.讀者庫類RDatabase中,其析構函數~Rdatabase(),將read[]中的所有未刪記錄寫入到read.txt中;
2.圖書庫類BDatabase中,其析構函數~Bdatabase(),將book[]中的所有未刪記錄寫入到book.txt中。
 
運算符重載
重載了「=」,當比較讀者編號和圖書編號時,重載;重載位運算符「〈〈」和「〉〉」等。
 
【主要函數演算法流程圖】
 
【程序的使用方法】
1.進入操作頁面,按提示操作;
2.首先,新增圖書和讀者信息,之後就可以對以存在的信息進行操作;
3.操作當中,可以隨時增加,更改和刪除圖書或讀者信息;
4.當選擇退出時,進行清屏。
 
二 程序上機調試報告
【語法錯誤及其排除】
1.在敲程序時,有很多拼寫錯誤,例好多處把Readdata()誤打Readdate();結束的分號,在不同的輸入法狀態下輸入,這些小錯誤剛開始很難發現,不過有了經驗,就很容易了。
2.創建新的構造函數時,使用出現了錯誤。重載構造函數要注意函數的訪問許可權,結果就不會出現錯誤。
【演算法錯誤及其排除】
1.讀者類中借書操作函數中,採用循環語句時判斷讀者已借圖書量時for(int i=0;i<Maxbor;i++)誤寫為for(int i=1;i<Maxbor;i++),使循環發生錯誤。
2.指針使用錯誤,指針b和r混淆,導致編譯錯誤得到「error C2660: 'retbook' : function does not take 1 parameters」錯誤報告。
3. 用C語言設計一個超市購物列印系統
我自己設計了一個,你試試!操作結束後按Ctrl+z顯示清單。使用方面有什麼不懂可以問我!
#include "stdio.h"
typedef struct{
	char node[100]; /*商品編號*/
	char name[100];/*商品名稱*/
	float price;/*商品價格*/
     } datatype;
typedef struct node{
	       datatype food[100];
	       int len;/*存放商品總數*/
                  }SPku;
datatype Input(void)
{datatype x;<br/> scanf("%s %s %f",x.node,x.name,&x.price);<br/>首消  printf("輸入完畢!");<br/>return x;<br/>}
void create(SPku *r)
{ int i;
  printf("\n輸入商品總數:");
  scanf("%d",&r->len);
  for(i=0;i<r->len;i++)
   {printf("\n輸入商品編號 名稱 價格:"); <br/>   r->food[i]=Input();<br/>   }
}
int strlen(char s[])
{int i;<br/>	for(i=0;i<s[i];i++);<br/>	return i;<br/>	}
int compare(char y[],char s[])
{int i;<br/>if(strlen(y)!=strlen(s))<br/>	return 0;<br/>else<br/>轎脊  for(i=0;i<strlen(y);i++)<br/>者帆知   if(y[i]!=s[i])<br/>   return 0;<br/>    return 1;<br/>}
void Output(datatype f)
{
	printf("\n%s %s %f",f.node,f.name,f.price);
}
int judge(SPku *r,char nd[])
{ int i;
 for(i=0;i<r->len;i++)
 if(compare(r->food[i].node,nd))
 { Output(r->food[i]) ;  
 	return i;
 	}
 return 1000;
 } 
main()
{SPku r,n;<br/> char nd[100];<br/> int k,j,i,y=0;<br/> printf("\n開始創建資料庫...");<br/> create(&r);<br/> printf("\n*********商品總單*********");<br/> for(i=0;i<r.len;i++)<br/> Output(r.food[i]);<br/> printf("\n**************************");<br/>while((j=getchar())!=EOF)<br/> {<br/>  printf("\n掃描輸入商品的編號:");<br/>  gets(nd);<br/>  printf("輸入成功!");<br/>  k=judge(&r,nd);<br/>  if(k==1000) <br/>  printf("\n無此商品...");<br/>  else<br/>  n.food[y++]=r.food[k];<br/> }
 printf("\n*********商品清單*********");
 n.len=y;
 for(i=0;i<n.len;i++)
 Output(n.food[i]);
}
4. C語言程序設計;圖書信息管理系統;圖書信息包括:書號、書名、作者名、出版時間、價格,借閱次數等。
//  圖書管理的實驗報告
#include <stdio.h> 
#include <stdlib.h> 
#include <conio.h> 
struct BOOK 
{ 
int id,usr[10],total,store,days[10]; 
char name[30],author[20]; 
}books[100]; 
void page_title(char *menu_item) 
{ 
printf("\n- %s -\n\n",menu_item); 
} 
void book_add(void) 
{ 
int n; 
page_title("注冊"); 
for(n=0;n<100;n++) 
if(books[n].id==0) break; 
printf("序號:"); 
scanf("%d",&books[n].id); 
printf("書名:"); 
scanf("%s",&books[n].name); 
printf("作者:"); 
scanf("%s",&books[n].author); 
printf("數量:"); 
scanf("%d",&books[n].total); 
books[n].store=books[n].total; 
}
int search_book(void) 
{ 
int n,i; 
page_title("查找"); 
printf("請輸入圖書序號:"); 
scanf("%d",&i); 
for(n=0;n<100;n++) 
{ 
if(books[n].id==i) 
{ 
printf("書名:%s\n",books[n].name); 
printf("作者:%s\n",books[n].author); 
printf("存數:%d\n",books[n].store); 
printf("總數:%d\n",books[n].total); 
return n; 
} 
} 
printf("\n輸入有錯或圖書序號不存在.\n"); 
return -1; 
} 
void book_out(void) 
{ 
int n,s,l,d; 
page_title("借書"); 
if((n=search_book())!=-1&&books[n].store>0) 
{ 
printf("請輸入借書證序號:"); 
scanf("%d",&s); 
printf("請輸入可借天數:"); 
scanf("%d",&d); 
for(l=0;l<10;l++) 
{ 
if(books[n].usr[l]==0) 
{ 
books[n].usr[l]=s; 
books[n].days[l]=d; 
break; 
} 
} 
books[n].store--; 
} 
if(n!=-1&&books[n].store==0) printf("此書已經全部借出.\n"); 
} 
/*借書的函數,首先調用找書函數*/ 
void book_in(void) 
{ 
int n,s,l; 
page_title("還書"); 
if((n=search_book())!=-1&&books[n].store<books[n].total) 
{ 
printf("借閱者圖書證列表:\n"); 
for(l=0;l<10;l++) 
if (books[n].usr[l]!=0) 
printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]); 
printf("請輸入借書證序號:"); 
scanf("%d",&s); 
for(l=0;l<10;l++) 
{ 
if(books[n].usr[l]==s) 
{ 
books[n].usr[l]=0; 
books[n].days[l]=0; 
break; 
} 
} 
books[n].store++; 
} 
if(n!=-1&&books[n].store==books[n].total) 
printf("全部入藏.\n"); 
} 
void book_del(void) 
{ 
int n; 
page_title("注銷"); 
if((n=search_book())!=-1) books[n].id=0; 
printf("該書已注銷.\n"); 
} 
void main(void) 
{ char n;
page_title("請選擇"); 
printf("1 注冊\n2 查找\n");
printf("3 借書\n4 還書\n5 注銷書"); 
printf("\n0 退出\n"); 
while(n=getchar()){
switch(n) 
{ 
case '1' : book_add();break; 
case '2' :search_book();break;
case '3' : book_out();break; 
case '4' : book_in();break; 
case '5' : book_del();break; 
case '0' :exit(0);
}printf("\n\n請選擇\n1 注冊\n2 查找\n3 借書\n4 還書\n5 注銷書\n0 退出\n\n");
getchar();
}
}
5. c語言題目!跪求大佬做!
#include<stdio.h>
main(){
int n1,n2,n3
double x;
printf("輸入三種商品購買數量,空格分開:" );
scanf("%d%d%d",&n1,&n2,&n3);
x=n1*2.6;
x+=n2*12*(n2>10,0.8,1);
x+=n*4.8*(n3>20,0.7,1);
printf("總金額:%lf\n",x);
}
6. 用c語言設計一個超市管理系統程序,要求能添加商品,能查詢商品,能購買商品,能展示商品。
超市管理系統
*/
#include<stdio.h>
#include<string.h>
//歡迎界面//
void welcome();
//功能瀏覽//
void mainMenu();
//購物結算//
void saleCalc();
//進貨管理//
void addGoods();
//修改信息
void updateGoods();
//顯示商品//
void showGoods();
//刪除商品//
void deleteGoods();
//查詢商品//
int searchGoods();
//購買結算
void saleCalc();
//更新庫存//
void updateGoodsNum(int number,char name[50]);
//結構體
struct goods
{
 char name[50];//商品名稱
 int num;//商品數量
 float price;//商品價格
};
int count;//商品種類數量
goods list[1000];//聲明goods的變數數組
char name[50];
void main()//主函數
{
 int num;
 welcome();
 do{
  mainMenu();
  printf("請選擇功能:");
  scanf("%d",&num);
  switch(num)
  {
  case 1:
   saleCalc();
   break;
  case 2:
   addGoods();
   break;
  case 3:
   updateGoods();
   break;
  case 4:
   showGoods();
   break;
  case 5:
   deleteGoods();
   break;
  case 0:
   break;
  }
 }while(num!=0);
}
void welcome()//歡迎界面
{
 printf("-------------------------------------------------------------------------\n");
 printf("****************歡迎使用超市管理系統*******************\n");
 printf("-------------------------------------------------------------------------\n");
}
void mainMenu()//功能瀏覽界面
{
 printf("****1.購物結算****\n");
 printf("****2.進貨管理****\n");
 printf("****3.修改商品****\n");
 printf("****4.顯示商品****\n");
 printf("****5.刪除商品****\n");
 printf("****0.退出系統****\n");
}
//查詢信息
int searchGoods()//查詢商品信息
{
 printf("請輸入您要購買商品的名字:");
 scanf("%s",name);
 for(int i=0;i<count;i++)
 {
  if(stricmp(name,list[i].name)==0)
  {
   return 1;
  }
  else
  {
   printf("對不起了,沒有找到%c商品\n",name);
   return -1;
  }
 }
}
//購物結算
void saleCalc()//購物結算
{
 int number,i,s;
 float priceGoods=0,sum=0,money;
 char c=' ';
 s=searchGoods();
 do
 {
  if(s==-1)
  {
   s=searchGoods();
  }else
  {
   printf("該商品b存在");
   for(i=0;i<count;i++)
   {
    if(strcmp(name,list[i].name)==0)
    {
     priceGoods=list[i].price;
     break;
    }
   }
   printf("請輸入您要購買的數量:");
   scanf("%d",&number);
   sum=priceGoods*number;
   updateGoodsNum(-number,name);
   printf("是否繼續購買(y/n)");
   fflush(stdin);
   c=getchar();
  }
 }while(c=='y'||c=='Y');
 printf("本次消費總金額為:%.2f",sum);
 printf("請輸入您的實際付款金額:");
 scanf("%f",&money);
 printf("找零:%.2f\n",money-sum);
}
//進貨管理
void addGoods() //商品的錄入
{
 int i=0;
 char c=' ';
 do
 {
  printf("請輸入商品的名稱:");
  fflush(stdin);
  scanf("%s",list[i].name);
  printf("請輸入商品的數量:");
  scanf("%d",&list[i].num);
  printf("請輸入商品的單價:");
  scanf("%f",&list[i].price);
  printf("是否繼續(y/n)");
  fflush(stdin);
  c=getchar();
 }while(c=='Y'||c=='y');
}
//更新庫存
void updateGoodsNum(int number,char name[50])
{
 int i;
 for(i=0;i<count;i++)
 {
  list[i].num+=number;//list[i].num=list[i].num+number
 }
}
//顯示貨物信息
void showGoods()
{
 printf("商品名稱\t數量\t單價\n");
 for(int i=0;i<count;i++)
 {
  printf("%s\t%d\t%.2f\n",list[i].name,list[i].num,list[i].price);
 }
}
//修改商品信息
void updateGoods()
{
 int i;
 printf("請輸入您要修改商品的名字:");
 scanf("%s",&name);
 for(i=0;i<count;i++)
 {
  if(strcmp(name,list[i].name)==0)
  {
   printf("請輸入新的商品名字:");
   scanf("%s",list[i].name);
   printf("請輸入您要修改商品的數量:");
   scanf("%d",list[i].num);
   printf("請輸入您要修改商品的單價:");
   scanf("%f",list[i].price);
  }
  else
  {
   printf("對不起,沒有找到該商品信息!");
  }
 }
}
//刪除商品信息
void deleteGoods()
{
 int index=-1;
 printf("請輸入您要刪除的商品名字:");
 scanf("%s",name);
 for(int i=0;i<count;i++)
 {
  if(strcmp(name,list[i].name)==0)
  {
   index=i;
  }
 }if(index==-1)
  {
   printf("對不起!沒有找到您要刪除的商品信息!");
  }
 else{
  for(int i=index;i<count;i++)
  {
   list[i]=list[i+1];
  }
 }
}
