c语言自制系统,c语言制作系统

本文目录一览:

用c语言制作商店商品管理系统

#include stdio.h

#include conio.h

#include bios.h

#include dos.h

#include malloc.h

#define NULL 0

#define LEN sizeof(struct mcd)

struct data /*声明一个日期的结构体类型*/

{

int year;

int month;

int day;

};

struct mcd /*声明有关商品信息的结构体类型*/

{

int code; /*编 号*/

char name[12]; /*品 名*/

long price; /*单 价*/

int num; /*数 量*/

char place[20]; /*产 地*/

struct data putdate; /*入库时间*/

struct data selldate; /*销售时间*/

struct mcd * next; /*运用指针处理链表*/

};

int n; /*记录链表有几条数据*/

struct mcd *head; /*声明链表头的指针*/

creat() /*输入商品信息的函数*/

{

struct mcd *p1,*p2;

n=0;

p1=p2=(struct mcd *)malloc(LEN); /*开辟一个新单元存放信息*/

head=p1;

loop: {

clrscr();

printf(“商品录入系统\n”);

printf(“录入号:%d\n”,n+1);

printf(“编 码:”);

scanf(“%d”,p1-code);

printf(“品 名:”);

scanf(“%s”,p1-name);

printf(“单 价:”);

scanf(“%ld”,p1-price);

printf(“数 量:”);

scanf(“%d”,p1-num);

printf(“产 地:”);

scanf(“%s”,p1-place);

printf(“入库时间:”);

scanf(“%d-%d-%d”,p1-putdate.year,p1-putdate.month,p1-putdate.day);

}

while(p1-num!=0)

{

n=n+1;

if(n==1)head=p1;

else p2-next=p1;

p2=p1;

p1=(struct mcd *)malloc(LEN);

goto loop;

}

p2-next=NULL;

main();

}

print() /*输出数据列表的函数*/

{

int m=0;

struct mcd *p;

clrscr();

printf(“编 号||品 名||单 价||数 量|| 产 地 ||入 库 时 间\n”);

p=head;

if(head!=NULL)

do

{

printf(“%-10d%-14s%-12ld%-10d%-22s%-4d-%-2d-%-2d\n”,p-code,p-name,p-price,p-num,p-place,p-putdate.year,p-putdate.month,p-putdate.day);

p=p-next;

m=m+1;

if(m%23==0){gotoxy(10,25);printf(“按任意键继续.”);getch();}

}while(p!=NULL);

getch();

main();

}

sell()

{

int code,m=3,ch;

long sum=0;

struct mcd *p1;

struct date today;

getdate(today);

clrscr();

printf(“商品销售系统\n”);

printf(“编 号||||品 名|||| 产 地 ||||单 价(元)||||出 售 时 间\n”);

loop:

do{

gotoxy(23,25);

printf(“按任意键继续,F2结帐,ESC键退出”);

ch=bioskey(0);

}while(0);

switch(ch)

{

case 15360:{

if(sum==0)

{

gotoxy(1,m);printf(“还没有购买商品!”);

getch();

sell();

break;

}

else {

gotoxy(1,m);

printf(“——————————————————————————“);

gotoxy(47,m+1);

printf(“总价: %-12ld元”,sum);

getch();

main();

break;

}

}

case 283:{main();break;}

default:

{

gotoxy(23,25);

printf(“请输入商品编码,会显示商品信息”);

gotoxy(1,m);

scanf(“%d”,code);

if(head==NULL)

{

printf(“你还没有进货.”);

getch();

main();

break;

}

p1=head;

while(code!=p1-codep1-next!=NULL)

{p1=p1-next;}

if(code==p1-code)

{

gotoxy(13,m);

printf(“%-16s%-24s%-16ld%4d-%2d-%2d”,p1-name,p1-place,p1-price,today.da_year,today.da_mon,today.da_day);

m=m+1;

p1-num=p1-num-1;

sum=sum+p1-price;

}

}

goto loop;

}

}

go()

{

int ch;

clrscr();

printf(“请问你要进行什么操作?\n1,插入;2,删除;3,什么也不做;\n”);

loop:

do{

ch=bioskey(0);

}while(0);

switch(ch)

{

case 561:insert();break;

case 818:del();break;

case 1075:main();break;

case 283:break;

default:{gotoxy(1,3);printf(“请按数字键选择!”);goto loop;}

}

getch();

main();

}

insert()

