建立简单的系统模型

通过C语言可以简单编造一个简单的系统,C语言的功能多种多样,编写一个简单的系统是编写一个成熟的系统的前沿技术。今天我通过简单的学生系统编写了一个简单的商品收集系统,但由于本人的技术原因吧,该系统还有些缺陷有待改进,我会在改进来完善这个系统。

以下是我的全部代码

#include"stdio.h"

#include"stdlib.h"

#include"string.h"

#include"conio.h"

#define PAGE 3

#define MAX 1000

#define N 5

int k=0;

/*结构体类型*/

typedef struct

{   int num;/*代码*/

char name[20];/*商品名*/

char source[5];/*来源*/

int weight;/*重量*/

int classify;/*分类*/

}GOODS;

int read_file(GOODS goods[])

{FILE *fp;

int i=0;

if((fp=fopen("goods.txt","rt"))==NULL)

{printf("\n\n*****库存文件不存在!请创");

return 0;

}

while(feof(fp)!=1)

{

fread(&goods[i],sizeof(GOODS),1,fp);

if(goods[i].num==0)

break;

else

i++;

}

fclose(fp);

return i;

}

void save_file(GOODS goods[],int sum)

{FILE*fp;

int i;

if((fp=fopen("goods.txt","wb"))==NULL)

{printf("写文件错误!\n");

return;

}

for(i=0;i<sum;i++)

if(fwrite(&goods[i],sizeof(GOODS),1,fp)!=1)

printf("写文件错误!\n");

fclose(fp);

}

/*创建商品信息*/

int input(GOODS goods[])

{  int i,x;

for(i=0;i<1000;i++)

{

system("cls");

printf("\n\n                 录入商品信息  (最多%d个)\n",MAX);

printf("               ----------------------------\n");

printf("\n                     第%d个商品",k+1);

printf("\n 请输入商品的代码:");

scanf("%d",&goods[k].num);

printf("\n 请输入商品的名称:");

scanf("%s",goods[k].name);

printf("\n 请输入商品的来源:");

scanf("%s",goods[k].source);

printf("\n 请输入商品的重量:");

scanf("%d",&goods[k].weight);

printf("\n 请输入商品的分类:");

scanf("%s",&goods[k].classify);

printf("\n 请按1键返回菜单或按0键继续创建");

scanf("%d",&x);

if(x)

break;

}

return k;

}

/*删除商品信息*/

void deletel(GOODS goods[])

{ system("cls");

char Goodsname2[20];

int i,j;

printf("请输入商品名:");

scanf("%s",Goodsname2);

printf("\n");

for(i=0;i<k;i++)

if(strcmp(goods[i].name,Goodsname2)==0)

for(j=0;j<20;j++)

goods[i].name[j]=goods[i+1].name[j];

k--;

printf("删除成功\n");

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

getchar();

}

/*查询商品信息*/

void inquire(GOODS goods[])

{ int i;

int num;

system("cls");

printf("     \n\n请输入您要查找的商品的代码");

scanf("%d",&num);

for(i=0;i<k;i++)

if(num==goods[i].num)

printf("\n\n\n代码:%d,商品名:%s,来源:%s,重量:%d,分类:%s\n",goods[i].num,goods[i].name,

goods[i].source,goods[i].weight,goods[i].classify);

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

getchar();

}

/*修改商品信息*/

void change(GOODS goods[])

