當前位置:首頁 » 編程語言 » 排版系統c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

排版系統c語言

發布時間: 2023-07-05 07:44:28

1. 排班系統。c語言

我先說說思路:用一個7*7的二維數組pb存儲一周中每天是誰休息,數組行標0-6表示人員(錢-陳),列標0-6表示星期(日-六),初始值存儲為每人的休息日意願,比如錢想休息周一、六,即置pb[0][1]和pb[0][6]為1,其餘為0(表示不情願休息),依次類推,初始化其他人員的休息意願。接下來就對這個數組中為1的元素進行篩選修改,比如將pb[i][j]=1改為pb[i][j]=2,即表示讓人員i在星期j休息,當然人員i不能又在其它天休息了,其他人員也不能在星期j這天休息了,也就是i行、j列都只能有一個為2的值,經過7次設置,即可得到一種方案。可以考慮用遞歸演算法實現。

#include<stdio.h>
#include<conio.h>
#defineT7//排班周期
#defineN7//人員數目
#defineX1//每人每周期可以休息X天,X<T
#defineY1//每天最多可以有Y人休息,Y>=N*X/T
inttotal=0;
voidPrint(intpb[][T]){
inti,j;
printf(" XiuXiFangAn%d: ",++total);
for(i=0;i<N;++i){
printf("%d:",i);
for(j=0;j<T;++j){
if(pb[i][j]==2)printf("%d",j);
}
printf(" ");
}
getch();
}
intKeXing(intpb[][T],intk,intj){//檢驗k人員在j日期休息是否可行
ints=0,i;
for(i=0;i<T;++i)s+=(pb[k][i]==2);
if(s>X)return0;
for(s=0,i=0;i<N;++i)s+=(pb[i][j]==2);
if(s>Y)return0;
return1;
}
voidPaiBan(intpb[][T],intk){//給第k位人員安排休息日
inti,j;
for(j=0;j<T;++j){
if(pb[k][j]==1){//k人員願意在j日期休息
pb[k][j]=2;
if(KeXing(pb,k,j)){
if(k==N-1){//找到一個方案
Print(pb);//輸出休息方案
}else{
PaiBan(pb,k+1);
}
}
pb[k][j]=1;//准備更換下一個休息意願日測試
}
}
}
intmain(){
inti,j,pb[N][T]={0};
printf("====PaiBanXiTong==== ");
printf("XiuXiYiYuani,j(RenYuani=0~%d,RiQij=0~%d,JieShu-1,-1): ",N-1,T-1);
do{
scanf("%d,%d",&i,&j);
if(i>=0&&i<N&&j>=0&&j<T){
pb[i][j]=1;
}else{
break;
}
}while(1);
PaiBan(pb,0);
printf(" GongYou%dZuFangAn.",total);
printf(" Finished! ");
getch();
return0;
}

根據你的休息意願設置,可以得到4中方案。

2. 一種簡單英文詞典排版系統的實現 C語言編程

