⑴ c語言項目背景什麼意思
c語言項目背景意思是項目設想的形成基因。根據查詢相關資料信息,為保證可行性研究的成功,從事項目可行性研究者必須清楚地了解項目背景,必侍羨須對項目所經營的對象詳細地予以敘述衫譽,對項目發起人對項目或談段感興趣的理由加以審定。
⑵ 什麼是軟體的開發背景
一、背景:是開發現狀,要開發的東西如今的狀況發展歷史。
1、 項目的提出原因
2、項目環境背景
3、 項目優勢分析(資源、技術、人才、管理等方面)
4、 項目運作的可行性
5、 項目的獨特與創新分析
二、目的:是開發後有什麼作用,准備實現什麼功能,為了滿足什麼需求和願望,給人們帶來哪些好處。
三、意義:從重要性和必要性兩方面寫,項目開發帶來的好處,和未來發展前景如何。
(2)c語言項目背景怎麼寫擴展閱讀:
1、項目啟動階段
需要做好前期的需求分析工作,系統架構師作為客戶與項目團隊兆清旦之間的橋梁,應該和客戶進行很好的溝通,了解業務,為接下來的系統設計做好業務基礎。一般採取的方法是到客戶那裡進行實地問族擾卷,考察交流。
當系統架構師向客戶描繪系統應該實現的功能與客戶達成共識後,才進入系統的設計。進入設計階段,架構師不能夠只為了實現業務而隨意的設置系統構件,這個時候不但要考慮系統的功能,還要考慮系統的性能和系統的擴展性。
當所有的構件已經設計完成後,可以宣布系統的基礎模型已經構建成功,這個時候應該用實例去測試這個模型。當系統的業務要求和性能要求滿足客戶的需求後,進入下一個階段,如果不符合,則繼續進行這一個階段。
在這個階段可以預見將來在系統的實現過程中會遇到一些技術難點,這個時候應該把技術難點摘錄出來,並且對其標明優先順序別,讓程序員去調查這些技術難點,並提供相應的解決方案。
在這個階段花大力氣是值得的,因為現在花掉一兩天的成本,可以避免在後期多花費十天或者是更多的成本。項目的啟動階段以系統藍圖,系統設計圖紙的完成來宣布該階段的結束。
2、項目計劃階段
在這個階段,應該做的是完成項目進度表,人員的組建,系統的環境的設置,還有的是項目的風險分析,開發採用的語言,代碼的編碼規約。這些基本上可以通過系統設計圖紙所描述的系統架構來設置。
3、項目實施階段
在這個階段,編碼與測試是主要的任務。程序員編寫系統設計圖紙中的構件的具體實現。編寫出來的代碼應符合編碼規約中的要求。為了防止錯誤,程序員之間可以互相檢查編寫出來的代碼。好的編碼方式是採用測試驅動開發的方法。
編寫完代碼後,程序員還應該自己進行測試,測試通過後才能夠提交。為了跟蹤項目的進度情況,應該在每天結束工作以前開會,在會議上登記當日工作的完成進度,登記遇到的問題,並且在會議上進行解決。正大
4、項目交付階段
大的項目交付一般採用的是分期交付。當完成某一個模
⑶ c語言怎樣實現運行屏幕的白底黑字
windows下面最簡單的辦法就是調用:\x0d\x0asystem("color F0");\x0d\x0a這樣就黑底白字了!!!\x0d\x0a以下是color命令的幫助:\x0d\x0a設置默認的控制台前景和背景顏色。\x0d\x0a\x0d\x0aCOLOR [attr]\x0d\x0a\x0d\x0a attr 指定控制台輸出的顏色屬性\x0d\x0a\x0d\x0a顏色屬性由兩個十六進制數字指定 -- 第一個為背景,第二個則為\x0d\x0a前景。每個數字可以為以下任何值之一:\x0d\x0a\x0d\x0a 0 = 黑色 8 = 灰色\x0d\x0a 1 = 藍色 9 = 淡藍色\x0d\x0a 2 = 綠色 A = 淡綠色\x0d\x0a 3 = 淺綠色 B = 淡淺綠色\x0d\x0a 4 = 紅色 C = 淡紅色\x0d\x0a 5 = 紫色 D = 淡紫色\x0d\x0a 6 = 黃色 E = 淡黃色\x0d\x0a 7 = 白色 F = 亮白色\x0d\x0a\x0d\x0a如果沒有給定任何參數,該命令會將顏色還原到 CMD.EXE 啟動時\x0d\x0a的顏色。這個值來自當前控制台窗口、/T 命令行開關或\x0d\x0aDefaultColor 注冊表值。\x0d\x0a\x0d\x0a如果用相同的前景和背景顏色來執行 COLOR 命令,COLOR 命令\x0d\x0a會將 ERRORLEVEL 設置為 1。\x0d\x0a\x0d\x0a例如: "COLOR fc" 在亮白色上產生亮紅色\x0d\x0a\x0d\x0a如果你不想用color來做那麼\x0d\x0a\x0d\x0aTC 下可以這么做:\x0d\x0a在開始的時候要調用graphics.h這個頭文件\x0d\x0a\x0d\x0a setbackcolor() 設置背景顏色函數\x0d\x0a\x0d\x0a功能: 函數setbackcolor()把當前調色板顏色的第一個值改成指定的顏色值,以設置背景顏色。\x0d\x0a用法: 此函數調用方式為void setbackcolor(int color);\x0d\x0a說明: 參數color為指定的背景色,其有效值可以是顏色符號名,也可以是色彩值。表1-8列出了背景顏色供選取。\x0d\x0a\x0d\x0a表1-8 背景顏色值\x0d\x0a-----------------------------------------------------------------\x0d\x0a 顏色符號名 色彩值 顏色符號名 色彩值\x0d\x0a-----------------------------------------------------------------\x0d\x0a BLACK(黑色) 0 DARKGRAY(深灰) 8\x0d\x0a BLUE(藍色) 1 LIGHTBLUE(淡藍) 9\x0d\x0a GREEN(綠色) 2 LIGHTGREEN(淡綠) 10\x0d\x0a CYAN(青色) 3 LIGHTCYAN(淡青) 11\x0d\x0a RED(紅色) 4 LIGHTRED(淡紅) 12\x0d\x0a MAGENTA(品紅) 5 LIGHTMAGENTA(粉紅) 13\x0d\x0a BROWN(棕色) 6 YELLOW(黃色) 14\x0d\x0a LIGHTGRAY(淡灰) 7 WHITE(白色) 15\x0d\x0a-----------------------------------------------------------------\x0d\x0a 調用該函數,將改變整個屏幕的顏色,如果新的背景色與原來屏幕的圖形顏色相同,盡管圖形信息不會丟失,但是看不見圖形了。如果所選背景色為對比鮮明的顏色,看不見的圖形就會重新清晰地顯現出來。\x0d\x0a\x0d\x0a 這個函數的頭文件為graphics.h\x0d\x0a\x0d\x0a返回值: 無\x0d\x0a\x0d\x0a例: 把背景色置為淡藍色\x0d\x0a\x0d\x0a setbackcolor(LIGHTBLUE);\x0d\x0a\x0d\x0a設置前景色(文字顏色)\x0d\x0a setcolor() 設置顏色函數\x0d\x0a\x0d\x0a功能: 函數setcolor()設置當前繪圖顏色(或稱做前景色)。\x0d\x0a用法: 該函數調用方式為voids setcolor(int color);\x0d\x0a說明: 參數color為選擇的當前繪圖顏色。在高解析度顯示模式下,選取的color是實際色彩值,也可以用顏色符號名表示。如果已經搖籃函數setpalette()改變了調色板色彩值,那麼符號名就不可能產生預期作用了。\x0d\x0a 在低解析度顯示模式(320X200)下,選取的color是調色板顏色號,不是實際色彩值。\x0d\x0a 此函數相應的頭文件為graphics.h\x0d\x0a返回值: 無\x0d\x0a\x0d\x0a例: 設置16種不同的顏色,顯示16段直線:\x0d\x0a\x0d\x0a#include\x0d\x0avoid main()\x0d\x0a{\x0d\x0a int driver,mode;\x0d\x0a int i;\x0d\x0a driver=DETECT;\x0d\x0a mode=0;\x0d\x0a initgraph(&driver,&mode,"");\x0d\x0a moveto(0,200);\x0d\x0a for(i=0;i<16;i++)\x0d\x0a {\x0d\x0a setcolor(i);\x0d\x0a linerel(20,0);\x0d\x0a }\x0d\x0a getch();\x0d\x0a restorecrtmode();\x0d\x0a}\x0d\x0a\x0d\x0aVC 下面可以用\x0d\x0aSetConsoleTextAttribute這個Window SDK API
⑷ 圖書管理系統C語言設計(c#免入)
#include <dos.h>
#include <bios.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#define LEFT 0x4b00 /*左*/
#define RIGHT 0x4d00 /*右*/
#define DOWN 0x5000 /*下*/
#define UP 0x4800 /*上*/
#define SPACE 0x3920 /*空格*/
#define ESC 0x011b /* ESC鍵*/
#define ENTER 0x1c0d /*回車鍵*/
#define Backspace 0xe08 /*擦除鍵*/
#define ALT_B 12288 /*組合鍵ALT_B */
#define ALT_M 12800/*組合鍵ALT_M */
#define ALT_H 8960/*組合鍵ALT_H */
int key;/*按鍵變數*/
int textx,texty;/*游標坐標,x行,y列*/
struct menustruct/*菜單用的結構體*/
{
char name[10];/*主菜單名*/
char str[10][20];/*選項*/
int n;/*選項數*/
}ml[3];/亮粗*使用了3個,可根據需要增刪*/
typedef struct BookList/*書的結構體*/
{
char num[20];/*圖書編號*/
char name[20];/*書名*/
int price;/*書的價格*/
char person[20];/*借閱人*/
int yes;/*判斷書是否存在或者已經借出,1存在,0借出*/
struct BookList *next;
}Book;
typedef struct MemberList/*會員的結構體*/
{
char name[20];/*會員的姓名*/
char sex[2];/*會員的性別*/
int age;/*會員的年齡*/
struct MemberList *next;
}Member;
char save[4096];/*保存文本區域空間*/
/*char sav1[4096];*/豎吵
char c[4096];/*清屏專用空間*/
int i,j;/*常用變數*/敬纖鎮
void Menu();/*初始化界面*/
void Selectitem();/*定義菜單*/
void DrawSelectitem();/*顯示主菜單*/
void BlackText(int x,int y,char *z);/*選中菜單*/
void RedText(int x,int y,char *z);/*正常菜單*/
void Run();/*具體操作過程*/
void DrawMl(int n);/*顯示下拉菜單*/
void MoveMl(int n,int x);/*菜單選項的控制*/
void Enter(int m,int n);/*菜單選項的具體功能*/
void BookAdd();/*添加圖書*/
void BookConsult();/*圖書查詢*/
void BookDel();/*刪除圖書資料*/
void BookBorrow();/*借書*/
void BookReturn(); /*還書*/
void MemberAdd(); /*增加會員*/
void MemberConsult();/*查詢會員*/
void MemberDel(); /*刪除會員*/
void MemberBook(); /*查詢會員借書信息*/
void Help(); /*幫助*/
void Ver(); /*版本信息*/
void ClrScr();/*自定義清屏函數*/
void DrawFrame(int left,int up,int right,int down,int textcolor,int backgroundcolor);/*畫邊框*/
/***主函數****/
void main(void)
{
Menu();/*初始化界面*/
Run();
/*具體操作過程*/
}
/*初始化界面*/
void Menu()
{
system("cls"); /*調用系統的清屏命令*/
textbackground(BLUE);/*將背景設置為藍色*/
window(1,1,25,80);
clrscr();
textx=3;/*游標初始化位置*/
texty=2;
gotoxy(1,2);
printf("%c",218);/*畫左上角*/
for(i=0;i<78;i++)
printf("%c",196); /*畫水平直線*/
printf("%c",191);/*畫右上角*/
for(i=3;i<=23;i++)
{
gotoxy(1,i);
printf("%c",179); /*畫垂直線*/
gotoxy(80,i);
printf("%c",179);
}
printf("%c",192); /*畫左下角*/
for(i=0;i<78;i++)
printf("%c",196);
printf("%c",217); /*畫右下角*/
gotoxy(1,1);
textcolor(7); /*設置灰色*/
for(i=0;i<80;i++)
cprintf("%c",219);/*用符號實現畫主菜單的灰色背景區*/
Selectitem(); /*調用選項函數*/
DrawSelectitem(); /*畫選項*/
gettext(2,3,78,23,c); /*保存當前文本區域*/
}
/*定義菜單*/
void Selectitem()
{
strcpy(ml[0].name,"Book");/*下面的具體選項補空格是為了各菜單黑色背景相同*/
strcpy(ml[0].str[0],"Add ");/*添加圖書*/
strcpy(ml[0].str[1],"Find ");/*查詢圖書*/
strcpy(ml[0].str[2],"Delete ");/*刪除圖書資料*/
strcpy(ml[0].str[3],"Borrow ");/*借書*/
strcpy(ml[0].str[4],"Return ");/*還書*/
strcpy(ml[0].str[5],"Exit ");/*退出系統*/
ml[0].n=6; /*保存菜單的項數*/
strcpy(ml[1].name,"Member");
strcpy(ml[1].str[0],"Register ");/*添加新會員*/
strcpy(ml[1].str[1],"Find ");/*查詢會員資料*/
strcpy(ml[1].str[2],"Delete ");/*刪除會員資料*/
strcpy(ml[1].str[3],"Member&book ");
ml[1].n=4;
strcpy(ml[2].name,"Help");/*系統幫助*/
strcpy(ml[2].str[0],"This System ");
strcpy(ml[2].str[1],"Ver ");
ml[2].n=2;
}
/*顯示主單名*/
void DrawSelectitem()
{
for(i=0;i<3;i++)
RedText(i,1,ml[i].name); /*顯示主菜單名,且首字母為紅色*/
}
/*正常顯示菜單*/
void RedText(int x,int y,char *z)
{
textbackground(7); /*設置背景顏色為淺灰色*/
gotoxy(3+x*20,y);
for(j=0;z[j];j++)
{
if(j==0)
textcolor(RED);/*第一個字母顯示紅色*/
else
textcolor(BLACK); /*設置黑色*/
cprintf("%c",z[j]); /*輸出菜單名*/
}
}
/*顯示選中菜單*/
void BlackText(int x,int y,char *z)
{
textbackground(0); /*設置背景顏色為黑色*/
textcolor(15); /*設置文本顏色為白色*/
gotoxy(3+20*x,y);/*定位坐標*/
cputs(z); /*輸出菜單名字元串*/
}
/*按鍵操作過程*/
void Run()
{
while(1)
{
gotoxy(texty,textx);
key=bioskey(0);/*接收按鍵*/
switch(key)
{
case ALT_B:
case ESC: DrawMl(0);break; /*顯示下拉菜單1*/
case ALT_M: DrawMl(1);break;/*顯示下拉菜單2*/
case ALT_H: DrawMl(2);/*顯示下拉菜單3*/
case UP: /*上游標鍵的操作控制*/
{
if(textx==3)
textx=23;
textx--;
gotoxy(texty,textx);
}break;
case DOWN: /*下游標鍵的操作控制*/
{
if(textx==23)
textx=3;
textx++;
gotoxy(texty,textx);
}break;
case LEFT: /*左游標鍵的操作控制*/
{
if(texty==2)
texty=79;
texty--;
gotoxy(texty,textx);
}break;
case Backspace: /*擦除鍵的設置*/
{
if(texty==2&&textx==3)
continue;
else
{
if(texty!=2)
texty--; /*擦除鍵的細節問題,先擦去東西,然後游標還要往後退一格*/
else
if(texty==2)
{
texty=78;
textx--;
}
gotoxy(texty,textx);
printf(" ");
gotoxy(texty,textx);
}
}break;/*end case 0xe08*/
case RIGHT: /*右游標鍵的操作控制*/
{
if(texty==79)
texty=2;
texty++;
gotoxy(texty,textx);
}break;
case SPACE: /*空格鍵的操作*/
{
if(texty==79)
continue;
else
{
gotoxy(texty,textx); /*空格的細節操作*/
printf(" ");
texty++;
gotoxy(texty,textx);
}
}break;
case ENTER: /*回車的控制操作*/
{
if(textx==23)
continue;
textx++;
texty=2;
gotoxy(texty,textx);
}break;
default : /*非控制鍵的結果*/
{
if(texty==79&&textx==23)/*到達最後就不再輸出*/
continue;
else
if(texty==79&&textx!=23) /*到行的最後*/
{
textx++;
texty=2;
}
gotoxy(texty,textx);/*輸出結果*/
printf("%c",key);
if(texty==79) /*如果texty==79就不執行*/
continue;
else /*如果沒到行尾就繼續執行,使游標向前移動一位*/
texty++;
}
}
}/*大循環的大括弧*/
}
/*畫邊框函數*/
void DrawFrame(int l,int u,int r,int d,int tcolor,int bcolor)
{
textbackground(bcolor); /*背景顏色*/
textcolor(bcolor); /*文本顏色*/
for(i=l;i<=r;i++) /*輸出背景區域*/
{
for(j=u;j<=d;j++)
{
gotoxy(i,j);
printf("%c",219); /*輸出背景字元*/
}
}
textcolor(tcolor);/*邊框顏色*/
for(i=u+1;i<d;i++) /*在背景區域內輸出邊框線*/
{
gotoxy(l,i);
cprintf("%c",179); /*垂直線*/
gotoxy(r,i);
cprintf("%c",179);
}
for(i=l+1;i<r;i++)
{
gotoxy(i,u);
cprintf("%c",196); /*水平線*/
gotoxy(i,d);
cprintf("%c",196);
}
gotoxy(l,u);
cprintf("%c",218);/*左上角*/
gotoxy(r,u);
cprintf("%c",191);/*右上角*/
gotoxy(l,d);
cprintf("%c",192);/*左下角*/
gotoxy(r,d);
cprintf("%c",217); /*右下角*/
/* gettext(l+1,u+1,r-1,d-1,save1);*//*保存邊框內區域*/
}
/*顯示具體下拉選擇項目*/
void DrawMl(int n)
{
gettext(1,1,80,25,save);/*保存被掩蓋的地方*/
BlackText(n,1,ml[n].name);/*反選顯示主菜單*/
DrawFrame(3+20*n-1,2,3+20*n+19,3+ml[n].n,0,7);/*下拉菜單的邊框*/
for(i=3;i<3+ml[n].n;i++)/*輸出所選菜單各選項*/
{
if(i==3)
BlackText(n,i,ml[n].str[i-3]);/*默認選中第一項*/
else
RedText(n,i,ml[n].str[i-3]);/*其餘各項首字元紅色顯示*/
}
gotoxy(79,1);
MoveMl(n,3);/*菜單選項的控制*/
}
/*菜單選項的控制,n決定水平項,x決定下拉的選項*/
void MoveMl(int n,int x)
{
int flag=1;
while(flag)
{
gotoxy(79,1);
key=bioskey(0);/*接收按鍵*/
gotoxy(79,1);
switch(key)
{
case ESC:/*退出循環*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
flag=0;
break;
case LEFT:/*移到左邊的選項*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
if(n==0)/*往左移動越界的話移到最後一個選項*/
DrawMl(2);
else
DrawMl(n-1);
flag=0;
break;
case RIGHT:/*移動右邊的選項*/
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
if(n==2)/*往右移動越界的話移到第一個選項*/
DrawMl(0);
else
DrawMl(n+1);
flag=0;
break;
case UP:/*具體選項往上移動*/
RedText(n,x,ml[n].str[x-3]);/*輸出紅色字體*/
if(x==3)/*移到最上面再按上鍵,就移到最下面*/
x=3+ml[n].n-1;
else
x--;/*移動到新的要顯示的內容*/
BlackText(n,x,ml[n].str[x-3]);/*輸出黑色字體*/
flag=1;
break;
case DOWN:/*具體選項往下移動*/
RedText(n,x,ml[n].str[x-3]);
if(x==(3+ml[n].n-1))/*移動到最底下再按下鍵就移到最上面*/
x=3;
else
x++;/*移動到新的要顯示的內容*/
BlackText(n,x,ml[n].str[x-3]);
flag=1;
break;
case ENTER:
puttext(1,1,80,25,save);/*恢復打開菜單前的樣子*/
Enter(n,x-3);/*菜單選項的具體功能*/
flag=0;
break;
}
gotoxy(79,1);
}
}
/*菜單選項的具體功能*/
void Enter(int m,int n)
{
switch(m)
{
case 0:switch(n) /*選擇了圖書菜單選項*/
{
case 0:BookAdd();break;/*添加圖書*/
case 1:BookConsult();break;/*圖書查詢*/
case 2:BookDel();break;/*刪除一本圖書資料*/
case 3:BookBorrow();break;/*借書*/
case 4:BookReturn();break;/*還書*/
case 5:exit(0);break;
} break;/*退出系統*/
case 1: switch(n) /*選擇了會員菜單選項*/
{
case 0: MemberAdd();break;/*添加會員*/
case 1: MemberConsult();break;/*會員查詢*/
case 2:MemberDel();break;/*刪除一個會員資料*/
case 3:MemberBook();/*查詢某個會員所借圖書情況*/
}break;
case 2:switch(n) /*選擇了幫助菜單選項*/
{
case 0:Help();break;
case 1:Ver();
}
}/*結束外switch*/
}void BookAdd()
{
FILE *fp;
Book consultbook;
fp=fopen("book.txt","rb");/*讀方式打開文件*/
if(fp==NULL)
fp=fopen("book.txt","wb"); /*寫方式打開文件*/
else/*如果有書就添加*/
{
fclose(fp);
fp=fopen("book.txt","ab");/*追加方式打開文件*/
}
ClrScr();/*清屏*/
printf("Please intput a new book num: ");/*逐個輸入新圖書的資料*/
gets(consultbook.num);
gotoxy(2,4);
printf("Please input the new book name: ");
gets(consultbook.name);
gotoxy(2,5);
printf("Please input the new book's price: ");
scanf("%d%*c",&consultbook.price);
strcpy(consultbook.person,"");
consultbook.yes=1;/*表示書存在未借出*/
consultbook.next=NULL;
fwrite(&consultbook,sizeof(Book),1,fp);/*塊寫*/
fclose(fp); /*關閉文件*/
ClrScr();
}
/*圖書查詢*/
void BookConsult()
{
FILE *fp;
Book consultbook;
char bookname[20]; /*書名*/
int flag=0,i=0;
ClrScr();
gotoxy(2,3);
printf("Please input the book name: ");
gets(bookname); /*輸入要查詢的圖書名*/
fp=fopen("book.txt","rb");
if(fp==NULL)/*沒找到文件*/
{
ClrScr();
gotoxy(2,3);
printf("Error!");
fclose(fp);
return;
}
else
while(!feof(fp))/*查詢圖書資料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)/*如果查找到*/
{
ClrScr();
gotoxy(2,3+i*5);
printf("This book %s information as follow:",consultbook.name);
gotoxy(2,4+i*5);
printf("This book num is %s.",consultbook.num);
gotoxy(2,5+i*5);
printf("This book's price is %d.",consultbook.price);
gotoxy(2,6+i*5);
printf("This book is browwed by %s.",consultbook.person);
gotoxy(2,7+i*5);
printf("This book's state is %d.",consultbook.yes);
i++;
flag=1; /*查找數據標志*/
}
}
if(flag==0)
{
ClrScr();
gotoxy(2,3);
printf("Sorry, %s doesn't exist in the library!",bookname);
}
fclose(fp);
}
/*刪除圖書資料*/
void BookDel()
{
FILE *fp;
Book *head,*p,*q;
char bookname[20];
fp=fopen("book.txt","rb");/*讀方式打開文件*/
if(fp==NULL)/*沒找到文件*/
{
gotoxy(2,3);
printf("Error!");
fclose(fp);
return;
}
head=p=q=(Book*)malloc(sizeof(Book));/*將文件內容放入鏈表*/
fread(p,sizeof(Book),1,fp); /*讀第一條記錄*/
while(!feof(fp))
{
q=p;
p=(Book*)malloc(sizeof(Book));
fread(p,sizeof(Book),1,fp); /*讀記錄*/
q->next=p;/*新記錄插入到鏈表的尾*/
}
p->next=NULL;/*最後一個結點的後繼為空*/
fclose(fp);
ClrScr();
printf("Input the book name: ");
gets(bookname); /*輸入圖書名*/
p=head;
while(p!=NULL)/*按名字查找要刪除的圖書*/
{
if(strcmp(p->name,bookname)==0)/*找到要刪除的圖書*/
{
if(p==head) /*如果是第一個結點*/
head=head->next;
else
q->next=p->next;/*不是第一個結點*/
break;
}
q=p; /*指針後移*/
p=p->next;
}
fp=fopen("book.txt","wb");/*刪除後從鏈表的頭開始重新保存*/
while(head!=NULL)
{
fwrite(head,sizeof(Book),1,fp);/*塊寫*/
head=head->next;
}
fclose(fp);
ClrScr();
}
/*借書*/
void BookBorrow()
{
FILE *fp;
Book consultbook;
Member consultmember;
char bookname[20],membername[20];
int flag=0,mflag=0;
ClrScr();
gotoxy(2,3);
printf("Please input the mermber name: ");
gets(membername); /*輸入會員名*/
if((fp=fopen("member.txt","rb"))==NULL)/*沒找到文件*/
{
gotoxy(2,3);
printf("Cannot open file!\n");
return;
}
else
while(!feof(fp))/*查詢會員資料*/
{
fread(&consultmember,sizeof(Member),1,fp);
if(strcmp(consultmember.name,membername)==0)
{
mflag=1; /*是會員標志*/
break;
}
}
fclose(fp);
if(mflag==0)
{
gotoxy(2,4);
printf("You are not a member now,pleas register first!");/*不是會員不能借書*/
return;
}
gotoxy(3,5);
printf("Please input the book name: ");
gets(bookname); /*輸入圖書名*/
ClrScr();
if((fp=fopen("book.txt","rb+"))==NULL)/*沒找到文件*/
{
gotoxy(2,3);
printf("Cannot open file!\n");
return;
}
while(!feof(fp))/*查詢圖書資料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)
{
if(consultbook.yes==0)/*圖書已經借出的判斷*/
{
gotoxy(2,3);
printf("This book has borrowed!\n");
break;
}
else
{
consultbook.yes=0; /*作借出標志*/
strcpy(consultbook.person,membername);/*登記借書會員*/
fseek(fp,-1L*sizeof(Book),1);/*從當前位置前移一條記錄指針*/
fwrite(&consultbook,sizeof(Book),1,fp);/*寫記錄*/
gotoxy(2,3);
printf("Borrowed success!\n");
flag=1;/*借出書標志*/
break;
}
}
}
if(flag!=1)
{
ClrScr();
gotoxy(2,3);
printf("Borrowed fail!\n");/*借書失敗*/
}
fclose(fp);
}
/*還書*/
void BookReturn()
{
FILE *fp;
Book consultbook;
char bookname[20];
int flag=0;
ClrScr();
if((fp=fopen("book.txt","rb+"))==NULL)/*沒找到文件*/
{
gotoxy(2,3);
printf("Can't open file!\n");
return;
}
printf("Please input the book name: ");
gets(bookname); /*輸入圖書名*/
ClrScr();
while(!feof(fp))/*查詢圖書資料*/
{
fread(&consultbook,sizeof(Book),1,fp);
if(strcmp(consultbook.name,bookname)==0)
{
if(consultbook.yes==0)/*圖書已經借出的判斷*/
{
consultbook.yes=1;/*作圖書未借書標志,表示已還書*/
strcpy(consultbook.person,"");
fseek(fp,-1L*sizeof(Book),1);
fwrite(&consultbook,sizeof(Book),1,fp);
gotoxy(2,3);
printf("Return book success!\n");
flag=1;
break;
}
}
}
if(flag!=1)
printf("Return fail!\n");
fclose(fp);
}
/*清除屏幕*/
void ClrScr()
{
int i,j;
puttext(2,3,78,23,c);/*剛開始已經用gettext把藍色的一塊地方保存下來,現在再還原*/
gotoxy(2,3);
}
/*會員注冊*/
void MemberAdd()
{
FILE *fp;
Member consultmember;
fp=fopen("member.txt","rb");
if(fp==NULL)/*如果沒會員就新建*/
fp=fopen("member.txt","wb");
else/*如果有會員就添加*/
{
fclose(fp);
fp=fopen("member.txt","ab");/*追加方式打開*/
}
ClrScr();
gotoxy(2,3);
printf("Please intput new member's name: ");/*逐個輸入會員的資料*/
gets(consultmember.name);
gotoxy(2,4);
printf("Please input new member's sex: ");
gets(consultmember.sex);
gotoxy(2,5);
printf("Please input new member's age: ");
scanf("%d%*c",&consultmember.age);
fwrite(&consultmember,sizeof(Member),1,fp);/*寫入記錄*/
fclose(fp);
ClrScr();
}
/*查詢會員*/
void MemberConsult()
{
FILE *fp;
Member consultmember;
char membername[20];
int flag=0;
ClrScr();
gotoxy(2,3);
printf("Please input the member's name: ");/*輸入要查詢的會員名*/
gets(membername);
fp=fopen("member.txt","rb");
if(fp==NULL)/*沒找到文件*/
{
ClrScr();
gotoxy(2,3);
printf("Error!\n");
fclose(fp);
return;
}
while(!feof(fp))/*查詢會員資料*/
{
fread(&consultmember,sizeof(Member),1,fp);
if(strcmp(consultmember.name,membername)==0)/*比較*/
{
ClrScr();
gotoxy(2,3);
printf("The member %s 's information as follow:",consultmember.name);
gotoxy(2,4);
printf("This member'sex is %s.",consultmember.sex);
gotoxy(2,5);
printf("This member 's age is %d.",consultmember.age);
flag=1;
break;
}
}
if(flag==0)
{
ClrScr();
gotoxy(2,3);
printf("The member %s doesn't exist in the library!",membername);
}
fclose(fp);
}
/*刪除會員資料*/
void MemberDel()
{
FILE *fp;
Member *head,*p,*q;
char membername[20];
fp=fopen("member.txt","rb");
if(fp==NULL)/*沒找到文件*/
{
gotoxy(2,3);
printf("Error!");
fclose(fp);
return;
}
head=p=q=(Member*)malloc(sizeof(Member));/*將文件內容放入鏈表*/
fread(p,sizeof(Member),1,fp);
while(!feof(fp))
{
q=p;
p=(Member*)malloc(sizeof(Member));
fread(p,sizeof(Member),1,fp);/*讀記錄*/
q->next=p;/*鏈入到鏈表的尾部*/
}
p->next=NULL;
fclose(fp);
ClrScr();
printf("Please input the member's name: ");/*輸入會員名*/
gets(membername);
p=head;
while(p!=NULL)/*按名字查找要刪除的書*/
{
if(strcmp(p->name,membername)==0)/*查找會員*/
{
if(p==head)
head=head->next;/*如果是第一條記錄*/
else
q->next=p->next;/*不是第一條記錄*/
break;
}
q=p; /*沒找到,則指針後移繼續找*/
p=p->next;
}
fp=fopen("member.txt","wb");/*刪除後重新保存*/
while(head!=NULL)
{
fwrite(head,sizeof(Member),1,fp);/*塊寫*/
head=head->next;
}
fclose(fp);
ClrScr();
}
字數超了。。。。留個郵箱吧
⑸ 軟體測試簡歷包裝項目名字怎麼寫
一、簡歷重要性以及編寫原則
能力,經驗,技能和工作態度的提現。 對自身的說明書。 主要是提現你的價值。 包裝簡歷的原則:(不失真的包裝)
1.合適原則:需要的是合適,能夠為企業帶來價值的人。
2.營銷原則:不是說需要陳述一個真實而全面的你,而是一個簡短的營銷稿,需要揚長避 短,突出重點和優勢。
二、簡歷模板
簡單大氣,清晰整潔。最好上下結構。不要花里胡哨。
三、簡歷包裝
1.個人信息
七要素必備:姓名,性別,年齡(男生接近32,女生接近30,可以考慮稍微包裝一下), 電話,郵箱,住址(精確到市),求職意向。
優勢必填:英語四六級,學歷:211,985本科。
女生:婚姻:已婚已育。
照片:一般不放。 身高,籍貫,工作年限(測試之前有3年,測試4年),政治面貌。么有意義的不要寫
2.教育經歷
2006.9-2009.6 湖南大學 專業/學歷
注意:
1.計算機相關專業可以寫專業,非計算機相關專業只寫學歷,計算機科學與技術,軟體開 發,軟體工程,網路工程。
2.如果既有專科學歷,又有自考本科學歷。 情況一:專科學歷和本科學歷畢業時間很近。只寫本科學歷。 情況二:專科學歷和本科學歷畢業時間很遠。兩者都要寫。 情況三:民教網(寫了可以增加面試機會,但是會有面試通過了,也會被篩的情況)
3.寫一些加分項
證書,核心課程(python,c語言,計算機技術,數據結構),勵志獎學金,活動的組織。
3.專業技能
(簡歷最核心之一:50%-80%)
錯誤示範:(不能看出你的技能深度)
1.熟悉軟體測試流程和理論,熟練掌握測試方法。
2.熟練使用Postman,jmeter等介面測試工具。
3.熟練seleniun+webdriver的自動化測試。
4.熟練requests的介面自動化測試。
一、專業技能 正確示範:
(技能至少8-10條左右,熟練的寫上面,不熟練的寫下面。包括:功能測試, Linux,資料庫,介面測試,自動化測試,性能測試等。其他的特別的技能寫1-2條在最後 面。)
1.熟練測試理論,測試方法,測試流程以及常用的測試文檔的編寫,如:測試計劃,方案, 用例,報告等,能夠根據項目需求提取測試點,設計合理的測試用例,執行用例以及提交測 試報告。保證軟體的質量。
2.熟練Centos操作系統,熟練使用Linux常用命令,如:查看進程,查看埠,查看內存和 進程,動態日誌等。熟練通過xshell遠程連接linux伺服器查看錯誤日誌以及bug定位分析 等。熟練shell編程。熟練搭建測試環境。
3.熟悉http協議,熟悉介面測試流程,介面用例設計,熟練使用Jmeter或Postman執行接 口測試,熟練介面關聯,動態參數,介面加密,介面鑒權以及介面簽名,熟練 Postman+newman+git+jenkins或Jmeter+Ant+git+jenkins實現持續集成。
到這里薪資封頂在14K。不考慮管理能力!
4.熟練Git,Svn,Github,Gitlib,Gitee等版本控制工具,能夠熟練的處理文件以及代碼 的版本控制以及各分支和主幹的文件沖突。
5.熟練基於Python+requests+pytest+allure+logging+jenkins的介面自動化測試,能夠 獨立搭建介面自動化測試框架並在實際的項目中開展實施。95%覆蓋率。
6.熟練HTML和JS語言,熟練基於 Pytrhon+Selenium+unittest/pytest+htmltestrunner+logging+jenkins的web自動化 測試,熟練POM和關鍵字驅動設計模式,熟練基於ddt結合exctl的數據驅動並有實際項目 經驗。30%覆蓋率。 三年的產品:分五期來做,36個月/5=6個多月。web自動化比較合理的介入時間。在第一 期6個月之後才開始寫腳本。 一年以內的項目:大部分不考慮web自動化,除非覆蓋率很低,低到只做冒煙用例。
7.app自動化一般不寫。
8.不會的寫自學。
二、管理技能
組織溝通能力,團隊建設能力,工作壓力,工作業績。帶了多少人的測試團隊。
要麼根據你的技能來問,要麼問的是公司需要的技能。
4.工作經驗
2019.9-至今 碼尚教育 金牌講師 2018.9-2019.9 華辰教育 金牌講師
注意:
1.工作經歷必須是從大學到今天所有的經歷,不能少、
2.如果是中途通過培訓進入的測試行業,那麼以前的經歷要寫和計算機相關的崗位,比如: 網路工程師,運維工程師,系統管理員,技術支持,實施。財務系統管理員。
3.盡量不要超過三家公司,不要出現頻繁跳槽,最好是2-3年一家公司。最近的一家的公司 可以寫真實的,其他的按前面的寫。
4.工作經驗裡面不要和項目經驗混到一起寫。看不清楚。
5.項目經歷
(4-5個項目) 10年,只寫最近的四個項目。後面的項目和時間都不寫。
項目一:順豐CMS全球供應鏈一站式服務平台
項目時間:XXX
項目描述:XXX
項目職責:XXX
注意:
項目名稍微包裝得高大上一點,看起來像一個真實的項目。 項目時間:需要連貫的,可以重疊。時間一般為4-8個月,
項目描述:需要5行,包括項目背景,行業,用戶規模,主要業務,主要模塊等,
特別是一 定要注意項目的價值。CRM系統,理財項目P2P,區塊鏈技術。
項目職責:(需要8行,提現你在項目中的重要性,技能一定要融入職責)
6.自我評價
不要太泛。 寫個人突出的業績,工作態度,學習能力等。
結尾:附贈高階軟體測試模板一份:具體編寫如下
點擊下方藍色字體領取或者添加V:mashang-zz(備註:999)
全套【軟體測試/自動化測試】海量資料免費領取(簡歷模板,測試用例,文檔)
高級軟體測試工程師簡歷模板
基本信息:
姓 名:文同學 性 別:男
民 族:漢 出生年月:1991.09
聯系電話:168888888 學 歷:本科
郵 箱:[email protected] 現居地址:廣東省深圳市寶安區西鄉街道
教育背景:
2012.09-2016.6 畢業院校:湖北工業大學商貿學院 學歷:本科
在學校裡面參加過很多社團協會,並且協助組織了足球賽,夏令營,秋遊等一系列活動。
組織同學一起去敬老院看望老人,獻血等公益活動。
2013年獲得優秀大學生稱號
工作經歷:
2015.9-2018.7 深圳市凱路網路技術有限公司 軟體測試工程師
專業技能:
精通測試理論,方法以及常用的文檔編寫,如:測試計劃,測試用例,測試報告等;
精通應用黑盒測試的方法;如邊界值、等價類、場景法、因果圖判定法、錯誤推斷法等進行用例測試;
項目經驗:
一.項目名稱:信通借貸平台 2017年6月——2018年7月
項目簡介:信通借貸平台,是信通借貸平台與網路借貸相結合的互聯網金融服務平台,為有資金需求和理財需求的個人搭建了一個公平、透明、穩定、高效的平台,是目前正在興起的基於互聯網應用的一個相對較新的金融理財模式。該項目屬於B/S架構。主要分前端和後台,前端主要模塊有,首頁,我要投資,我要貸款,新手指引,積分商城,我的帳戶等模塊;後台主要包括的模塊有,系統首頁,貸款管理,理財管理,會員管理,資金管理,待辦事務,統計模塊,部門管理,積分商城,前端設置,系統設置等模塊。為管理貸款客戶信息提供了很大的便利。
項目職責:
1、了解客戶金融項目的需求、項目的流程 、參加項目的評審、需求分析。
2、根據需求規格說明書和設計文檔和項目的流程編寫測試用例。
3、參與用例的評審,仔細審查項目的用例報告,根據領導的要求完善測試用例。
4、用例評審通過後嚴格執行測試用例,用禪道缺陷工具提交bug,跟蹤缺陷。
5、對開發修復完成後在進行回歸測試直到回歸關閉。
6、利用jmeter測試web端的介面,並導出介面測試報告,對照介面文檔。
7、對主要的業務功能模塊編寫自動化測試腳本,執行自動化測試。
8、編寫測試報告。
二.項目名稱:易安支付 2016年10月——2017年6月
項目概述:易安支付項目是一個運營支付和互聯網交易的業務平台系統,支持各類線上線下支付應用。致力於個人、企業打造一個「安全、高效、便捷、省錢、賺錢」的電商平台。在易安支付平台上不僅可以進行水電煤的繳費、三網手機話費充值、還信用卡、購火車票電影票等、交交通罰款,而且可以在上面購買各種各樣商品,還能夠在平台上理財、購買各類保險。該系統主要的功能模塊有登錄注冊、首頁、理財、支付、借貸、保險、購物、實名認證、充值、提現、發現等。我主要負責的功能模塊是登錄注冊、理財、購物、支付、借貸等。
責任描述:
1、熟讀需求文檔和設計說明書,參與項目的需求分析,做需求評審,找有異議的地方以及潛在需求,確定需求。
2、根據需求分析,寫出測試點和測試用例,並參與評審,修改完善測試用例。
3、對開發提供的可測試版本進行冒煙測試,驗證基本功能正常使用。
4、執行測試用例,發現缺陷並通過禪道提交bug,進行缺陷跟蹤和做回歸測試。
5、了解性能需求,准備性能軟硬體資源,使用LoadRunner錄制維護腳本,執行性能測試。
6、對測試工作進行總結,編寫測試報告。
7、回顧項目,了解項目當中遇到的問題,並進行會議討論。
個人評價:
工作主動積極,有強烈責任心和嚴謹工作作風,積極思考,良好的協作溝通能力和團隊合作精神
學習能力強,有較強分析、定位和解決問題的能力,具有較強邏輯思維能力和表達能力
能積極完成領導交代的任務,並且很有條理的按計劃完成。
為人活潑開朗,和同事之間容易相處,能很快的和開發人員搞好關系。
有很強的團隊意識,能積極的配合同事完成項目。
資料領取請備註:999
微信名片
點擊閱讀全文
打開CSDN,閱讀體驗更佳
車載系統簡歷.xmind
車載系統簡歷.xmind
軟體測試,怎麼包裝簡歷?
首先明確的包裝簡歷不等於欺騙,只是把你的最好一面展示出來,給別人一個好的映像;(就相當於相親,哈哈) 無論如何包裝簡歷,注意簡歷上的東西一定要會、一定要會、一定要會(面試官一般會針對簡歷上的問題進行提問,萬一不會,多尷尬呢) 包裝簡歷從以下幾點出發: 1)整個排版格式:格式一定要適當、合適;不能太花哨、字體不統一、未對齊;你畢竟是面試軟體測試崗位屬於IT,不能太有創意...
繼續訪問
最新發布 阿里內部整理,2022介面測試最全面試題(附文檔&簡歷模板)
前天和前同事約出來碰了碰,他現在是阿里P7,大大小小面試都百來回了。正好我最近也需要去面一些新人,所以讓他給我整理了這一套介面測試相關的面試題。 大家如果正在面試的話也可以參考一下,技不壓身。
繼續訪問
第1期-軟體測試-簡歷-正確編寫測試簡歷的姿勢
大家好,今天我們這期來講,如何寫一份合格的測試簡歷(上)。 在這期我會說一下,編寫簡歷的原則和技巧:簡歷是面試第一道關卡,因為hr每天會收到很多簡歷,那麼hr就會快速的審閱每份簡歷,只有你的簡歷中亮點, 符合該公司的需求,hr才會給你發送面試邀請。 首先,選擇一個美觀大方的簡歷模板,至少這個模板條例清晰,模塊分明。因為選擇一個美觀大方的簡歷模板,先不說你的簡...
繼續訪問
軟體測試項目經驗簡歷包裝
裡麵包含買菜app、攝像app、裝修網web項目。 --------------------------------------------------------------------------------------------- 項目內容包含:項目名稱、所屬行業、項目描述、責任描述、項目情況介紹(如:項目開發時間、經歷哪些階段、開發模式、實戰練習參考APP等)不提供測試計劃、測試用例、測試報告這些,望知曉! 注意:該測試項目經驗適合剛畢業或剛培訓出來無實際項目經驗的同學,不適合已從事軟體測試工作多年的人員,望知曉!如果你的簡歷長時間投遞還是沒有收到面試邀請,那就是項目表述、包裝、出了問題,不夠直觀,不妨考慮一下我們這里的測試簡歷項目經驗哦
如何自學軟體測試、包裝簡歷實現華麗轉行?
隨著近幾年培訓機構的興起,越來越多的人開始湧入軟體測試行業,其中包括不少看B站視頻/自己買的小額視頻,其實,不管是參加培訓還是自學也好,主要會面臨以下幾個問題:來自培訓前的困惑如下:軟體測...
繼續訪問
軟體測試簡歷的包裝
測試簡歷編寫
繼續訪問
面試軟體測試的時候,應屆生怎麼包裝自己的簡歷?
一、自我介紹 進入面試後的第一個問題一定是先讓你做下自我介紹,就是簡單的介紹一下自己,自我介紹的時長盡量控制在3分鍾左右,自我介紹的時間不要太長,不要超過5分鍾,內容要精煉些,讓面試官對你能有一個直觀、全面的了解,切記避免啰嗦、重復的內容。 自我介紹可以從以下幾個方面進行切入: 小夥伴兒們注意昂,我上面說的這幾個方面是指給你提供一個參考,你可以從這幾方面進行切入,並不是說在你的自我介紹中這些方面都必須包括,或是你有更好的自我介紹你甚至可以拿我列出的這些方面當放屁昂。 這里建議小夥伴們在面試前提前就要
繼續訪問
1000個已成功入職的軟體測試工程師簡歷經驗總結:軟體測試工程師簡歷項目經驗怎麼寫?(含真實簡歷模板)
目錄:導讀 一、前言:淺談面試 二、軟體測試工程師:簡歷模板 三、軟體測試工程師:簡歷包裝 1.基本信息: 2.教育背景: 3.專業技能 4.工作經歷 5.項目經驗 6.自我評價 四、軟體測試工程師:簡歷總結 一、前言:淺談面試 面試是我們進入一個公司的門檻,通過了面試才能進入公司,你的面試結果和你的薪資是息息相關的。那如何才能順利的通過面試,得到公司的認可呢?面試軟體測試要注意哪些問題呢?下面和筆者一起來看看吧。這里分享一下筆者十年測試生涯的面試總結! 軟體測試面試常見問題
繼續訪問
軟體測試面試官讓你介紹項目你怎麼回答?最全模板來了(包含電商項目、在線教育、互聯網金融等)
!如果下面這些資料用得到的話可以直接拿走:1、自學開發或者測試必備的完整項目源碼與環境2、測試工作中所有模板(測試計劃、測試用例、測試報告等)3、軟體測試經典面試題4、Python/Java自動化測試實戰.pdf5、Jmeter/postman介面測試全套視頻獲取6、Python學習路線圖。
繼續訪問
5份軟體測試簡歷模板(含項目).zip
軟體測試真實簡歷模板,功能測試、自動化測試簡歷,每份簡歷都有多個項目案例信息可供參考。
軟體測試 (6)APP項目測試
APP項目需掌握測試點,性能測試工具Solopi和抓包測試工具Charles使用教學
繼續訪問
軟體測試HTML表單常用代碼、測試基礎理論學習分享
軟體測試HTML表單常用代碼、測試基礎理論學習分享
繼續訪問
非常完美的軟體測試簡歷——值得一看
適合剛工作不足半年的菜鳥一看的軟體測試簡歷
熱門推薦 軟體測試工程師簡歷項目經驗怎麼寫?--1000個已成功入職的軟體測試工程師簡歷範文模板(含真實簡歷)
目錄:導讀 一、前言:淺談面試 二、軟體測試工程師:簡歷模板 三、軟體測試工程師:簡歷包裝 1.基本信息: 2.教育背景: 3.專業技能 4.工作經歷 5.項目經驗 6.自我評價 四、軟體測試工程師:簡歷總結 一、前言:淺談面試 面試是我們進入一個公司的門檻,通過了面試才能進入公司,你的面試結果和你的薪資是息息相關的。那如何才能順利的通過面試,得到公司的認可呢?面試軟體...
繼續訪問
【軟體測試】包裝簡歷從這幾點出發、提升通過率
注意簡歷上的東西一定要會、一定要會、一定要會(面試官一般會針對簡歷上的問題進行提問,所以一定要准備充分!)下面是一份高級軟體測試工程師簡歷模板,寫作技巧在下方
繼續訪問
軟體測試包裝建議
下面有關項目經驗的包裝提幾點建議: ❶、項目要有可行性 所謂可行性,就是項目研發的預期結果和實際實用場景是否成正比,軟體行業本來就是燒錢的,如果入不敷出是沒人願意做的,所以在選擇和考慮項目經驗是首先得進行可行性分析。 ❷、項目要有真實性 雖然現在網上開源項目很多,見到的、用到的軟體也是層出不窮,種類很多,金融類、保險類、電商類等等,自己在選擇項目時一定要保證真實,不能說都真真切切的使用過,但是一定要了解它的使用場景和業務邏輯以及流程操作,這樣,你的項目經驗才經得起推敲,才站得住腳。 ❸、項目要有契
繼續訪問
軟體測試工程師簡歷項目經驗怎麼寫?--1000個已成功入職的軟體測試工程師簡歷範文模板(真實簡歷)
一、前言:淺談面試 面試是我們進入一個公司的門檻,通過了面試才能進入公司,你的面試結果和你的薪資是息息相關的。那如何才能順利的通過面試,得到公司的認可呢?面試軟體測試要注意哪些問題呢?下面和筆者一起來看看吧。這里分享一下筆者十年測試生涯的面試總結! 軟體測試面試常見問題通常分為兩大類,一類是考察你的專業技能,另一類是考察你的穩定性、努力程度、情商等因素。並且所有初級測試工程師的面試題中我發現超過90%都是基礎性的面試題,2020年只要掌握功能測試和介面測試,然後有一定的自動化基礎,再加上面試的時候態度ok
繼續訪問
軟體測試包裝簡歷項目(醫療類型),適合剛入行的測試小白編寫簡歷。
在傳統的醫療行業現狀下,患者對醫院缺乏了解、信息不對稱,而看病難、看病煩、服務不到位導致醫患關系緊張,部分醫院品牌形象缺乏。在移動互聯網時代,只需輕動手指,則一站式改善就醫體驗。 本項目總共有2個端,前端是提供給患者使用的App端,後端是便於醫院管理的web端。 我們的案例主要以「模擬面試情景+項目介紹」的形式給大家進行講解。項目的重要模塊都已經提取出來,會展示模塊的測試點,重要的bug闡述,以及相應的項目周期、人員配置、用例、bug數量的輸出。 我們也會提供出項目的操作界面地址供大家點擊操作,大家可以通過實際操作寫一些測試用例練手。 本項目主要適合剛入行的測試小白編寫簡歷和准備項目。
職場和發展
軟體測試
⑹ C語言課程設計~~~ 要求編寫一段程序,題目是《校際運動會管理系統》
我這是源代碼已經調試過了,在VC++上運行成功了。
#include "stdio.h" /*I/O函數*/
#include "stdlib.h" /*其它說明*/
#include "string.h" /*字元串函數*/
#include "conio.h" /*屏幕操作函數*/
#include "mem.h" /*內存操作函數*/
#include "ctype.h" /*字元操作函數*/
#include "alloc.h" /*動態地址分配函數*/
struct score
{
int mingci;
char xuehao[8];
char mingzi[20];
float score[6];
}data,info[1000];
int i,j,k=0;
char temp[20],ch;
FILE *fp,*fp1;
void shuru()
{
if((fp=fopen("s_score.txt","ab+"))==NULL)
{
printf("cannot open this file.\n");
getch();exit(0);
}
for(i=0;i<=1000;i++)
{
printf("\nPlease shuru xuehao:");
gets(data.xuehao);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please shuru wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please shur huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
fwrite(&data,sizeof(data),1,fp);
printf("another?y/n");
ch=getch();
if(ch=='n'||ch=='N')
break;
} fclose(fp);
}
void xianshi()
{
float s;int n;
if((fp=fopen("s_score.txt","rb+"))==NULL)
{
printf("Cannot reading this file.\n");
exit(0);
}
for(i=0;i<=1000;i++)
{
if((fread(&info[i],sizeof(info[i]),1,fp))!=1)
break;
}
printf("\nxuehao mingzi yuwen shuxue yingyu wuli huauxue zhongfen\n");
for(j=0,k=1;j<i;j++,k++)
{
info[j].mingci=k;
printf("%6s %8s %3.1f %3.1f %3.1f %3.1f %3.1f %3.1f\n",info[j].xuehao,info[j].mingzi,info[j].score[0],info[j].score[1],info[j].score[2],info[j].score[3],info[j].score[4],
info[j].score[5]);
}
getch();
fclose(fp);
}
void xiugai()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("Cannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xiugai xuehao:");
scanf("%d",&i); getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("xuehao:%s\nmingzi:%s\n",data.xuehao,data.mingzi);
printf("Please shuru mingzi:");
gets(data.mingzi);
printf("Please shuru yuwen score:");
gets(temp);data.score[0]=atof(temp);
printf("Please shuru shuxue score:");
gets(temp);data.score[1]=atof(temp);
printf("Please input yingyu score:");
gets(temp);data.score[2]=atof(temp);
printf("Please input wuli score:");
gets(temp);data.score[3]=atof(temp);
printf("Please input huaxue score:");
gets(temp);data.score[4]=atof(temp);
data.score[5]=data.score[0]+data.score[1]+data.score[2]+data.score[3]+data.score[4];
} fwrite(&data,sizeof(data),1,fp1);
}
fseek(fp,0L,0);
fseek(fp1,0L,0);
while((fread(&data,sizeof(data),1,fp1))==1)
{
fwrite(&data,sizeof(data),1,fp);
}
fclose(fp);
fclose(fp1);
}
void chazhao()
{
if((fp=fopen("s_score.txt","rb"))==NULL)
{
printf("\nCannot open this file.\n");
exit(0);
}
printf("\nPLease shuru xuehao chakan:");
scanf("%d",&i);
while(fread(&data,sizeof(data),1,fp)==1)
{
j=atoi(data.xuehao);
if(i==j)
{
printf("xuehao:%s mingzi:%s\nyuwen:%f\n shuxue:%f\n yingyu:%f\n wuli:%f\n huaxue:%f\n ",data.xuehao,data.mingzi,data.score[0],data.score[1],data.score[2],data.score[3],data.score[4],data.score[5]);
}getch();
}
}
void shanchu()
{
if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL)
{
printf("\nopen score.txt was failed!");
getch();
exit(0);
}
printf("\nPlease input ID which you want to del:");
scanf("%d",&i);getchar();
while((fread(&data,sizeof(data),1,fp))==1)
{
j=atoi(data.xuehao);
if(j==i)
{
printf("Anykey will delet it.\n");
getch();
continue;
}
fwrite(&data,sizeof(data),1,fp1);
}
fclose(fp);
fclose(fp1);
remove("s_score.txt");
rename("temp.txt","s_score.txt");
printf("Data delet was succesful!\n");
printf("Anykey will return to main.");
getch();
}
main()
{
while(1)
{
clrscr(); /*清屏幕*/
gotoxy(1,1); /*移動游標*/
textcolor(YELLOW); /*設置文本顯示顏色為黃色*/
textbackground(BLUE); /*設置背景顏色為藍色*/
window(1,1,99,99); /* 製作顯示菜單的窗口,大小根據菜單條數設計*/
clrscr();
printf("*************welcome to use student manage******************\n");
printf("*************************menu********************************\n");
printf("* ========================================================= * \n");
printf("* 1>shuru 2>xiugai * \n");
printf("* 3>shanchu 4>chazhao * \n");
printf("* 5>xianshi 6>exit * \n");
printf("* * \n");
printf("* --------------------------------------------------------- * \n");
printf(" Please input which you want(1-6):");
ch=getch();
switch(ch)
{
case '1':shuru();break;
case '2':xiugai(); break;
case '3':shanchu(); break;
case '4':chazhao(); break;
case '5':xianshi(); break;
case '6':exit(0);
default: continue;
}
}
⑺ c語言課程設計學分管理程序
程序設計基礎實訓
項目名稱:
學生學分管理
系 別: 計算機工程系
專 業: 計算機網路技術
班 級: 0922211
學生姓名:
指導教師: 韋立蓉
北 京 信 息 職 業 技 術 學 院
2010年 1 月 日
一、項目背景介紹
(概要介紹此項目設計的意義和毀閉要含磨求)
本程序為學生學分管理系統。本程序根據現實中的問題通過c語言形式編程。本程序要求能夠登記學分,顯示學分查詢學分,修改學分,刪除學分,統計學分。
二、程序功能描述:
(描述基本程序中每個函數的功能,給處各函數流程圖)
1、
登記單流程圖
2、
顯示學分流程圖
3、
查詢學分流程圖
4、
修改信息流程圖
5、
刪除信息流程圖
6、
統計信息流程圖
三、設計方案介紹
(基本思想函數調用的思路介紹)
1、主流程圖
2、界面設計
(界面設計,函數的定義,功能設計、,羅列出所有需要解決的問題
函數調用問題,循環問題,查找問題,修改問題,查詢問題,刪除問題,比較問題。
3、變數定義
序號 變數名 變數性質(局部/全局) 功能 作用范圍
1 typedef 全局 定義結構體類型 整體
2 Int 全局 定義五門課類型 整體
... Char 全局 定義學號班級姓名類型 整體
5、函數調用的類型
四、測試與分析
(簡要介紹測試的作用及意義)
測試可以知道所編寫的程序是否可行,通過實際的測試可以找出程序是否符合現實。通過測試和反復修改可以使程序更加人性化。
(一)測試列表
(以表格的形式給出,不少於10個)
測試數據或執行操作 執行結果 是否正確 測試人簽名
調用主菜單 顯示了主菜單 正確
選擇主菜單里的1 請輸入學生學生信息纖老裂…. 正確
輸出 有重復有亂碼 否
查詢 無 否
修改 按學號修改……. 是
按學號查詢 顯示了該信息 是
按班級查詢 只顯示里一名同學的信息 否
按學好刪除 刪除成功 是
須補考基礎課的 所有學生信息都顯示 否
可升學學生 顯示了該顯示的信息 是
(二)測試結果分析
(根據以下表格,如實填寫並簽名)
bug個數 錯誤類型 錯誤原因分析 是否修改 設計者簽名
1 與count聲名中的類型不匹配 少了void count() 是
2 錯誤 jia.c 19: 表達式語法錯在 main 函數中 Scanf中少了&s 是
4 錯誤 jia.c 31: do語句中必須有while關鍵字在 main 函數中 沒寫while 是
5 錯誤 jia.c 30: 未定義的符號's'在 main 函數中 上面沒int I; 是
6 錯誤 1.c 335: 表達式語法錯在 count 函數中 Switch() 括弧里沒有變數 是
7
五、實訓總結
(總結實訓過程中的所使用的知識和已實現的功能,總結自己掌握理論知識和動手能力的程度,提出自己的不足之處及改進措施)
通過這一周的實訓。我們充分運用了所學的東西編出了解決實際問題的程序。我們運用了函數的調用,循環,定義,比較,查找,刪除等知識。通過實際動手,我更加深入的了解了課本上的知識。同時提高了我的動手能力。
實訓中我找到了我許多的不足,以前我遇到不董的就會直接去問別人,不獨自思考。試訓中我學會了獨自思考和團隊合作。雖然我在編程當中遇到許多問題,但經過獨自思考和學習解決了問題。最後編出了管理程序。
C語言學生學分管理程序代碼
typedef struct student
{ char num[11],name[7],class[10];
int jichu,renwen,xuanxiu,zhuanye,shiyan;
}STU;
STU st[37];
static int n;
void menu();
void input();
void print();
void query();
void modi();
void del();
void count();
main()
{ int s;
do{
menu();
printf("\n\t\t\t\t 請選擇:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:input();break;
case 2:print();break;
case 3:query();break;
case 4:modi();break;
case 5:del();break;
case 6:count();break;
default:printf("選擇無效!");
}
}while(s!=0);
getch();
}
void menu()
{ clrscr();
printf("\t\t\t****************************\n");
printf("\t\t\t********歡迎您的使用********\n");
printf("\t\t\t******學生學分管理程序******\n");
printf("\t\t\t*** 1-登記學生學分 ***\n");
printf("\t\t\t*** 2-顯示學生學分 ***\n");
printf("\t\t\t*** 3-查詢學生學分 ***\n");
printf("\t\t\t*** 4-修改學生學分 ***\n");
printf("\t\t\t*** 5-刪除學生學分 ***\n");
printf("\t\t\t*** 6-統計學生學分 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t****************************\n");
}
void input()
{ do
{ printf("請輸入學生信息:學號 姓名 班級 基礎課 專業課 選修課 人文課 實驗課\n");
scanf("%s%s%s%d%d%d%d%d",st[n].num,st[n].name,st[n].class,&st[n].jichu,&st[n].zhuanye,&st[n].xuanxiu,&st[n].renwen,&st[n].shiyan);
n++;
printf("是否繼續輸入?(n-退出,任意鍵繼續):");
}while(getche()!='n');
}
void print()
{ int i;
printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
for(i=0;i<n;i++)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
getch();
}
void menu1()
{ clrscr();
printf("\t\t\t*****************************\n");
printf("\t\t\t***********查詢模塊**********\n");
printf("\t\t\t*** 1-按學號查詢 ***\n");
printf("\t\t\t*** 2-按姓名查詢 ***\n");
printf("\t\t\t*** 3-按班級查詢 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t*****************************\n");
}
void query1()
{ char sn[11];
int i;
printf("請輸入要查詢的學號:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].num)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\按任意鍵繼續");
break;
}
else printf("\n對不起!沒有該學號,任意鍵繼續");
getch();
}
void query2()
{ char sn[7];
int i;
printf("請輸入要查詢的姓名:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].name)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\按任意鍵繼續");
break;
}else printf("\n對不起!沒有該姓名,任意鍵繼續");
getch();
}
void query3()
{ char sn[10];
int i;
printf("請輸入要查詢的班級:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].class)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\按任意鍵繼續");
break;
}
else printf("\n對不起!沒有該班,任意鍵繼續");
getch();
}
void query()
{ int s;
do{
menu1();
printf("\n\t\t\t\t 請選擇:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:query1();break;
case 2:query2();break;
case 3:query3();break;
default:printf("選擇無效!");
}
}while(s!=0);
getch();
}
void menu2()
{ clrscr();
printf("\t\t\t*****************************\n");
printf("\t\t\t***********修改模塊**********\n");
printf("\t\t\t*** 1-按學號修改 ***\n");
printf("\t\t\t*** 2-按姓名修改 ***\n");
printf("\t\t\t*** 3-按班級修改 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t*****************************\n");
}
void modi1()
{ char sn[11];
int i;
printf("請輸入要修改學分學生的學號:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].num)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
{printf("請輸入學生學分信息:學號 姓名 班級 基礎課 專業課 選修課 人文課 實驗課\n");
scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);
printf("是否繼續輸入?(n-退出,任意鍵繼續):");
}while(getche()!='n');
break;
}
getch();
}
void modi2()
{ char sn[7];
int i;
printf("請輸入要修改學分學生的姓名:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].name)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
{printf("請輸入學生學分信息:學號 姓名 班級 基礎課 專業課 選修課 人文課 實驗課\n");
scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);
printf("是否繼續輸入?(n-退出,任意鍵繼續):");
}while(getche()!='n');
break;
}
getch();
}
void modi3()
{ char sn[10];
int i;
printf("請輸入要修改學分學生的班級:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].class)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
{printf("請輸入學生學分信息:學號 姓名 班級 基礎課 專業課 選修課 人文課 實驗課\n");
scanf("%s%s%s%d%d%d%d%d",st[i].num,st[i].name,st[i].class,&st[i].jichu,&st[i].zhuanye,&st[i].xuanxiu,&st[i].renwen,&st[i].shiyan);
printf("是否繼續輸入?(n-退出,任意鍵繼續):");
} while(getche()!='n');
break;
}
getch();
}
void modi()
{ int s;
do{
menu2();
printf("\n\t\t\t\t 請選擇:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:modi1();break;
case 2:modi2();break;
case 3:modi3();break;
default:printf("選擇無效!");
}
}while(s!=0);
getch();
}
void menu3()
{ clrscr();
printf("\t\t\t*****************************\n");
printf("\t\t\t***********刪除模塊**********\n");
printf("\t\t\t*** 1-按學號刪除 ***\n");
printf("\t\t\t*** 2-按姓名刪除 ***\n");
printf("\t\t\t*** 3-按班級刪除 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t*****************************\n");
}
void del1()
{ char sn[11];
int i,j;
printf("請輸入要刪除學分學生的學號:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].num)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\n是否刪除(任意鍵確認,n\取消)");
if(getche()!='n');
{if(i!=n-1);
for(j=i;j<n-1;j++)
st[j]=st[j+1];
n--;
printf("\n該記錄已刪除");
getch();
break ;
}
}
else printf("\n對不起!沒有該學號,任意鍵繼續");
}
void del2()
{ char sn[7];
int i,j;
printf("請輸入要刪除學分學生的姓名:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].name)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\n是否刪除(任意鍵確認,n\取消)");
if(getche()!='n');
{if(i!=n-1);
for(j=i;j<n-1;j++)
st[j]=st[j+1];
n--;
printf("\n該記錄已刪除");
getch();
break ;
}
}
else printf("\n對不起!沒有該學號,任意鍵繼續");
}
void del3()
{ char sn[10];
int i,j;
printf("請輸入要刪除學分學生的班級:");
scanf("%s",sn);
for(i=0;i<n;i++)
if(strcmp(sn,st[i].class)==0)
{printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
printf("\n是否刪除(任意鍵確認,n\取消)");
if(getche()!='n');
{if(i!=n-1);
for(j=i;j<n-1;j++)
st[j]=st[j+1];
n--;
printf("\n該記錄已刪除");
getch();
break ;
}
}
else printf("\n對不起!沒有該學號,任意鍵繼續");
}
void del()
{ int s;
do{
menu3();
printf("\n\t\t\t\t 請選擇:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:del1();break;
case 2:del2();break;
case 3:del3();break;
default:printf("選擇無效!");
}
}while(s!=0);
getch();
}
void menu4()
{ clrscr();
printf("\t\t\t*****************************\n");
printf("\t\t\t***********統計模塊**********\n");
printf("\t\t\t*** 1- 可升學的學生 ***\n");
printf("\t\t\t*** 2-需補考基礎課的 ***\n");
printf("\t\t\t*** 3-需補考專業課的 ***\n");
printf("\t\t\t*** 4-需補考選修課的 ***\n");
printf("\t\t\t*** 5-需補考人文課的 ***\n");
printf("\t\t\t*** 6-需補考實驗課的 ***\n");
printf("\t\t\t*** 0-退出 ***\n");
printf("\t\t\t*****************************\n");
}
void count1()
{ int i;
printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renwen>=60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
getch();
}
void count2()
{ int i;
printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
for(i=0;i<n;i++)
if(st[i].jichu<60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renwen>=60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
getch();
}void count3()
{ int i;
printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye<60&st[i].xuanxiu>=60&st[i].renwen>=60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
getch();
}
void count4()
{ int i;
printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu<60&st[i].renwen>=60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
getch();
}
void count5()
{ int i;
printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renwen<60&st[i].shiyan>=60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
getch();
}
void count6()
{ int i;
printf("\n序號\t學號\t 姓名\t班級\t基礎課\t專業課\t選修課\t人文課\t實驗課\n");
for(i=0;i<n;i++)
if(st[i].jichu>=60&st[i].zhuanye>=60&st[i].xuanxiu>=60&st[i].renwen>=60&st[i].shiyan<60)
printf("%2d %7s %7s %5s %4d\t%4d\t%4d\t%4d\t%4d\n",i+1,st[i].num,st[i].name,st[i].class,st[i].jichu,st[i].zhuanye,st[i].xuanxiu,st[i].renwen,st[i].shiyan);
getch();
}
void count()
{ int s;
do{
menu4();
printf("\n\t\t\t\t 請選擇:");
scanf("%d",&s);
switch(s)
{ case 0:break;
case 1:count1();break;
case 2:count2();break;
case 3:count3();break;
case 4:count4();break;
case 5:count5();break;
case 6:count6();break;
default:printf("選擇無效!");
}
}while(s!=0);
getch();
}
⑻ 用C語言編寫一個程序,來解決你們化學、生物專業(行業)內的一個問題。
1. 輸入分子式 得到分子咐枝槐式個數 確定變搭缺量 2.左右截取字元 大寫字母為界限 3 平衡原則 確定方程 4 解方程 ex: 2Al+3CuSO4=3Cu+Al2(SO4)3 4個分子式 確定變數 abcd 截取字元 得到AL Cu S O 左右同時截取 得到 方程 a=d*2 b=c b=3*d 解方程 選擇最小的INT型衡友
⑼ 學c語言如何做出有界面的程序
1、新建一個C項目,點擊文件,新建,項目,選擇C++Win32控制台應用。
⑽ C語言程序設計 學生成績管理信息系統
我還有代碼呢,要的話,馬上帖出來..給個紅棋吧,呵呵
一、 課題設計名稱
學生成績管理信息系統分析設計
二、 課題設計目的
通過本次課程的設計,加深對信息系統基礎理論和基本知識的理解,掌握使用信息系統分析、設計的基本方法,提高解決實際管理問題、開發信息系統的實踐能力。
三、 任務要求:
用信息系統開發工具(例如Visual Foxpro、Visual Basic、Delphi等)開發一個實用的中小型管理信息系統。
1、根據課程設計時間選擇適當規模大小的設計課題。
2、根據合理的進度安排,按照系統開發的流程及方法,踏實地開展課程設計活動。
3、課程設計過程中,根據選題的具體需求,在開發各環節中撰寫相關的技術文檔(小組各成員可分別完成某階段的技術文檔),最後要求提交詳細的課程設計報告。
4、開發出可以運行的管理信息系統,通過上機檢查。
四、 課題設計報告書要求:
1、 課題設計報告書第一頁為封面,封面上寫清楚標題、班級、姓名、指導老師、完成日期,格式自己設計。
2、 課題設計報告書第二頁為本任務書。
3、 課題設計報告書第三頁為教師評語。
4、 課題設計報告書第四頁為目錄。
5、 課題設計報告書第五頁開始為具體內容:
(1)可行性分析
(2)系統分析部分
1)業務流程圖
2)數據流程圖
3)功能分析圖
4)數據字典
5)數據加工處理的描述
6)管理信息系統流程設想圖(新系統模型)
(3)系統設計部分
1)功能結構圖設計
2)新系統信息處理流程設計
3)輸出設計(主要指列印輸出設計)
4)存儲文件格式設計(資料庫結構設計)
5)輸入設計(主要指數據錄入卡設計)
6)代碼設計(職工證號和部門代號等)
7)程序設計說明書
(4)附錄或參考資料
6、課題設計報告書最後一頁是本次課程設計的小節和參考文獻。
7、字數要求不少於4000字。
8、列印紙張使用B5紙,頁邊距設為上、下、左2厘米,右1.5厘米,
五、 如有雷同,將作不及格處理。
六、 完成時間:2007.1.5
計算機二系
尚晉
2007.10.28
教師評語
評分模塊 評分標准及分值 得分
平時成績(20分) 1. 態度(10分)
2. 考勤(10分)
分析與設計部分
(65分) 3. 需求分析(5分)
4. 系統復雜度(5分)
系統分析部分(20分) 5. 業務流程圖(5分)
6. 數據流程圖(5分)
7. 功能分析圖(3分)
8. 數據字典(7分)
系統設計部分
(35分) 9. 系統配置方案設計(5分)
10. 用戶界面導航圖(5分)
11. 界面設計(5分)
12. 有效性驗證(5分)
13. 錯誤處理(5分)
14. 編碼設計(5分)
15. 資料庫設計(5分)
報告部分(10分) 16. 條理清晰、語言精練准確(5分)
17. 描述圖形工具使用恰當(5分)
組長加分(5分) 18. 組織得力,合作完成情況好(5分)
總分(100分)
成績:
學生成績管理信息系統
1. 系統規劃
1.1項目開發的背景
伴隨著信息社會的到來,信息的極大豐富必然要求人們適應信息社會,信息和材料、能源一樣成為一種社會的基本生產資料,在人類的社會生產活動中發揮著重要的作用,其中最重要的前提就是充分利用人們的才智和學習能力。傳統的教學只教會了學生相關的知識,沒有教會學生如何利用這些知識,以及再學習的能力。特別對於「管理信息系統」這類實用性比較強的課程,更需要培養學生的實際動手能力。.教與學互動與結合,強調應用,不僅讓學生了解課程上講授的管理信息系統方法和原理,而且讓學生們利用這些知識解決實際問題。這對學生的實際工作能力是一個很好的鍛煉。密切結合學生獨立完成的系統開發作業,通過指導教師的點評,使學生能夠在較短的時間內,通過實踐,真正掌所學的知識。同時人們對信息和數據的利用與處理也已經進入了自動化、網路化和社會化的階段,因此,開發相關的管理信息系統已經成為各行各業的必要和必需了,管理信息系統作為一門邊緣學科,集管理科學、信息科學、系統科學、現代通信技術和電子計算機技術於一體,可以解決企業或組織所面臨的問題,對於成績管理員的勞動強度、提高工作質量和效率;方便管理人員對信息的查詢、提高信息資源的利用效率和管理水平都具有重要意義。
1.2 可行性分析
基於以上對問題的調查和分析,利用計算機給我們提供的信息,及時地了解學生的信息,並且形成一整套動態的管理就十分必要了。本系統開發的主要目的是對學生信息和成績的實現計算機管理。學生管理系統的建立,是在進行對大量用戶需求與調查分析得到的。
(1)技術可行性
成績管理系統主要是用於計算機教育部關於教學計劃、課程、教師信息、成績的查詢和管理。通過使用Microsoft公司提供的Visual FoxPro 6.0工具以及SQL Server資料庫可以實現對有關課的教學計劃、課程等的網上查詢和管理,主要目的是對學生成績實現計算機管理。
(2)經濟可行性
開發學生成績管理系統費用較底,可利用現有的微機設備,經濟上是可行的,非常適合於成績管理,因為該系統實現了將管理和查詢網路
化,極大地方便了管理員、教師、學生。
(3)操作可行性
本系統的界面設計簡單直觀,易於理解。它使用的控制項都是用戶常用的或常見的,操作起來很容易上手。不需要特別的培訓和講解,用戶便能使用該系統。
(4)組織與管理可行性
成績管理員是對學生的成績進行管理的,但過去由於採用人工方法進行管理,工作效率低,勞動強度大,所以他們希望採用計算機管理,將已有的管理經驗轉化到管理軟體中。這就使得系統調查、需求分析能夠得到有關人員的大力支持和積極配合。
1.3 制定系統開發計劃
開發學生成績管理系統的計劃見表1-1
表1-1 實驗小學學生成績管理系統開發簡略計劃表
序號 項目內容 時間進度 項目負責人
1 系統規劃和可行性分析 2007年12月 向萬秀
2 系統分析 2007年12月 張春先、向萬秀、刁勝
3 系統設計 2007年12月 向萬秀、張春先
4 系統實施與測試 2007年12月 向萬秀
5 系統評價與維護 2007年12月 張春先
6 安全保障措施 2007年12月 向萬秀、張春先
2系統分析
1現行系統業務流程的調查
對某學校進行實地調查,其現行的成績管理工作都是採用傳統的手工管理,經過對成績管理員、學生和教師的全面的調查研究,手工工作效率低,工作質量差,不適合現在學校成績管理系統的需求,所以需要改進傳統的成績管理模式。實現科學化管理。
對現行系統的調查業務流程圖如下圖1-1所示:
學生
1-1 業務流程圖
2 需求分析
(1) 功能描述
本系統包括用戶管理、學生注冊、班級信息錄入、學生信息錄入、班級課程錄入、學校專業信息錄入、課程信息錄入、學生成績錄入、教師信息錄入、各方面的查詢等等。
1.教學管理功能
① 新本學期所開設課程的錄入與查詢:例如在2006年上學期開設課程:C語言與經濟數學。
說明:所有的課程成績均由三部分組成:平時成績,上機成績, 筆試成績。所佔的比重分別為:30%,10%,60%,在該系統中這三部分及其比重是固定不變的。
② 對各系科的課程安排的錄入與查詢,課程安排即是該學期每個學科
的選課課程、任課教師以及上課時間和上課地點。
說明:每一個院系中所有的不同專業所選的課程都是一樣的。但是同一院系的學生不一定有同一個教師授課。
(2).成績管理的功能(教師使用)如下:
① 錄入成績:既可以單個錄入也可以批量錄入,其中批量錄入以成績單單位,每次從系統中調出一張成績單,編輯完成後一次性提交。
成績單:成績單包括學期、院系、專業、課程、任課教師、學生成績。
② 查詢成績:單個查詢(學生可使用),根據學生的學號或姓名查詢出該學生的所有課程的成績信息。批量查詢以成績單為單位,每次查詢出一張成績單。
③ 列印成績:可以一次列印一張成績單,也可以按要求批量列印。
④ 統計調整:對成績單中的成績進行統計,指出各個分數段的人數分布情況。因為有時學生的成績整體上偏低,需要進行調整,一次系統可以按照用戶設置的規則對成績單中的成績進行調整。
成績調整規則:將成績單中總分在某一分數段的學生成績調整到另外一個分數段。例如將50到60分的學生成績全部調整到60到65分之間。為了使調整過程盡可能合理,還可以對待調整分數段的學生成績進行限制,例如設置其筆試成績必須在50分以上,而平時成績則可以適當放寬。
⑤ 每學期考試不及各的學生自動納入新學期的跟考或輔修教學計劃中。
(3).許可權說明:
① 管理員可使用功能:教師信息管理、系科顯示、課程管理、教學計劃管理、學生成績查詢;
② 教師可使用成績管理各項功能:對學生成績的添、刪除、修改、查詢、分析、調整;
③ 學生可使用的功能:查詢單個學生所有成績,班級成績,學生平均成績,最高分,最低分等。
為學校教師和學生提供快捷的查詢手段,讓老師和學生能夠及時查詢學生成績信息,更快而又方便的進行查詢。
(4).性能要求
本系統採用計算機對學生成績進行管理,進一步提高辦學效益和現代化水平。幫助廣大教師提高工作效率,實現學生成績信息管理工作流程的系統化、規范化和自動化。如果本系統能被學校所採用,將會改變以前靠手工管理學生成績的狀況,可以樹立良好的辦學形象,提高工作效率。由於現在實行九年義務教育,學校學生不斷增加,該系統可高效的進行大規模的查詢。系統的安全保密性高,能防止非法訪問。
3新系統的邏輯模型的建立
(1) 新開發的學生成績管理系統的功能分析
在學生成績管理信息系統中,主要有三類外部實體:學生、教師、教務處工作人員。學生成績管理信息系統的大部分功能是為教務處工作人員設置的。經調查分析,新開發飛的學生成績管理信息系統應具有以下的功能。
(1.1) 查詢學生的基本信息和成績信息,包括學生信息的添加、修改、刪除等。
(1.2) 管理學生成績,包括考試管理,成績管理等。
(1.3) 成績的處理,即統計成績、分析成績等。
(2) 繪制數據流圖
繪制數據流圖時,只考慮學生和教務處兩個外部實體,頂層數據流圖如圖1-2所示。
學生成績錄入 教師課程信息
學生成績單
學生登錄信息
學生選課信息 輔修/跟考通知單
用戶名、密碼 部門信息
課程類型 學生成績信息
課程信息 學生考試信息
圖1-2 頂層數據流圖
0層數據流如圖1-3所示。由於1層圖沒有完整繪制,0層圖中只屬於一個加工的文件(例如許可權表)也在0層圖上出現。
0層數據流圖通過反應整個系統中不同數據流向,來揭示系統的組成結構以及各組成部門之間的關系,這種關系主要體現在對數據的操作和處理上。
用戶名、密碼
學生信息
部門信息
學生成績
學生信息
學生成績單
成績類型 輔修/跟考通知
學生成績 不及格成績
缺考
圖1-3 0層數據流圖
學生信息數據流程圖如圖1-4、1-5所示。
學生信息 審查1.1 合格單 是否新生1.2 新生信息
學生紀錄
學生成績
總學生紀錄表及成績
圖1-4 1層數據流圖
(3) 數據字典
數據字典是進行數據收集和數據分析所獲得的主要成果,是系統中各類數據描述的集合。數據字典通常包括數據項、數據流、數據存儲、處理邏輯。
數據項
名稱:學生信息
別名:學生信息
說明:學生信息=學生基本信息+學生記錄+學生成績記錄
類型:字元型
長度:12
取值范圍:0000000000001~99999999999
數據流條目:
合格單=姓名+系別+班級+專業
新生信息=入學時間+姓名+性別+年齡+專業+系別+班級
加工條目:
加工名:審查
編號:1.1
輸入:學生信息
輸出:合格單
加工邏輯:根據學生信息判斷是否是新生
加工邏輯
加工邏輯
加工名:是否是新生
編號:1.2
輸入:合格單
輸出:新生信息
加工邏輯:根據合格單建立新生信息
加工名:錄入、存儲學生信息、各科成績
編號:1。3
輸入:新生信息、考試成績
輸出:本次考試成績
2層數據流圖
學號、課程號 有效查詢 成績
考試成績 成績單
學生紀錄 班級 統計成績
各科
本次成績 升留級名單 學生紀錄
成績標准
圖1-5 2 層數據流圖
數據字典:
數據項
名稱:學號、課程號
別名:編號
說明:惟一標識一個學生編號
類型:字元型
長度:12
取值范圍:0000000000001~9999999999999
數據存儲文件
數據存儲條目:
數據存儲名稱:考試成績
組成:姓名+班級+專業+系別+成績+學號
組織方式:索引文件,以學號為關鍵字
加工處理
加工邏輯
加工名:有效性檢查
編號:2。1
輸入信息:學號、課程號
輸出信息:有效查詢
加工邏輯:根據所輸入的信息來檢查有效性
加工名:查詢成績
編號:2。2
輸入信息:考試成績
輸出信息:成績
加工邏輯:根據考試成績查詢成績
加工條目:
加工名:統計選擇
編號:3。1
輸入信息:學生記錄
輸出信息:按規定統計成績
加工邏輯:根據所輸入學生記錄,按班級、單科統計成績
數據存儲條目:
文件名:成績標准 組成:成績
加工條目:
加工名:是否升級
編號:4。1
輸入信息:本次成績、成績標准
輸出信息:升留級名單
加工邏輯:根據本次成績
IF 大於等於標准成績 ELSE 降級
ENDLF THEN 升級
加工名:更新記錄
編號:4。2
輸入信息:升留級名單
輸出信息:學生記錄
加工邏輯:根據升留級名單修學生記錄
3.系統設計
1. 系統總體結構設計與功能模塊劃分及系統功能描述
本系統的主要任務是實現對學校教導處的學生信息管理、成績管理、課程管理及相關查詢。其主要功能包括:
學生成績管理模塊,學生信息管理模塊、系統模塊等等。
學生信息管理功能
(1)班級管理。提供給班主任進行本班學生的信息更新、刪除。
(2)添加學生。以班級為單位,進行學生入庫。其中分為單個添加和成批添加。單個添加學生供數量較少的學生信息入庫;成批添加可以從現存的學生信息EXCEL文件中成批錄入到資料庫中。
(3)刪除學生。當學生畢業後,學生信息轉移備份資料庫中,系統的基本資料庫中需要刪除學生信息。該功能主要進行成批地刪除學生信息,如連續學號區段的多位學生信息刪除,整個班級的刪除,所有學生信息的刪除。
(4)新生管理。本部分的功能主要有新生導入、分班、及設置學號。新生導入實現從現存的EXCEL新生名單中錄入學生信息。分班功能實現按新生的報考專業、成績及性別進行分班。設置學號實現自動為各班學生編發學號。
學生信息備份。在學生信息刪除前,將其按班級為單位保存到備份資料庫。
(5)學生信息模塊主要包括對學生信息的存儲,審查記錄以及學生對學生整個信息的調查進行分類和查找。可以實現添加、修改、刪除、查詢學生信息管理的調查。
(6)學生基本信息管理功能包括:學生信息、學生記錄、學生成績、總學生記錄表和成績。
(7)學生基本信息包括:學生學號、學生班級號、課程號、學生聯系方式等等
(8)課程管理。提供本學期各年級各專業所開課程名稱的錄入、修改、刪除。它是學生成績管理的基礎。用以保證資料庫中一致性原則。
2.系統功能分析
系統開發的總體任務是實現學生信息關系的系統化,規范化和自動化。
學生基本信息所需要完成的功能主要有:
●學生信息的輸入,包括輸入學生基本信息、所在班級、所學課和 成 績等。
● 學生信息的查詢,包括輸入學生基本信息、所在班級、已學課程和成績 等。
● 學生信息的修改。
● 班級管理信息的輸入、查詢、修改,包括輸入班級設置,年級信息等。
● 基本課程信息的輸入、查詢、修改。
● 學生成績信息的輸入、查詢、修改。
對上述各功能進行集中、分塊、按照結構化程序設計的要求。
2.繪制學生信息管理模塊功能結構圖如圖
圖1-6 學生信息系統管理的功能結構圖
3.系統配置方案設計
鑒於本系統的業務性質,必須選擇具有較高的可靠性、穩定性和必要的容錯能力的計算機硬體和軟體系統,以保證任何情況下都不至於丟失、損壞數據。
必須具有較高的響應速度,以保證各項具體業務的順利進行。
應考慮具有良好的可維護性,可操作性和可擴充性,以保證將來系統規模的擴展和升級的需要。
4.開發與運行環境的使用
開發前台工具:Visual FoxPro 6.0
操作系統對整個網路起著重要的作用,Windows 2000作為一種強健的、多用途的操作系統,不僅能夠運行強有力的客戶/伺服器應用軟體,還可以提供可靠的文件與列印服務,再加其內置的通信與Internet/Internet服務功能,以及安裝、使用、管理和維護的方便性,因此,本系統採用Microsoft Windows 2000Server作為操作系統。
本系統准備採用客戶機/伺服器(C/S)結構模式。C/S結構的最大優勢在於廣泛採用了網路技術,將系統中的各部分任務分配給分布在網路上的擔任不同角色的計算機。把較復雜的計算機管理任務交給伺服器完成。再把一些頻繁與用戶打交道的任務交給客戶機完成。通過這種結構完全實現了網路上信息資源的共享。
開發基於C/S結構的管理系統所用到的開發工具包括前台開發工具和後台資料庫管理系統,主要根據開發者對開發工具的熟悉程度而定。本系統的前端開發工具採用Visual FoxPro 6.0。
5.編碼(Code)設計
6.資料庫設計
(1) 概念結構設計
經過本次實驗,概念結構設計的主要工作是根據用戶需求設計概論性數據模型。概念模型是一個面向問題的模型,它獨立於具體的資料庫管理系統,從用戶的角度看待資料庫,反映用戶的現實環境,與將來資料庫如何實現無關。概念模型設計的典型方法是E-R方法,即用實體—聯系模型表示。
E-R方法使用E-R圖來描述現實世界,E-R圖包含三個基本成分:實體、聯系、屬性。E-R圖直觀易懂,能夠比較准備地反映現實世界的信息聯系,從概念上表示一個資料庫的信息組織情況。
實體:是指客觀世界存在的事物,可以是人或物,也可以是抽象概念。E-R圖中各實體的關系說明如下。
學號記載學生成績管理系統中所登記的一類編號,而所有的學生姓名是所代表的是學生的代碼。中兩個實體之間為一對多關系。
學生可以選擇多門課程,一門課程可以有多個學生選擇。其中本系統中E-R圖包括學生性別、出生日期等等。課程中包括課程號、課程名、教師姓名等等。
M N
學生與課程之間的關系
課程名是惟一的,而選課的學生是多個的,這兩個實體之間為一對一關系。
一個學校有多位老師,這兩個實體之間為一對多關系。
學生與課程表中的同一課程對應多個不同的老師與學生,這兩個實體間為一對多關系。