⑴ c語言如何實現用戶注冊登錄注銷,用戶簽到功能
用資料庫實現,可以用MySQL,PostgreSQL,如果數據多一點用Oracle,簽到功能在資料庫中記錄,加密密碼用加密方法可以用異或加密。
⑵ C語言簽到獎勵
#include<stdio.h>
#include<stdlib.h>
intmain(){
/*需要先分析簽到天數和積分的邏輯關系
天數:12345678910111213141516…
積分:1223334444555556…
每天的基本積分為1,第二天第三天再增加1,第四天第五天第六天再增加1,以此類推
簽到天數為10,積分就等於10+(10-1)+(10-3)+(10-6)
10天的基本積分+9天的一次增長積分+7天的二次增長積分+4天的三次增長積分
簽到天數為16,積分就等於16+(16-1)+(16-3)+(16-6)+(16-10)+(16-15)
然後得到一組天數的數據:013610152128…
找到通項公式(1+n)*n/2
*/
intdays=0;
printf("請輸入連續簽到的天數:");
scanf("%d",&days);
intcount=0;
inti=(1+count)*count/2;
intintegral=0;
while(days>i){
integral+=days-(i);
count++;
i=(1+count)*count/2;
}
printf("所獲得的積分為:%d ",integral);
system("pause");
return0;
}
⑶ c語言 簽到系統
Linux是一種操作系統,如果你只熟悉windows系統那我還是建議你不要去裝了!GCC是專門為linux量身定做的C/C++編譯器(自帶連接器)GCC只是一個編譯器而不是編輯器不要被樓下誤導!Linux下源碼編輯器一般有vi/vim,emacs,其他的gedit也還算行吧,專業的就是前面兩個了不過都是字元界面的,用慣了windows操作系統我建議你還是別用了!GCC據說可以移植到windows上來但我表示我沒用過,據說很多bugGDB是linux下的調試工具,程序調試工具!跟windows下的windbg,ollydbg差不多!如果你熟悉windows呢就用Windows操作系統吧用VC++6.0做為集成開發環境(VC++6.0相當於你上面說的GCC+GDB因為VC6自帶調試工具)如果你精通Linux(我只是打個比方,如果你精通linux我想應該比我清楚用什麼好)呢就用GCC吧!用gedit或者vi寫C源代碼然後用gcc編譯!
⑷ C語言演算法,簽到問題。C++的標程有了,求個C語言的。附帶注釋,清楚點。
有多組數據,暫且以輸入負數結束輸入:代碼如下
#include<iostream>
usingnamespacestd;
//連續簽到越長,分數越高,求最少的簽到天數,適合貪心演算法,多次連續簽到
//每次連續簽到中未簽到一天,則未簽到天數最少
voidcalculator(intscore)
{
intsigned_day=0;//簽到天數
intunsigned_day=0;//未簽到天數
inttmp=0;//模擬簽到積分統計
intcontinued_day=0;//單次連續簽到天數
while(true)//多次連續簽到,每次中間停簽一天
{
while(tmp<score)
{
continued_day++;
tmp+=continued_day;
}//單次連續簽到,超過總積分即可後停止,要麼剛好,要麼多簽到一天,下面處理
if(tmp==score)
{
signed_day+=continued_day;
break;
}//單次連續簽到後,如果簽到積分剛好等於總積分,則就是少簽到天數
else
{
tmp-=continued_day;//先減去多簽到的那一天得到的積分
signed_day+=(continued_day-1);//加上單次連續簽到的天數
unsigned_day++;//停止簽到一天
continued_day=0;//置連續簽到天數為0
}//單次連續簽到後,超出總積分
}
cout<<signed_day<<""<<unsigned_day<<endl;
}
intmain()
{
intscore=0;
while(true)
{
cin>>score;
if(score<0)
break;
calculator(score);
}
return0;
}
⑸ 如何用C語言編寫一個簽到的程序,一天只能簽到一次,不能重復簽到,最好是給代碼,如果麻煩的話,要用到
要看簽到的方式,時間點簽到,還是時間段簽到。你可以試試用定時器做,定時器的話c語言有sleep函數,mfc中有settimer定時器,這個最好看你的題目具體的要求。簽到函數,無非就是判斷狀態。
⑹ 如何用c或c++編寫簡單的簽到程序
方法/步驟
雙擊桌面上的Visual C++6.0快捷圖標,打開編程環境,如下圖所示:
在打開的界面中,單擊「文件」菜單項。選擇裡面的子菜單「新建」,單擊此項,得到如下圖所示的選項卡:(也可以直接使用快捷鍵:Ctrl+N)
在打開的新建選項卡中,單擊「文件」,然後選中「文件」選項卡中的「C++ source file」一欄,在右邊的「文件名」文本框中,對你要新建的C++源文件命名,這里我取名為「Demo.cpp」,具體詳細操作如下圖所示:
在上述操作的基礎上,保存文件到指定的文件夾。這是我保存 到桌面的Demo文件夾中,如下圖所示:
選擇路徑之後,單擊「確定」按鈕,得到如下圖說是的界面,在右邊的編輯區內,您就可以開始編寫C語言代碼了。
開始代碼的編輯。下面,我們編寫一個簡單的兩數求和的代碼,代碼編輯如下如所示:
編譯。對程序進行編譯,點擊工具欄的「編譯」圖標(或者按下快捷鍵:Ctrl+F7),如下圖所示:
組建。對程序進行鏈接,點擊工具欄的「組建」圖標(或者按下快捷鍵:F7),如下圖所示:
執行。現在我們可以查看你編程的程序的結果了,點擊工具欄中的「執行」圖標(或者按下快捷鍵:Ctrl+F5),程序執行的結果如下圖所示:
⑺ 有沒有好用的學員簽到系統
簽到系統真心建議用用課棧互聯的,可以直接掃碼,也可以手動勾選,可以按照班級簽,也可以按照課程簽,統計起來挺方便的
⑻ 怎樣用C語言編寫考勤信息處理系統
沒分我就不寫代碼了,只提供思路。把考勤記錄寫成一個結構體Record,包含
人員編號登記號碼姓名刷卡日期刷卡時間簽到方式設備編號上下班標志操作員
這些內容。然後從文件中讀取出結構體數組,然後按照員工的姓名進行排序
⑼ C語言課設求幫忙,各位大神,謝謝了
#include<stdio.h>
#include<string.h>
voidmenu();//輸出主菜單
voidcreate();//1.學生名單輸入
voidsign();//2.跑步簽到
voidsearch();//3.查詢
voidsave();//保存
inti,n;
structStudent
{
charname[20];
charnum[20];
inttime;
};
structStudentstu[4];
intmain()
{
do{
menu();
scanf("%d",&n);
switch(n)
{
case1:printf("1.學生名單輸入 ");create();break;
case2:printf("2.跑步簽到! ");sign();break;
case3:printf("3.查詢! ");search();break;
case0:printf("0.退出系統! ");break;
default:printf("您輸入的選項不存在,請重新確認後再次輸入! ");
}
}
while(n>0);
return0;
}
voidmenu()
{
printf("歡迎進入跑步簽到系統 ");
printf("1.學生名單輸入 ");
printf("2.跑步簽到 ");
printf("3.查詢 ");
printf("0.退出系統 ");
printf("請輸入要選擇的菜單: ");
}
voidsave()
{
FILE*fp;
fp=fopen("myfile.dat","a+");
if(fp==NULL)
printf("Cannotopenfile ");
fwrite(stu,sizeof(structStudent),4,fp);
fclose(fp);
}
voidcreate()
{
intu;
for(u=0;u<4;u++)
{
printf("請輸入學生姓名:");
scanf("%s",stu[u].name);
printf("請輸入學號:");
scanf("%s",stu[u].num);
printf("請輸入次數:");
scanf("%d",&stu[u].time);
}
save();
}
voidsign()
{
intw;
charx[20];
printf("請輸入打卡的學生的學號:");
scanf("%s",&x);
for(w=0;w<4;w++)
{
if(strcmp(stu[w].num,x)==0)
break;
}
stu[w].time=stu[w].time+1;
printf("簽到成功 ");
save();
}
voidsearch()
{
intw;
charx[20];
printf("請輸入你想查找的學生的學號:");
scanf("%s",&x);
for(w=0;w<4;w++)
{
if(strcmp(stu[w].num,x)==0)
break;
}
printf("姓名 學號 次數 ");
printf("%s ",stu[w].name);
printf("%s ",stu[w].num);
printf("%d ",stu[w].time);
}
bug已經修改好了fp=open中根據需要修改w或者a