{  int num,i,choice;

system("cls");

printf("\n\n\n      请输入您要修改的商品的商品号");

scanf("%d",&num);

for(i=0;i<k;i++)

{ if(num==goods[i].num)

printf("\n商品代码:%d,商品名:%s,来源:%s,重量:%d,分类:%s\n",goods[i].num,goods[i].name,

goods[i].source,goods[i].weight,goods[i].classify);

printf("\n\n\n     ********请输入您想要修改的数据********\n\n");

printf("                1. 代码\n\n");

printf("                2. 商品名\n\n");

printf("                3. 来源\n\n");

printf("                4. 重量\n\n");

printf("                5. 分类\n\n");

printf("                 请选择(1-5):");

scanf("%d",&choice);

switch(choice)

{case 1:{

printf("\n   请输入你改的新代码");

scanf("%d",&goods[i].num);

break;

}

case 2:{

printf("\n   请输入你改的新商品名");

scanf("%s",goods[i].name);

break;

}

case 3:{

printf("\n   请输入你改的新来源");

scanf("%s", goods[i].source);

break;

}

case 4:{

printf("\n   请输入你改的新重量");

scanf("%d",&goods[i].weight);

break;

}

case 5:{

printf("\n   请输入你改的新分类");

scanf("%s",&goods[i].classify);

break;

}

}

printf("代码:%d,商品名:%s,来源:%s,重量:%d,分类:%s\n",goods[i].num,goods[i].name,

goods[i].source,goods[i].weight,goods[i].classify);

printf("按任意键加回车返回主菜单!");

scanf("%d",&i);

break;

}

}

void pagedis()

{

printf(" \n\n\n                   **********************************\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *        欢迎进入商品管理系统    *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   *                                *\n");

printf("                   **********************************\n");

}

void check()

{

char userName[5];/*商品名*/

char userPWD[5];/*商品号码*/

int i,sum;

system("color 5E");

for(i = 1; i < 4; i++)

{

/*商品名和商品号码均为abcde;*/

printf("                          \n\n\n");

printf("                       商品名称和商品号码均为abcde\n\n");

printf("\n       请输入商品名称:");

gets(userName);

printf("\n       请输入商品号:");

gets(userPWD);

if ((strcmp(userName,"abcde")==0) && (strcmp(userPWD,"abcde")==0))/*验证商品名和商品号码*/

{

printf("商品名和商品号码正确,显示主菜单");

return;

}

else

{

if (i < 3)

{

printf("商品名或商品号码错误,提示用户重新输入");

printf("商品名或商品号码错误,请重新输入!");

}

else

{

printf("连续3次输错商品名或商品号码,退出系统。");

printf("您已连续3次将商品名或商品号码输错,系统将退出!");

exit(1);

}

}

}

}

void menu()

{

GOODS goods[20];

int choice,k,sum;

sum=read_file(goods);

if(sum==0)

{  printf("首先录入基本库存信息!按回车后进入*****\n");

getch();

sum=input(goods);

}

do

{  system("cls");

printf("\n\n\n               ********商品管理系统********\n\n");

printf("                      1. 创建商品信息\n\n");

printf("                      2. 删除商品信息\n\n");

printf("                      3. 查询商品信息\n\n");

printf("                      4. 修改商品信息\n\n");

printf("                      0. 退出系统\n\n");

printf("                       请选择(0-4):");

scanf("%d",&choice);

switch(choice)

{

case 1: k=input(goods); break;/*创建商品信息*/

case 2: deletel(goods); break;/*删除商品信息*/

case 3: inquire(goods); break;/*查询商品信息*/

case 4: change(goods); break;/*修改商品信息*/

case 0: break;

}

}while(choice!=0);

save_file(goods,sum);

}

int main()

{

int i,sum;

pagedis();

check();

menu();

}

学号:150808229

时间: 2024-11-10 05:36:10

建立简单的系统模型的相关文章

Server2016系统建立简单Web服务

Server2016系统建立简单Web服务 web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的.全球性的.动态交互的.跨平台的分布式图形信息系统.是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的.易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构.(实验所需软件安装包和系统镜像附在博客最后.) 第一步:打开控制面板,进入程序,再进入程序和功能,点击启用或

建立分析模型和设计模型

OOA面向对象分析 面向对象分析产生三种分析模型 功能模型(即用例模型à作为输入) 对象模型:对用例模型进行分析,把系统分解成互相协作的分析类,通过类图/对象图描述对象/对象的属性/对象间的关系,是系统的静态模型 动态模型:描述系统的动态行为,通过时序图/协作图描述对象的交互,以揭示对象间如何协作来完成每个具体的用例,单个对象的状态变化/动态行为可以通过状态图来表达  OOD面向对象的设计 OOD是对OOA的细化  没有严格的界线  OOD的结果直接用于编码 ?   与OOA的输出一样,只是更加

Android简单登录系统

