作品名称
开发者:
一、系统背景:
本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷及时准确的调整货物的仓储量达到最合理化。可以使店主不失效率的节省大量精力用于其他方面符合当今社会的商业形式而且本软件体积小操作简单是管理仓库的不二选择
二、系统简介:
设计亮点:
◆三级菜单使操作更简便明了
◆密码操作能有效保证客户信息的安全性
◆独特的dos命令调用使信息存储的实体属性为隐藏且无扩展名大大增大了安全系数
◆数据结构为链表摆脱了数据数量的限制
◆提供三种查看模式并会标出排名
◆退出店主模式时会提示是否保存若选择yes着进行保存操作
基本功能:
·在员工模式下可输入卖出货物的名称和数目程序自动在后台进行一系列的操作
·新建数据并同时对其处理
·修改数据
·插入数据
·删除数据
·查找数据
·查看数据
·数据存档
·修改密码
三、系统结构图
#define LEN sizeof(struct shop)
#include
#include
#include
#include
struct shop
{
char name[30];
float price_in;
float price_out;
int num_in;
int num_now;
int num_sold;
float win;
float percent;
struct shop *next;
};
int n=0;
void main(void)
{
void auto1(struct shop **h_p);
int menu1(struct shop **h_p);
void print1(void);
void assistant(struct shop *head);
int password(void);
int menu2(struct shop **h_p);
void print2(void);
void creat(struct shop **h_p);
void rewrite(struct shop **h_p);
void insert(struct shop **h_p);
void deleat(struct shop **h_p);
void search(struct shop **h_p);
void printall(struct shop **h_p);
void save(struct shop *head);
void password_set(void);
int password_exi(struct shop **h_p);
int data_exi(struct shop **h_p);
void load(struct shop **h_p);
void save(struct shop *head);
struct shop *addbuild(struct shop **h_p); void sort0(struct shop **h_p);
int search1(struct shop **h_p,char a[30]); void sort1(struct shop **h_p);
void sort2(struct shop **h_p);
void sort3(struct shop **h_p);
void print3(void);
void password_create(void);
struct shop *addbuild(struct shop **h_p); int a;
struct shop *head,**h_p;
head=NULL;
h_p=&head;
auto1(h_p);
do
{
a=menu1(h_p);
}
while(a!=3);
system("cls");
printf("谢谢使用^_^");
getch();
}
int menu1(struct shop **h_p)
{
int a,b;
struct shop *head;
head=*h_p;
print1();
scanf("%d",&a);
putchar('\n');
getchar();
do
{
switch(a)
{
case 1:assistant(head);break;
case 2:
if(password())
do
{
b=menu2(h_p);
}
while(b!=9);
break;
default:break;
}
if(a!=3)
{
system("cls");
print1();
scanf("%d",&a);
}
}
while(a!=3);
return(a);
}
int menu2(struct shop **h_p)
{
int b;
char a;
struct shop *head;
head=*h_p;
print2();
scanf("%d",&b);
putchar('\n');
getchar();
do
{
switch(b)
{
case 1:creat(h_p);break;
case 2:rewrite(h_p);break;
case 3:insert(h_p);break;
case 4:deleat(h_p);break;
case 5:search(h_p);break;
case 6:printall(h_p);break;
case 7:head=*h_p;save(head);break; case 8:password_set();break; default:break;
}
if(b!=9)
{
system("cls");
print2();
scanf("%d",&b);
getchar();
}
while(b!=9);
printf("\n保存吗?(y/n):");
putchar('\n');
scanf("%c",&a);
if(a=='y')
{
head=*h_p;
save(head);
}
return(b);
}
void auto1(struct shop **h_p)
{
if(password_exi(h_p) && data_exi(h_p))
load(h_p);
}
void print1(void)
{
system("cls");
printf("********************************************************************* ***********\n");
printf(" 仓库管理系统\n");
printf("********************************************************************* ***********\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" #******************* 菜单*****************# \n");
printf(" #| 1.员工模式|# \n");
printf(" #| 2.店主模式|# \n");
printf(" #| 3.退出|# \n");
printf(" #*********************************************# \n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf("\n请选择(1-3):");
}
void assistant(struct shop *head)
{
char a[50],c='y';
int b;
struct shop *i;
i=head;
while(c=='y')
{
system("cls");
printf("\n请输入卖出的商品名称:\n");
gets(a);
putchar('\n');
printf("\n请输入卖出的商品数量:\n");
scanf("%d",&b);
putchar('\n');
while(strcmp(i->name,a)!=0&&i->next!=NULL)
i=i->next;
if(i->next!=NULL)
{
i->num_now-=b;
i->win=(i->num_in-i->num_now)*(i->price_out-i->price_in); }
else
printf("\n此商品不存在或通知店主更新数据库\n"); printf("\n继续吗?(y/n):");
putchar('\n');
c=getchar();
getchar();
}
save(head);
}
int password(void)
{
FILE*fp;
char a[50],b[50];
int i;
system("cls");
fp=fopen("c:\\y_secrea","rb");
fscanf(fp,"%s",&a);
fclose(fp);
printf("请输入密码:\n");
putchar('\n');
i=0;
do
{
b[i]=getch();
printf("*");
i++;
}
while(b[i-1]!=13&&i<19);
b[i-1]='\0';
if(strcmp(a,b)==0)
return(1);
else
return(0);
}
void print2(void)
{
system("cls");
printf("********************************************************************* ***********\n");
printf(" 店主模式\n");
printf("********************************************************************* ***********\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf(" #******************* 菜单*****************# \n");
printf(" #| 1.新建 2.修改|# \n");
printf(" #| 3.插入 4.删除|# \n");
printf(" #| 5.查找 6.查看|# \n");
printf(" #| 7.保存8.改密|# \n");
printf(" #| 9.上一层|# \n");
printf(" #*********************************************#
\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n");
printf("请选择(1-9):");
}
void creat(struct shop **h_p)
{
struct shop *head,*i,*j;
int f=1;
head=NULL;
n=0;
printf("\n请输入数据若完成请在名称处输“0”.\n\n");
i=j=addbuild(&head);
if(strcmp(i->name,"0")==0)
f=0;
while(f)
{
n++;
if(n==1)
head=j;
f=1;
printf("\n请输入下一种货物的数据.\n\n");
i=addbuild(&head);
if(strcmp(i->name,"0")==0)
{
free(i);
f=0;
break;
}
j->next=i;
j=i;
}
j->next=NULL;
*h_p=head;
}
void rewrite(struct shop **h_p)
{
char a[30];
struct shop *i,*j,*head;
head=*h_p;
i=head;
do
{
printf("\n请输入要修改货物的名称:"); putchar('\n');
gets(a);
if(n>=1&&!search1(h_p,a))
{
printf("\n不存在的货物名称!\n");
getch();
if(head==NULL) goto end;
}
}
while(n>=1&&!search1(h_p,a));
while(strcmp(a,i->name)!=0&&i->next!=NULL) {
i=i->next;
}
if(strcmp(a,i->name)==0)
{
printf("\n真的要修改吗??(y/n):"); putchar('\n');
if(getchar()=='y')
{
getchar();
j=addbuild(h_p);
strcpy(i->name,j->name);
i->price_in=j->price_in;
i->price_out=j->price_out;
i->num_in=j->num_in;
i->num_now=j->num_now;
i->num_sold=j->num_sold;
i->win=j->win;
i->percent=j->percent;
free(j);
printf("\n修改完成^_^\n\n");
}
}end:;
}
void insert(struct shop **h_p)
{
struct shop *i,*j,*x,*head;
head=*h_p;
x=addbuild(h_p);
i=j=head;
while(strcmp(i->name,x->name)<0&&i->next!=NULL) {
j=i;
i=i->next;
}
if(strcmp(i->name,x->name)>=0)
{
if(i==head)
head=x;
else
j->next=x;
x->next=i;
}
else
{
i->next=x;
x->next=NULL;
}
printf("\n插入完成^_^\n\n.");
*h_p=head;
}
void deleat(struct shop **h_p)
{
struct shop*i,*j,*head;
char a[30],b;
head=*h_p;
do
{
system("cls");
printf("\n请输入你要删除的货物的名称:\n"); putchar('\n');
gets(a);
if(n>=1&&!search1(h_p,a))
printf("\n不存在的货物名称!\n");
if(head==NULL) goto end;
}
}
while(n>=1&&!search1(h_p,a));
printf("\n真的要删除吗?(y/n):");
putchar('\n');
b=getchar();
getchar();
if(b=='y')
{
i=head;
while(strcmp(i->name,a)!=0&&i->next!=NULL) {
j=i;
i=i->next;
}
if(strcmp(i->name,a)==0)
{
if(i==head)
{
head=i->next;
free(i);
}
else
j->next=i->next;
n--;
printf("\n删除完成^_^.\n\n");
*h_p=head;
}
}
end:;
void search(struct shop **h_p)
{
int begin,end,mid,t;
char a[30];
struct shop *i,*head;
head=*h_p;
i=head;
printf("\n请输入要查询货物的名称:");
putchar('\n');
gets(a);
while((strcmp(i->name,a)!=0)&&i->next!=NULL)
{
i=i->next;
}
if((strcmp(i->name,a)==0))
{
printf("\n名称\t进价\t售价\t进货数目存货数目销量\t赢利\t利率\n"); printf("\n=================================================================== ============\n");
printf("%s%10.2f%10.2f%10d%10d%10d%9.2f%10.2f",i->name,i->price_in,i->price_out,i->n um_in
,i->num_now,i->num_sold,i->win,i->percent);
}
else
printf("\n此货物不存在!\n");
getch();
}
void printall(struct shop **h_p)
{
int a,c;
char b='y';
struct shop *i;
while(b=='y')
{
do
{
system("cls");
print3();
scanf("%d",&a);
}
while(a!=1&&a!=2&&a!=3);
switch(a)
{
case 1:sort1(h_p);break;
case 2:sort2(h_p);break;
case 3:sort3(h_p);break;
default:break;
}
for(c=1,i=*h_p;i->next!=NULL;i=i->next,c++)
{
printf("\n名称\t进价\t售价\t进货数目存货数目销量\t赢利\t利率\t排名\n");
printf("\n=================================================================== ============\n");
printf("%s%10.2f%10.2f%10d%10d%10d%9.2f%10.2f%8d",i->name,i->price_in,i->price_out,i ->num_in
,i->num_now,i->num_sold,i->win,i->percent,c);
if(c%8==0)
{
getch();
getchar();
printf("按任意键继续。。。\n");
}
}
printf("\n名称\t进价\t售价\t进货数目存货数目销量\t赢利\t利率\t排名\n");
printf("\n=================================================================== ============\n");
printf("%s%10.2f%10.2f%10d%10d%10d%9.2f%10.2f%8d",i->name,i->price_in,i->price_out,i ->num_in
,i->num_now,i->num_sold,i->win,i->percent,c);
getch();
getchar();
system("cls");
printf("查看其他排列方式?(y/n):");
scanf("%c",&b);
putchar('\n');
}
}
void save(struct shop *head)
{
FILE *fp;
struct shop *i;
system("attrib c:\\y_data -h");
system("del c:\\y_data");
fp=fopen("c:\\y_data","wb+");
i=head;
for(i=head;i->next!=NULL;i=i->next)
{
fprintf(fp,"%s%7.2f,%.2f,%d,%d,%d,%.2f,%.2f,",i->name,i->price_in,i->price_out,i->num_in ,i->num_now,i->num_sold,i->win,i->percent);
}
fprintf(fp,"%s%7.2f,%.2f,%d,%d,%d,%.2f,%.2f,",i->name,i->price_in,i->price_out,i->num_in ,i->num_now,i->num_sold,i->win,i->percent);
fclose(fp);
system("attrib c:\\y_data +h");
printf("\n^_^已保存\n");
}
void password_set()
{
FILE *fp;
int i,f=0,t=0;
char a[20],b[20];
do
{
if(password())
{
do
{
system("cls");
printf("请输入新密码(3~19位):\n");
putchar('\n');
i=0;
do
{
a[i]=getch();
printf("*");
i++;
}
while(a[i-1]!=13&&i<19);
a[i-1]='\0';
printf("\n请确认新密码:\n"); putchar('\n');
i=0;
do
{
b[i]=getch();
printf("*");
i++;
}
while(b[i-1]!=13&&i<19);
b[i-1]='\0';
if(strcmp(a,b)==0&&i>2)
{
t=1;
system("attrib c:\\y_secrea -h"); system("del c:\\y_secrea");
fp=fopen("c:\\y_secrea","wb+"); fprintf(fp,"%s",a);
fclose(fp);
printf("\n密码修改完成^_^\n"); };
}
while(t==0);
}
else
f++;
if(f==3)
break;
}
while(t==0);
}
int password_exi(struct shop **h_p) {
FILE *fp;
if((fp=fopen("c:\\y_secrea","rb"))!=NULL) {
fclose(fp);
return 1;
}
else
{
password_create();
creat(h_p);
save(*h_p);
return 0;
}
}
int data_exi(struct shop **h_p)
{
FILE *fp;
if((fp=fopen("c:\\y_data","rb"))!=NULL) {
fclose(fp);
return 1;
}
else
{
creat(h_p);
save(*h_p);
return 0;
}
}
void load(struct shop **h_p)
{
FILE *fp;
struct shop *head,*i,*j;
head=NULL;
j=i=(struct shop *)malloc(LEN);
if((fp=fopen("c:\\y_data","rb"))!=NULL)
{
while(!feof(fp))
{
fscanf(fp,"%s%f,%f,%d,%d,%d,%f,%f",i->name,&i->price_in,&i->price_out,&i->num_in,&i->n um_now,&i->num_sold,&i->win,&i->percent);
n++;
if(n==1)
head=j;
if(!feof(fp))
i=(struct shop*)malloc(LEN);
j->next=i;
j=i;
}
j->next=NULL;
*h_p=head;
fclose(fp);
}
}
struct shop *addbuild(struct shop **h_p)
{
struct shop *i;
int b,f;
float c;
char a[30];
i=(struct shop *)malloc(LEN);
do
{
f=0;
printf("\n请输入名称:\n\n");
scanf("%s",a);
if(n>=1&&search1(h_p,a))
{
printf("\n名称重复!\n");
f=1;
}
}
while(f);
strcpy(i->name,a);
if(strcmp(i->name,"0")==0)
return(i);
printf("请输入进价:\n\n");
scanf("%f",&c);
i->price_in=c;
printf("请输入售价:\n\n");
scanf("%f",&c);
i->price_out=c;
printf("请输入进货数目:\n\n");
scanf("%d",&b);
i->num_in=b;
printf("请输入现存数目:\n\n");
scanf("%d",&b);
i->num_now=b;
i->num_sold=i->num_in-i->num_now;
i->win=(i->num_in-i->num_now)*(i->price_out-i->price_in); i->percent=(i->price_out-i->price_in)/(i->price_in);
return(i);
}
void sort0(struct shop **h_p)
{
struct shop *i,*j,*z,*sei,*jt,*seit;
int ni,nj,np,t;
char sm[30];
if(n>=2)
for(i=*h_p,ni=1;i->next!=NULL;i=i->next,ni++)
{
strcpy(sm,i->name);
np=ni;
for(j=i->next,nj=ni+1;j->next!=NULL;j=j->next,nj++)
if(strcmp(sm,j->name)>0)
{
np=nj;
strcpy(sm,j->name);
}
if(j->next==NULL)
if(strcmp(sm,j->name)>0)
np=nj;
if(np!=ni)
{
for(t=1,j=*h_p;t
jt=j->next;
i=jt;
if(ni==1)
{
seit=*h_p;
z=*h_p;
*h_p=j->next;
j->next=z;
}
else
{
for(t=1,sei=*h_p;t
seit=sei->next;
z=sei->next;
sei->next=j->next;
j->next=z;
}
z=jt->next;
jt->next=seit->next;
seit->next=z;
}
}
}
int search1(struct shop **h_p,char a[30]) {
struct shop *i;
int j;
for(i=*h_p,j=1;j
{
if(strcmp(a,i->name)==0)
return 1;
};
if(strcmp(a,i->name)==0)
return 1;
else
return 0;
}
void sort1(struct shop **h_p)
{
struct shop *i,*j,*z,*sei,*jt,*seit;
int ni,nj,np,t;
int sm;
if(n>=2)
for(i=*h_p,ni=1;i->next!=NULL;i=i->next,ni++)
{
sm=i->num_sold;
np=ni;
for(j=i->next,nj=ni+1;j->next!=NULL;j=j->next,nj++) if(sm
{
np=nj;
sm=j->num_sold;
}
if(j->next==NULL)
if(sm
np=nj;
if(np!=ni)
{
for(t=1,j=*h_p;t
jt=j->next;
i=jt;
if(ni==1)
{
seit=*h_p;
z=*h_p;
*h_p=j->next;
j->next=z;
}
else
{
for(t=1,sei=*h_p;t
seit=sei->next;
z=sei->next;
sei->next=j->next;
j->next=z;
}
z=jt->next;
jt->next=seit->next;
seit->next=z;
}
}
}
系统主界面(frmMain.cs) using System; using System.Collections.Generic; using https://www.sodocs.net/doc/418941970.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Diagnostics; namespace warehouse { public partial class frmMain : Form { public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { tsslUser.Text = "操作用户权限:" + frmLogin.M_str_right.ToString().Trim(); tsslDate.Text = DateTime.Today.ToLongDateString(); tsslTime.Text = "登录系统时间:" + DateTime.Now.ToShortTimeString(); if (frmLogin.M_str_right.ToString().Trim() == "普通用户") { 入库管理ToolStripMenuItem.Enabled = false; 出库管理ToolStripMenuItem.Enabled = false; 借货还货ToolStripMenuItem.Enabled = false; 供货商设置ToolStripMenuItem.Enabled = false; 货物档案设置ToolStripMenuItem.Enabled = false; 仓库设置ToolStripMenuItem.Enabled = false; 权限设置ToolStripMenuItem.Enabled = false; 用户管理ToolStripMenuItem.Enabled = false; btnIS.Enabled = false; btnOS.Enabled = false; btnBR.Enabled = false; btnPI.Enabled = false; btnGI.Enabled = false; btnSI.Enabled = false; btnRI.Enabled = false; btnUM.Enabled = false; } } private void btnIS_Click(object sender, EventArgs e)//入库管理
#include
精心整理 作品名称 开发者: 一、系统背景: 本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷 数 ·在员工模式下可输入卖出货物的名称和数目程序自动在后台进行一系列的操作·新建数据并同时对其处理 ·修改数据 ·插入数据 ·删除数据
·查找数据 ·查看数据 ·数据存档 ·修改密码 三、系统结构图 { float win; float percent; struct shop *next; }; int n=0;
void main(void) { void auto1(struct shop **h_p); int menu1(struct shop **h_p); void print1(void); int data_exi(struct shop **h_p); void load(struct shop **h_p); void save(struct shop *head); struct shop *addbuild(struct shop **h_p); void sort0(struct shop **h_p);
int search1(struct shop **h_p,char a[30]); void sort1(struct shop **h_p); void sort2(struct shop **h_p); void sort3(struct shop **h_p); void print3(void); { } printf("谢谢使用^_^"); getch(); } int menu1(struct shop **h_p) {
#include<> #include<> #include<> #include<> /* strcmp函数原型包含*/ #define N 100 /*定义最大学生人数为100*/ struct student /*学生结构体定义*/ { char no[11]; /*学号,10位*/ char name[10];/*姓名,3个汉字*/ char grade[10];/*班级*/ char pro[20];/*专业*/ float score[5];/*储存5门功课的成绩*/ float ave;/*储存平均分*/ int year;/*入学年*/ }stu[N]; int num; void panduani(int); /*通过i的值,判断信息要查找的信息是否存在*/ void output(); /*输出学生成绩函数(公共函数)*/ void init(); /*系统初始化函数*/ void newfile(); /*建立新的数据文件*/ void read1(); /*从数据文件中读取数据*/ void weihu(); /*维护界面函数*/ void new1(); /*新增一个学生成绩函数*/ void xiugai(); /*修改学生成绩*/ void xgcj(int); /*修改成绩*/
void delete1(); /*删除学生信息函数*/ void tongji(); /*统计界面函数*/ void tongji1(); /*计算每个学生平均分*/ void tongji2(); /*计算每门课程的平均分*/ void paixu1(); /*排序函数*/ void paino(); /*按学号排序*/ void paiave(); /*按平均分排序*/ void paidkcj(); /*按单科成绩排序*/ void change(int,int); /*交换结构体数组中的两个记录*/ void outputx(int); /*选择输出单科成绩*/ void find1(); /*查找界面函数*/ int find(char sno[]); /*按学号查找*/ int findname(char cname[]);/*按姓名查找*/ void findyear(int cyear); /*按入学年查找*/ void save(); /*保存文件*/ void stop(); /*停顿函数*/ void stop() /*停顿函数(公共函数)*/ { printf("Press Any Key To Continue...\n"); getchar(); } void output() /*输出学生成绩函数(公共函数)*/ { int i,j;
仓库管理系统 V B A c c e s s源代码 Standardization of sany group #QS8QHH-HHGX8Q8-GNHHJ8-HHMHGN#
仓库管理系统 项目的建立 这是本人利用闲暇之余在上制作的一个简陋的类库管系统,现图文结合的方式一步一步展现制作过程。由于本人是个初学者,里面存在很多不足之处望得到高手们的指导。此文可作供初学者们学习交流。作者联系方式:E-mail 最终运行效果 打开软件出现如下登录界面 输入系统预设用户名及密码( 1 1 )单击“登录”或单击“新用户”添加新用户进入如下主界面:
建立工程 1、创建标准EXE 2、按“打开”
3、添加MDI窗体——打开 4、编辑菜单 在空白处右击——点击“菜单编辑器”
在“标题”里输入“系统”,在“名称”里输入“Sys”(注意此处不能为汉字) 点击“下一个”再点击“” “确定”退到MDI界面点击“系统”——“退出”如下,然后编写代码。 代码如下: Private Sub Exit_Click() End End Sub
数据库的建立 中可以创建Access数据库。如下建立一个“用户表”的数据库,用来存放用户信息及一些出入库管理信息。如下图单击“外接程序” 再单击“可视化数据管理器”出现如图 点击“文件”——“新建”——“Microsoft Access”——“Version MDB”输入数据库名,“保存”出现如下图 在数据窗口中右击——“新建表”,最终如下 往数据表里添加数据在这里就不罗嗦了,请查阅相关书籍。 登录界面窗口的建立 最终界面如下:
二〇〇八~ 二〇〇九学年第二学期 信息科学与工程学院 课程设计报告书 课程名称: C语言课程设计 班级:
学号: 姓名: 指导老师: 月九年二〇〇九 通讯录管理系统 一.需求分析 设计题目及要求: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 系统功能需求分析: 主要包含一下多种功能: 添加:添加通讯录记录 显示:显示通讯录记录 删除:删除通讯录记录 查询:查询通讯录记录 修改:修改通讯录记录 保存:将信息保存到文件 二.概要设计 系统功能模块图:
添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。. 显示:可以以表格形式输出所有通讯录里的记录 删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容 查询:可以选择用姓名、电话、地址三种方式查询 修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改 保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件 三.详细设计 (1).通讯录: typedef struct { char score; /*编号*/ char name[10]; /*姓名*/ char num[15]; /*号码*/ char email[20]; /*邮箱*/ char age[8]; /*年龄*/ char adds[20]; /*住址*/ }Person; void main() /*主函数*/ { int n=0; for(;;) { switch(menu_select())
2011秋季C语言实训题目 1.学生成绩管理系统 功能要求: (1)可以从文件导入或录入多名学生的多门课程的学习成绩; (2)完成按姓名查找学生记录,并显示; (3)排序功能:按学生平均成绩进行排序; (4)插入功能:按平均成绩高低插入一条学生记录; (5)要求使用结构体,录入结果存放到文件; 显示要求: 程序输出菜单,用户按照提示操作,最终得到操作结果。 2.个人通讯录 功能需求: (1)可以对多名人物的信息进行输入; (2)显示所有的记录信息,若无记录,则给出提示信息; (3)可以按姓名查询该记录的有关信息; (4)可以按姓名对任意一种记录信息进行删除; (5)可以任意修改记录信息 (6)通过文件储存所输入的记录; (7)可以通过一个文件读入已有的通信录记录; 显示要求: 程序输出菜单,用户按照提示操作,最终得到操作结果。 3. 火车订票系统 功能要求: (1)列车原始信息从文件导入或从控制台录入,包括车次、票数等; (2)可以按车次进行列车信息查询; (3)客户对某一天订票,订票成功后,当日的票数需要被更改; (4)客户退票; (5)要求使用结构体; 显示要求: 程序输出菜单,用户按照提示操作,最终得到操作结果。 4、万年历系统 功能要求: (1)从2000年开始,用户输入年份与月份,将显示出该年该月份的日历,对应的星期。
(2)注意闰年情况 显示格式要求如下: (1)第一行显示月份(中英文都可以) (2)下一行显示星期,从周日到周六,中英文都可以 (3)下一行开始显示日期从1号开始,并按其是星期几实际情况与上面的星期数垂直对齐(4)程序输出菜单,用户按照提示操作,最终得到计算结果。 5、积分的实现 功能要求: (1)使用复合梯形公式求解函数f=1+x2、f=log(1+x)以及f=1/(1+x2)三个函数的定积分。(2)积分上下限及步长由C语言函数参数传递。 (3)用户输入函数编号,上下限和步长,程序输入结果。 显示要求: 程序输出菜单,用户按照提示操作,最终得到计算结果。 6、矩阵的运算 功能要求: 使用三个C语言函数分别实现两个矩阵的加、减和相乘功能。结果存放在第三个矩阵中。并编写程序验证三个函数功能。 每个函数的参数可选择(1):二位数组名,行数,列数 (2)指针变量名,行数,列数 返回值:用户自定义的运算状态,正常或其他异常情况。 显示要求: 程序输出菜单,用户按照提示操作,最终得到计算结果。 7. 链表的实现 编制一个程序,实现下面的要求 1. 程序启动后显示主菜单,包括下面的选项: 1. 链表查看 2. 插入节点 3. 删除节点 4. 链表存盘 5. 从文件调入 6. 退出 按下相应的数字键后进入各自的子功能 2. 每个子功能执行完毕后,返回并显示主菜单 3. 功能说明: 1. 链表查看:从头结点向后依次显示各结点中保存的数据 2. 插入节点:创建一个结点,输入新结点的数据,以及要插入的位置,将新结点插 入到链表中。 3. 删除节点:输入要删除的数据,从头结点依次查找,找到拥有该数据的结点后,
仓库管理系统源代码 #include #include #include #include #include struct cangku { int num; char name[20]; char introdution[50]; float square; }; typedef struct cangku Cangku; int Input(Cangku t[]); void List(Cangku t[],int n); void SearchOnName(Cangku t[],int n); int DeleteRecord(Cangku t[],int n); int AlterRecord(Cangku t[],int n); int AddRecord(Cangku t[],int n); void SortOnName(Cangku t[],int n); void SortOnSquare(Cangku t[],int n); void SaveRecord(Cangku t[],int n); int LoadRecord(Cangku t[]); int LoadRecord1(Cangku t[]); void Save(Cangku t[],int n); void Load(Cangku t[],int n); void Load1(Cangku t[]); int Menu_select(); void main()
{ Cangku ck[50]; int i,l,length,w=1; int q[4]={5,2,1,0}; system("cls"); printf("请输入第1个密码:\n"); for (i=0;i<4;i++) { scanf("%d",&l); system("cls"); if(l==q[i]) printf("正确,继续输入第%d个密码:.\n",i+2); else { w=0; printf ("输入错误!\n"); break; } } while(w) { switch(Menu_select()) { case 1: length=Input(ck);
#include
void chazhao_xingming(); /*按姓名查找*/ void chazhao_dianhua(); /*按号码查找*/ void shanchu(); /*删除联系人函数*/ void shanchu_quanbu(); /*全部删除*/ void shanchu_dange(); /*单个删除*/ void xianshi(); /*号码显示*/ //程序主函数模块六 void main() /*主函数main*/ { readfile(); /*读入文件*/ while(1) /* 循环(永远进行)*/ { zhucaidan(); /*调用主菜单函数*/ } } //读取文件函数部分开始模块七 void readfile() { if((fp=fopen("c:\\通讯录.txt","r"))==NULL) /*以只读方式打开判定文件是否为空*/ { printf("\n\t\t\t 通讯录文件不存在"); /*判断结论*/ if ((fp=fopen("同通讯录.txt","w"))==NULL) /*只写方式判断*/
仓库管理系统(c语言)
作品名称 开发者: 一、系统背景: 本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷及时准确的调整货物的仓储量达到最合理化。可以使店主不失效率的节省大量精力用于其他方面符合当今社会的商业形式而且本软件体积小操作简单是管理仓库的不二选择 二、系统简介: 设计亮点: ◆三级菜单使操作更简便明了 ◆密码操作能有效保证客户信息的安全性 ◆独特的dos命令调用使信息存储的实体属性为隐藏且无扩展名大大增大了安全系数 ◆数据结构为链表摆脱了数据数量的限制 ◆提供三种查看模式并会标出排名 ◆退出店主模式时会提示是否保存若选择yes着进行保存操作 基本功能: ·在员工模式下可输入卖出货物的名称和数目程序自动在后台进行一系列的操作·新建数据并同时对其处理 ·修改数据 ·插入数据 ·删除数据
·查找数据 ·查看数据 ·数据存档 ·修改密码 三、系统结构图 #define LEN sizeof(struct shop) #include
void main(void) { void auto1(struct shop **h_p); int menu1(struct shop **h_p); void print1(void); void assistant(struct shop *head); int password(void); int menu2(struct shop **h_p); void print2(void); void creat(struct shop **h_p); void rewrite(struct shop **h_p); void insert(struct shop **h_p); void deleat(struct shop **h_p); void search(struct shop **h_p); void printall(struct shop **h_p); void save(struct shop *head); void password_set(void); int password_exi(struct shop **h_p); int data_exi(struct shop **h_p); void load(struct shop **h_p); void save(struct shop *head); struct shop *addbuild(struct shop **h_p); void sort0(struct shop **h_p); int search1(struct shop **h_p,char a[30]); void sort1(struct shop **h_p); void sort2(struct shop **h_p); void sort3(struct shop **h_p); void print3(void); void password_create(void); struct shop *addbuild(struct shop **h_p); int a; struct shop *head,**h_p; head=NULL; h_p=&head; auto1(h_p); do { a=menu1(h_p); } while(a!=3); system("cls"); printf("谢谢使用^_^");
C 语言程序设计作业 一设计项目:学生成绩管理系统 二总体设计: 2:模块功能说明: 1 输入功能:输入学生姓名学号及成绩。 2 查看功能:输出姓名学号及各科成绩。 3 查询功能:通过学号查询学生姓名及各科成绩。 4 统计功能:统计班级学生及格率,优秀率,各个学生成绩方差等。 5 修改功能:通过输入学号修改指定学生的错误信息。 6添加功能:添加学生信息。 7删除功能:通过输入学号输入指定学生信息。 8保存功能:将学生信息保存。 9 退出系统。 3:主要函数之间的调用关系及各自功能: 主要函数的函数原型 void inputscore(void); void savescore(void); void avergescore(void); void modifyscore(void); void lookscore(void); void searchscore(void); void statistic(void); void add(void); void modify(void);
void delscore(void); void menu(void); i.在菜单界面输入1,调用函数inputscore( )实现输入学生成绩信息功能。ii.在菜单界面2,调用函数lookscore( )实现学生成绩按平均分高低排序输。 出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计 算。 iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。 iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。 v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能vi.在菜单界面输入6,调用add()函数实现添加学生成绩。 vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。 viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。 ix.在菜单界面输入9,退出成绩管理系统。
精心整理仓库管理系统数据库设计 班级: 学号、姓名: 学号、姓名: 1. (1
(2)分析设计顶层数据流图 由于在搜寻指定货物时会因货物量大而加重任务量,在对一些货物及人员就行更新时也会因为复杂而手忙脚乱。这样在交易活动中不断地产生新数据,使得信息量逐渐加大。但使用本系统可以很方便的对所需信息进行查询,也可适时的利用插入功能对相关数据进行更新,这样及时、便捷、高效的得到查询统计结果。因此,设计顶层数据流图如图1所示: ( 进
1 据流图 (4)制定整理数据字典 数据流图反应了数据和处理之间的关系,数据字典是系统中各类数据描述的集合。通常包括数据项、数据结构、数据流、数据存储和处理过程5个部分。 数据项数据项含义数据类型宽度与其他数据项的 逻辑关系 可否为 空值 是否为主(P)/ 外(F)键 货物编号char 8 NO YES(P)
数据项数据项含义数据类型宽度与其他数据项的 逻辑关系 可否为 空值 是否为主(P)/ 外(F)键 货物名称char 8 NO 货物类别char 8 NO 货物数量int 8 NO 备注char 12 客户编号char 8 NO 客户名称char 4 NO 编号char 18 NO 货物价格int 12 NO 2. (1
3 出库单联系转换为出库单关系(编号,货物编号,仓库编号,客户编号,货物价格,出库数量,出库日期) (2)将CDM转换成PDM 利用PowerDesigner的“Generate Physical Data Model”工具将CDM转换成PDM,如图6所示。
图6 仓库管理PDM图 、数据库实施与维护 (1)仓库管理 及时向上级部门和领导提供库存查询信息。为了防止超储造成产品库存积压,同时也为了避免产品库存数量不足而影响市场需求,仓库管理员要经常与入库经理、出库经理和货物经理核实货物库存信息,也应该经常提供库存报警数据。 CREATE TABLE 表名 (2)入库管理 各生产车间随时将制造出来的产品连同填写好的入库单(入库小票)一起送至仓库。仓库人员首先进行检验,一是抽检产品的质量是否合格,二是核对产品的实物数量和规格等是否与入库单上的数据相符,当然还要校核入库单上的产品代码。检验合格的产品立即进行产品入库处理,同时登记产品入库流水帐。检验不合格的产品要及时退回车间。 (3)出库管理 仓库保管员根据销售科开出的有效产品出库单(出库小票)及时付货,并判明是零售出库还是成批销售出克,以便及时登记相应的产品出库流水帐。 5、可行性分析 (1)技术可行性:
一、课程设计题目及要求 题目通讯录管理系统 任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述: ◆建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子 邮箱等;; ◆能够提供添加、删除和修改通讯录信息的功能; ◆能够提供按姓名或电话等查询; ◆将通讯录保存在文件中; ◆能够按表格方式输出通讯录信息。 二、系统设计方案 (一)总体框架图: 通讯录管理系统:1、录入通讯录信息 2、修改通讯录信息 3、查询通讯录信息 4、浏览通讯录信息 5、增加通讯录信息 6、推出系通讯录统 (二)模块设计 模块一:头文件,变量定义,函数的声明 对系统所使用的变量进行定义,对函数进行声明 模块二:录入通讯录信息 声明函数void readfile(),说明一个文件指针FILE *fp 打开文件"student.txt" 模块三:通讯录信息的查找 声明void seek()为查找函数,通过switch(item)设定用学号查找,用姓名查找两个分支 模块四:通讯录信息的修改
声明void modify()为学生信息修改函数,通过switch(item)设定所要修改的项目模块五:通讯录信息按学号排序 声明void sort()将录入通讯录信息系按升序排列,用的是“冒泡排序法”实现排序模块六:加通讯录信息 声明void insert()插入通讯录信息,先通过判断通讯录是否存在,若否则继续输入,若是跳出,重新循环 模块七:通讯录信息 声明void del()实现通讯录信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。 模块八:示学生信息 通过display()函数输出通讯录信息 模块九;存信息 通过fp=fopen("student.txt","w");写入信息 模块十:界面菜单 通过switch(num)调用,以上各函数,实现功能 三、设计详情 1.主函数 主函数设计要求简洁,只提供部分提示语和函数的调用 【程序】
作品名称 开发者: 一、系统背景: 本软件能减轻对货物数目管理及价格盈亏等信息处理的工作量以便能快捷及时准确的调整货物的仓储量达到最合理化。可以使店主不失效率的节省大量精力用于其他方面符合当今社会的商业形式而且本软件体积小操作简单是管理仓库的不二选择 二、系统简介: 设计亮点: ◆三级菜单使操作更简便明了 ◆密码操作能有效保证客户信息的安全性 ◆独特的dos命令调用使信息存储的实体属性为隐藏且无扩展名大大增大了安全系数 ◆数据结构为链表摆脱了数据数量的限制 ◆提供三种查看模式并会标出排名 ◆退出店主模式时会提示是否保存若选择yes着进行保存操作 基本功能: ·在员工模式下可输入卖出货物的名称和数目程序自动在后台进行一系列的操作 ·新建数据并同时对其处理 ·修改数据 ·插入数据 ·删除数据
·查找数据 ·查看数据 ·数据存档 ·修改密码 三、系统结构图 #define LEN sizeof(struct shop) #include<> #include<> #include<> #include<> struct shop { char name[30]; float price_in;
float price_out; int num_in; int num_now; int num_sold; float win; float percent; struct shop *next; }; int n=0; void main(void) { void auto1(struct shop **h_p); int menu1(struct shop **h_p); void print1(void); void assistant(struct shop *head); int password(void); int menu2(struct shop **h_p); void print2(void); void creat(struct shop **h_p); void rewrite(struct shop **h_p); void insert(struct shop **h_p); void deleat(struct shop **h_p);
精心整理 仓库管理系统 项目的建立 这是本人利用闲暇之余在VB6.0上制作的一个简陋的类库管系统,现图文结合的方式一步一步展现制作过程。由于本人是个初学者,里面存在很多不足之处望得到高手们的指导。此文可作供初学者们学习交流。作者联系方式:E-mail 最终运行效果 打开软件出现如下登录界面 输入系统预设用户名及密码(1 1)单击“登录”或单击“新用户”添加新用户进入如下主界面: 建立工程 1、创建标准EXE 2、按“打开” 3、添加MDI窗体——打开 4、编辑菜单 在空白处右击——点击“菜单编辑器” 在“标题”里输入“系统”,在“名称”里输入“Sys”(注意此处不能为汉字)点击“下一个”再点击“” “确定”退到MDI界面点击“系统”——“退出”如下,然后编写代码。 代码如下: PrivateSubExit_Click() End EndSub 数据库的建立 VB6.0中可以创建Access数据库。如下建立一个“用户表”的数据库,用来存放用户信息及一些出入库管理信息。如下图单击“外接程序” 再单击“可视化数据管理器”出现如图 点击“文件”——“新建”——“MicrosoftAccess”——“Version2.0MDB”输入数据库名,“保存”出现如下图在数据窗口中右击——“新建表”,最终如下 往数据表里添加数据在这里就不罗嗦了,请查阅相关书籍。 精心整理
精心整理 登录界面窗口的建立 最终界面如下: 1、Adodc1的添加过程为:单击“工程”——“部件”出现下图所示,选择“控件”下的“MicrosoftADODataControl6.0(OLEDB)” 单击“确定”在工具栏中会出现“”图标,单击它并拖动到相应位置即可。其它元件不在一一 说明。 2、本窗体代码如下: PrivateSubCommand1_Click() ' “登录”、“确定”按钮 IfCommand1.Caption=" 确定"AndCommand2.Caption=" 取消"Then ' 如果为“确定” 则添加新用户 IfText1.Text=""Then ' 提示用户输入用户名 MsgBox" 请输入用户名!",," 登录信息提示:" ExitSub Else ' DimusenameAsString ' 检测用户名是否已经存在 DimstrSAsString usename=Trim(Text1.Text) strS="select*from 用户登录信息表where 用户名='"&usename&"'" https://www.sodocs.net/doc/418941970.html,mandType=adCmdText Adodc1.RecordSource=strS Adodc1.Refresh MsgBox" 您输入的用户已存在 !",," 登录提示信息:" Text1.Text="" Text2.Text="" Text3.Text="" Text1.SetFocus ExitSub EndIf EndIf IfText2.Text=""Then ' 提示用户密码不能为空 MsgBox" 密码不能为空!",," 登录提示信息:" Text2.SetFocus ExitSub EndIf IfText3.Text=""Then MsgBox" 请再次输入密码!",," 登录提示信息:" Text3.SetFocus ExitSub EndIf
仓库管理系统c语言程序设计报告
————————————————————————————————作者:————————————————————————————————日期:
信息科学与工程学院 课程设计报告 班级:通信一班 姓名(学号): 实验项目名称: c语言程序设计 实验室(中心):信息科学与工程学院信息技术实验 室 指导教师:李益才 实验完成时间: 2013 年 6 月 28 日
序号项目标准 评分 1 系统演示(功能) (50%) 按要求完成系统功能且界面友好容错能力强(45-50) 按要求完成系统功能界面一般有较好的容错能力 (40-44) 基本完成系统功能有一定的容错能力(35-39) 基本完成系统功能(30-34分) 未完成系统功能或他人代做或抄袭(15) 2 课程设计说明书 (50%) 课程设计书各项目认真填写,具有清晰的设计思路及 软件测试结果分析(45-50) 课程设计书各项目认真填写,具有较为清晰的设计思 路并对软件测试结果进行了较为清晰的分析(40-44) 课程设计书各项目认真填写,设计思路正确(35-39) 课程设计书进行为较为认真的填写(30-34) 课程设计书有未完成项或各项填写不属实或他人代做 或抄袭(15) 教师签字总分 一、题目 仓库管理系统 二、功能描述 该系统将输入进系统的仓库中物品的基本信息(包括货号、名称、单价、库存数量、品牌)进行处理,可以进行: (1)、按物品价格降序输出、按库存数量升序排列。 (2)、修改制定物品的信息。 (3)、删除指定物品的信息。
(4)、在指定物品前或后再插入一个物品的信息。 (5)、统计同一种品牌的数量。 三、概要设计 系统功能模块图 四、详细设计数 据 按 序 输 出 修 改 特 定 物 品 的 信 息 删 除 特 定 物 品 的 信 息 插 入 物 品 信 息 统 计 指 定 品 牌 物 品 的 数 量 数 据 文 件 载 入 数 据 文 件 输 入 磁 盘 物品信息输入 退 出 系 统进入系统
/* Note:Your choice is C IDE */ #include "stdio.h" #include "stdlib.h" #include "string.h" typedef struct student // 定义学生 { char name[10]; int number; char sex[2]; int math; int eglish; int clanguge; int average; } student; typedef struct unit // 定义接点 { student date; struct unit * next; } unit; unit * build() // 建立链表并返回指针 { unit *p; if ((p =(unit * )malloc( sizeof (unit))) ==NULL) { printf( "=>初始化失败!"); return 0; } else { p-> next =NULL; p-> date . number=0; // 头结点存放学生人数printf( " 初始化成功!\n" ); return p; } } void add(unit * head) // 增加学生 { unit *p,*q; int m,n =0; q=head-> next; p=(unit * )malloc( sizeof (unit)); printf( "=>请输入新生姓名!\n" ); gets(p ->date . name);fflush(stdin); printf( "=>请输入学号!\n" ); while (n ==0)
1.请购作业程序 Private Sub ComCX_Click()’查询 '在"编号"文本框中输入编号,连接数据库,查询编号,并将"编号","品名","规格","单位","单价"的数据分别导入到相应文本框。 Set CN = New ADODB.Connection Set Rs = New ADODB.Recordset CN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "F:\VB设计专用\仓库数据资料\仓库数据资料.mdb;Persist Security Info=False" '打开数据库 Rs.CursorType = adOpenStatic '制定一个静态游标 Rs.LockType = adLockOptimistic '设置锁定模式为开放式 Rs.Open "select * from JLBH where FtextBHSJ Like'" & "%" & Trim(textBHSJ.Text) & "%" & "'", CN DoEvents Do Until Rs.EOF = True If Rs.EOF = False Then listBHSJ1.AddItem (Rs.Fields(0)) listPMSJ1.AddItem (Rs.Fields(1)) listGGSJ1.AddItem (Rs.Fields(2)) listDWSJ1.AddItem (Rs.Fields(3)) listDJSJ1.AddItem (Rs.Fields(4)) Rs.MoveNext End If Loop End Sub Private Sub comFHZY_Click()’返回上页 frmQGZY.Hide frmCKGLXT.Show End Sub Private Sub comQD_Click()’录入数据 If textBHSJ.Text = "" Or textPMSJ.Text = "" Or textGGSJ.Text = "" Or textDWSJ.Text = "" Or textDJSJ.Text = "" Or textQGSLSJ.Text = "" Then MsgBox "请将数据补充完整!" textBHSJ.Text = "" textPMSJ.Text = "" textGGSJ.Text = "" textDWSJ.Text = "" textDJSJ.Text = "" textQGSLSJ.Text = "" Else