1) 货物管理系统1.0
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
typedef struct goods
{ int num; int price; char name[ 100 ] ; int amount; int kg; struct goods * next; } goods; struct goods * creathead ( ) { struct goods * head; head= ( struct goods * ) malloc ( sizeof ( struct goods ) ) ; if ( head== NULL ) { exit ( 0 ) ; } else { head-> next== NULL ; return head; }
}
void g ( )
{ system ( "color 6F" ) ; printf ( "**************************************\n" ) ; printf ( "********** 1 输入货物信息 ************\n" ) ; printf ( "********** 2 增加货物信息 ************\n" ) ; printf ( "********** 3 删除货物信息 ************\n" ) ; printf ( "********** 4 查询货物信息 ************\n" ) ; printf ( "********** 5 修改货物信息 ************\n" ) ; printf ( "********** 6 显示货物信息 ************\n" ) ; printf ( "***********7 销毁货物信息 ************\n" ) ; printf ( "***********8 货物排序信息 ************\n" ) ; printf ( "********** 9 退出系统 ************\n" ) ; printf ( "**************************************\n" ) ;
}
void fun ( )
{
system ( "color 3F" ) ;
printf ( "************************************\n" ) ;
printf ( "************************************\n" ) ;
printf ( "*******欢迎使用货物管理系统*********\n" ) ;
printf ( "************************************\n" ) ;
printf ( "************************************\n" ) ;
printf ( "************************************\n" ) ;
printf ( "********请按Enter键进入下一步*******\n" ) ;
getchar ( ) ;
system ( "cls" ) ;
}
void show ( goods* head)
{ goods * p1, * p2; p1= p2= head; printf ( "请输入货物编号 货物价格 货物名称 货物数量 货物质量 \n" ) ; while ( 1 ) { p1= ( struct goods* ) malloc ( sizeof ( struct goods) ) ; if ( p1== NULL ) { printf ( "输入货物失败\n" ) ; exit ( - 1 ) ; } else { scanf ( "%d %d %s %d %d" , & p1-> num, & p1-> price, & p1-> name, & p1-> amount, & p1-> kg) ; } p2-> next= p1; p2= p1; if ( p1-> num== 0 ) { break ; } } p1-> next= NULL ;
} void addlist ( goods * head) { goods * p1, * p2; p1= p2= head; while ( p1-> next!= NULL ) { p1= p1-> next; } p2= ( goods* ) malloc ( sizeof ( goods) ) ; scanf ( "%5d %5d %5s %5d %5d" , & p2-> num, & p2-> price, & p2-> name, & p2-> amount, & p2-> kg) ; p2-> next= NULL ; p1-> next= p2;
} void change ( goods * head) { int a; printf ( "----------请输入你要修改的编号:" ) ; scanf ( "%d" , & a) ; goods * p; p= head-> next; while ( 1 ) { if ( p-> num== a) { break ; } p= p-> next; } scanf ( "%d %d %s %d %d" , & p-> num, & p-> price, & p-> name, & p-> amount, & p-> kg) ; } void inquiry ( goods * head) { int b; goods * p; p= head; printf ( "请输入你要查询的货物编号:\n" ) ; scanf ( "%d" , & b) ; while ( p-> num!= b) { p= p-> next; } printf ( "----------查询结果----------" ) ; printf ( "货物编号%d,货物价格%d,货物名称%s,货物数量%d,货物重量%d:\n" , p-> num, p-> price, p-> name, p-> amount, p-> kg) ;
}
void deletelist ( goods * head)
{ int c; printf ( "请输入你要删除的货物编号:\n" ) ; scanf ( "%d" , & c) ; goods* p1= head; goods* p2= head; while ( p1!= NULL ) { if ( p1-> num== c) { p1-> next= p2-> next; free ( p1) ; printf ( "删除成功!\n" ) ; break ; } p2= p2-> next; p1= p2-> next; }
}
void print ( goods * head)
{ goods * p; p= head-> next; while ( p-> next!= NULL ) { printf ( "货物信息:货物编号%5d,货物价格%5d,货物名称%5s,货物数量%5d,货物重量%5d\n" , p-> num, p-> price, p-> name, p-> amount, p-> kg) ; p= p-> next; }
} void destroy ( goods* head)
{ goods * p; p= head; while ( p-> next!= NULL ) { p= p-> next; free ( p) ; } printf ( "该货物信息已经被销毁\n" ) ;
} void QQ ( )
{ char name[ 20 ] , sercret[ 20 ] ; printf ( "请输入你的用户名\n" ) ; scanf ( "%s" , & name) ; printf ( "请输入你的密码\n" ) ; scanf ( "%s" , & sercret) ; if ( strcmp ( "1219913130" , name) == 0 && strcmp ( "666666" , sercret) == 0 ) { printf ( "登录成功" ) ; } else { printf ( "登录失败" ) ; exit ( - 1 ) ; } }
void sort ( goods* head)
{ goods * p1, * p2, * p3; int x, i; int t; char name_[ 20 ] ; int num, amount, kg; for ( x= 0 , p3= head-> next; p3!= NULL ; p3= p3-> next) { x++ ;
}
for ( i= 0 ; i< x; i++ ) { for ( p1= head-> next, p2= head-> next-> next; p1!= NULL , p2!= NULL ; p1= p1-> next, p2= p2-> next) { if ( p1-> price< p2-> price) { t = p2-> price; p2-> price= p1-> price; p1-> price= t; strcpy ( name_, p2-> name) ; strcpy ( p2-> name, p1-> name) ; strcpy ( p1-> name , name_) ; num= p2-> num; p2-> num= p1-> num; p1-> num= num; amount= p2-> amount; p2-> amount= p1-> amount; p1-> amount= amount; kg= p2-> kg; p2-> kg= p1-> kg; p1-> kg= kg; } } } goods * p; p= head-> next; while ( p-> next!= NULL ) { printf ( "货物信息:货物编号%5d,货物价格%5d,货物名称%5s,货物数量%5d,货物重量%5d\n" , p-> num, p-> price, p-> name, p-> amount, p-> kg) ; p= p-> next; }
} int main ( )
{ struct goods* head; head= creathead ( ) ; QQ ( ) ; while ( 1 ) { system ( "date/t" ) ; system ( "time/t" ) ; g ( ) ; int n; printf ( "请输入编号1-9\n" ) ; scanf ( "%d" , & n) ; switch ( n) { case 1 : { system ( "CLS\n" ) ; show ( head) ; break ; } case 2 : { system ( "CLS\n" ) ; addlist ( head) ; break ; } case 3 : { system ( "CLS\n" ) ; deletelist ( head) ; break ; } case 4 : { system ( "CLS\n" ) ; inquiry ( head) ; break ; } case 5 : { system ( "CLS\n" ) ; change ( head) ; break ; } case 6 : { system ( "CLS\n" ) ; print ( head) ; break ; } case 7 : { system ( "CLS\n" ) ; destroy ( head) ; break ; } case 8 : { system ( "CLS\n" ) ; sort ( head) ; break ; } case 9 : { system ( "CLS\n" ) ; system ( "color 6F" ) ; printf ( "=============================================================\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| 谢谢使用 ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "=============================================================\n" ) ; exit ( 0 ) ; default : printf ( "输入有误!" ) ; } } } }
2) 货物管理系统2.0
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
typedef struct storage{ int num; int price; char name[ 20 ] ; int quantity; struct storage * next;
} storage;
void add ( storage * head) { printf ( "请选择:1 接着上次输入 2 新建输入\n" ) ; int chose; scanf ( "%d" , & chose) ; switch ( chose) { case 1 : printf ( "请输入文件名:\n" ) ; char filename1[ 20 ] ; scanf ( "%s" , filename1) ; printf ( "结束输入请输入0 0 0 0\n" ) ; printf ( "货物编号 货物价格 货物名称 货物数量\n" ) ; FILE * fp; fp= fopen ( filename1, "a+" ) ; if ( fp== NULL ) { printf ( "无法打开文件!" ) ; exit ( 0 ) ; } storage * p1, * p2; p1= p2= head; while ( 1 ) { p1= ( storage* ) malloc ( sizeof ( storage) ) ; if ( p1== NULL ) { printf ( "节点创建失败!" ) ; exit ( 0 ) ; } else { scanf ( "%d %d %s %d" , & p1-> num, & p1-> price, & p1-> name, & p1-> quantity) ; fprintf ( fp, "%d %d %s %d\n" , p1-> num, p1-> price, p1-> name, p1-> quantity) ; p2-> next= p1; p2= p1; if ( p1-> num== 0 ) { break ; } } } p2-> next= NULL ; fclose ( fp) ; break ; case 2 : FILE * fn; printf ( "请输入文件名:\n" ) ; char filename2[ 20 ] ; scanf ( "%s" , filename2) ; fn= fopen ( filename2, "w" ) ; printf ( "结束输入请输入0 0 0 0\n" ) ; printf ( "货物编号 货物价格 货物名称 货物数量\n" ) ; if ( fn== NULL ) { printf ( "无法打开文件!" ) ; exit ( 0 ) ; } storage * p3, * p4; p3= p4= head; while ( 1 ) { p3= ( storage* ) malloc ( sizeof ( storage) ) ; if ( p3== NULL ) { printf ( "节点创建失败!" ) ; exit ( 0 ) ; } else { scanf ( "%d %d %s %d" , & p3-> num, & p3-> price, & p3-> name, & p3-> quantity) ; fprintf ( fn, "%d %d %s %d\n" , p3-> num, p3-> price, p3-> name, p3-> quantity) ; p4-> next= p3; p4= p3; if ( p3-> num== 0 ) { break ; } } } p4-> next= NULL ; fclose ( fn) ; break ;
}
}
void amend ( storage * head) { printf ( "请输入要想修改的文件名称:\n" ) ; char filename[ 20 ] ; scanf ( "%s" , filename) ; int i, j, l; char k[ 20 ] ; FILE * fp, * ftn; fp= fopen ( filename, "r" ) ; ftn= fopen ( "tmp.txt" , "w" ) ; if ( fp== NULL || ftn== NULL ) { printf ( "无法打开文件!" ) ; exit ( 0 ) ; } printf ( "请输入要修改的货物编号:" ) ; int c; scanf ( "%d" , & c) ; while ( ! feof ( fp) ) { fscanf ( fp, "%d %d %s %d\n" , & i, & j, k, & l) ; if ( i== c) { printf ( "%d %d %s %d\n" , i, j, k, l) ; printf ( "修改为:" ) ; scanf ( "%d %d %s %d" , & i, & j, k, & l) ; fprintf ( ftn, "%d %d %s %d\n" , i, j, k, l) ; continue ; } fprintf ( ftn, "%d %d %s %d\n" , i, j, k, l) ; } fclose ( fp) ; fclose ( ftn) ; remove ( filename) ; rename ( "tmp.txt" , filename) ;
}
void search ( storage * head) { printf ( "请输入要想修改的文件名称:\n" ) ; char filename[ 20 ] ; scanf ( "%s" , filename) ; int i, j, l; char k[ 20 ] ; FILE * fp; fp= fopen ( filename, "r" ) ; printf ( "请输入要查询的货物编号:" ) ; int d; scanf ( "%d" , & d) ; while ( ! feof ( fp) ) { fscanf ( fp, "%d %d %s %d\n" , & i, & j, k, & l) ; if ( i== d) { printf ( "\n货物编号 货物价格 货物名称 货物数量\n" ) ; printf ( "%-10d %-10d %-10s %-10d\n" , i, j, k, l) ; break ; } } fclose ( fp) ;
}
void deletestorage ( storage * head) { printf ( "请输入要想修改的文件名称:\n" ) ; char filename[ 20 ] ; scanf ( "%s" , filename) ; storage * p3; int m, z, l; char k[ 20 ] ; FILE * fp; fp= fopen ( filename, "r" ) ; while ( ! feof) { fscanf ( fp, "%d %d %s %d\n" , & m, & z, k, & l) ; p3-> num= m; p3-> price= z; strcpy ( p3-> name, k) ; p3-> quantity= l; p3= p3-> next; } p3-> next= NULL ; printf ( "请输入要删除的货物编号:" ) ; int b; scanf ( "%d" , & b) ; storage * p1= head-> next, * p2= head; while ( p1!= NULL ) { if ( p1-> num== b) { p2-> next= p1-> next; free ( p1) ; break ; } p2= p2-> next; p1= p2-> next; } storage * p4; p4= head-> next; FILE * ftp; ftp= fopen ( filename, "w" ) ; if ( ftp== NULL ) { printf ( "无法打开文件!" ) ; exit ( 0 ) ; } while ( p3-> next!= NULL ) { fprintf ( ftp, "%d %d %s %d\n" , p4-> num, p4-> price, p4-> name, p4-> quantity) ; p4= p4-> next; } fclose ( ftp) ;
}
void paixu ( storage * head) { printf ( "请输入要想修改的文件名称:\n" ) ; char filename[ 20 ] ; scanf ( "%s" , filename) ; storage * p3; int m, z, l; char k[ 20 ] ; FILE * fp; fp= fopen ( filename, "r" ) ; while ( ! feof) { fscanf ( fp, "%d %d %s %d\n" , & m, & z, k, & l) ; p3-> num= m; p3-> price= z; strcpy ( p3-> name, k) ; p3-> quantity= l; p3= p3-> next; } p3-> next= NULL ; fclose ( fp) ; int n= 0 , i, j, t1, t2, t3; char t4[ 20 ] ; storage * p1, * p; p= head-> next; while ( p!= NULL ) { n++ ; p= p-> next; } for ( i= 0 ; i< n- 2 ; i++ ) { p1= head-> next; for ( j= 0 ; j< n- i- 2 ; j++ ) { if ( p1-> price> p1-> next-> price) { t1= p1-> num; p1-> num= p1-> next-> num; p1-> next-> num= t1; t2= p1-> price; p1-> price= p1-> next-> price; p1-> next-> price= t2; t3= p1-> quantity; p1-> quantity= p1-> next-> quantity; p1-> next-> quantity= t3; strcpy ( t4, p1-> name) ; strcpy ( p1-> name, p1-> next-> name) ; strcpy ( p1-> next-> name, t4) ; } p1= p1-> next; } } p= head-> next; printf ( "货物编号 货物价格 货物名称 货物质量\n" ) ; while ( p-> num!= 0 ) { printf ( "%-10d %-10d %-10s %-10d\n" , p-> num, p-> price, p-> name, p-> quantity) ; p= p-> next; }
}
void print ( storage * head) { printf ( "请输入要想修改的文件名称:\n" ) ; char filename[ 20 ] ; scanf ( "%s" , filename) ; int i, j, l; char k[ 20 ] ; FILE * fp; fp= fopen ( filename, "r" ) ; if ( fp== NULL ) { printf ( "无法打开文件!" ) ; exit ( 0 ) ; } printf ( "货物编号 货物价格 货物名称 货物数量\n" ) ; while ( fscanf ( fp, "%d %d %s %d\n" , & i, & j, k, & l) != EOF ) { if ( i== 0 ) continue ; printf ( "%-10d %-10d %-10s %-10d\n" , i, j, k, l) ; } fclose ( fp) ;
}
int main ( ) { system ( "color 2F" ) ; storage * head; head= ( storage* ) malloc ( sizeof ( storage) ) ; if ( head== NULL ) { printf ( "头结点创建失败!" ) ; exit ( 0 ) ; } head-> next= NULL ; char usename[ 10 ] , password[ 7 ] ; while ( 1 ) { system ( "date/t" ) ; system ( "time/t" ) ; printf ( "=================================================================\n" ) ; printf ( "\\\\ 欢迎使用仓库货物管理系统 //\n" ) ; printf ( "=================================================================\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| 请输入账号密码 ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "=================================================================\n" ) ; printf ( "账号:" ) ; scanf ( "%s" , usename) ; printf ( "密码:" ) ; scanf ( "%s" , password) ; if ( strcmp ( "666" , usename) == 0 && strcmp ( "666" , password) == 0 ) { system ( "CLS" ) ; while ( 1 ) { int a; system ( "date/t" ) ; system ( "time/t" ) ; printf ( "=================================================================\n" ) ; printf ( "\\\\ 欢迎使用仓库货物管理系统 //\n" ) ; printf ( "=================================================================\n" ) ; printf ( "|| 【1】输入货物信息 ||\n" ) ; printf ( "|| 【2】修改货物信息 ||\n" ) ; printf ( "|| 【3】查询货物信息 ||\n" ) ; printf ( "|| 【4】显示全部货物信息 ||\n" ) ; printf ( "|| 【5】删除货物信息 ||\n" ) ; printf ( "|| 【6】按价格排序 ||\n" ) ; printf ( "|| 【0】退出系统 ||\n" ) ; printf ( "=================================================================\n" ) ; printf ( "请选择程序种类:" ) ; scanf ( "%d" , & a) ; switch ( a) { case 1 : system ( "CLS" ) ; add ( head) ; break ; case 2 : system ( "CLS" ) ; amend ( head) ; break ; case 3 : system ( "CLS" ) ; search ( head) ; break ; case 4 : system ( "CLS" ) ; print ( head) ; break ; case 5 : system ( "CLS" ) ; deletestorage ( head) ; break ; case 6 : system ( "CLS" ) ; paixu ( head) ; break ; case 0 : system ( "CLS" ) ; printf ( "=============================================================\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| 谢谢使用 ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "=============================================================\n" ) ; exit ( 0 ) ; default : printf ( "输入有误!" ) ; } }
}
else { printf ( "=============================================================\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| 账号或密码输入错误! ||\n" ) ; printf ( "|| 退出系统请输入 0 ||\n" ) ; printf ( "|| 重新输入请输入 1 ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "=============================================================\n" ) ; int a; scanf ( "%d" , & a) ; system ( "CLS" ) ; if ( a== 0 ) { printf ( "=============================================================\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| 谢谢使用 ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "|| ||\n" ) ; printf ( "=============================================================\n" ) ; exit ( 0 ) ; } }
} return 0 ;
}