很长时间没有写博客了,最近一直在写android for gis方面的项目.不过这篇博客就不写gis方面的了,今天刚刚做的一个简单的android登录系统.数据库是android自带的sqlite,sqlite的优势就不用我说了哈.下面进入正题. 1.数据库Help类 我们需要编写一个数据库辅助类来访问sqlite数据库.在数据库辅助类中,可以完成数据库的创建,表的增加.删除.修改.查询等操作. 1 public class DBHelper extends SQLiteOpenHelper {

Ubuntu学习笔记-win7&Ubuntu双系统简单搭建系统指南

win7&Ubuntu双系统简单搭建系统指南 本文是自己老本子折腾Ubuntu的一些记录,主要是搭建了一个能够足够娱乐(不玩游戏)专注练习自己编程能力的内容.只是简单的写了关于系统的安装和一些配置环境的简单搭建.并没有深入探讨系统地各项内容.希望可以给香简单使用的同学参考. 一.准备工作 打开UltraISO ,依次点击"文件"--"打开"--选择Ubuntu14.04系统镜像文件,确认打开后就能在软件界面内看到整个镜像的全部文件信息. 接下来开始制作系统安

帝国cms之自定义系统模型

系统模型就是通常所说的系统模块,如:新闻系统,下载系统,商城系统等.而自定义系统模型就是用户可以根据需要自由扩展各种系统模块. 自定义系统模型一般步骤: 1.系统分析: 2.建立数据表: 3.建立字段: 4.建立系统模型: 5.完成. ·举例说明:制作“作品管理系统” 1.系统分析: 经过分析我们需要的字段如下:(字段标识:字段名) 姓名:name 联系邮箱:email 联系电话:tel 作品名:title 作品:tranfile 作品简介:smalltext 作品预览图:titlepic 2.

c语言:建立简单的静态链表,它由3个学生数据的结点组成,要求输出各结点的数据

建立简单的静态链表,它由3个学生数据的结点组成,要求输出各结点的数据. 解:将第1个结点的起始地址赋给头指针head,将第2个结点的起始地址赋给第1个结点的next成员,将第3个结点的起始地址赋给第2个结点的next成员.第3个结点的next成员赋予NULL,这就形成了链表.为了建立链表,使head指向a结点,a.next指向b结点,b.next指向c结点,c.next=NULL的作用是使c.next不指向任何有用的存储单元. 程序: #include<stdio.h> struct Stud

直流电机基本系统模型

经过上周阅读培训手册以后,已经熟悉最基本的模型搭建,包括电压源.电阻和电感元件.直流电机.电压和电流测量元件.示波器等元器件. 本周作业是用PLECS仿真软件搭建一个直流电机基本系统模型,模型图如下: 参数设置: (1)设置外部电压源电压为120V,阶跃电压为20V,电阻阻值为20Ω,仿真结果如下: (2)只改变电源电压,设置外部电压源电压为60V,阶跃电压为20V,电阻阻值为20Ω,仿真结果如下: 发现各图形状均无太大变化,只有电机电磁转矩幅值变小. (3)只改变改变电压电源方向,设置外部电压

直流电机基本系统模型PLECS仿真结果

一.直流电机基本系统模型 二.参数设置与仿真结果 1. 设定外源电压为100V(step time设为0.25),改变串联阻值: (1)R1=0Ω时: (2)R1=10Ω时: (3)R1=100Ω时: (4)R1=1000Ω时,系统报错. 2. 设定串联电阻阻值为10Ω(step time设为0.25),改变外源电压 (1)V=0V时, (2)V=100V时, (3)V=1000V时, (4)V=10000V时, (5)V=100000V时,系统报错. 三.疑点与问题 1.串联阻值以及外源电压的

python实现简单购物车系统(练习)

#!Anaconda/anaconda/python #coding: utf-8 #列表练习,实现简单购物车系统 product_lists = [('iphone',5000), ('computer',6000), ('girl_friend',2000), ('boy_friend',3000)] shop_lists = [] for i,v in enumerate(product_lists): #python的内置函数,在字典上是枚举,列举的意思,可以同事获得索引和值 print