源程序代码
- 格式:doc
- 大小:87.00 KB
- 文档页数:23
源程序代码(总17页)本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March#include <> //调用单片机头文件#define uchar unsigned char//无符号字符型宏定义变量范围0~255#define uint unsigned int//无符号整型宏定义变量范围0~65535#include ""#include ""bit flag_200ms ;bit flag_100ms ;sbit beep = P3^7; //蜂鸣器定义bit flag_beep_en;uint clock_value; //用作闹钟用的sbit dq = P3^2; //18b20 IO口的定义uint temperature ; //温度变量uchar flag_nl; //农历阳历显示标志位uchar menu_1,menu_2;uchar key_time,flag_value;//用做连加的中间变量bit key_500ms ;uchar n_nian,n_yue,n_ri;//农历显示的函数#include ""#include ""/******************把数据保存到单片机内部eeprom中******************/void write_eeprom(){SectorErase(0x2000);byte_write(0x2000, fen1);byte_write(0x2001, shi1);byte_write(0x2002, open1);byte_write(0x2058, a_a);}/******************把数据从单片机内部eeprom中读出来*****************/void read_eeprom(){fen1 = byte_read(0x2000);shi1 = byte_read(0x2001);open1 = byte_read(0x2002);a_a = byte_read(0x2058);}/**************开机自检eeprom初始化*****************/void init_eeprom(){read_eeprom(); //先读if(a_a != 1)//新的单片机初始单片机内问eeprom {fen1 = 3;shi1 = 8;open1 = 1;a_a = 1;write_eeprom();//保存数据}}/***********************18b20初始化函数*****************************/ void init_18b20(){bit q;dq = 1; //把总线拿高delay_uint(1); //15usdq = 0; //给复位脉冲delay_uint(80);//750usdq = 1; //把总线拿高等待delay_uint(10);//110usq = dq; //读取18b20初始化信号delay_uint(20);//200usdq = 1; //把总线拿高释放总线}/*************写18b20内的数据***************/void write_18b20(uchar dat){uchar i;for(i=0;i<8;i++){ //写数据是低位开始dq = 0;//把总线拿低写时间隙开始dq = dat & 0x01;//向18b20总线写数据了delay_uint(5); // 60usdq = 1; //释放总线dat >>= 1;}}/*************读取18b20内的数据***************/uchar read_18b20(){uchar i,value;for(i=0;i<8;i++){dq = 0; //把总线拿低读时间隙开始value >>= 1; //读数据是低位开始dq = 1; //释放总线if(dq == 1) //开始读写数据value |= 0x80;delay_uint(5); //60us 读一个时间隙最少要保持60us的时间}return value; //返回数据}/*************读取温度的值读出来的是小数***************/uint read_temp(){uint value;uchar low;//在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20(); //初始化18b20write_18b20(0xcc); //跳过64位ROMwrite_18b20(0x44); //启动一次温度转换命令delay_uint(50);//500usinit_18b20(); //初始化18b20write_18b20(0xcc); //跳过64位ROMwrite_18b20(0xbe);//发出读取暂存器命令EA = 0;low = read_18b20(); //读温度低字节value = read_18b20(); //读温度高字节EA = 1;value <<= 8; //把温度的高位左移8位value |= low;//把读出的温度低位放到value的低八位中value *= ;//转换到温度值小数return value;//返回读出的温度带小数}/******************1ms 延时函数*******************/void delay_1ms(uint q){uint i,j;for(i=0;i<q;i++)for(j=0;j<120;j++);}/******************写星期函数*******************/void write_week(uchar hang,uchar add,uchar week)//写星期函数{if(hang==1)write_com(0x80+add);elsewrite_com(0x80+0x40+add);switch(week){case 1:write_data('M');//星期数为1时,显示write_data('O');write_data('N');break;case 2:write_data('T');//星期数据为2时显示write_data('U');write_data('E');break;case 3:write_data('W'); //星期数据为3时显示write_data('E');write_data('D');break;case 4:write_data('T'); //星期数据为4是显示write_data('H');write_data('U');break;case 5:write_data('F'); //星期数据为5时显示write_data('R');write_data('I');break;case 6:write_data('S'); //星期数据为6时显示write_data('T');write_data('A');break;case 0:write_data('S'); //星期数据为7时显示write_data('U');write_data('N');break;}}/*************时钟显示***************/void init_1602_ds1302(){write_sfm2_ds1302(1,1,shi); //显示时write_sfm2_ds1302(1,4,fen); //显示分write_sfm2_ds1302(1,7,miao);//显示秒write_week(2,12,week);// write_sfm1(1,14,week);//显示星期write_sfm3_18B20(1,11,temper ature); //显示温度if(flag_nl == 0) //显示阳历{write_sfm2_ds1302(2,2,nian); //显示年write_sfm2_ds1302(2,5,yue); //显示月write_sfm2_ds1302(2,8,ri);//显示日}else //显示农历{write_sfm2_ds1302(2,2,n_nian);//显示年write_sfm2_ds1302(2,5,n_yue);//显示月write_sfm2_ds1302(2,8,n_ri); //显示日}} /*************定时器0初始化程序***************/void init_time0(){EA = 1; //开总中断TMOD = 0X01;//定时器0、工作方式1ET0 = 1; //开定时器0中断TR0 = 1; //允许定时器0定时}/*************闹钟报警函数***************/void menu_dis(){static uchar mm,value;if(flag_100ms == 1)//100ms执行一次{flag_100ms = 0;if(open1 == 1) //如果闹钟打开{if((miao == 0) && (fen == fen1) && (shi == shi1)){flag_beep_en = 1;//有报警打开蜂鸣器响的标志位}if(flag_beep_en == 1)//闹钟以被打开{clock_value++;if(clock_value <= 30)beep = ~beep; //蜂鸣器叫3秒elseif(clock_value > 30){beep = 1; //蜂鸣器停1秒if(clock_value > 40){clock_value = 0;}}// 1 分钟后自动关闭闹钟value ++;if(value >= 10){value = 0;mm++;if(mm >= 60){mm = 0;flag_beep_en = 0;beep = 1;}}}}}}/********************独立按键程序*****************/uchar key_can; //按键值void key() //独立按键程序{static uchar key_new;key_can = 20; //按键值还原P3 |= 0x78; //对应的按键IO口输出为1if((P3 & 0x78) != 0x78)//按键按下{delay_1ms(1); //按键消抖动if(((P3 & 0x78) != 0x78) &&(key_new == 1)){ //确认是按键按下key_new = 0;switch(P3 & 0x78){case 0x70: key_can = 4; break; //得到按键值case 0x68: key_can = 3; break; //得到按键值case 0x58: key_can = 2; break; //得到按键值case 0x38: key_can = 1; break; //得到按键值}write_sfm2(1,0,key_can);//显示按键值}}elsekey_new = 1;}/**********************设置函数************************/void key_with(){if(key_can == 1) //设置键{menu_1++;if(menu_1 == 1) //设置时间{menu_2 = 1;write_string(1,0," - - W: ");write_string(2,0," 20 - - ");}if(menu_1 == 2) //设置闹钟{menu_2 = 1;write_string(1,0," set clock ");write_string(2,0," Y 00:00 ");}if(menu_1 > 2) //回到正常显示{menu_1 = 0;write_guanbiao(1,2,0);//关闭光标init_1602_dis_csf();//初始化液晶显示}}if(key_can == 2) //选择键{flag_200ms = 1;if(menu_1 == 1) //设置时间{menu_2 ++;if(menu_2 > 7)menu_2 = 1;}if(menu_1 == 2)//设置闹钟{menu_2 ++;if(menu_2 > 3)menu_2 = 1;}}if(menu_1 == 1){if(menu_2 == 1)//设置时{if(key_can == 3) //加{shi+=0x01;if((shi & 0x0f) >= 0x0a)shi = (shi & 0xf0) + 0x10;if(shi >= 0x24)shi = 0;}if(key_can == 4) //减{if(shi == 0x00)shi = 0x24;if((shi & 0x0f) == 0x00)shi = (shi | 0x0a) - 0x10;shi -- ;}}if(menu_2 == 2)//设置分{if(key_can == 3) //加{fen+=0x01;if((fen & 0x0f) >= 0x0a)fen = (fen & 0xf0) + 0x10;if(fen >= 0x60)fen = 0;}if(key_can == 4) //减{if(fen == 0x00)fen = 0x5a;if((fen & 0x0f) == 0x00)fen = (fen | 0x0a) - 0x10;fen -- ;}}if(menu_2 == 3)//设置秒{if(key_can == 3) //加{miao+=0x01;if((miao & 0x0f) >= 0x0a)miao = (miao & 0xf0) + 0x10;if(miao >= 0x60)miao = 0;}if(key_can == 4) //减{if(miao == 0x00)miao = 0x5a;if((miao & 0x0f) == 0x00)miao = (miao | 0x0a) - 0x10;miao -- ;}}if(menu_2 == 4)//设置星期{if(key_can == 3) //加{week+=0x01;if((week & 0x0f) >= 0x0a)week = (week & 0xf0) + 0x10;if(week >= 0x08)week = 1;}if(key_can == 4) //减{if(week == 0x01)week = 0x08;if((week & 0x0f) == 0x00)week = (week | 0x0a) - 0x10;week -- ;}}if(menu_2 == 5)//设置年{if(key_can == 3) //加{nian+=0x01;if((nian & 0x0f) >= 0x0a)nian = (nian & 0xf0) + 0x10;if(nian >= 0x9a)nian = 1;}if(key_can == 4) //减{if(nian == 0x01)nian = 0x9a;if((nian & 0x0f) == 0x00)nian = (nian | 0x0a) - 0x10;nian -- ;}}if(menu_2 == 6)//设置月{if(key_can == 3) //加{yue+=0x01;if((yue & 0x0f) >= 0x0a)yue = (yue & 0xf0) + 0x10;if(yue >= 0x13)yue = 1;}if(key_can == 4) //减{if(yue == 0x01)yue = 0x13;if((yue & 0x0f) == 0x00)yue = (yue | 0x0a) - 0x10;yue -- ;}}if(menu_2 == 7)//设置日{if(key_can == 3) //加{ri+=0x01;if((ri & 0x0f) >= 0x0a)ri = (ri & 0xf0) + 0x10;if(ri >= 0x32)ri = 0;}if(key_can == 4) //减{if(ri ==0x01)ri = 0x32;if((ri &0x0f) == 0x00)ri = (ri | 0x0a) - 0x10;ri -- ;}}write_sfm2_ds1302(1,2,shi);//显示时write_sfm2_ds1302(1,5,fen); //显示分write_sfm2_ds1302(1,8,miao);//显示秒write_sfm1(1,14,week);//显示星期write_sfm2_ds1302(2,3,nian);//显示年write_sfm2_ds1302(2,6,yue);//显示月write_sfm2_ds1302(2,9,ri);//显示日switch(menu_2)// 光标显示{case 1:write_guanbiao(1,2,1); break;case 2:write_guanbiao(1,5,1); break;case 3:write_guanbiao(1,8,1); break;case 4:write_guanbiao(1,14,1); break;case 5:write_guanbiao(2,3,1); break;case 6:write_guanbiao(2,6,1); break;case 7:write_guanbiao(2,9,1); break;}write_time(); //把时间写进去}/***************设置闹钟*********************/if(menu_1 == 2){if(menu_2 == 1) //设置闹钟开关{if(key_can == 3){open1 = 1;//闹钟开}if(key_can == 4){open1 = 0;//闹钟关}}if(menu_2 == 2) //设置闹钟时{if(key_can == 3) //加{shi1+=0x01;if((shi1 & 0x0f) >= 0x0a)shi1 = (shi1 & 0xf0) + 0x10;if(shi1 >= 0x24)shi1 = 0;}if(key_can == 4) //减{if(shi1 == 0x00)shi1 = 0x5a;if((shi1 & 0x0f) == 0x00)shi1 = (shi1 | 0x0a) - 0x10;shi1 -- ;}}if(menu_2 == 3)//设置秒{if(key_can == 3) //加{fen1+=0x01;if((fen1 & 0x0f) >= 0x0a)fen1 = (fen1 & 0xf0) + 0x10;if(fen1 >= 0x60)fen1 = 0;}if(key_can == 4) //减{if(fen1 == 0x00)fen1 = 0x5a;if((fen1 & 0x0f) == 0x00)fen1 = (fen1 | 0x0a) - 0x10;fen1 -- ;}}if(open1 == 1)write_string(2,4,"Y");elsewrite_string(2,4,"N");write_sfm2_ds1302(2,7,shi1);//显示闹钟时write_sfm2_ds1302(2,10,fen1);//显示闹钟分switch(menu_2)// 光标显示{case 1: write_guanbiao(2,4,1); break;case 2: write_guanbiao(2,7,1); break;case3: write_guanbiao(2,10,1); break;}write_eeprom(); //保存闹钟时间}}/*****************主函数********************/void main(){beep = 0; //开机叫一声delay_1ms(150);P0 = P1 = P2 = P3 = 0xff;//单片机IO口初始化为1init_time0(); //初始化定时器init_ds1302(); //ds1302初始化init_1602(); //lcd1602初始化init_1602_dis_csf();//lcd1602初始化显示init_eeprom(); //开始初始化保存的数据temperature = read_temp();//先读出温度的值delay_1ms(650);temperature = read_temp();//先读出温度的值while(1){key(); //按键程序if(key_can < 10){if(flag_beep_en == 0)//只有闹钟关了的时候才能进入设置key_with();else{flag_beep_en = 0;//按下任意键可关闭闹钟beep = 1;clock_value = 0;read_time();}if(menu_1 == 0){if(key_can == 4) //减键{flag_nl = ~flag_nl; //切换农历和阳历的显示标志位if(flag_nl == 0)write_string(2,0,"2013");elsewrite_string(2,0,"N ");}}}if(flag_200ms == 1){flag_200ms = 0;if(menu_1 == 0){read_time(); //读时间temperature = read_temp(); //先读出温度的值init_1602_ds1302();//显示时钟}}menu_dis(); //闹钟报警函数delay_1ms(1);}}/**************定时器0中断程序*****************/void time0() interrupt 1{static uchar value;TH0 = 0X3C;TL0 = 0XB0; //50msvalue ++;if((value % 2) == 0) //100msflag_100ms = 1;if(value >= 6)//200ms{value = 0;flag_200ms = 1;}}。
python程序源代码(实用版)目录1.Python 程序源代码概述2.Python 程序源代码的特点3.Python 程序源代码的发展4.Python 程序源代码的应用领域5.Python 程序源代码的未来发展趋势正文一、Python 程序源代码概述Python 程序源代码是一种采用 Python 语言编写的计算机程序代码。
Python 语言作为一门广泛应用于多个领域的编程语言,其源代码具有简洁、易读、高效等特点,深受广大开发者喜爱。
二、Python 程序源代码的特点1.语法简洁:Python 语言的语法简洁明了,使得编写程序变得轻松愉快。
2.易读性强:Python 源代码结构清晰,可读性强,易于维护。
3.高效开发:Python 源代码具有丰富的库和框架支持,可以快速开发出高质量的应用程序。
4.跨平台:Python 源代码支持多种操作系统,如 Windows、Linux、Mac OS 等,具有较高的可移植性。
三、Python 程序源代码的发展Python 语言自 1991 年诞生以来,经历了多次版本更新,其源代码也在不断完善和丰富。
如今,Python 已经成为全球最受欢迎的编程语言之一,其源代码在多个领域都有着广泛的应用。
四、Python 程序源代码的应用领域Python 源代码在众多领域都有广泛应用,如:1.Web 开发:Python 源代码在 Web 开发领域有着丰富的框架支持,如 Django、Flask 等,可以快速构建高质量的 Web 应用。
2.数据分析:Python 源代码在数据分析领域有着强大的支持,如Pandas、NumPy 等库,可以方便地处理和分析海量数据。
3.人工智能:Python 源代码在人工智能领域有着广泛的应用,如TensorFlow、PyTorch 等深度学习框架,可以助力开发者快速开发智能应用。
4.网络编程:Python 源代码在网络编程方面有着丰富的库支持,如Requests、asyncio 等,可以方便地处理网络编程相关任务。
一:小牛问题#include <iostream>using namespace std;long int fun(int n);//声明fun函数void main(void){int n;cout <<"intput the years:";cin>>n;cout<<"cows sum="<<fun(n);}long int fun (int n)//从第一年开始算{long int i_born=1;//满一周岁的牛的数目,下面的类似long int ii_born=0;long int iii_born=0;long int iv_born=0;long int can_born=0;//今年能生产的牛的数目long int sum=1;for(int i=1;i<n;i++){can_born +=iv_born;//从四岁的母牛可以生小牛了sum +=can_born;iv_born=iii_born;iii_born=ii_born;ii_born=i_born;i_born=can_born;}return sum;}二:九九表// 九九表.cpp : Defines the entry point for the console application.//#include <iostream>using namespace std;int main(){int i,j;for(i=1;j<=9;i++){for(j=1;j<=i;j++)cout<<" "<<j<<"X"<<i<<"="<<j*i;cout<<endl;}cout<<endl;return 0;}三:杨辉三角:// 三角.cpp : Defines the entry point for the console application.//#include <iostream.h>void main(){int i,j,n;int a[20][20];cout<<"input num:";cin>>n;for (i=0;i<n;i++){a[i][0]=1;a[i][i]=1;}for (i=2;i<n;i++){for (j=1;j<i;j++){a[i][j]=a[i-1][j-1]+a[i-1][j];}}for (i=0;i<n;i++){for (int m=0;m<2*(n-i);m++){cout<<' ';}for (j=0;j<=i;j++){cout.width(4);cout<<a[i][j];}cout<<endl;}}四:长方体体积#include<iostream>using namespace std;class Box{public:void SetParameter(int l,int w,int d) {cin>>l>>w>>d;width=w;length=l;depth=d;}int Volume(){return width*length*depth;}void DispInfo(){cou<<"Box:"<<length<<"宽:"<<width<<"深:"<<depth<< endl;}private:int width,length,depth;};int main(){Box A;int l,w,d;A.SetParameter(l,w,d);A.DispInfo();cout<<"体积为:"<<A.Volume()<<endl;system("pause");return 0;}五:中奖第三章.#include<iostream>using namespace std; int main(){int ticket_number=0;cout<<"请输入你的彩票号码:";cin>>ticket_number;switch(ticket_number){case 888:cout<<"恭喜你中了一等奖!"; break;case 188:cout<<"恭喜你中了二等奖!"; break;case 105:cout<<"恭喜你中了三等奖!"; break;default:cout<<"抱歉,你没有中奖!"; }return 0;}六:拳击游戏:#include "stdafx.h"#include<iostream>using namespace std;class poser{public:virtual void beat()const{cout<<"一般选手的力量为260镑"<<endl;}protected:int age;};class Ali:public poser{public:void beat()const{cout<<"阿里一拳的力量为420镑"<<endl;}};class Lewis:public poser{public:void beat()const{cout<<"刘易斯一拳的力量为480镑"<<endl;}};class Tyson:public poser{public:void beat()const{cout<<"泰森一拳的力量为500镑"<<endl;}};class Holy:public poser{public:void beat()const{cout<<"霍利菲尔德一拳的力量为350镑"<<endl;}};int main(){poser *p[5];poser *p1;int i,choice;for (i=0;i<5;i++){cout<<"(1)阿里(2)刘易斯(3)泰森(4)霍利菲尔德:";cin>>choice;switch(choice){case 1:p1=new Ali;break;case 2:p1=new Lewis;break;case 3:p1=new Tyson;break;case 4:p1=new Holy;break;default:p1=new poser;break;}p[i]=p1;p[1]->beat();}return 0;}。
#include<iostream.h>#include <string.h>#include <stdio.h> /*文本每行以字符串形式存储,行与行之间以链表存储*/typedef struct line{char *data;struct line *next;}LINE; /*创建一链表,同时向里面输入文本数据*/void Create(LINE * &head){printf ("请输入一页文章,以Ctrl+E(^E)为结尾(每行最多输入80字符!):\n");LINE *p=new LINE; /*首先为链表建立一个附加表头结点*/ head=p; /*将p付给表头指针*/char tmp[100];while(1){gets(tmp); /*输入字符串!*/if(strlen(tmp)>80){printf("每行最多输入80字符");break;}if(tmp[0]==5)break; /*如果发现输入 ^E,则退出输入*/p=p->next=new LINE;p->data=new char[strlen(tmp)+1]; /*为结点分配空间 */strcpy(p->data,tmp);if(tmp[strlen(tmp)-1]==5) /*除去最后一个控制符 ^E */{p->data[strlen(tmp)-1]='\0';break;}}p->next=NULL; /*最后的一个指针为空 */head=head->next;}/*统计字母数*/int CountLetter(LINE * &head){LINE *p=head;int count=0;do{int Len=strlen(p->data); /*计算当前 data 里的数据元素的个数*/for(int i=0;i<Len;i++)if((p->data[i]>='a'&&p->data[i]<='z')||(p->data[i]>='A'&&p->data[i]<='Z')) /*计算字母数*/count++;}while((p=p->next)!=NULL); /*遍历链表*/return count; /*返回文章的字母总数*/}/*统计数字数*/int CountNumber(LINE * &head){LINE *p=head;int count=0;do{int Len=strlen(p->data); /*计算当前 data 里的数据元素的个数*/ for(int i=0;i<Len;i++)if(p->data[i]>=48 && p->data[i]<=57)count++;/*计算数字数,ASCII码*/}while((p=p->next)!=NULL); /*遍历链表*/return count;}/*统计空格数*/int CountSpace(LINE * &head){LINE *p=head;int count=0;do{int Len=strlen(p->data); /*计算当前 data 里的数据元素的个数*/ for(int i=0;i<Len;i++)if(p->data[i]==32)count++; /*计算空格数,空格ASCII码为32*/ }while((p=p->next)!=NULL); /*遍历链表*/return count;}/*统计文章的总字数*/int CountAll(LINE * &head){LINE *p=head; /*保存链表的首地址*/int count=0;do /*计算总字符数*/{count+=strlen(p->data);}while((p=p->next)!=NULL); /*遍历链表*/return count;}/*统计str在文章中出现的次数*/int FindString(LINE * &head,char *str){LINE *p=head;int count=0;int h=0;int len1=0; /*保存当前行的总字符数*/ int len2=strlen(str); /*待统计字符串的长度*/ int i,j,k;do{len1=strlen(p->data); /*当前行的字符数*/for(i=0;i<len1;i++) /*字符匹配*/{if(p->data[i]==str[0]){k=0;for(j=0;j<len2;j++)if(p->data[i+j]==str[j]) k++;if(k==len2) {count++;i=i+k-1;}}}}while((p=p->next)!=NULL); /*遍历链表*/return count;}/*删除指定的字符串*/void delstringword(char *s,char *str)/* *s为输入的字符串,*str为将要删除的字符*/{char *p=strstr(s,str); /*从字符串s中寻找str第一次出现的位置*/ char tmp[80];int len=strlen(s);int i=len-strlen(p);int j=i+strlen(str);int count=0;for(int m=0;m<i;m++)tmp[count++]=s[m];for(int n=j;n<len;n++)tmp[count++]=s[n];tmp[count]='\0';strcpy(s,tmp); /*返回新的字符串*/}void DelString(LINE * &head,char *str){LINE *p=head;do{if(strstr(p->data,str)!=NULL)delstringword(p->data,str);}while((p=p->next)!=NULL); /*遍历链表*/}/*向屏幕输出文章*/void OutPut(LINE * &head){LINE *p=head;do{printf("%s\n",p->data);}while((p=p->next)!=NULL); /*遍历链表*/}void main(){LINE *head;Create(head);printf("输入的文章为:\n");OutPut(head);printf("\n");printf("全部字母数:%d \n",CountLetter(head));printf("数字个数:%d \n",CountNumber(head));printf("空格个数: %d \n",CountSpace(head));printf("文章总字数: %d \n",CountAll(head));char str1[20],str2[20];printf("\n");printf("请输入要统计的字符串:");scanf("%s",str1);printf("%s出现的次数为:%d \n",str1,FindString(head,str1));printf("\n");printf("请输入要删除的某一字符串:");scanf("%s",str2);DelString(head,str2);printf("删除%s后的文章为:\n",str2);OutPut(head);}。
//C++课程设计#include<iostream> //数据流输入、输出#include<fstream> //文件输入、输出#include<string> //字符串操作#include<iomanip> //参数化输入/输出#include <stdio.h>using namespace std; //命名空间class Bus_infor{int No; //班次号static int Bus_No; //静态数据成员,统计当前所有的Bus_infor 对象的数目char start[20]; //起始站char end[20]; //终点站int Bus_order; //班次号int all_tickted; //额定载量int tickted; //已定票人数int Hour_start,Minute_start,Hour_end,Minute_end; //起始时间int Hour,Minute; //行车时间public:Bus_infor();~Bus_infor();Bus_infor *next;int Get_no(){return No;} //返回班次号void input(); //录入函数void input(ifstream & is); //读取函数void output(); //输出函数void output(ofstream & os); //写入函数void GetTime_start(); //录入发车时间void GetTime_end(); //录入到站时间void addr(); //录入起始站int Get_all_tickted(){return all_tickted;} //返回额定载量int Get_tickted(){return tickted;} //返回已定票人数char *Get_start(){ return start;} //返回发车时间char *Get_end(){return end;} //返回到站时间void GetTime(); //获取行车时间void ShowTime(); //显示行车时间int Get_bus_order(){return Bus_order;} //返回当前所有的Bus_infor对象的数目void Order_tickt(int n); //订票函数void Unorder_tickt(int n); //退票函数};int Bus_infor::Bus_No=1;void Bus_infor::input(){cout<<"\t\t\t按提示输入:"<<endl;cout<<"\t\t输入车次: ";cin>>Bus_order;cout<<"请输入车的额定载量: ";cin>>all_tickted;GetTime_start();GetTime_end();GetTime();ShowTime();addr();char a;cout<<"是否清空售票(y/n)?"<<endl;cin>>a;if(a=='y'||a=='Y') tickted=0;}void Bus_infor::input(ifstream & is){is>>Bus_order>>start>>end>>all_tickted>>tickted>>Hour_start>>Minute_start>>Hour_end >>Minute_end>>Hour>>Minute;is.get();}void Bus_infor::output(){cout<<"客车基本信息如下:"<<endl;cout<<" 车次发车时间到站时间行车时间额定载量已订票人数起点站终点站"<<endl;cout<<setw(4)<< Bus_order<<setw(8)<<Hour_start<<":"<< Minute_start<<setw(8)<< Hour_end<<":"<< Minute_end<<setw(8)<<Hour<<":"<<Minute<<setw(10)<<all_tickted<<setw(10)<<tickted<<setw(11)<<start<<setw(10)<<end<<endl;}void Bus_infor::output(ofstream & os){os<<setw(6)<<Bus_order<<setw(15)<<start<<setw(6)<<end<<setw(15)<<all_tickted<<setw(15)<<tickted<<setw(15)<<Hour_start<<setw(15)<<Minute_start<<setw(15)<<Hour_end<<setw(15)<<Minute_end<<setw(15)<<Hour<<setw(15)<<Minute<<endl;}void Bus_infor::GetTime_start(){int NewH=0,NewM=0;cout<<"请输入发车时间:"<<endl;cin>>NewH>>NewM;Hour_start=NewH;Minute_start=NewM;}void Bus_infor::GetTime_end(){int NewH=0,NewM=0;cout<<"请输入到站时间:"<<endl;cin>>NewH>>NewM;Hour_end=NewH;Minute_end=NewM;}void Bus_infor::GetTime(){if(Minute_end>=Minute_start){Minute=(Minute_end-Minute_start);Hour=(Hour_end-Hour_start);}else{Minute=(Minute_end-Minute_start+60);Hour=(Hour_end-Hour_start-1);}}void Bus_infor::ShowTime(){cout<<"显示行车时间"<<endl;cout<<Hour<<":"<<Minute<<endl;}Bus_infor::Bus_infor(){No=Bus_No++;tickted=0;}Bus_infor::~Bus_infor(){ Bus_No--; }void Bus_infor::addr(){cout<<"请输入起点站与终点站:"<<endl;char a[20];char b[20];cin>>a;cin>>b;strcpy(start,a);strcpy(end,b);}void Bus_infor::Order_tickt(int n){tickted=tickted+n;}void Bus_infor::Unorder_tickt(int n){tickted=tickted-n;};class Bus_link{public:Bus_link(){head=new Bus_infor;head->next=NULL;key=0;}void input(); //录入车票信息void mend(); //修改车票信息void del(); //删除车票信息int find(Bus_infor **p,int num,char *pn); //查找函数void found(); //查询车票信息void show(); //显示车票信息void Order(); //订购车票信息void Unorder(); //推定车票信息void save(); //保存车票信息void begin(); //初始化车票信息void clear(); //清楚函数char mainmenu(); //主菜单函数void setkey(int k){ key=k; } //设置系统修改标志int getkey(){ return key;} //返回系统修改标志private:Bus_infor *head; //链表指针int key; //系统修改标志};void Bus_link::input(){Bus_infor *p,*p2=NULL;p=head;int n;while(p->next)p=p->next;while(n){p2=new Bus_infor;p2->input();p->next=p2;p2->next=NULL;p=p->next;Bus_link::setkey(1);cout<<"\t\t\t按1继续,按0返回: ";cin>>n;if(!cin)throw string("数据输入错误");}}void Bus_link::Order(){Bus_infor *p;cout<<"确定购票(y/n)?"<<endl;char X;cin>>X;if(X=='y'){int num;cout<<"\t\t\t输入车次号: ";cin>>num;if( !find(&p,num,"^") ){cout<<"\t\t找不到你要定票的车辆的内容!"<<endl;return;}cout<<"输入要定的票数";int n;cin>>n;p=p->next;if((p->Get_tickted()+n)<=p->Get_all_tickted()){p->Order_tickt(n);cout<<"谢谢使用"<<endl;}else cout<<"对不起,没有足够的票数。
小程序源代码使用
小程序源代码是指微信小程序开发中的代码,可以用于创建小程序的功能和界面。
小程序源代码使用的步骤如下:
1. 下载小程序源代码:可以从开发者提供的网站或者开源社区上下载小程序源代码的压缩包。
2. 解压源代码:将下载的压缩包解压到本地的文件夹中。
3. 打开开发工具:使用微信开发者工具打开解压后的文件夹。
4. 导入项目:在开发者工具中,点击左上角的“导入项目”按钮,选择解压后的文件夹,并填写项目的AppID。
5. 编辑代码:在开发者工具的编辑器中,可以看到小程序的源代码,可以通过编辑代码来修改小程序的功能和界面。
6. 预览小程序:在开发者工具中,点击预览按钮,可以在模拟器中查看小程序的效果。
7. 调试和测试:在开发者工具中,可以通过调试和测试功能来检查小程序的代码是否有错误或者功能是否正常。
8. 发布小程序:当小程序开发完成后,可以在开发者工具中进行小程序的发布操作,将小程序上传到微信服务器上。
以上就是小程序源代码的使用步骤,通过修改和发布源代码,可以实现自定义的小程序功能和界面。
import java.awt.event.*;import java.awt.*;import java.io.*;import ng.String;class jsb implements ActionListener{Dialog bb;String strt;int i;FileDialog fd;File file;public Frame f;public TextArea p1;public MenuBar menubar;public Menu menu1,menu2,menu3;public MenuItem item1,item2,item3,item4,item5,item6,item7,item8,item9,item10; jsb(String s{ i=0;f=new Frame(s;p1=new TextArea("";f.setSize(500,500;f.setBackground(Color.white;f.setVisible(true;menubar=new MenuBar(;menu1=new Menu("文件";menu2=new Menu("编辑";menu3=new Menu("帮助";item1=new MenuItem("新建";item2=new MenuItem("打开";item3=new MenuItem("保存";item4=new MenuItem("另存为";item5=new MenuItem("退出";item6=new MenuItem("全选";item7=new MenuItem("复制";item8=new MenuItem("剪切";item9=new MenuItem("粘贴";item10=new MenuItem("关于";f.addWindowListener(new WindowAdapter({public void windowClosing(WindowEvent e {f.setVisible(false;System.exit(0;}};menu1.add(item1;menu1.add(item2;menu1.add(item3;menu1.add(item4;menu1.add(item5;menu2.add(item6;menu2.add(item7;menu2.add(item8;menu2.add(item9;menu3.add(item10;menubar.add(menu1;menubar.add(menu2;menubar.add(menu3;f.setMenuBar(menubar;item1.addActionListener(this;item2.addActionListener(this;item3.addActionListener(this;item4.addActionListener(this;item5.addActionListener(this;item6.addActionListener(this;item7.addActionListener(this;item8.addActionListener(this;item9.addActionListener(this;item10.addActionListener(this;f.setLayout(new GridLayout(1,1;f.add(p1;f.pack(;}public void actionPerformed(ActionEvent e { String ss;ss=p1.getText(.trim(;if (e.getSource(==item5{if (i==0 &&(ss.length(!=0{bc(;}else{System.exit(0;}}if (e.getSource(==item1{if (i==0&&(ss.length(!=0{bc(;}else{p1.setText("";i=0;f.setTitle("文件对话框"; } }if (e.getSource(==item2{fd=new FileDialog(f,"打开文件",0;fd.setVisible(true;try{file=new File(fd.getDirectory(,fd.getFile(;f.setTitle(fd.getFile(+"文件对话框"; FileReader fr=new FileReader(file; BufferedReader br=new BufferedReader(fr; String line = null;String view = "";while((line=br.readLine(!=null{view += line+"\n";}p1.setText(view;br.close(;fr.close(;}catch(IOException expIn{}}if (e.getSource(==item3{if (i==0{bc(;}else{try{file=new File(fd.getDirectory(,fd.getFile(;f.setTitle(fd.getFile(+"--记事本";FileWriter fw=new FileWriter(file; BufferedWriter bw=new BufferedWriter(fw; String s =p1.getText(;s = s.replaceAll("\n","\r\n";bw.write(s;bw.flush(;bw.close(;fw.close(;i=1;}catch(IOException expOut{i=0;}}}if (e.getSource(==item4{bc(;}if (e.getSource(==item10{bb=new Dialog(f,"关于";Label l1=new Label("本记事本的完成感谢老师和同学的帮助!!"; bb.add(l1; bb.setSize(250,150;bb.setBackground(Color.white;bb.show(;bb.addWindowListener(new WindowAdapter({public void windowClosing(WindowEvent e{bb.setVisible(false;bb.dispose(;}};}if (e.getSource(==item6{p1.setSelectionStart(0;p1.setSelectionEnd(p1.getText(.length(; }if (e.getSource(==item7{try{String str=p1.getSelectedText(;if(str.length(!=0{strt=str;}}catch(Exception ex{}}if (e.getSource(==item8{try{String str=p1.getSelectedText(;if(str.length(!=0{p1.replaceRange("",p1.getSelectionStart(,p1.getSelectionEnd(; } }catch(Exception ex{}}if (e.getSource(==item9{if(strt.length(>0{p1.insert(strt,p1.getCaretPosition(;}}}public void bc({fd=new FileDialog(f,"保存文件",1;fd.setVisible(true;try{file=new File(fd.getDirectory(,fd.getFile(;f.setTitle(fd.getFile(+"--记事本"; FileWriter fw=new FileWriter(file; BufferedWriter bw=new BufferedWriter(fw; String s =p1.getText(;s = s.replaceAll("\n","\r\n";bw.write(s;bw.flush(;bw.close(;fw.close(;i=1;}catch(IOException expOut{}} } public class EX0101 { public static void main(String args[] {jsb dd=new jsb("我的记事本";} }。
import javax.swing.*;import java.awt.*;import javax.swing.border.*;import java.awt.event.*;public class SX7{JTextField field;JFrame f;JButton b;JLabel label;JPanel p1;JButton bb1,bb2,bb3;ActionListener h;Color cor1,cor2;Container con;GridBagLayout g;GridBagConstraints c;int gridx,gridy,gridwidth,gridheight,anchor,fill,ipadx,ipady;double weightx,weighty;Insets inset;Font t;boolean k1,/*控制字符的连续输出*/z,/*实现除零对其它按键的控制*/mh=true;/*保存控制显示*/ String op1,op2,r,ch,tf,str7,str11;Double r1,n1,n2,a,str8,str9,str10;int k,/*控制运算*/counter1,/*控制操作符*/counter2;/*控制连续运算*/SX7(){try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());}catch(Exception e){}makeJFrame();//添加JFrameaddmakeBarMenu();//添加菜单栏addButton();//添加组件f.setVisible(true);}private void addButton(){JPanel p=new JPanel();p1=new JPanel();p.setLayout(new GridLayout(1,4,3,6));p1.setLayout(new GridLayout(4,6,3,6));g=new GridBagLayout();con.setLayout(g);anchor=GridBagConstraints.CENTER;//当组件小于其显示区域时使用此字段。
计算机程序源代码// jisuanqiDlg: implementation file//#include "stdafx.h"#include "jisuanqi.h"#include "jisuanqiDlg.h"#include "math.h"#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE[] = __FILE__;#endif/////////////////////////////////////////////////////////////////////////////// CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog{public:CAboutDlg();// Dialog Data//{{AFX_DATA(CAboutDlg)enum { IDD = IDD_ABOUTBOX };//}}AFX_DATA// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support//}}AFX_VIRTUAL// Implementationprotected://{{AFX_MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD){//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT}void CAboutDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)//{{AFX_MSG_MAP(CAboutDlg)// No message handlers//}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CJisuanqiDlg dialogCJisuanqiDlg::CJisuanqiDlg(CWnd* pParent ): CDialog(CJisuanqiDlg::IDD, pParent){//{{AFX_DATA_INIT(CJisuanqiDlg)m_num = 0.0;//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);}void CJisuanqiDlg::DoDataExchange(CDataExchange* pDX){CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CJisuanqiDlg)DDX_Text(pDX, IDC_EDIT1, m_num);//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(CJisuanqiDlg, CDialog)//{{AFX_MSG_MAP(CJisuanqiDlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, OnButton1)ON_BN_CLICKED(IDC_BUTTON2, OnButton2)ON_BN_CLICKED(IDC_BUTTON3, OnButton3)ON_BN_CLICKED(IDC_BUTTON4, OnButton4)ON_BN_CLICKED(IDC_BUTTON5, OnButton5)ON_BN_CLICKED(IDC_BUTTON6, OnButton6)ON_BN_CLICKED(IDC_BUTTON7, OnButton7)ON_BN_CLICKED(IDC_BUTTON8, OnButton8)ON_BN_CLICKED(IDC_BUTTON9, OnButton9)ON_BN_CLICKED(IDC_BUTTON14, OnButton0)ON_BN_CLICKED(IDC_BUTTON15, OnButtonPoint)ON_BN_CLICKED(IDC_BUTTON16, OnButtonEqual)ON_BN_CLICKED(IDC_BUTTON13, OnButtonChu)ON_BN_CLICKED(IDC_BUTTON12, OnButtonMul)ON_BN_CLICKED(IDC_BUTTON11, OnButtonSub)ON_BN_CLICKED(IDC_BUTTON10, OnButtonAdd)ON_BN_CLICKED(IDC_BUTTON17, OnButtondelet)ON_BN_CLICKED(IDC_BUTTON18, OnButtonclear)ON_BN_CLICKED(IDC_BUTTON19, OnButtonkaifang)ON_BN_CLICKED(IDC_BUTTON20, OnButtonziranduishu)ON_BN_CLICKED(IDC_BUTTON21, OnButtonchangyongduishu) //}}AFX_MSG_MAPEND_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////// CJisuanqiDlg message handlersBOOL CJisuanqiDlg::OnInitDialog()//初始化变量{CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialogSetIcon(m_hIcon, TRUE); // Set big iconSetIcon(m_hIcon, FALSE); // Set small icon// TODO: Add extra initialization heret=true;j=true;i=10;p=0;q=0;m_num=0;m_lnum=0;return TRUE; // return TRUE unless you set the focus to a control }void CJisuanqiDlg::OnSysCommand(UINT nID, LPARAM lParam) {if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}}// If you add a minimize button to your dialog, you will need the code below// to draw the icon. For MFC applications using the document/view model, // this is automatically done for you by the framework.void CJisuanqiDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}}// The system calls this to obtain the cursor to display while the user drags// the minimized window.HCURSOR CJisuanqiDlg::OnQueryDragIcon(){return (HCURSOR) m_hIcon;}void CJisuanqiDlg::OnButton1(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+1;UpdateData(FALSE);}else{m_num=m_num+1.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButton2(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+2;UpdateData(FALSE);}else{m_num=m_num+2.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButton3(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+3;UpdateData(FALSE);}else{m_num=m_num+3.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButton4(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+4;UpdateData(FALSE);}else{m_num=m_num+4.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButton5(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+5;UpdateData(FALSE);}else{m_num=m_num+5.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButton6(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+6;UpdateData(FALSE);}else{m_num=m_num+6.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButton7(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+7;UpdateData(FALSE);}else{m_num=m_num+7.0/i;i*=10;UpdateData(FALSE);}void CJisuanqiDlg::OnButton8(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+8;UpdateData(FALSE);}else{m_num=m_num+8.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButton9(){// TODO: Add your control notification handler code hereif(t){m_num=m_num*10+9;UpdateData(FALSE);}else{m_num=m_num+9.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButton0(){// TODO: Add your control notification handler code here //UpdateData();if(t){m_num=m_num*10+0;UpdateData(FALSE);}else{m_num=m_num+0.0/i;i*=10;UpdateData(FALSE);}}void CJisuanqiDlg::OnButtonPoint(){// TODO: Add your control notification handler code here int i=10;t=false;}void CJisuanqiDlg::OnButtonEqual(){// TODO: Add your control notification handler code hereswitch(r){case '+':{m_num=m_num+m_lnum;UpdateData(FALSE);break;}case '-':{m_num=m_snum-m_num;UpdateData(FALSE);break;}case '*':{m_num=m_mnum*m_num;UpdateData(FALSE);break;}case '/':{if(m_num==0){MessageBox("除数不能是0!");}else{m_num=m_cnum/m_num;UpdateData(FALSE);break;}}}t=true;}void CJisuanqiDlg::OnButtonMul(){// TODO: Add your control notification handler code here r='*';t=true;m_mnum=m_num;m_num=0;UpdateData(FALSE);void CJisuanqiDlg::OnButtonChu(){// TODO: Add your control notification handler code here r='/';t=true;i=10;m_cnum=m_num;m_num=0;UpdateData(FALSE);}void CJisuanqiDlg::OnButtonSub(){// TODO: Add your control notification handler code here r='-';i=10;t=true;if(j){m_snum=m_num;}else{p=0;adda[p]=m_num;p++;for(q=0;q<=p;q++){m_lnum=m_lnum+adda[q];q++;}m_num=m_lnum;UpdateData(FALSE);m_num=0;m_snum=m_lnum;}m_num=0;void CJisuanqiDlg::OnButtonAdd(){// TODO: Add your control notification handler code here r='+';t=true;j=false;i=10;p=0;adda[p]=m_num;p++;for(q=0;q<=p;q++){m_lnum=m_lnum+adda[q];q++;}m_num=m_lnum;UpdateData(FALSE);m_num=0;}void CJisuanqiDlg::OnButtondelet(){// TODO: Add your control notification handler code here int p;p=m_num/10;m_num=p;UpdateData(FALSE);}void CJisuanqiDlg::OnButtonclear(){// TODO: Add your control notification handler code here t=true;i=10;j=true;m_num=0;m_lnum=0;UpdateData(FALSE);}void CJisuanqiDlg::OnButtonkaifang(){// TODO: Add your control notification handler code herem_num=sqrt(m_num);UpdateData(FALSE);}void CJisuanqiDlg::OnButtonziranduishu(){// TODO: Add your control notification handler code here m_num=log(m_num);UpdateData(FALSE);}void CJisuanqiDlg::OnButtonchangyongduishu(){// TODO: Add your control notification handler code here m_num=log10(m_num);UpdateData(FALSE);}。
#include<stdio.h>#include<stdlib.h>#include <windows.h>#include <winnt.h>#include<string.h>#define LEN sizeof(struct Goods)struct Goods //声明结构体类型struct Goods {char Num[15];char Goodsname[10];char Shelflife[30];char Amount[40];char Date[15];char Price[10];struct Goods *next;};void open() //开头动画函数{opencolor1();printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t\t \n");printf("\t\t\n");printf("\t\t \n");printf("\t\t loading... \n");printf("\t\t\n");printf("\t\t \n");printf("\t\t\n");Sleep(300);opencolor1();printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");printf("\t\t loading... \n"); printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");Sleep(300);opencolor1();printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");printf("\t\t loading... \n"); printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");Sleep(300);opencolor1();printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");printf("\t\t loading... \n"); printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");Sleep(300);opencolor1();printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");printf("\t\t loading... \n"); printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");Sleep(300);opencolor1();printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");printf("\t\t loading... \n");printf("\t\t \n");printf("\t\t \n");printf("\t\t \n");Sleep(800);}void Title() //开头界面{HANDLE consolehwnd;consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(consolehwnd,FOREGROUND_GREEN); //改变颜色printf("\n\n\n\n★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\ n");printf("********************************************************************* ***********\n");printf("\n\n 小型商品信息及销售管理系统");printf("\n\n\n\n************************************************************** ******************\n");printf("★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★\n");printf( " #######欢迎登陆#######\n\n");printf(" 请输入序号:1.进行功能选择 2.退出程序\n");}void huanye() //换页{system("cls");}void Title2() //刷新界面{ printf(" ▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲\n");printf("\n 小型商品信息及销售管理系统\n\n");printf("▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼▲▼\n");}/////////////////////////////////////////////////////////功能表////////////////////////////////////////////////////////////void Gongneng() //定义功能菜单函数{void luru(); //声明函数void xianshi();void xuigai();void shanchu();void shumingchazhao();void chubanshechazhao();void tongji();void liulan();Restart:printf("\n\t\t◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n");printf("\t\t▏ 1.录入商品销售信息▕\n");printf("\t\t▏ 2.浏览商品销售信息▕\n");printf("\t\t▏ 3.修改商品销售信息▕\n");printf("\t\t▏ 4.删除商品销售信息▕\n");printf("\t\t▏ 5.由商品保质期查找商品▕\n");printf("\t\t▏ 6.由销售数量查找商品▕\n");printf("\t\t▏7.统计商品销售信息▕\n");printf("\t\t▏8.退出系统▕\n");printf("\t\t◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");printf("\n请选择所需要的序号\n");int n;scanf("%d",&n);if(n==8)exit(0);huanye();Title2();if(n==1)luru();if(n==2)liulan();if(n==3)xuigai();if(n==4)shanchu();if(n==5)shumingchazhao();if(n==6)chubanshechazhao();if(n==7)tongji();else{ printf("代码错误,请重新输入\n");goto Restart;}}////////////////////////////////////////////////////////1录入功能////////////////////////////////////////////////////////////////////////void f1(){FILE *fp;if((fp=fopen("goods.dat","r+"))==NULL) //先打开文件{ //打开输出文件goods.datprintf("不能打开此文件\n");return;}struct Goods*p1,*p2,*head; //读取文件,创建链表p1=p2=(struct Goods *) malloc(LEN);struct Goods*p;p=(struct Goods *) malloc(LEN);int n=0;head=NULL;fgets(p1->Num,15,fp);fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);for(;;){n=n+1;if(n==1)head=p1;else {p2->next=p1;p2=p1;p1=(struct Goods *) malloc(LEN);if(fgets(p1->Num,15,fp) == NULL) break; //当p1->Num为空时,跳出循环fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);}}printf("请输入录入商品种数\n");int i,a;scanf("%d",&a);for(i=1;i<=a;i++) //把录入的商品信息放进链表,再把链表读进文件{printf("第%d种\n",i);printf("流水号:"); scanf("%s",p->Num);fputs(p->Num,fp);fputs("\n",fp);printf("保质期:"); scanf("%s",p->Shelflife);fputs(p->Shelflife,fp);fputs("\n",fp);printf("商品名称:"); scanf("%s",p->Goodsname);fputs(p->Goodsname,fp);fputs("\n",fp);printf("销售数量:"); scanf("%s",p->Amount);fputs(p->Amount,fp);fputs("\n",fp);printf("销售日期:"); scanf("%s",p->Date); fputs(p->Date,fp);fputs("\n",fp);printf("销售金额:"); scanf("%s",p->Price);fputs(p->Price,fp);fputs("\n",fp);p=(struct Goods *) malloc(LEN);}fclose(fp); //关闭文件}void luru(){int z;Restart1: f1();printf("\n◆录入完毕\n");printf("◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n");printf(" 按“1”重新开始按“2”返回功能选择界面按“3”退出程序\n");printf("◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");printf("请操作:");scanf("%d",&z);if(z==1)goto Restart1;if(z==2){huanye();Title2();Gongneng();}if(z==3)exit(0);}/////////////////////////////////////////////////2浏览功能//////////////////////////////////////////////////////////////void liulan1() //定义liulan1函数{printf("浏览:\n");printf("================================================================ ================\n");fflush(stdin); //清空输入缓冲区!!!!!!FILE *fp;if((fp=fopen("goods.dat","r"))==NULL) //打开输出文件goods.dat{printf("不能打开此文件\n");return;}struct Goods *p1,*p2;p1=p2=(struct Goods *) malloc(LEN);for(;;){if(fgets(p1->Num,15,fp) == NULL){ printf("\n◆显示完毕(如无相关内容显示,说明系统未录入该商品销售信息)\n\n");break; } //当p1->Num为空时,跳出循环fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);p2->next=p1;p2=p1;p1=(struct Goods *) malloc(LEN);printf("\n商品销售信息:\n");printf("流水号:"); printf("%s",p2->Num);printf("保质期:"); printf("%s",p2->Shelflife);printf("商品名称:"); printf("%s",p2->Goodsname);printf("销售数量:"); printf("%s",p2->Amount);printf("销售日期:"); printf("%s",p2->Date);printf("销售金额:"); printf("%s",p2->Price);printf("================================================================ ================\n");}fclose(fp); //关闭文件}void liulan(){int a,n,z;liulan1();printf("◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n");printf(" 按“1”返回功能选择界面按“2”退出程序\n");printf("◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");printf("请操作:");scanf("%d",&z);if(z==1){huanye();Title2();Gongneng();}if(z==2)exit(0);}///////////////////////////////////////////////////3修改功能/////////////////////////////////////////////////////////////struct Goods *f2() //定义函数,函数返回一个指向链表头的指针{fflush(stdin); //清空输入缓冲区!!!!!FILE *fp;if((fp=fopen("goods.dat","r"))==NULL){ //打开输出文件goods.datprintf("不能打开此文件\n");exit(0);}struct Goods*p1,*p2,*head;p1=p2=(struct Goods *) malloc(LEN);struct Goods*p3;int n=0;head=NULL;fgets(p1->Num,15,fp);fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);while(p1->Num!=0) //从文件里读取信息,创建链表{n=n+1;if(n==1)head=p1;else {p2->next=p1;p2=p1;p1=(struct Goods *) malloc(LEN);if(fgets(p1->Num,15,fp) == NULL) break; //当p1->Num为空时,跳出循环fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);p2->next=NULL;fclose(fp); //关闭文件int i;char c[15];char a1[15],a2[30],a3[10],a4[40],a5[15],a6[10];gets(c);p3=head;do{ for(i=0;i<15;i++){ if(p3->Num[i]=='\n') //把从文件里取出的Num码字符串的末尾的换行符'\n'换为'\0',使之与输入的c匹配p3->Num[i]='\0';}if(strcmp(p3->Num,c)==0) //如果查找到与输入的Num匹配,则执行{printf("\n=========================================================== =====================");printf("\n\n商品销售信息:\n\nNum : ");printf("%s\n",p3->Num);printf("保质期: "); printf("%s",p3->Shelflife);printf("商品名称: "); printf("%s",p3->Goodsname);printf("销售数量: "); printf("%s",p3->Amount);printf("销售日期: "); printf("%s",p3->Date);printf("销售金额: "); printf("%s",p3->Price);printf("\n进行修改\n");printf("流水号: "); gets(a1);strcpy(p3->Num,a1); //进行修改printf("保质期: "); gets(a2);strcpy(p3->Shelflife,strcat(a2,"\n")); //输入时无法输入'\n',用连接字符串的方法加上换行符'\n'printf("商品名称: "); gets(a3);strcpy(p3->Goodsname,strcat(a3,"\n"));printf("销售数量: "); gets(a4);strcpy(p3->Amount,strcat(a4,"\n"));printf("销售日期: "); gets(a5);strcpy(p3->Date,strcat(a5,"\n"));printf("销售金额: "); gets(a6);strcpy(p3->Price,strcat(a6,"\n"));}p3=p3->next;}while(p3!=NULL); //当p为空时停止查找return (head);}void save(struct Goods *head) //创建函数struct Goods *p;FILE *fp;if((fp=fopen("goods.dat","w"))==NULL) //重新打开文件,把链表重新放入{ //打开输出文件goods.datprintf("不能打开此文件\n");return;}p=head;for(;p!=NULL;){ fputs(p->Num,fp);fputs("\n",fp); //由于从文件里取出的Num码字符串的末尾的换行符'\n'换为'\0',放进文件时末尾加还'\n'fputs(p->Shelflife,fp);fputs(p->Goodsname,fp);fputs(p->Amount,fp);fputs(p->Date,fp);fputs(p->Price,fp);p=p->next;}fclose(fp);}void xuigai(){ struct Goods*head;int a,n,z;Restart1: printf("请输入所要修改商品销售种类:\n");scanf("%d",&n);for(a=1;a<=n;a++){printf("请输入要修改商品流水号:\n");head=f2();save(head);printf("\n◆显示完毕(如无所要修改的商品销售信息显示,说明系统未录入该商品销售信息)\n\n");printf("◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n");printf(" 按“1”重新开始按“2”返回功能选择界面按“3”退出程序\n");printf("◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");printf("请操作:");scanf("%d",&z);if(z==1)goto Restart1;if(z==2){huanye();Title2();Gongneng();}if(z==3)exit(0);}}///////////////////////////////////////////////////4删除功能/////////////////////////////////////////////////////////////struct Goods *f3() //定义函数,函数返回一个指向链表头的指针{fflush(stdin); //清空输入缓冲区!!!!!FILE *fp;if((fp=fopen("goods.dat","r"))==NULL){ //打开输出文件goods.datprintf("不能打开此文件\n");exit(0);}struct Goods*p1,*p2,*q,*head;p1=p2=(struct Goods *) malloc(LEN);struct Goods*p;int n=0;head=NULL;fgets(p1->Num,15,fp);fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);while(p1->Num!=0) //从文件里读取信息,创建链表{n=n+1;if(n==1)head=p1;else {p2->next=p1;p2=p1;p1=(struct Goods *) malloc(LEN);if(fgets(p1->Num,15,fp) == NULL) break; //当p1->ISBN为空时,跳出循环fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);}}p2->next=NULL;fclose(fp); //关闭文件int i;char c[15];gets(c);p=head;for(;p != NULL;){for(i=0;i<15;i++){ if(p->Num[i]=='\n') //把创建链表中的Num码字符串的末尾的换行符'\n'换为'\0',使之与输入的c匹配p->Num[i]='\0';}p=p->next;}p=head;if (p==NULL)return 0;if (strcmp(p->Num,c)==0) // 符合条件,删除链表头部的元素{printf("\n=============================================================== =================");printf("\n\n所删除的商品销售信息:\n\nNum : ");printf("%s\n",p->Num);printf("保质期: "); printf("%s",p->Shelflife);printf("商品名称: "); printf("%s",p->Goodsname);printf("销售数量: "); printf("%s",p->Amount);printf("销售日期: "); printf("%s",p->Date);printf("销售金额: "); printf("%s",p->Price);head=p->next; //使链表头为p的next,删除pfree(p);return(head);}q=p -> next; //如果链表头部的元素不符合,从链表第二个节点找起for(;q != NULL;){if (strcmp(q->Num,c)==0){printf("\n=============================================================== =================");printf("\n\n所删除的商品信息:\n\nNum : ");printf("%s\n",q->Num);printf("保质期: "); printf("%s",q->Shelflife);printf("商品名称: "); printf("%s",q->Goodsname);printf("销售数量: "); printf("%s",q->Amount);printf("销售日期: "); printf("%s",q->Date);printf("销售金额: "); printf("%s",q->Price);p -> next = q -> next; //删除链表中符合条件的q节点free(q);if (p -> next == NULL) //这句非常重要,否则到q = p -> next会导致程序崩溃return (head);}p = p -> next;q = p -> next;}return(head);}void save1(struct Goods *head) //创建函数{struct Goods *p;FILE *fp;if((fp=fopen("goods.dat","w"))==NULL) //重新打开文件,把链表重新放入{ //打开输出文件goods.datprintf("不能打开此文件\n");return;}p=head;for(;p!=NULL;){ fputs(p->Num,fp);fputs("\n",fp); //由于从文件里取出的Num码字符串的末尾的换行符'\n'换为'\0',放进文件时末尾加还'\n'fputs(p->Shelflife,fp);fputs(p->Goodsname,fp);fputs(p->Amount,fp);fputs(p->Date,fp);fputs(p->Price,fp);p=p->next;}fclose(fp);}void shanchu(){ struct Goods*head;int a,n,z;Restart1: printf("请输入所要删除商品销售数量\n");scanf("%d",&n);for(a=1;a<=n;a++){printf("请输入要删除商品流水号:\n");head=f3();save1(head);}printf("\n◆成功删除(如无所要删除的商品销售信息显示,说明系统未录入该商品销售信息)\n\n");printf("◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n");printf(" 按“1”重新开始按“2”返回功能选择界面按“3”退出程序\n");printf("◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");printf("请操作:");scanf("%d",&z);if(z==1)goto Restart1;if(z==2){huanye();Title2();Gongneng();}if(z==3)exit(0);///////////////////////////////////////////////////5由商品名称查找/////////////////////////////////////////////////////////////void print1() //定义print函数{int i,a,b;char Shelflife[30];char c[30];printf("请输入所查找商品保质期的相关信息:\n");fflush(stdin);FILE *fp;struct Goods*p;if((fp=fopen("goods.dat","r"))==NULL) //打开输出文件goods.dat{printf("不能打开此文件\n");return;}struct Goods *p1,*p2;p1=p2=(struct Goods *) malloc(LEN);gets(c);for(;;){if ( fgets(p1->Num,15,fp)==NULL){ printf("\n◆显示完毕(如无所要查找的商品销售信息显示,说明系统未录入商品销售信息)\n\n");break; } //当p1->Num为空时,跳出循环fgets(p1->Shelflife,30,fp);for(i=0;i<30;i++){ if(p1->Shelflife[i]=='\n')p1->Shelflife[i]='\0';} //把从文件里取出的书名字符串的末尾的换行符'\n'换为'\0',使之与输入的c匹配fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);p2->next=p1;p2=p1;p1=(struct Goods *) malloc(LEN);for(a=0;p2->Shelflife[a]!='\0';a++) //查找商品保质期信息的字符串{for(b=0;c[b]!='\0';b++)if(p2->Shelflife[a+b]!=c[b])break;if(c[b]=='\0')break;}if(p2->Shelflife[a]!='\0'){ printf("\n============================================================== ==================\n");printf("\n商品销售信息:\n\n");printf("流水号: ");printf("%s",p2->Num);printf("保质期: "); printf("%s\n",p2->Shelflife);printf("商品名称: "); printf("%s",p2->Goodsname);printf("销售数量: "); printf("%s",p2->Amount);printf("销售日期: "); printf("%s",p2->Date);printf("销售金额: "); printf("%s",p2->Price);}}fclose(fp);}void shumingchazhao(){int z;Restart1: print1();printf("◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n");printf(" 按“1”重新开始按“2”返回功能选择界面按“3”退出程序\n");printf("◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");printf("请操作:");scanf("%d",&z);if(z==1)goto Restart1;if(z==2){huanye();Title2();Gongneng();}if(z==3)exit(0);}///////////////////////////////////////////////////6由销售数量查找/////////////////////////////////////////////////////////////void print2() //定义print函数{int i;char c[40];printf("请输入销售数量:\n\n");fflush(stdin);gets(c);FILE *fp;struct Goods *p;if((fp=fopen("goods.dat","r"))==NULL) //打开输出文件goods.dat{printf("不能打开此文件\n");return;}struct Goods *p1,*p2;p1=p2=(struct Goods *) malloc(LEN);for(;;){fgets(p1->Num,15,fp);fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);if (fgets(p1->Amount,40,fp)==NULL){ printf("\n◆显示完毕(如无相关的商品销售信息显示,说明系统未录入该商品销售信息)\n\n");break; } //当p1->Amount为空时,跳出循环for(i=0;i<40;i++){ if(p1->Amount[i]=='\n') //把从文件里取出的商品数量字符串的末尾的换行符'\n'换为'\0',使之与输入的c匹配p1->Amount[i]='\0';}fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);p2->next=p1;p2=p1;p1=(struct Goods *) malloc(LEN);if(strcmp(p2->Amount,c)==0){ printf("\n============================================================== ==================");printf("\n商品销售信息:\n\n");printf("流水号: ");printf("%s",p2->Num);printf("保质期: "); printf("%s",p2->Shelflife);printf("商品名称: "); printf("%s",p2->Goodsname);printf("销售数量: "); printf("%s\n",p2->Amount);printf("销售日期: "); printf("%s",p2->Date);printf("销售金额: "); printf("%s",p2->Price);}}fclose(fp);}void chubanshechazhao(){int z;Restart1: print2();printf("◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n");printf(" 按“1”重新开始按“2”返回功能选择界面按“3”退出程序\n");printf("◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");printf("请操作:");scanf("%d",&z);if(z==1)goto Restart1;if(z==2){huanye();Title2();Gongneng();}if(z==3)exit(0);/////////////////////////////////////////////////////////7统计功能////////////////////////////////////////////////////////////struct Goods *f4() //定义函数,{fflush(stdin); //清空输入缓冲区!!!!!FILE *fp;if((fp=fopen("goods.dat","r"))==NULL){ //打开输出文件goods.datprintf("不能打开此文件\n");exit(0);}struct Goods*p1,*p2,*q,*head;p1=p2=(struct Goods *) malloc(LEN);struct Goods*p;int n=0;head=NULL;fgets(p1->Num,15,fp);fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);while(p1->Num!=0) //从文件里读取信息,创建链表{n=n+1;if(n==1)head=p1;else {p2->next=p1;p2=p1;p1=(struct Goods *) malloc(LEN);if(fgets(p1->Num,15,fp) == NULL) break; //当p1->Num为空时,跳出循环fgets(p1->Shelflife,30,fp);fgets(p1->Goodsname,10,fp);fgets(p1->Amount,40,fp);fgets(p1->Date,15,fp);fgets(p1->Price,10,fp);}}p2->next=NULL;fclose(fp); //关闭文件int i;int b=0,c=0;p=head; //统计商品种类for(;p!=NULL;p=p->next){q=p->next;for(;q!=NULL;q=q->next){if(strcmp(q->Goodsname,p->Goodsname)==0)break;}if(q==NULL)b++;}printf("\n▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔\n");printf(" ●共有%d种商品\n",b);return (0);}void tongji(){ int z;printf("\n统计系统商品销售信息:\n\n");f4();printf("◤▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔◥\n"); printf(" 按“1”返回功能选择界面按“2”退出程序\n");printf("◣▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁◢\n");printf("请操作:");scanf("%d",&z);if(z==1){huanye();Title2();Gongneng();}if(z==2)exit(0);////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// }int main(){int i;open();huanye();Title();scanf("%d",&i);if(i==1)huanye();if(i==2)exit(0);Title2();Gongneng();return 0;}。