1、首先創(chuàng)建一個(gè)c語(yǔ)言項(xiàng)目。然后右鍵頭文件,創(chuàng)建一個(gè)Stu的頭文件。
10多年的社旗網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。成都全網(wǎng)營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整社旗建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)公司從事“社旗網(wǎng)站設(shè)計(jì)”,“社旗網(wǎng)站推廣”以來(lái),每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
2、編寫頭文件的代碼。再將數(shù)據(jù)結(jié)構(gòu)的增刪改查和結(jié)構(gòu)體寫入頭文件。
3、在源文件中創(chuàng)建main源文件和Stu源文件。再main文件中寫入int mian()代碼。
4、然后在mian主函數(shù)中,寫入while語(yǔ)句無(wú)限循環(huán)。再寫入Init函數(shù)。
5、在Stu源文件的Init函數(shù)用printf語(yǔ)句,將學(xué)生管理系統(tǒng)輸出。再創(chuàng)建鏈表的頭節(jié)點(diǎn)head。
6、然后用switch函數(shù)對(duì)操作進(jìn)行判斷。再執(zhí)行數(shù)據(jù)結(jié)構(gòu)的增刪改查功能。這樣一個(gè)學(xué)生管理系統(tǒng)的基本框架就完成了。
C代碼和運(yùn)行結(jié)果如下:
輸入5,成功輸出了其在給定數(shù)組中的下標(biāo)為4,結(jié)果正確,望采納~
附源碼:
#include stdio.h
int search(int a[], int n, int x) { // 返回?cái)?shù)組a[]中x的下標(biāo)
int i;
for (i = 0; i n; i++) {
? if (a[i] == x)
? ? ? return i;
}
return -1; // 數(shù)組中沒(méi)有x則返回-1
}
int main() {
int x, a[10] = {7,9,3,4,5,2,1,6,10,8};
scanf("%d", x); // 用戶輸入數(shù)x
printf("%d ", search(a, 10, x)); // 輸出x在數(shù)組中的下標(biāo)
return 0;
}
" 1.輸入/添加學(xué)生資料 "endl "
2.輸出學(xué)生資料" endl "
3.查找 " endl "
4.刪除" endl "
5.總分排序" endl "
6.退出" endl endl "
請(qǐng)選擇你要的服務(wù)(1-6)" endl; cin chose; if(chose=='6') { break; } switch(chose) { case '1': //
輸入學(xué)生信息 { do { cout "
請(qǐng)輸入學(xué)生姓名:" endl; ch1=new char[]; ch2=new char[]; cin ch1 ; cout "
請(qǐng)輸入學(xué)號(hào):" endl; cin num ; while(st.check_num(num)) { cout "
學(xué)號(hào)重復(fù),請(qǐng)重新輸入" endl; cin num; } cout "
請(qǐng)輸入地址:"endl; cin ch2 ; cout "
請(qǐng)輸入高數(shù)成績(jī):"endl; cin x; cout "
請(qǐng)輸入英語(yǔ)成績(jī):" endl; cin y; cout "
請(qǐng)輸入計(jì)算機(jī)成績(jī):" endl; cin z; st.input(ch1,num,ch2,x,y,z); printf("\n
是否繼續(xù)輸入學(xué)生信息?(\"y\"繼續(xù))"); scanf("%s", flag); }while(strcmp(flag, "y") == 0); }break; case '2'://
輸出學(xué)生資料 { temp=count; count=1; cout "
序號(hào)\t姓名\t學(xué)號(hào)\t\t地址\t\t\t高數(shù)\t英語(yǔ)\t計(jì)算機(jī)" endl; while(count=temp) { st.show(); count++; } count--; getch(); }break; case '3': { cout "
請(qǐng)輸入你要查找學(xué)生的學(xué)號(hào)" endl; cin find; st.find(find); }break; case '4': { cout "
請(qǐng)輸入你要?jiǎng)h除的學(xué)生學(xué)號(hào)" endl; cin del; st.del(del); }break; case '5': { st.taxis(); }break;
default: { cout "輸入錯(cuò)誤!!!,請(qǐng)重新輸入" endl; getch(); } } } cout "感謝你的使用!\n" endl; getch();
}
#include stdio.h
#include windows.h
#include string.h
struct worker
{
int num;
char name[20];
char zhicheng[10];
int wages;
int reward;
long birth;
int salary;
}work[500],work1; /*定義結(jié)構(gòu)體*/
void menu(); //聲明菜單函數(shù)
void type_in(); //聲明錄入函數(shù)
void baocun(int); //聲明保存函數(shù)
void scan(); //聲明瀏覽函數(shù)
void del(); //聲明刪除函數(shù)
void search(); //聲明查詢函數(shù)
void search_zhicheng(); //聲明按職稱查詢函數(shù)
void search_name(); //聲明按姓名查找函數(shù)
void change(); //聲明修改函數(shù)
void order(); //聲明排序函數(shù)
void add(); //聲明添加函數(shù)
void order_wages();
void order_name();
void menu() /*菜單函數(shù)*/
{
printf("\n");
printf(" welcome to \n");
printf(" 職工信息管理系統(tǒng) ");
printf("******************************************************************************\n");
printf(" 1.錄入職工信息\n");
printf(" 2.瀏覽職工信息\n");
printf(" 3.查詢職工信息\n");
printf(" 4.刪除職工信息\n");
printf(" 5.修改職工信息\n");
printf(" 6.職工信息排序\n");
printf(" 7.添加職工信息\n");
printf(" 8.退出\n");
printf("*******************************************************************************\n");
printf("\n");
}
/********************************************************************************************/
void main()
{
int n,f;
while(1)
{
do
{
menu(); /*調(diào)用菜單函數(shù)*/
printf("請(qǐng)輸入你需要操作的序號(hào)(1—8):\n");
scanf("%d",n);
if(n=1n=8)
{
f=1;
break;
}
else
{
f=0;
printf("您輸入有誤,請(qǐng)重新選擇!");
}
}while(f==0);
switch(n)
{
case 1:printf(" 錄入職工信息\n");printf("\n");type_in();break;
case 2:printf(" 瀏覽職工信息\n");printf("\n");system("cls");scan();break;
case 3:printf(" 查詢職工信息\n");printf("\n");system("cls");search();break;
case 4:printf(" 刪除職工信息\n");printf("\n");system("cls");del();break;
case 5:printf(" 修改職工信息\n");printf("\n");system("cls");change();break;
case 6:printf(" 職工信息排序\n");printf("\n");system("cls");order();break;
case 7:printf(" 添加職工信息\n");printf("\n");system("sls");add();break;
case 8:goto loop;/*用goto語(yǔ)句跳至跳至指定的行*/
default :break;
}
}
loop://行標(biāo)
system("cls");
printf("\n\n\n\n\n\n -----
首先,指針默認(rèn)只有一個(gè)地址的長(zhǎng)度的空間,存不了那么多的字符。
其次,傳值和傳地址一塌糊涂,完全就是亂寫么。
scanf的第二個(gè)參數(shù)是地址,如果本身不是指針則需要取址符。
我給你重寫了算了
#includestdio.h
int Retrieve(int array[],int length,int x);/*形參x直接傳值就可以了*/
int main()
{
int *a,x;
int length,i;
scanf("%d",length);
a = (int)malloc(sizeof(int)*length); /*申請(qǐng)一個(gè)內(nèi)存空間用來(lái)存放數(shù)據(jù),或者直接用一個(gè)大數(shù)組也可以*/