{

struct mcd *p0,*p1,*p2;

p0=p1=p2=(struct mcd*)malloc(LEN);

p1=head;

clrscr();

printf(“请输入要插入的商品的信息:\n”);

printf(“编 码:”);

scanf(“%d”,p0-code);

printf(“品 名:”);

scanf(“%s”,p0-name);

printf(“单 价:”);

scanf(“%ld”,p0-price);

printf(“数 量:”);

scanf(“%d”,p0-num);

printf(“产 地:”);

scanf(“%s”,p0-place);

printf(“入库时间:”);

scanf(“%d-%d-%d”,p0-putdate.year,p0-putdate.month,p0-putdate.day);

if(head==NULL)

{

head=p0;

p0-next=NULL;

}

else

{

while((p0-codep1-code)(p1-next!=NULL))

{

p2=p1;

p1=p1-next;

}

if(p0-code=p1-code)

{

if(head==p1)head=p0;

else p2-next=p0;

p0-next=p1;

}

else

{

p1-next=p0;p0-next=NULL;

}

}

n=n+1;

print();

}

del()

{

int code;

struct mcd *p1,*p2;

clrscr();

printf(“请输入要删除商品的编号:”);

scanf(“%d”,code);

if(head==NULL)

{

printf(“你还没有进货.”);

getch();

main();

}

p1=head;

while(code!=p1-codep1-next!=NULL)

{

p2=p1;

p1=p1-next;

}

if(code==p1-code)

{

if(code==head)head=p1-next;

else p2-next=p1-next;

n=n-1;

print();

}

else

{

printf(“找不到这条商品信息.”);

getch();

print();

}

}

main()

{

do{

clrscr();

printf(” . : : \n”);

printf(” ‘. :””””: : : :””:””:\n”);

printf(” ‘. : : :””” :””” : : :\n”);

printf(” ……………. : : :’, :’, ””’:””’: : :\n”);

printf(” ‘. .’ : : : ‘, : ‘, : :….:….:\n”);

printf(” ‘. .’ : : ,’ ,’ : : : :\n”);

printf(” ‘.’ : : ‘, : : : :\n”);

printf(“………:……….. :……..: : ‘, : :….:….:\n”);

printf(” …………… :”””””””’: ””:”” : \n”);

printf(” : , , : :”””: :”””: ,’ : : \n”);

printf(” : , , : : : : : :””””’: : ,’ : \n”);

printf(” : , , : : : : : : : : ,’ ….:…. \n”);

printf(” :, :”””’: : : : : : : : :,’ : \n”);

printf(” : : : : : : : : :””””” ,’ : \n”);

printf(” : : : : : : : : :………. ,’ : \n”);

printf(” : :…….: : : : : : : : ‘ : \n”);

printf(” : : : : : : : : ……:…..\n”);

printf(” : ..: :……: :……: :………: \n”);

gotoxy(60,19);

printf(“赵飞宇制造 V1.0”);

gotoxy(10,21);

printf(“1,销售系统;2,进货系统;3,查看列表;4,插入删除;5,销售盈亏;6,帮助文档”);

gotoxy(32,24);

printf(“按ESC键退出”);

key();

}while(0);

}

key()

{

int ch;

loop:

do{

ch=bioskey(0);

}while(0);

switch(ch)

{

case 561:sell();break;

case 818:creat();break;

case 1075:print();break;

case 1332:go();break;

case 283:break;

default:

{

gotoxy(30,22);

printf(“请按数字键选择!”);

goto loop;

}

}

}

怎样用C语言制作学生信息管理系统

还真不想再写代码了啊。。。。。

直接跟你说下思路吧。。。。

首先创建一个结构体,如——

struct student

{

char num[10]; //学号

char name[20]; //姓名

char sex[4]; //性别

int age; //年龄

int flag; //一个标示符(下面会说用法)

};

然后就定义一个student类型的数组stu[max],在前面#define max 1000000,你也可以把max定义得小一点,这是用来表示最大能容纳多少个学生信息。。。。

说到flag的用处,我不清楚你了不了解,还是先跟你说下吧。。。。

先考一下你,知道怎样把一个数组里面的某一个元素清空吗?清空就表示能在那个位置再次赋值,没清空的位置就不能重复赋值。把那个元素设为a[x],可能你会想着把a[x]=0不就得啦,那好,如果用这种方法,那么如果你想寻找数组a中可以再次赋值的元素,然后进行赋值,你是不是要通过一个判别式来对数组a的每一个元素进行判断,看看它是否能被再赋值,对吧,那这个判别式肯定就是判断a中的数值是否为零了。但是你想一下,如果一开始a中某个元素的值就是等于0,并不表示清空状态,那你这样的判别式能成立吗,所以我们要用到一个标示符flag。。。。

当flag=1时,表示该数组的元素已存在,当flag=0时,表示该数组的元素是无效的,这样的话就不需要对数组中的每个元素进行什么清空操作了,就像上面的数组stu,这么多元素,你怎么清空。。。。

