C語言實(shí)現(xiàn)電影管理系統(tǒng)
本文實(shí)例為大家分享了C語言實(shí)現(xiàn)電影管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
文件目錄

說明:
- user.txt 儲(chǔ)存用戶名和密碼 空格隔開
- data.txt 單行數(shù)據(jù)分別為:電影名 評分 場次 時(shí)長 展廳號(hào) 票價(jià) 時(shí)間段
場次對應(yīng)后面有幾個(gè)時(shí)間段
原碼
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct a{
?? ?char name[100]; //電影名
?? ?int grade; //評分
?? ?int number; ?//一天場次
?? ?int time; ?//電影時(shí)長
?? ?int?? ?hall; //展廳號(hào)
? ? double price; ?//票價(jià)
?? ?char timeline[100][100]; //時(shí)間段
? ??
?? ?struct a* next;
}Cinema,*List;
List head=NULL;
int ?Login(); ? ?// 登陸
void Menu(); ? ? ?// ? 主菜單
int Choose(); ? ?// ?選擇功能
void Creathead(); // 創(chuàng)建頭結(jié)點(diǎn)
void Reload(); ? ? // ?載入本地文件
void Search(); ? ? ?// ?查找電影
void Creat(); ? ? ? // ?新建電影數(shù)據(jù)
void Delete(); ? ? // ?刪除電影
void DeleteAll(); ? // 刪除所有
void Modify(); ? ? // ?修改電影數(shù)據(jù)
void Sort(); ? ? ?// 排序
void Changedata(List p); ? // 排序中的數(shù)據(jù)交換
void DisplayAll(); ?// ?顯示所有電影
void Save(); ? ? ? // ?保存
int main()
{
?? ?if(Login()==0) return 0;
?? ?Creathead();
?? ?Reload();
?? ?while (1)
?? ?{
?? ??? ?Menu();
?? ??? ?switch (Choose())
?? ??? ?{
?? ??? ?case 1:
?? ??? ??? ?Creat(); break;
?? ??? ?case 2:
?? ??? ??? ?Delete(); break;
?? ??? ?case 3:
?? ??? ? ? ?Search();break;
?? ??? ?case 4:
?? ??? ??? ?Modify(); break;
?? ??? ?case 6:
?? ??? ??? ?DisplayAll(); break;
?? ??? ?case 5:
?? ??? ??? ?DeleteAll(); break;
?? ??? ?case 7:
?? ??? ??? ?Sort(); break;
?? ??? ?case 8:
?? ??? ??? ?Save(); break;
?? ??? ?case 0:
?? ??? ??? ? return 0;
?? ??? ?}
?? ?}
}
int Login()
{
?? ?while (1)
?? ?{
?? ??? ?printf("----------------------------------------------------------\n");
?? ??? ?printf("* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n");
?? ??? ?printf("* ? ? ? ? ? ? ? ? ? ? ? 1:用戶登錄 ? ? ? ? ? ? ? ? ? ? ?*\n");
?? ??? ?printf("* ? ? ? ? ? ? ? ? ? ? ? 2:用戶注冊 ? ? ? ? ? ? ? ? ? ? ?*\n");
?? ??? ?printf("* ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*\n");
?? ??? ?printf("----------------------------------------------------------\n");
?? ??? ?int choose;
?? ??? ?char fusername[100], fpassword[100];
?? ??? ?char username[100], password[100];
?? ??? ?scanf("%d", &choose);
?? ??? ?if (choose == 1)
?? ??? ?{
?? ??? ??? ?FILE* f1 = fopen("user.txt", "r");
?? ??? ??? ?printf("請輸入用戶名:");
?? ??? ??? ?scanf("%s", username);
?? ??? ??? ?getchar();
?? ??? ??? ?printf("請輸入密碼:");
?? ??? ??? ?char c;
?? ??? ??? ?int i = 0;
?? ??? ??? ?while ((c = getch()) != '\r')
?? ??? ??? ?{
?? ??? ??? ??? ?if (c == '\b')
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?i--;
?? ??? ??? ??? ??? ?putchar('\b');
?? ??? ??? ??? ??? ?putchar(' ');
?? ??? ??? ??? ??? ?putchar('\b');
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?password[i] = c;
?? ??? ??? ??? ??? ?i++;
?? ??? ??? ??? ??? ?putchar('*');
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?printf("\n");
?? ??? ??? ?password[i] = '\0';
?? ??? ??? ?fscanf(f1, "%s %s", fusername, fpassword);
?? ??? ??? ?if ((strcmp(fusername, username) == 0) && (strcmp(fpassword, password)) == 0)
?? ??? ??? ?{
?? ??? ??? ??? ?printf("登陸成功\n");
?? ??? ??? ??? ?getch();
?? ??? ??? ??? ?system("cls");
?? ??? ??? ??? ?return 1;
?? ??? ??? ?}
?? ??? ??? ?else
?? ??? ??? ?{
?? ??? ??? ??? ?printf("用戶名或密碼錯(cuò)誤");
?? ??? ??? ? ? ?getch();
?? ??? ??? ??? ?return 0;
?? ??? ??? ?}
?? ??? ?}
?? ??? ?else if (choose == 2)
?? ??? ?{
?? ??? ??? ?FILE* f2 = fopen("user.txt", "w");
?? ??? ??? ?printf("請輸入用戶名:");
?? ??? ??? ?scanf("%s", username);
?? ??? ??? ?printf("請輸入密碼:");
?? ??? ??? ?scanf("%s", password);
?? ??? ??? ?fprintf(f2, "%s %s", username, password);
?? ??? ??? ?fclose(f2);
?? ??? ??? ?system("cls");
?? ??? ??? ?printf("注冊成功!\n");
?? ??? ?}
?? ?}
}
void Menu()
{
?? ?printf("\n\n");
?? ?printf("-----------------------------影院管理系統(tǒng)--------------------------------\n");
?? ?printf("\t1.添加電影信息 ? ?2.刪除某個(gè)電影信息 ? ?3.查找某個(gè)電影信息\n");
?? ?printf("\t4.修改電影信息 ? ?5.刪除所有電影信息 ? ?6.顯示所有電影信息\n");
?? ?printf("\t7.排序 ? ? ? ? ? ?8.保存 ? ? ? ? ? ? ? ?0.退出\n");
?? ?printf("\n-------------------------------------------------------------------------\n");
}
int Choose(){
?? ?int n;
?? ?printf("請輸入序號(hào):");
?? ?while (scanf("%d", &n) != 1 || n < 0 || n>8)
?? ?{
?? ??? ?printf("請重新輸入:");
?? ??? ?scanf("%d", &n);
?? ?}
?? ?return n;
}
void Reload()
{
?? ?int number,time,hall,count=0,grade;
?? ?double price;
?? ?char name[100];
?? ?char timeline[100][100];
?? ?List b=head;
?? ?FILE* p = fopen("data.txt", "a+");
?? ?while (fscanf(p, "%s%d%d%d%d%lf",name,&grade,&number,&time,&hall,&price) == 6)
?? ?{
?? ??? ?
?? ??? ?List a = (List)malloc(sizeof(Cinema));
?? ??? ?b->next=a;?? ??? ?
?? ??? ?a->grade = grade;
?? ??? ?a->price = price;
?? ??? ?a->time = time;
?? ??? ?a->hall = hall;
?? ??? ?a->number = number;
?? ??? ?strcpy(a->name, name);
?? ??? ?
?? ??? ?int i;?
?? ??? ?for(i=0;i<number;i++)
?? ??? ?{
?? ??? ??? ?fscanf(p,"%s",timeline[i]);
?? ??? ??? ?strcpy(a->timeline[i], timeline[i]);
?? ??? ?}
?? ??? ?b = b->next;
?? ??? ?count++;
?? ?}
?? ?if(count!=0)
?? ?b->next = NULL;
?? ?printf("成功載入%d條信息\n\n", count);
?? ?fclose(p);
}
void Creathead()
{
?? ?List a=(List)malloc(sizeof(Cinema));
?? ?a->price = 0;
?? ?a->time = 0;
?? ?a->hall = 0;
?? ?a->number = 0;
?? ?a->grade = 0;
?? ?strcpy(a->name, "0");
//?? ?strcpy(a->timeline, "0");
?? ?a->next=NULL;
?? ?head=a;?? ?
}
void Creat()
{
?? ?List a = (List)malloc(sizeof(Cinema));
?? ?printf("請輸入電影名: ?");
?? ?scanf("%s", a->name);
?? ?printf("請輸入電影評分: ");
?? ?scanf("%d",&a->grade);
?? ?printf("請輸入電影時(shí)長:(單位min) ?");
?? ?scanf("%d", &a->time);
?? ?printf("請輸展廳號(hào): ?");
?? ?scanf("%d", &a->hall);
?? ?printf("請輸入票價(jià): ?");
?? ?scanf("%lf", &a->price);
?? ?
?? ?printf("請輸入一天共幾場: ?");
?? ?scanf("%d", &a->number);
?? ?printf("請輸入電影時(shí)間段:(xx:xx) ?");
?? ?int i;
?? ?for(i=0;i< a->number;i++)
?? ??? ?scanf("%s", a->timeline[i]);
?? ?a->next = NULL;
?? ?List b = head;
?? ?while (b->next != NULL)
?? ??? ?b = b->next;
?? ?b->next = a;
?? ?system("cls");
?? ?printf("添加成功\n\n");
}
void Search()
{
?? ?int flag = 1;
?? ?List a,b;
?? ?a=b = head->next;
?? ?char name[100];
? ? printf("輸入要查找的電影名:");
? ? scanf("%s", name);
?? ?printf("\n");
?? ?while(strcmp(a->name,name))
?? ?{
?? ??? ?b=a;
?? ??? ?a=b->next;
?? ??? ?if (a== NULL)
?? ??? ?{
?? ??? ??? ?printf("查找失敗\n\n");
?? ??? ??? ?flag = 0;
?? ??? ??? ?break;?
?? ??? ?}
?? ?}?
? ? if(flag)
?? ?{
?? ?printf("電影名\t\t評分\t\t場次\t\t時(shí)長\t\t展廳號(hào)\t\t票價(jià)\t\t上映時(shí)間段\n");
?? ?printf("---------------------------------------------------------");
?? ?printf("---------------------------------------------------\n");
?? ?printf("%*s\t%d\t\t%d\t\t%d\t\t%d\t\t%.2lf\t\t[1]%s\n",-10,a->name,a->grade,a->number,a->time,a->hall,a->price,a->timeline[0]);
?? ?int i;
?? ?for(i=1;i<a->number;i++)
?? ??? ?printf("\t\t\t\t\t\t\t\t\t\t\t\t[%d]%s\n",i+1,a->timeline[i]);
?? ?printf("\n");
? ? }
?? ?printf("\n\n");
?? ?getchar();
?? ?getchar();
?? ?system("cls");
}
void Delete()
{
?? ?char choose;
?? ?char name[100];
?? ?List a=head,b=head;
?? ?printf("輸入要?jiǎng)h除的電影名: ");
?? ?scanf("%s",name);
?? ?while(strcmp(a->name, name))
?? ?{
?? ??? ?b=a;
?? ??? ?a = b->next;
?? ?}
?? ?printf("確認(rèn)刪除電影 %s (y/n)",a->name);
?? ?getchar();
?? ?scanf("%c",&choose);
?? ?if(choose=='y')
?? ?{
?? ??? ?b->next=a->next;
?? ??? ?free(a);
?? ?}
}
void DeleteAll()
{
?? ?List a, b;
?? ?a = b = head->next;
?? ?while (a != NULL)
?? ?{
?? ??? ?b = a->next;
?? ??? ?free(a);
?? ??? ?a = b;
?? ?}
?? ?head->next = NULL;
?? ?remove("data");
}
void Modify()
{
?? ?int flag = 0;
?? ?char name[100],choose;
?? ?List a=head->next,b=head;
?? ?getchar();
?? ?printf("輸入要修改的電影名: ");
?? ?scanf("%s", name);
?? ?getchar();
?? ?while(a!=NULL)
?? ?{
?? ??? ?if (strcmp(a->name, name) == 0)
?? ??? ?{
?? ??? ??? ?flag = 1;
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?b = a;
?? ??? ?a = b->next;
?? ?}
?? ?if (flag)
?? ?{
?? ??? ?printf("電影名為 %s 是否修改(y/n)", a->name);
?? ??? ?scanf("%c", &choose);
?? ??? ?getchar();
?? ??? ?if (choose == 'y')
?? ??? ?{
?? ??? ??? ?printf("修改為:");
?? ??? ??? ?scanf("%s", a->name);
?? ??? ?}
?? ??? ?printf("電影評分為 %d 是否修改 (y/n)", a->grade);
?? ??? ?scanf("%c", &choose);
?? ??? ?getchar();
?? ??? ?if (choose == 'y')
?? ??? ?{
?? ??? ??? ?printf("修改為:");
?? ??? ??? ?scanf("%d", &a->grade);
?? ??? ?}
?? ??? ?printf("電影一天場數(shù)為 %d 是否修改(y/n)", a->number);
?? ??? ?scanf("%c", &choose);
?? ??? ?getchar();
?? ??? ?if (choose == 'y')
?? ??? ?{
?? ??? ??? ?printf("修改為:");
?? ??? ??? ?scanf("%d", &a->number);
?? ??? ?}
?? ??? ?printf("電影時(shí)長為 %dmin 是否修改(y/n)", a->time);
?? ??? ?scanf("%c", &choose);
?? ??? ?getchar();
?? ??? ?if (choose == 'y')
?? ??? ?{
?? ??? ??? ?printf("修改為:");
?? ??? ??? ?scanf("%d", &a->time);
?? ??? ?}
?? ??? ?printf("展廳號(hào)為 %d 是否修改(y/n)", a->hall);
?? ??? ?scanf("%c", &choose);
?? ??? ?getchar();
?? ??? ?if (choose == 'y')
?? ??? ?{
?? ??? ??? ?printf("修改為:");
?? ??? ??? ?scanf("%d", &a->hall);
?? ??? ?}
?? ??? ?printf("票價(jià)為 %.2f 是否修改(y/n)", a->price);
?? ??? ?scanf("%c", &choose);
?? ??? ?getchar();
?? ??? ?if (choose == 'y')
?? ??? ?{
?? ??? ??? ?printf("修改為:");
?? ??? ??? ?scanf("%f", &a->price);
?? ??? ?}
?? ??? ?printf("修改完成");
?? ?}
?? ?else
?? ??? ?printf("未找到\n\n");
?? ?getch();
?? ?system("cls");
}
void DisplayAll()
{
?? ?system("cls");
?? ?List a, b;
?? ?a = b = head->next;
?? ?if (head->next == NULL)
?? ?{
?? ??? ?printf("無數(shù)據(jù)");
?? ??? ?getchar();
?? ??? ?getchar();
?? ??? ?system("cls");
?? ??? ?return;
?? ?}
?? ??? ?
?? ?printf("電影名\t\t評分\t\t場次\t\t時(shí)長\t\t展廳號(hào)\t\t票價(jià)\t\t上映時(shí)間段\n");
?? ?printf("---------------------------------------------------------");
?? ?printf("---------------------------------------------------\n");
?? ?while (a!=NULL)
?? ?{
?? ??? ?printf("%*s\t%d\t\t%d\t\t%d\t\t%d\t\t%.2lf\t\t[1]%s\n",-10,a->name,a->grade,a->number,a->time,a->hall,a->price,a->timeline[0]);
?? ??? ?int i;
?? ??? ?for(i=1;i<a->number;i++)
?? ??? ??? ?printf("\t\t\t\t\t\t\t\t\t\t\t\t[%d]%s\n",i+1,a->timeline[i]);
?? ??? ?printf("\n");
?? ??? ?b = a;
?? ??? ?a = b->next;
?? ?}?? ?
?? ?getchar();
?? ?getchar();
?? ?system("cls");
}
void Sort()
{
?? ?int a,b;
?? ?printf("請選擇按 1.評分 2.場次 排序 :");
?? ?scanf("%d",&a);
?? ?printf("請選擇 1.降序 2.升序 :");
?? ?scanf("%d",&b);
?? ?List p = head->next;
?? ?List p1 = NULL;
?? ?while (p != p1)?
?? ?{
?? ??? ?while (p->next != p1)?
?? ??? ?{
?? ??? ??? ?if (a == 1)
?? ??? ??? ?{
?? ??? ??? ??? ?if (b == 1)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?if (p->grade < p->next->grade)
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?Changedata(p);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else if (b == 2)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?if (p->grade > p->next->grade)
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?Changedata(p);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?if (a == 2)
?? ??? ??? ?{
?? ??? ??? ??? ?if (b == 1)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?if (p->number < p->next->number)
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?Changedata(p);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ??? ?else if (b == 2)
?? ??? ??? ??? ?{
?? ??? ??? ??? ??? ?if (p->number > p->next->number)
?? ??? ??? ??? ??? ?{
?? ??? ??? ??? ??? ??? ?Changedata(p);
?? ??? ??? ??? ??? ?}
?? ??? ??? ??? ?}
?? ??? ??? ?}
?? ??? ??? ?p = p->next;
?? ??? ?}
?? ??? ?p1 = p;
?? ??? ?p = head->next;
?? ?}
?? ?printf("排序成功\n\n");
?? ?getch();
?? ?system("cls");
?? ?
}
void Changedata(List p)
{
?? ?double ex1 = p->price;
?? ?p->price = p->next->price;
?? ?p->next->price = ex1;
?? ?int ex2 = p->grade;
?? ?p->grade = p->next->grade;
?? ?p->next->grade = ex2;
?? ?int ex4 = p->time;
?? ?p->time = p->next->time;
?? ?p->next->time = ex4;?? ?
?? ?int ex5 = p->hall;
?? ?p->hall = p->next->hall;
?? ?p->next->hall = ex5;
?? ?char temp[100];
?? ?strcpy(temp, p->name);
?? ?strcpy(p->name, p->next->name);
?? ?strcpy(p->next->name, temp);
?? ?char temp2[100][100];
?? ?int i;
?? ?for(i=0;i<p->number;i++)
?? ??? ?strcpy(temp2[i], p->timeline[i]);
?? ?for(i=0;i<p->next->number;i++)
?? ??? ?strcpy(p->timeline[i], p->next->timeline[i]);
?? ?for(i=0;i<p->number;i++)
?? ??? ?strcpy(p->next->timeline[i], temp2[i]);
?? ?int ex3 = p->number;
?? ?p->number = p->next->number;
?? ?p->next->number = ex3;
}
void Save()
{
?? ?if (head->next == NULL)
?? ?{
?? ??? ?printf("未錄入信息\n\n");
?? ??? ?return;
?? ?}
?? ?List a=head->next,b=head;
?? ?FILE *p=fopen("data.txt","w");
?? ?while(a!=NULL)
?? ?{
?? ??? ?fprintf(p, "%s %d %d %d %d %.2lf ", a->name,a->grade, a->number, a->time, a->hall, a->price);
?? ??? ?int i;
?? ??? ?for(i=0;i< a->number;i++)
?? ??? ??? ?fprintf(p,"%s ",a->timeline[i]);
?? ??? ?fprintf(p, "\n");
?? ??? ?b=a;
?? ??? ?a=a->next;
?? ?}
?? ?fclose(p);
?? ?printf("保存成功");
?? ?getch();
?? ?system("cls");
}所有文件目錄需要自己修改,vs中相對路徑從工程文件位置開始,dev從.c文件開始,最好使用絕對定位
部分功能解析
1. 登錄系統(tǒng)
開頭有簡易登錄系統(tǒng),暫時(shí)只能保存一位用戶注冊信息(說不定會(huì)完善)
簡易密碼加密:
printf("請輸入密碼:");
char c;
int i = 0;
while ((c = getch()) != '\r')
?? ??{
?? ??? ???if (c == '\b')
?? ??? ????{
?? ??? ??i--;
?? ??? ???putchar('\b');
?? ??? ???putchar(' ');
?? ??? ???putchar('\b');
?? ??? }
?? ??? ??else
?? ??? ?{
?? ?? ? ?password[i] = c;
?? ??? ????i++;
?? ??? ?? ?putchar('*');
?? ??? ???}
?? ????}
??printf("\n");
password[i] = '\0';輸入密碼時(shí)用getch()函數(shù)不回顯特性,將數(shù)據(jù)存入c但不顯示在窗口,同時(shí)putchar(*)做到視覺加密
遇到退格\b時(shí),先將光標(biāo)前移一位,然后用空格代替原本 *,再將光標(biāo)前移等待下次錄入
2. 載入
void Reload()
{
?? ?int number,time,hall,count=0,grade;
?? ?double price;
?? ?char name[100];
?? ?char timeline[100][100];
?? ?List b=head;
?? ?FILE* p = fopen("data.txt", "a+");
?? ?while (fscanf(p, "%s%d%d%d%d%lf",name,&grade,&number,&time,&hall,&price) == 6)
?? ?{
?? ??? ?
?? ??? ?List a = (List)malloc(sizeof(Cinema));
?? ??? ?b->next=a;?? ??? ?
?? ??? ?a->grade = grade;
?? ??? ?a->price = price;
?? ??? ?a->time = time;
?? ??? ?a->hall = hall;
?? ??? ?a->number = number;
?? ??? ?strcpy(a->name, name);
?? ??? ?
?? ??? ?for(int i=0;i<number;i++)
?? ??? ?{
?? ??? ??? ?fscanf(p,"%s",timeline[i]);
?? ??? ??? ?strcpy(a->timeline[i], timeline[i]);
?? ??? ?}
?? ??? ?b = b->next;
?? ??? ?count++;
?? ?}
?? ?if(count!=0)
?? ?b->next = NULL;
?? ?printf("成功載入%d條信息\n\n", count);
?? ?fclose(p);
}登錄成功后,自動(dòng)把文件中信息載入內(nèi)存,同時(shí)顯示成功載入的信息
3. 時(shí)段排版
根據(jù)一天上映的場次決定最后時(shí)間段展示的行數(shù)DisplayAll()函數(shù)中:
for(int i=1;i<a->number;i++)
?? ?printf("\t\t\t\t\t\t\t\t\t\t\t\t[%d]%s\n",i+1,a->timeline[i]);以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù)的方法
這篇文章主要介紹了C++實(shí)現(xiàn)十六進(jìn)制字符串轉(zhuǎn)換為十進(jìn)制整數(shù)的方法,涉及C++字符串與數(shù)制轉(zhuǎn)換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
C++實(shí)現(xiàn)LeetCode(228.總結(jié)區(qū)間)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(228.總結(jié)區(qū)間),本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
VSCode (Visual Studio Code) V1.43.0下載并設(shè)置成中文語言的方法
Visual Studio Code是一款免費(fèi)開源的現(xiàn)代化輕量級代碼編輯器,支持語法高亮、智能代碼補(bǔ)全、自定義熱鍵、括號(hào)匹配、代碼片段、代碼對比 Diff、GIT 等特性,這篇文章主要介紹了VSCode (Visual Studio Code) V1.43.0下載并設(shè)置成中文語言,需要的朋友可以參考下2020-03-03