#include
"stdio.h"
#include
"stdlib.h"
#include
"string.h"
#include
"ctype.h"
#define
ROWS
256
#define
COLS
32
static
FILE
*fp;
static
char
a[ROWS][COLS];
char
get_option(void);
int
b(int
count);
void
c(char
*pt[],
int
count);
int
check(char
arr[],
int
count);
void
storage(char
*pt[],
int
count);
int
main(void)
{
int
i,count;
int
start;
char
*pt[ROWS];
char
ch,
len;
char
input;
if((fp=fopen("words.txt","a+"))==NULL)
{
fputs("不能打開或建立文件!\n",stderr);
exit(1);
}
fseek(fp,0L,SEEK_END);
start=(int)ftell(fp)/32;
count=start;
rewind(fp);
if(fread(a,32*sizeof(char),start,fp)==0)
{
i=0;
puts("請輸入單詞(每行一個),在新行輸入END結束輸入:");
while(i<ROWS&&scanf("%s",
a[i])==1)
{
fflush(stdin);
if(strncmp(a[i],"END",3)==0)
{
count+=i;
break;
}
if(check(a[i],
i))
continue;
i++;
}
}
puts("您要做些什麼?");
puts("a.
顯示已有的單詞
b.
添加新單詞");
puts("c.
對已有的單詞進行排序
d.
退出");
while((input=get_option())!='d')
{
if(input=='a')
{
puts("已有的單詞:");
for(i=0;i<count;i++)
{
printf("
");
puts(a[i]);
}
}
if(input=='b')
{
puts("請輸入新的單詞(每行一個),在新行輸入END結束輸入:
");
count=b(count);
}
if(input=='c')
{
puts("對單詞進行排序:");
c(pt,
count);
for(i=0;i<count;i++)
{
printf("
");
puts(pt[i]);
}
}
puts("還要做些什麼?");
}
storage(pt,count);
fclose(fp);
puts("再見!");
return
0;
}
char
get_option(void)
{
char
ch;
while((ch=getchar())<'a'||ch>'d')
{
while((ch=getchar())!='\n')
;
puts("請輸入a,b,c或者d.");
}
fflush(stdin);
return
ch;
}
int
b(int
count)
{
int
i;
i=count;
while(i<ROWS&&scanf("%s",
a[i])==1)
{
fflush(stdin);
if(check(a[i],
i))
continue;
if(strncmp(a[i],"END",3)==0)
{
count=i;
break;
}
i++;
}
return
count;
}
void
c(char
*pt[],
int
count)
{
int
i,j;
char
*temp;
for(i=0;i<ROWS;i++)
pt[i]=a[i];
for(i=0;i<count;i++)
for(j=i+1;j<count;j++)
{
if(strcmp(pt[i],pt[j])>0)
{
temp=pt[i];
pt[i]=pt[j];
pt[j]=temp;
}
}
}
int
check(char
arr[],
int
count)
{
int
i;
int
flag=0;
for(i=0;i<strlen(arr);i++)
if(isalpha(arr[i])==0)
{
printf("%s不是一個單詞.\n",arr);
flag=1;
break;
}
for(i=0;i<count;i++)
if(strncmp(a[i],a[count],strlen(a[count])+1)==0)
{
puts("重復的單詞!");
flag=1;
}
return
flag;
}
void
storage(char
*pt[],
int
count)
{
int
i,j;
char
ptr[ROWS][COLS];
c(pt,
count);
for(i=0;i<count;i++)
for(j=0;pt[i][j]!='\0';j++)
ptr[i][j]=pt[i][j];
fp=fopen("words.txt","w+");
rewind(fp);
fwrite(ptr,32*sizeof(char),count,fp);
}

3. C語言~排版~要求運行時,顯示的整齊些。

#include<stdio.h>
#include<math.h>
void main()
{
int m,i,k,h,leap;
h=0;
for(m=100;m<=200;m++)
{
k=sqrt(m);
leap = 1;
for(i=2;i<=k;i++)
{
if(m%i==0)
{
leap=0;
break;
}
}
if(leap)
{
printf("%-4d",m);

h++;
if(h%10==0)
{
printf("\n");
}

}
}

}

4. 關於c語言的理解。是否它的排版有規定,例如什麼in 什麼#include,然後{}這樣的括弧,

嗯....這不是最基礎的嗎,你隨便看個入門書看幾頁就懂了,一點不懂這樣說也說不清。
stdio.h是個有用的文件,裡面有一些關於輸入輸出的函數定義,可以調用,如果要使用它裡面的東西就要包含它:'#include<stdio.h>'

還有一下其他的什麼,要用它裡面的東西就要'#include<xxxx>'

main函數就是程序開始的時候調用的函數,隔空行不是必須的。

5. 在編寫c語言時,語句排版比較亂,怎麼辦

建議樓主平常寫程序時多注意下~畢竟自動排版之類的功能沒有那麼完善。

如果是排版的話,選中需要排版的區域,然後ALT+F8,可以自動調整縮進,樓主指的應該就是這個吧?~

6. C語言程序設計作業 簡單排版

肯定是一個題一個報告,每個題的任務描述、設計內容、流程、結果都不一樣。怎麼能放在一個報告里邊。流程圖應該是你畫出來的,不是寫出來的吧。部分核心代碼可以貼在實驗結果里邊。

7. C語言編程排班系統

#include <stdio.h>

int n = 0;
int rest[7][7];

void swap(int *a, int *b)
{
int m;
m = *a;
*a = *b;
*b = m;
}

void perm(int list[], int k, int m)
{
int i;
int j;
if(k > m)
{
for (i=0; i<7; i++)
{
for (j=0; j<7; j++)
{
if (rest[i][j] == 0)
return;
if (rest[i][j] != list[i])
continue;
if (rest[i][j] == list[i])
break;
}
}

n++;
printf("Solution: %d\n", n);
printf("趙 錢 孫 李 周 吳 陳\n");
printf("=============================================================\n");
for(i = 0; i <= m; i++)
{
switch (list[i])
{
case 1: printf("星期一 ");
break;
case 2: printf("星期二 ");
break;
case 3: printf("星期三 ");
break;
case 4: printf("星期四 ");
break;
case 5: printf("星期五 ");
break;
case 6: printf("星期六 ");
break;
case 7: printf("星期日 ");
break;
default:
break;
}
}
printf("\n\n\n");
}

else
{
for(i = k; i <= m; i++)
{
swap(&list[k], &list[i]);
perm(list, k + 1, m);
swap(&list[k], &list[i]);
}
}
}

int main()
{
printf("\n");
printf("注意:\n");
printf(" 1.請按錢、趙、孫、李、周、吳、陳的順序輸入休息每個人的時間。\n");
printf(" 2.輸入星期時,請直接輸入數字,如要輸入'星期一',就用'1'代替,以此類推。\n");
printf(" 3.星期與星期之間用空格隔開,每輸入完一個人的休息日,在其後輸入0,再按回車繼續下一人。\n");
printf("\n");
int list[] = {1, 2, 3, 4, 5, 6, 7};
int i, j;
for(i = 0; i < 7; i++)
{
printf("請輸入第 %d 個人的休息時間:\n", i+1);
for(j = 0; j < 7; j++)
{
scanf("%d", &rest[i][j]);
if(rest[i][j] == 0)
break;
}
}
printf("\n\n\n");
perm(list, 0, 6);
getchar();
getchar();
printf("輸出完畢,按回車鍵結束!\n");
return 0;
}

8. c++自動排版快捷鍵

c++自動排版快捷鍵:但是有 【工具】 【c/c++代碼格式化】。

vs有一個自動格式化代碼快捷鍵:Ctrl+K,Ctrl+F,就是先同時按下ctrl和K兩個鍵,然後松開K(不松開ctrl),再按下F。

整理對齊代碼快捷鍵是Alt+F8組合鍵。centOS 下webstorm 格式化代碼的快捷鍵 Ctrl+Shift+l 。windows 下 webstorm 格式化代碼的快鍵鍵 Ctrl+Alt+l。

支持數據封裝和數據隱藏:

在C++中,類是支持數據封裝的工具,對象則是數據封裝的實現。C++通過建立用戶定義類支持數據封裝和數據隱藏。

在面向對象的程序設計中,將數據和對該數據進行合法操作的函數封裝在一起作為一個類的定義。對象被說明為具有一個給定類的變數。

每個給定類的對象包含這個類所規定的若干私有成員、公有成員及保護成員。完好定義的類一旦建立,就可看成完全封裝的實體,可以作為一個整體單元使用。類的實際內部工作隱藏起來,使用完好定義的類的用戶不需要知道類是如何工作的,只要知道如何使用它即可。