然后有一个最重要的是怎样存储数据,因为没用到数据库,所以就用txt文件来存储吧,给你一个相关的代码——

int load_student() //把已存在的储存数据的txt文件打开

{

FILE *fp;

if((fp=fopen(“student.txt”,”rb”))==NULL) //判断文件是否存在

{

printf(“不能打开此文件.\n”);

exit(0);

}

for(int i=0;iSIZE;i++) //存在的话就打开它

{

fread(stu[i],sizeof(struct student),1,fp);

}

fclose(fp);

return 0;

}

int save_student() //把数据存放进txt文件中

{

FILE *fp;

if((fp=fopen(“student.txt”,”wb”))==NULL)

{

printf(“不能打开此文件.\n”);

exit(0);

}

for(int i=0;iSIZE;i++)

{

fwrite(stu[i],sizeof(struct student),1,fp);

}

fclose(fp);

return 0;

}

这是一个比较基本的代码,你可以灵活的修改一下,实现读写过程的代码也就是这样了。。。。

然后是功能的实现,这方面就得看你的要求了,不过我建议你把每个界面做成一个函数,实现模块化,如——

int shouye() //首页

{

system(“cls”); //清屏

int num1;

printf(“**********************************\n”);

printf(” 学生信息管理系统 \n”);

printf(“**********************************\n”);

printf(“\n\n”);

printf(“1、更改学生信息\n\n”);

printf(“2、查看学生信息\n\n”);

printf(“3、退出系统\n\n”);

scanf(“%d”,num1); //输入操作

if(num1==1)

update(); //进入学生信息更改模块

else if(num1==2)

check(); //进入学生信息查看模块

else

exit(0); //退出系统

return 0;

}

在给多你一个界面函数的代码吧——

int update()

{

system(“cls”);

int num2;

printf(“**********************************\n”);

printf(” 更改成绩 \n”);

printf(“**********************************\n”);

printf(“\n\n”);

printf(“1、增加学生信息\n\n”);

printf(“2、修改学生信息\n\n”);

printf(“3、返回上一层\n\n”);

scanf(“%d”,num2);

if(num2==1)

add();

else if(num2==2)

correct();

else

shouye();

return 0;

}

大概就是这种模式,我就不多弄了,你自己开拓一下吧,可能你会问我主函数怎么实现,大概就是这样吧——

int main()

{

load_student(); //读取txt里面的内容

shouye();

return 0;

}

这里要说明一下,我给你这代码还不怎么完善的,只是简单跟你说下思路罢了,如果你招着复制的话,要记住,在你第一次运行之前,要先在你这工程目录低下创建一个名字为student的txt文件,不然会显示错误,因为load_student()那里就会判断是否存在student.txt文件,没的话就会显示错误的。。。。

我建议你简单地画下流程图,这样可以让你的编程思路更清晰,如果还有什么不清楚的地方可以Q我,410430209。。。。

希望这些对你有所帮助。。。。

C语言如何自制操作系统?

用objcopy做成二进制,格式是:objcopy -I elf格式 -S -R “.eh_frame” -R “.comment” -O binary elf文件 最终的二进制文件.例如: objcopy -I elf32-i386 -S -R “.eh_frame” -R “.comment” -O binary a.obj a.bin

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/240630.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-12 12:23
下一篇 2024-12-12 12:23

相关推荐

  • Deepin系统分区设置教程

    本教程将会详细介绍Deepin系统如何进行分区设置,分享多种方式让您了解如何规划您的硬盘。 一、分区的基本知识 在进行Deepin系统分区设置之前,我们需要了解一些基本分区概念。 …

    编程 2025-04-29
  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • 如何在树莓派上安装Windows 7系统?

    随着树莓派的普及,许多用户想在树莓派上安装Windows 7操作系统。 一、准备工作 在开始之前,需要准备以下材料: 1.树莓派4B一台; 2.一张8GB以上的SD卡; 3.下载并…

    编程 2025-04-29
  • Java任务下发回滚系统的设计与实现

    本文将介绍一个Java任务下发回滚系统的设计与实现。该系统可以用于执行复杂的任务,包括可回滚的任务,及时恢复任务失败前的状态。系统使用Java语言进行开发,可以支持多种类型的任务。…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • 分销系统开发搭建

    本文主要介绍如何搭建一套完整的分销系统,从需求分析、技术选型、开发、部署等方面进行说明。 一、需求分析 在进行分销系统的开发之前,我们首先需要对系统进行需求分析。一般来说,分销系统…

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28

发表回复

登录后才能评论